google cloud添加永久性磁盘或调整其大小

本页面介绍如何调整永久性启动磁盘和永久性辅助磁盘的大小。本页面还介绍如何在实例上添加和格式化新的永久性磁盘。永久性磁盘只能调大,不能调小。

永久性磁盘可用作标准硬盘 (HDD) 或固态硬盘 (SSD)。有关永久性磁盘以及可用永久性磁盘类型的更多常规信息,请阅读永久性磁盘概览。

Compute Engine 管理永久性磁盘背后的硬件,因此您可以添加磁盘并调整其大小,而无需处理分割或冗余。您可挂接一个大型辅助磁盘并在需要时调整其大小,或者挂接多个较小的磁盘以将数据分布到多个卷中。

如果您不是基于映像创建磁盘,则新的永久性磁盘最初不含数据或文件系统。将这些磁盘挂接到实例后,必须自行格式化磁盘。

如果标准永久性磁盘或 SSD 永久性磁盘不能满足您的所有性能或灵活性要求,您可以向实例添加额外的存储选项。

  • 如果您要使用本指南中的命令行示例,请执行以下操作:
    1. 安装 gcloud 命令行工具。
    2. 设置默认区域和地区。
  • 如果您要使用本指南中的 API 示例,请设置 API 访问权限。
  • 请参阅差异,以区分不同类型的永久性磁盘。

向实例添加永久性磁盘

创建标准永久性磁盘或 SSD 永久性磁盘并将其挂接到现有实例。如果您没有任何实例,则必须先创建并启动新实例。创建实例期间,您最多可以挂接 15 个辅助非启动永久性磁盘,以将应用、数据文件、数据库和日志存储在不同的卷上。

您可以通过 Google Cloud Platform Console、gcloud 工具或 API 创建并挂接永久性磁盘。

CONSOLE

GCLOUD

API

在 Google Cloud Platform Console 中创建并挂接永久性磁盘:

  1. 转到“虚拟机实例”页面。转到“虚拟机实例”页面
  2. 点击要在其中添加磁盘的实例的名称。
  3. 在实例详情页面顶部,点击修改
  4. 额外磁盘下,点击添加项目
  5. 在额外列表的名称列中,点击选择磁盘下拉菜单并选择创建磁盘
  6. 配置新磁盘的属性。指定磁盘的名称并选择空白磁盘选项。
  7. 点击创建以创建磁盘。
  8. 在实例详情页面底部,点击保存以将更改应用到实例并挂接新磁盘。
  9. 创建新磁盘并将其挂接到实例后,必须格式化并装载磁盘,以便操作系统可以使用可用的存储空间。

格式化并装载永久性磁盘

新的永久性磁盘最初不含数据或文件系统。将这些磁盘挂接到实例后,必须自行格式化磁盘。Linux 实例和 Windows 实例上的格式化过程有所不同。

LINUX 实例

WINDOWS 实例

