添加地区永久性磁盘或调整其大小

本页面介绍如何调整地区永久性启动磁盘和辅助(非启动)地区永久性磁盘的大小。本页面还介绍了如何在实例上添加新的地区永久性磁盘并对其执行格式化。

地区永久性磁盘只能增加容量,不能减少。

最佳做法是使用快照备份磁盘,防止意外丢失数据。

地区永久性磁盘可以标准硬盘 (HDD)固态硬盘 (SSD) 的形式提供。 如需更加概括地了解地区永久性磁盘以及可用的永久性磁盘类型,请参阅永久性磁盘概览。

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

除非您通过映像创建磁盘,否则新的地区永久性磁盘最初没有任何数据或文件系统。将这些磁盘挂接到实例后,必须自行格式化磁盘。

如果地区标准永久性磁盘或地区 SSD 永久性磁盘无法满足您的所有性能或灵活性要求,则可以为实例添加存储选项

您创建的每个永久性磁盘的默认物理块大小为 4 KB。如果您的数据库应用要求增加物理块大小,您可以在创建磁盘时选择 16 KB。 启动磁盘无法使用此功能。如果您想要更改现有磁盘的物理块大小,则必须先截取磁盘的快照,然后创建新磁盘。您无法直接修改永久性磁盘的物理块大小。

准备工作

将地区永久性磁盘添加到您的实例

您可以创建地区标准永久性磁盘或地区 SSD 永久性磁盘并将其挂接到现有实例。如果您没有任何实例,请创建并启动新实例。 在创建实例期间,您最多可以挂接 127 个辅助非启动地区永久性磁盘,以将应用、数据文件、数据库和日志存储在不同的卷上。每个实例可以挂接的总容量为 257 TB。如需了解如何在使用大容量卷时确保最高性能,请参阅较大的逻辑卷性能

您可以使用 Google Cloud Consolegcloud 工具API 创建并挂接地区永久性磁盘。

控制台

您可以在 Google Cloud Console 中创建并挂接地区永久性磁盘:

  1. 转到虚拟机实例页面。

    转到“虚拟机实例”页面

  2. 选中相应复选框,然后点击要向其添加磁盘的实例的名称。
  3. 虚拟机实例详情页面顶部,点击修改。
  4. 额外磁盘下,点击添加新磁盘。
  5. 指定磁盘名称,配置磁盘属性,并指定磁盘的来源类型

  6. (可选)您可以选择物理块大小 (KB)。磁盘的默认物理块大小为 4 KB。但是,您可以从下拉菜单中选择 16 KB 以增加磁盘的物理块大小。

  7. 点击完成完成磁盘的配置。

  8. 虚拟机实例详情页面底部,点击保存以将更改应用于实例,并添加新磁盘。

  9. 创建新磁盘并将其挂接到实例后,您必须格式化并装载磁盘,以便操作系统可以使用可用的存储空间。

gcloud

使用 gcloud 工具创建并挂接地区永久性磁盘:

  1. 使用 gcloud beta compute disks create 命令创建地区永久性磁盘。如果您需要区域 SSD 永久性磁盘以实现更高的吞吐量或 IOPS,请添加 --type 标志并指定 pd-ssd。(可选)添加 --physical-block-size 标志以设置物理块大小。

    gcloud beta compute disks create [DISK_NAME] /
        --size [DISK_SIZE] /
        --type [DISK_TYPE] /
        --physical-block-size [BLOCK_SIZE]
    

    其中:

    • [DISK_NAME] 是新磁盘的名称。
    • [DISK_SIZE] 是新磁盘的大小(以 GB 为单位)。可接受的大小范围介于 10 到 65,536 GB(含边界值)并以 1 GB 为增量。
    • [DISK_TYPE] 是永久性磁盘的类型,即 pd-standardpd-ssd
    • [BLOCK_SIZE] 可以是 4096 (4 KB) 或 16384 (16 KB)。4 KB 是默认物理块大小。16 KB 是增加后的物理块大小。

  2. 创建磁盘后,将其挂接到任何正在运行或已停止的实例。 使用 gcloud compute instances attach-disk 命令:

    gcloud compute instances attach-disk [INSTANCE_NAME] /
        --disk [DISK_NAME]
    

    其中:

    • [INSTANCE_NAME] 是您要为其添加新地区永久性磁盘的实例的名称。
    • [DISK_NAME] 是您要挂接到实例的新磁盘的名称。

    创建新磁盘并将其挂接到实例后,必须格式化并装载磁盘,以便操作系统可以使用可用的存储空间。

  3. 使用 gcloud beta compute disks describe 命令查看磁盘的说明。响应将包含磁盘的物理块大小。

API

  1. 在 API 中,构建 POST 请求以使用 disks.insert 方法创建地区永久性磁盘。请求应包含 namesizeGbtype 属性。在创建新磁盘时,如果想要创建空白且无格式的非启动磁盘,请不要为此磁盘指定来源映像或来源快照。 您也可以选择包含 physicalBlockSizeBytes 属性以设置物理块大小。

    POST https://compute.googleapis.com/compute/beta/projects/[PROJECT_ID]/zones/[ZONE]/disks
    
    {
     "name": "[DISK_NAME]",
     "sizeGb": "[DISK_SIZE]",
     "type": "zones/[ZONE]/diskTypes/[DISK_TYPE]"
     "physicalBlockSizeBytes": "[BLOCK_SIZE]"
    }
    

    其中:

    • [PROJECT_ID] 是您的项目 ID。
    • [ZONE] 是您的实例和新磁盘所在的地区。
    • [DISK_NAME] 是新磁盘的名称。
    • [DISK_SIZE] 是新磁盘的大小(以 GB 为单位)。可接受的大小范围介于 10 到 65,536 GB(含边界值)并以 1 GB 为增量。
    • [DISK_TYPE] 是永久性磁盘的类型,值为 pd-standardpd-ssd
    • [BLOCK_SIZE] 可以是 4096 (4 KB) 或 16384 (16 KB)。4 KB 是默认物理块大小。16 KB 是增加的物理块大小。

  2. 构建一个向 compute.instances.attachDisk 方法发出的 POST 请求,并在其中添加您刚创建的地区永久性磁盘的网址:

    POST https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]/attachDisk
    
    {
     "source": "/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/disks/[DISK_NAME]"
    }
    

    其中:

    • [PROJECT_ID] 是您的项目 ID。
    • [ZONE] 是您的实例和新磁盘所在的地区。
    • [INSTANCE_NAME] 是您要在其中添加新永久性磁盘的实例的名称。
    • [DISK_NAME] 是新磁盘的名称。

创建新磁盘并将其挂接到实例后,必须格式化并装载磁盘,以便操作系统可以使用可用的存储空间。

格式化并装载地区永久性磁盘

新的地区永久性磁盘最初没有任何数据或文件系统。在将此磁盘挂接到实例后,您必须自行格式化磁盘。Linux 实例与 Windows 实例之间的格式化过程有所不同。

Linux 实例


在 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 -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 的条目。指定 nofail 选项,以使系统在永久性磁盘不可用的情况下也能启动。例如:

    UUID=[UUID_VALUE] /mnt/disks/[MNT_DIR] ext4 discard,defaults,nofail 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/[MNT_DIR]

    $ echo UUID=`sudo blkid -s UUID -o value /dev/sdb` /mnt/disks/[MNT_DIR] ext4 discard,defaults,nofail 0 2 | sudo tee -a /etc/fstab
    
    UUID=c994cf26-1853-48ab-a6a5-9d7c0250fed4 /mnt/disks/[MNT_DIR] 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/[MNT_DIR] ext4 discard,defaults,nofail 0 2
    
    

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

Windows 实例