在 Linux 实例上格式化并装载新磁盘。您可以使用您需要的任何分区格式和配置,但创建无分区表的单个 ext4 文件系统最为简单。这样,以后需要更多存储空间时,只需调整磁盘大小即可。

  1. 转到“虚拟机实例”页面。转到“虚拟机实例”页面
  2. 点击挂接了新磁盘的实例旁的 SSH 按钮。浏览器会建立连到实例的终端连接。
  3. 在终端中,使用 lsblk 命令列出挂接到实例的磁盘,并找到要格式化并装载的磁盘。
    $ sudo lsblk
    
    NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda      8:0    0   10G  0 disk
    └─sda1   8:1    0   10G  0 part /
    sdb      8:16   0  250G  0 disk
    

    在本示例中,sdb 是新的永久性磁盘的设备 ID。

  4. 格式化磁盘。您可以使用您需要的任何文件格式,但格式化只有单个 ext4 文件系统且无分区表的整个磁盘最为简单。如果您以后要调整永久性磁盘的大小,则可以调整文件系统大小,无需修改磁盘分区。使用 mkfs 工具格式化磁盘。此命令会删除指定磁盘中的所有数据,因此请确保正确指定磁盘设备。要最大限度地提高磁盘性能,请在 -E 标志中使用建议的格式化选项。无需在此辅助磁盘上为 root 保留空间,因此请指定 -m 0 以使用所有可用的磁盘空间。
    $ sudo mkfs.ext4 -m 0 -F -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/[DEVICE_ID]

    其中 [DEVICE_ID] 是您正在格式化的永久性磁盘的设备 ID。对于本示例,请指定 sdb 以格式化无分区表的整个磁盘。

  5. 创建用作新磁盘装入点的目录。您可以使用您喜欢的任何目录,但本示例会在 /mnt/disks/ 下创建一个新目录。
    $ sudo mkdir -p /mnt/disks/[MNT_DIR]

    其中:[MNT_DIR] 是您将在其中装载永久性磁盘的目录。

  6. 使用 mount 工具在启用 discard 选项的情况下将磁盘装载到实例:
    $ sudo mount -o discard,defaults /dev/[DEVICE_ID] /mnt/disks/[MNT_DIR]

    其中:

    • [DEVICE_ID] 是您正在装载的永久性磁盘的设备 ID。
    • [MNT_DIR] 是您将在其中装载永久性磁盘的目录。
  7. 配置对设备的读写权限。对于本示例,为所有用户授予对设备的写权限。
    $ sudo chmod a+w /mnt/disks/[MNT_DIR]

    其中:[MNT_DIR] 是您在其中装载了永久性磁盘的目录。

您可以选择将永久性磁盘添加到 /etc/fstab 文件,以便在实例重启时,设备会自动重新装载。

  1. 创建当前 /etc/fstab 文件的备份。
    $ sudo cp /etc/fstab /etc/fstab.backup
  2. 使用 blkid 命令查找永久性磁盘的 UUID。在您格式化磁盘时,系统会生成此 UUID。请使用 UUID 装载永久性磁盘,因为在系统之间移动磁盘时,UUID 不会更改。
    $ sudo blkid /dev/[DEVICE_ID]
    
    /dev/[DEVICE_ID]: UUID="[UUID_VALUE]" TYPE="ext4"
    

    其中:

    • [DEVICE_ID] 是您要自动装载的永久性磁盘的设备 ID。如果您在磁盘上创建了分区表,请指定您要装载的分区。
    • [UUID_VALUE] 是您必须添加到 /etc/fstab 文件中的永久性磁盘的 UUID。
  3. 在文本编辑器中打开 /etc/fstab 文件,并创建一个包含 UUID 的条目。例如:
    UUID=[UUID_VALUE] /mnt/disks/[MNT_DIR] ext4 discard,defaults,[NOFAIL_OPTION] 0 2

    其中:

    • [UUID_VALUE] 是您必须添加到 /etc/fstab 文件中的永久性磁盘的 UUID。
    • [MNT_DIR] 是您在其中装载了永久性磁盘的目录。
    • [NOFAIL_OPTION] 是一个变量,指定操作系统在启动时无法装载永久性磁盘的情况下应该执行的操作。要允许系统即使在无法装载永久性磁盘的情况下也继续启动,请指定此选项。对于大多数发行版,请指定 nofail 选项。对于 Ubuntu 12.04 或 Ubuntu 14.04,请指定 nobootwait 选项。

    您可以选择使用单个命令完成此步骤。例如,可以使用以下命令在 /etc/fstab 中创建一个条目,以使用永久性磁盘 /dev/sdb的 UUID 将该磁盘装载到 /mnt/disks/disk-1

    $ echo UUID=`sudo blkid -s UUID -o value /dev/sdb` /mnt/disks/disk-1 ext4 discard,defaults,nofail 0 2 | sudo tee -a /etc/fstab
    
    UUID=c994cf26-1853-48ab-a6a5-9d7c0250fed4 /mnt/disks/disk-1 ext4 discard,defaults,nofail 0 2
    
  4. 使用 cat 命令验证您的 /etc/fstab 条目是否正确:
    $ cat /etc/fstab
    
    LABEL=cloudimg-rootfs   /        ext4   defaults        0 0
    UUID=d761bdc5-7e2a-4529-a393-b9aefdb623b6 /mnt/disks/disk-1 ext4 discard,defaults,nofail 0 2
    

如果您针对此实例分离此永久性磁盘或从启动磁盘创建快照,请修改 /etc/fstab 文件并移除此永久性磁盘的条目。即使配置了 nofail 或 nobootwait 选项,您也应该使 /etc/fstab 文件与挂接到实例的设备保持同步,并在您创建启动磁盘快照或分离永久性磁盘之前移除这些条目。

调整永久性磁盘的大小

您可以在实例需要更多存储空间时调整永久性磁盘的大小,而且只有在需要将数据分布到多个唯一分区中时才挂接多个辅助磁盘。

无论磁盘是否挂接到正在运行的实例,您都可以随时调整磁盘的大小。

CONSOLE

GCLOUD

API

  1. 转到“磁盘”页面以查看您的项目中永久性磁盘的列表。转到“磁盘”页面
  2. 点击您要调整大小的磁盘的名称。
  3. 在磁盘详情页面顶部,点击修改
  4. 大小字段中,为磁盘输入新的大小。使用 MBR 分区表的启动磁盘和辅助磁盘最大只能调整到 2 TB。
  5. 在磁盘详情页面底部,点击保存以将您的更改应用到磁盘。
  6. 调整磁盘大小后,必须调整文件系统的大小,以便操作系统可以访问额外空间。

调整永久性磁盘上文件系统和分区的大小

调整永久性磁盘的大小后,必须配置磁盘上的文件系统以使用额外的磁盘空间。如果磁盘具有分区表(例如启动磁盘),您必须增大该分区并调整该分区上文件系统的大小。如果您的永久性磁盘只有一个文件系统,并且没有分区表,您可以只调整文件系统的大小。

此外,使用最新版本公用映像的实例可以在系统重新启动后自动调整其分区和文件系统的大小。SUSE Linux Enterprise Server (SLES) 公共映像是唯一不支持此功能的映像。

在修改永久性磁盘上的文件系统之前,请创建快照。

LINUX 实例

WINDOWS 实例

在 Linux 实例上,连接到您的实例并手动调整您的分区和文件系统的大小,以使用您增加的额外磁盘空间。此手动处理过程不要求您重启实例。

  1. 转到“虚拟机实例”页面。转到“虚拟机实例”页面
  2. 点击挂接了新磁盘的实例旁的 SSH 按钮。浏览器会建立连到实例的终端连接。
  3. 识别含有您要调整大小的文件系统和分区的磁盘。如果您的磁盘已装载,您可以使用 df 命令和 lsblk 命令比较文件系统的大小并查找磁盘 ID。在本示例中,/dev/sda1 分区位于大小已调整为 20 GB 的启动磁盘上,但分区表和文件系统仅为操作系统提供 9.7 GB 的容量。此外,/dev/sdb 辅助磁盘没有分区表,但该磁盘上的文件系统仅为操作系统提供 250 GB 的容量。
    $ df -h
    
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sda1       9.7G  1.2G  8.5G  12% /
    /dev/sdb        250G   60M  250G   1% /mnt/disks/disk-1
    
    $ sudo lsblk
    
    NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda       8:0    0   20G  0 disk
    └─sda1    8:1    0   10G  0 part /
    sdb       8:16   0  500G  0 disk /mnt/disks/disk-1
    

    在本示例中,df 命令显示 /dev/sda1 分区已作为根文件系统装载,而 /dev/sdb 磁盘已作为辅助磁盘装载到 /mnt/disks/disk-1

  4. 如果您要调整大小的磁盘具有分区表,则必须在调整文件系统大小之前增大该分区。使用 growpart 来调整您的映像分区的大小。并非所有映像都在其实用工具中包含 growpart,因此可能需要由您来安装该工具。
    $ sudo growpart /dev/[DEVICE_ID] [PARTITION_NUMBER]

    其中 [DEVICE_ID] 是设备 ID,而 [PARTITION_NUMBER] 是该设备的分区号。例如,sudo growpart /dev/sdb 1。请注意,在这种情况下,设备 ID 与分区号之间有一个空格。

  5. 扩展磁盘或分区上的文件系统以使用增加的空间。如果您在磁盘上增加了一个分区,请指定该分区。如果您的磁盘没有分区表,请仅指定磁盘 ID。
    $ sudo resize2fs /dev/[DEVICE_ID][PARTITION_NUMBER]

    其中 [DEVICE_ID] 是设备 ID,[PARTITION_NUMBER] 是您要在其中调整文件系统大小的设备的分区号。例如,/dev/sdb 指向一个磁盘,/dev/sdb1 指向该磁盘上的第一个分区。

    如果您使用的是 XFS,请使用 xfs_growfs 命令来扩展文件系统:

    $ sudo xfs_growfs /dev/[DEVICE_ID][PARTITION_NUMBER]
  6. 可以选择使用 df 命令来验证文件系统的大小是否已调整。
    $ df -h /dev/[DEVICE_ID]
    
    Filesystem        Size  Used Avail Use% Mounted on
    /dev/[DEVICE_ID]  493G   70M  492G   1% /mnt/disks/disk-1
    

    其中 [DEVICE_ID] 是要在其中查看文件系统配置的磁盘的设备 ID。