使用 Windows 磁盘管理在 Windows 实例上格式化和装载新磁盘。

  1. 转到虚拟机实例页面。

    转到“虚拟机实例”页面

  2. 点击已调整大小的磁盘所在实例旁的 RDP 按钮。浏览器将会建立连到该实例的 RDP 连接。

  3. 右键点击 Windows“开始”按钮并选择磁盘管理

    右键点击 Windows“开始”按钮并选择“磁盘管理”。

  4. 如果之前尚未初始化地区永久性磁盘,则“磁盘管理”工具会提示您为新磁盘选择分区方案。选择 GPT,然后点击确定

    在磁盘初始化窗口中选择分区方案。

  5. 磁盘初始化后,右键点击未分配的磁盘空间,然后选择新建简单卷

    从所挂接的磁盘创建新的简单卷。

  6. 按照新建简单卷向导中的说明配置新卷。您可以使用任何想要的分区格式,但对于本示例,请选择 NTFS。另外,请勾选执行快速格式化以加快格式化过程。可以选择在分配单元大小字段中设置集群大小。集群大小会限制分区的大小上限。如果您稍后尝试调整地区永久性磁盘和此分区的大小,请牢记这一点。

    在“新建简单卷”向导中选择分区格式类型。

  7. 完成向导步骤并且完成卷格式化后,请检查所挂接磁盘列表中的 Status 列,确保新磁盘的状态为 Healthy

    检查磁盘是否处于联机状态且运行状况良好。

您现在可以将文件写入地区永久性磁盘。

调整地区永久性磁盘的大小

您可以在实例需要更多存储空间时调整地区永久性磁盘的大小;只有在您需要将数据分开存放到多个各自独立的分区时,才应挂接多个辅助磁盘

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

调整磁盘大小不应删除或修改磁盘数据。最佳做法是在进行任何更改之前截取磁盘的快照。

控制台

  1. 转到磁盘页面以查看项目中的地区永久性磁盘列表。

    转到“磁盘”页面

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

gcloud


gcloud 工具中,使用 disks resize 命令并用所需磁盘大小(以 GB 为单位)指定 --size 标志。

gcloud compute disks resize [DISK_NAME] --size [DISK_SIZE]

其中:

  • [DISK_NAME] 是您要调整大小的磁盘的名称。
  • [DISK_SIZE] 是磁盘的新容量(以 GB 为单位)。使用 MBR 分区表的启动磁盘和辅助磁盘最大只能调整到 2 TB。

调整磁盘大小后,必须调整文件系统的大小,以便操作系统可以访问额外空间。

API


在 API 中,构建对 compute.disks.resize 方法的 POST 请求。 在请求正文中,指定 sizeGb 参数并将其设置为所需磁盘大小(以 GB 为单位)。

POST https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/disks/[DISK_NAME]/resize

{
 "sizeGb": "[DISK_SIZE]"
}

其中:

  • [PROJECT_ID] 是您的项目 ID。
  • [ZONE] 是磁盘所在的地区。
  • [DISK_NAME]是要调整大小的磁盘的名称。
  • [DISK_SIZE] 是磁盘的新容量(以 GB 为单位)。使用 MBR 分区表的启动磁盘和辅助磁盘最大只能调整到 2 TB。

调整磁盘大小后,必须调整文件系统的大小,以便操作系统可以访问额外空间。

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

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

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

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

Linux 实例


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

  1. 转到虚拟机实例页面。

    转到“虚拟机实例”页面

  2. 点击挂接了新磁盘的实例旁的 SSH 按钮。浏览器会建立连到该实例的终端连接。

  3. 找出含有您要调整大小的文件系统和分区的磁盘。如果磁盘已装载,您可以使用 df 命令和 lsblk 命令比较文件系统的大小并查找磁盘 ID。在本示例中,/dev/sda1 分区位于大小已调整为 20 GB 的启动磁盘上,但分区表和文件系统仅向操作系统提供 9.7 GB 的容量。此外,/dev/sdb 辅助磁盘没有分区表,但该磁盘上的文件系统仅为操作系统提供 250 GB 的容量。此外,在本例中,/mnt/disks/disk-1 是一个装载目录。

    $ sudo 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 实用程序以及如何增大分区。

  4. 如果您要调整大小的磁盘具有分区表,则必须在调整文件系统大小之前增大该分区。使用 growpart 来调整您的映像分区的大小。

    1. 如需在 Debian 服务器上安装 growpart,请运行:

      $ sudo apt -y install cloud-guest-utils
    2. 如需在 CentOS 服务器上安装 growpart,请运行:

      $  sudo yum -y install cloud-utils-growpart

      安装后,如需获取工具相关帮助,请运行 growpart -h

    3. 安装 growpart 工具后,您可以增大分区。

      $ sudo growpart /dev/[DEVICE_ID] [PARTITION_NUMBER]

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

  5. 扩展磁盘或分区上的文件系统以使用增加的空间。

    如果您使用的是 ext4,请使用 resize2fs 命令。如果您在磁盘上增大了一个分区,请指定该分区。如果您的磁盘没有分区表,请仅指定磁盘 ID。

    $ sudo resize2fs /dev/[DEVICE_ID][PARTITION_NUMBER]

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

    如果您使用的是 xfs,请使用 xfs_growfs 命令扩展文件系统,并指定装载点(而不是设备 ID):

    $ sudo xfs_growfs /mnt/disks/disk-1

    disk-1 是装载点。

  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。