设置永久性磁盘的自动删除状态

删除关联的虚拟机实例时,系统可能会自动删除读写永久性磁盘。此行为由虚拟机实例上挂接的给定永久性磁盘的 autoDelete 属性控制,并且可以随时进行更新。同样,您也可以通过将 autoDelete 值标记为 false 来防止永久性磁盘遭删除。

CONSOLE

GCLOUD

API

  1. 转到“虚拟机实例”页面。
  2. 虚拟机实例页面上,选择要从中分离磁盘的实例。
  3. 启动磁盘和本地磁盘下,检查是否选择了在删除实例时也删除启动磁盘选项。如果您想取消选择此选项,请点击页面顶部的修改按钮。
  4. 保存更改。

在多个实例之间共享一个永久性磁盘

您可以在只读模式下将非永久性磁盘挂接到多个虚拟机实例,如此便可在多个实例之间共享静态数据。在多个实例之间共享一个永久性磁盘上的静态数据,要比将数据复制到各个实例的唯一磁盘便宜。

如果您将一个永久性磁盘挂接到多个实例,则这些实例全部都必须在只读模式下挂接该永久性磁盘。不能在读写模式下将永久性磁盘挂接到多个实例。如果您需要在多个实例之间共享动态存储空间,请将实例连接到 Cloud Storage 或创建网络文件服务器。

如果您的一个永久性磁盘包含您想要在多个实例之间共享的数据,请将该磁盘与任何读写实例分离,并在只读模式下将该磁盘挂接到一个或多个实例。

CONSOLE

GCLOUD

API

  1. 转到“实例”页面以查看项目中的实例列表。转到“实例”页面
  2. 名称列中,点击要在其中挂接磁盘的实例的名称。实例详情页面会打开。
  3. 在实例详情页面顶部,点击修改
  4. 额外磁盘部分中,点击添加一项以将磁盘项添加到所挂接的非启动永久性磁盘的列表中。
  5. 名称列中,点击选择磁盘,然后点击您要挂接的磁盘的名称。如果您创建新的非启动磁盘,请配置其属性,然后点击创建以应用更改。
  6. 模式列中,点击读写并将其更改为只读
  7. 在实例详情页面底部,点击保存以将更改应用到实例。
  8. 连接到实例并装载磁盘。
  9. 重复此过程,以在只读模式下将磁盘添加到其他实例。

允许随意转载;但,请点赞!点赞-NMBHOST:NMB HOST » google cloud添加永久性磁盘或调整其大小

赞 (5) 点下广告支持吧 →▶
0 0 投票数
文章评分
订阅评论
提醒
guest

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

0 评论
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x