Windows 实例


使用 Windows“磁盘管理”工具调整 Windows 实例上的分区大小。

  1. 转到“虚拟机实例”页面。

    转到“虚拟机实例”页面

  2. 点击已调整大小的磁盘所在实例旁的 RDP 按钮。浏览器将会建立连到该实例的 RDP 连接。
  3. 右键点击 Windows“开始”按钮,然后选择磁盘管理以打开“磁盘管理”工具。

    从 Windows“开始”按钮的右键菜单中选择 Windows“磁盘管理器”工具。

  4. 刷新“磁盘管理”工具,使其识别地区永久性磁盘上的额外空间。在“磁盘管理”窗口顶部,点击操作并选择刷新

    在“磁盘管理”工具中点击“操作”菜单并选择“刷新”以更新地区永久性磁盘信息。

  5. 在已调整大小的磁盘上,右键点击已格式化的分区并选择扩展卷

    右键点击磁盘的已格式化部分并选择“扩展卷”选项。

  6. 按照扩展卷向导中的说明扩展现有分区以包含额外的磁盘空间。如果现有分区已格式化为 NTFS,则分区大小上限受其集群大小设置的限制

  7. 完成向导步骤并且完成卷格式化后,请检查所挂接磁盘列表中的 Status 列,以确保新磁盘的状态为 Healthy

    查看 Windows 识别的磁盘列表,验证该实例是否处于联机状态且运行状况良好。

您现在可以使用额外的地区永久性磁盘空间存储数据。

恢复无法访问的实例或完整启动磁盘

如果实例的磁盘空间完全用尽,或者未运行 Linux 访客环境,那么即便您增加了用于支持根文件系统的永久性磁盘的大小,也无法自动调整根文件系统的大小。如果您无法连接到实例,或者启动磁盘已满且无法调整其大小,则必须创建新实例并通过快照重新创建启动磁盘,这样才能调整其大小。

您必须知道要重新创建的启动磁盘的大小,可以通过查看 Compute Engine 控制台来确定磁盘大小。

  1. 转到虚拟机实例页面。

    转到“虚拟机实例”页面

    1. 选中您无法连接到的实例旁边的复选框。
    2. 点击实例名称打开虚拟机实例详情页面。
    3. 点击虚拟机实例详情页面顶部的停止可停止实例。
    4. 向下滚动到启动磁盘部分,记下启动磁盘的大小。
  2. 转到磁盘页面以查看您的项目中永久性磁盘的列表。

    转到“磁盘”页面

    1. 从列表中选择该实例的启动磁盘。
    2. 点击创建快照以截取磁盘的快照。
  3. 在 Google Cloud Console 中转到快照页面。
    转到“快照”页面
    1. 输入快照名称
    2. 来源磁盘下拉菜单中选择磁盘。
    3. 输入磁盘详情。
  4. 转到虚拟机实例页面。

    转到“虚拟机实例”页面

  5. 输入实例详情。
  6. 更改启动磁盘。
    1. 选择快照
    2. 选择启动磁盘快照。
    3. 选择启动磁盘类型
    4. 为磁盘输入新的大小。
    5. 点击选择
  7. 点击创建
  8. 装载和格式化磁盘。

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

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

控制台

  1. 转到虚拟机实例页面。

    转到“虚拟机实例”页面

  2. 选中具有关联磁盘的实例旁的复选框。
  3. 点击实例名称。
  4. 虚拟机实例详情页面随即显示。
  5. 点击页面顶部的修改
  6. 滚动到额外磁盘
  7. 点击铅笔图标以修改该磁盘的删除规则
  8. 点击完成以保存更改。
  9. 点击保存以更新实例。

gcloud


如需设置地区永久性磁盘的自动删除状态,请使用 gcloud compute instances set-disk-auto-delete 命令:

gcloud compute instances set-disk-auto-delete example-instance \
    [--auto-delete|--no-auto-delete] \
     --disk example-disk

API


如果您使用的是 API,请对以下 URI 发出 POST 请求:

https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-f/instances/example-instance/setDiskAutoDelete?deviceName=deviceName,autoDelete=true

如果您使用的是客户端库,请使用 instances().setDiskAutoDelete 方法:

def setAutoDelete(gce_service, auth_http):
  request = gce_service.instances().setDiskAutoDelete(project=example-project, zone=us-central1-f, deviceName=my-new-device, instance=example-instance, autoDelete=True)
  response = request.execute(http=auth_http)

  print response

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

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

如果您将一个永久性磁盘挂接到多个实例,则这些实例全部都必须在只读模式下挂接该永久性磁盘。不能在读写模式下将永久性磁盘挂接到多个实例。如果您需要在多个实例之间共享动态存储空间,则可以使用以下任一选项:

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

控制台

  1. 转到虚拟机实例页面,查看项目中的实例列表。

    转到实例页面

  2. 名称列中,点击要在其中挂接磁盘的实例的名称。虚拟机实例详情页面随即打开。
  3. 在实例详情页面顶部,点击修改
  4. 额外磁盘部分,点击以下任一选项:
    1. 添加磁盘,以将设为只读模式的磁盘添加到实例。
    2. 附加现有磁盘,以选择现有磁盘,并在只读模式下将其挂接到您的实例。
  5. 为您的磁盘指定其他选项。
  6. 点击完成以应用更改。
  7. 虚拟机实例详情页面的底部,点击保存将更改应用到实例。
  8. 连接到实例并装载磁盘。
  9. 重复此过程,以在只读模式下将磁盘添加到其他实例。

gcloud

gcloud 工具中,使用 compute instances attach-disk 命令并用 ro 选项指定 --mode 标志。

gcloud compute instances attach-disk [INSTANCE_NAME] \
    --disk [DISK_NAME] \
    --mode ro

其中:

  • [INSTANCE_NAME] 是您要在其中挂接地区永久性磁盘的实例的名称。
  • [DISK_NAME] 是您要挂接的磁盘的名称。

挂接磁盘后,连接到实例并装载磁盘。

对您要在其中以只读模式添加此磁盘的每个实例重复此命令。

API

在 API 中,构建对 compute.instances.attachDisk 方法的 POST 请求。 在请求正文中,将 mode 参数指定为 READ_ONLY

POST https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]/attachDisk

{
 "source": "zones/[ZONE]/disks/[DISK_NAME]",
 "mode": "READ_ONLY"
}

其中:

  • [INSTANCE_NAME] 是您要在其中挂接地区永久性磁盘的实例的名称。
  • [PROJECT_ID] 是您的项目 ID。
  • [ZONE] 是磁盘所在的地区。
  • [DISK_NAME] 是您要挂接的磁盘的名称。

挂接磁盘后,连接到实例并装载磁盘。

对您要在其中以只读模式添加此磁盘的每个实例重复此请求。

更改永久性磁盘的类型

永久性磁盘的价格性能取决于永久性磁盘的类型 (pd-standardpd-ssd)。请使用快照更改永久性磁盘的类型。例如,如需将标准永久性磁盘更改为 SSD 永久性磁盘,请使用以下过程:

控制台

  1. 创建标准永久性磁盘的快照
  2. 根据快照创建新的永久性磁盘。从 Type(类型)下拉列表中选择“SSD 永久性磁盘”。

gcloud

  1. 创建标准永久性磁盘的快照
  2. 根据快照创建新的永久性磁盘。添加 --type 标志并指定 pd-ssd

API

  1. 创建标准永久性磁盘的快照
  2. 根据快照创建新的永久性磁盘。在 type 字段中,指定 "zones/[ZONE]/diskTypes/pd-ssd",其中 [ZONE] 是您的实例和新磁盘所在的地区。

后续步骤

此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
Compute Engine 文档