您可以修改 Google Cloud Hyperdisk 卷的属性,以满足工作负载的需求。例如,您可以分别减少或增加预配 IOPS 或吞吐量以降低费用或提高性能。您可以通过设置 Hyperdisk ML 卷、Hyperdisk Balanced 卷和 Hyperdisk Balanced 高可用性卷的访问模式来指定虚拟机访问卷中数据的方式。
本页面介绍如何修改 Hyperdisk 卷的容量、性能和其他设置。
准备工作
- 
  
  如果您尚未设置身份验证,请进行设置。身份验证用于验证您的身份,以便访问 Google Cloud 服务和 API。如需从本地开发环境运行代码或示例,您可以通过选择以下选项之一向 Compute Engine 进行身份验证:
  
   
   
     
   
  
   
   
     
   
  
   
   
     
   
  
 
 
 
  
    
      Select the tab for how you plan to use the samples on this page: ConsoleWhen you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication. gcloud- 
 
 
  
  
   
   
  
   
   
  
   
   
     
   
  
  
   
   
  
   
   
  
   
   
  
 
 
   
   
      安装 Google Cloud CLI。 安装完成后,运行以下命令来初始化 Google Cloud CLI: gcloud init如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI。 
- Set a default region and zone.
 REST如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭证。 安装 Google Cloud CLI。 安装完成后,运行以下命令来初始化 Google Cloud CLI: gcloud init如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI。 如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。 所需的角色和权限如需获得修改 Hyperdisk 所需的权限,请让管理员向您授予项目的以下 IAM 角色: - 
  
  
    
      Compute Instance Admin (v1)  (roles/compute.instanceAdmin.v1)
- 
            连接到可以作为服务账号运行的虚拟机:
              
  
  
    
      Service Account  User (v1)  (roles/iam.serviceAccountUser)
 如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。 此预定义角色可提供修改 Hyperdisk 所需的 compute.disks.update权限。修改 Hyperdisk 概览您可以更改 Hyperdisk 卷的访问模式、大小和性能特征。 下表汇总了每种 Hyperdisk 类型支持的更改。如果 Hyperdisk 类型可在多个虚拟机之间共享,则您可以设置其访问模式。 Hyperdisk 卷支持的大小和性能更改下表汇总了每种 Hyperdisk 类型支持的容量和性能更改。 Hyperdisk 类型 可自定义吞吐量 可自定义 IOPS 可在虚拟机之间共享 平衡 Hyperdisk 是 是 是 Hyperdisk Balanced High Availability 是 是 是 Hyperdisk Extreme 否 是 否 Hyperdisk ML 是 否 可以,但只能以 
 只读模式Hyperdisk Throughput 是 否 否 容量变化您调整 Hyperdisk 卷的大小的方式,只能是增大它的大小。您无法减少 Hyperdisk 卷的容量。如果您要减小 Hyperdisk 卷的大小,则必须创建较小的卷,将数据从原始卷迁移到较小的卷,然后删除原始卷。 即使 Hyperdisk 卷挂接到正在运行的虚拟机,您也可以调整其大小。 但是,如果 Hyperdisk 卷处于多写入者模式,您必须先将该卷从所有虚拟机中分离,然后才能调整其大小。 您可以按以下频率调整 Hyperdisk 卷的大小: - Hyperdisk Throughput:每 6 小时 1 次
- Hyperdisk Balanced:在 4 小时时段内 2 次
- 所有其他 Hyperdisk 类型:每 4 小时 1 次
 为获得最佳结果,请在更改 Hyperdisk 卷的容量时完成以下步骤: Hyperdisk 卷的大小限制您为 Hyperdisk 卷指定的大小必须在以下范围内: Hyperdisk 类型 大小下限 大小上限 默认大小 平衡 Hyperdisk 4 GiB 64 TiB 100 GiB Hyperdisk Balanced High Availability 4 GiB 64 TiB 100 GiB Hyperdisk Extreme 64 GiB 64 TiB 1 TiB Hyperdisk ML 4 GiB 64 TiB 100 GiB Hyperdisk Throughput 2 TiB 32 TiB 2 TiB 不过,挂接到虚拟机的 Hyperdisk 卷的大小不能超过该虚拟机的 Hyperdisk 限制。 效果变化即使卷已挂接到正在运行的虚拟机,您也可以更改其预配性能。 更改预配的 IOPS 或吞吐量后,更改最多可能需要 15 分钟才能生效。但存在以下例外情况: - 对于 Hyperdisk ML 卷,更改可能需要长达 20 分钟才能生效。
- 对于多写入者模式下的磁盘,如果您在进行更改时磁盘已挂接到多个虚拟机,则性能更改可能需要长达 6 小时才能生效。
 对于除 Hyperdisk ML 之外的所有 Hyperdisk 类型,您可以每 4 小时更改一次预配 IOPS 或吞吐量。您可以每 6 小时更改一次 Hyperdisk ML 卷的预配吞吐量。 更改 Hyperdisk 卷的预配 IOPS 或吞吐量不会删除或修改磁盘数据。 如果您尝试在指定限制内多次修改 Hyperdisk 卷,则会收到类似于这样的错误消息: Cannot update provisioned throughput due to being rate limited.Hyperdisk 卷的性能限制下表列出了您可以为每种 Hyperdisk 类型指定的性能限制。不过,您可以指定的 IOPS 和吞吐量级别也取决于卷的大小。如需详细了解每项限制,请参阅 Hyperdisk Balanced、Hyperdisk Balanced High Availability、Hyperdisk Extreme、Hyperdisk ML 和 Hyperdisk Throughput 的大小和性能限制部分。 Hyperdisk 类型 IOPS 限制 吞吐量限制 (MiB/s) 平衡 Hyperdisk 160,000 2400 Hyperdisk Balanced High Availability 100000 1,200 Hyperdisk Extreme 350,000 您无法为 Hyperdisk Extreme 卷预配吞吐量级别。每个卷每达到 1,000 IOPS 可获得 250 MiB/s 的吞吐量,最多为 5,000 MiB/s。 Hyperdisk ML 您无法预配 IOPS 级别,但每 MiB/s 预配吞吐量可带来 16 IOPS,最多可达 19,200,000 IOPS。 1,200,000 Hyperdisk Throughput 您无法预配 IOPS 级别,但每 MiB/秒预配吞吐量可带来 16 IOPS,最多可达 19,200,000 IOPS。 2400 访问模式更改如需将单个 Hyperdisk 卷挂接到多个虚拟机,您必须将该卷的访问模式设置为只读模式或多写入者模式,具体取决于您的应用场景。 为磁盘停用多读取或多写入权限如需对 Hyperdisk 卷执行某些操作,该卷必须处于单写入者模式。例如,您无法通过多写入者模式下的 Hyperdisk 卷创建映像。您必须将该卷的访问模式设置为单写入者。 如需停用多读取或多写入权限,您必须将该卷从所有虚拟机中分离,然后按照设置访问模式中的说明操作。 限制- 如需设置磁盘的访问模式,必须将相应磁盘与所有虚拟机分离。
- 对于 Hyperdisk ML 卷,如果您将访问模式设置为只读,则无法将其重新设置为读写。
- 您无法为 Hyperdisk Throughput 卷和 Hyperdisk Extreme 卷设置访问模式。
 最佳做法由于更改磁盘属性的频率存在限制,我们建议您遵循以下最佳实践: - 避免因同时更改多个属性而导致修改磁盘时出现延迟。例如,如果您计划在短时间内同时更改磁盘的大小和预配 IOPS,请在单个请求中同时进行这两项更改。 
- 如果为磁盘的预配性能或大小选择新值,请注意,您在所需时间过去之前无法进行任何进一步更改。 - 例如,假设您想将 500 GiB 的 Hyperdisk Balanced High Availability 卷的大小增加到 1 TiB。确保工作负载在接下来的 4 小时内不会需要超过 1 TiB 的磁盘可用空间,因为在 4 小时过去之前,您无法再次增加大小。 
 设置 Hyperdisk 卷的访问模式如需设置磁盘的访问模式,必须将相应磁盘与所有虚拟机分离。 您可以对 Hyperdisk 卷的访问模式进行以下更改: - 对于 Hyperdisk Balanced 卷或 Hyperdisk Balanced High Availability 卷,您可以启用或停用多写入者模式。
- 对于 Hyperdisk ML 卷,您可以启用只读模式。
 将 Hyperdisk ML 卷的访问模式设置为只读后,您无法进行修改。 您可以使用 Google Cloud 控制台、Google Cloud CLI 或 REST 设置访问模式。 控制台- 在 Google Cloud 控制台中,前往磁盘页面。 
- 在项目的磁盘列表中,点击您要修改的 Hyperdisk 卷的名称。 
- 在磁盘详情页面上,点击 修改。 
- 在访问模式字段中,选择您所需的访问模式: - 如需启用只读模式,请选择从多个虚拟机进行只读。
- 如需启用多写入者模式,请选择从多个虚拟机进行读写
- (默认值)如需启用单写入者模式,请选择从单个虚拟机进行读写。
 
- 如需应用更改,请点击保存。 
 gcloud运行 disks update命令并使用--access-mode标志指定访问模式。gcloud compute disks update DISK_NAME \ --access-mode=DISK_ACCESS_MODE 替换以下内容: - DISK_NAME:您要修改的 Hyperdisk 卷的名称。
- DISK_ACCESS_MODE:虚拟机如何访问磁盘上的数据。支持的值为:
- READ_ONLY_MANY,用于从多个虚拟机进行只读访问。
- READ_WRITE_MANY,表示从多个虚拟机进行读写访问。
- (默认值)READ_WRITE_SINGLE,表示从一个虚拟机进行读写访问。
 
 REST构建对 compute.disks.update方法的PATCH请求。在请求正文中,使用"accessMode"参数设置访问模式。PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME/update { "accessMode": "DISK_ACCESS_MODE" }替换以下内容: - PROJECT_ID:您的项目 ID。
- ZONE:您的 Hyperdisk 卷所在的可用区。
- DISK_NAME:要修改的 Hyperdisk 卷的名称。
- DISK_ACCESS_MODE:虚拟机如何访问磁盘上的数据。支持的值为:- READ_ONLY_MANY,用于从多个虚拟机进行只读访问。
- READ_WRITE_MANY,表示从多个虚拟机进行读写访问。
- READ_WRITE_SINGLE,表示从一个虚拟机进行读写访问。
 
 更改 Hyperdisk 卷的大小或预配性能您可以使用以下时间限制增加卷大小并更改 Hyperdisk 卷的预配 IOPS 或吞吐量: - 增加磁盘大小: - 对于 Hyperdisk Throughput:每 6 小时 1 次
- 对于 Hyperdisk Balanced:在 4 小时时段内 2 次
- 对于所有其他 Hyperdisk 类型:每 4 小时 1 次
 
- 修改预配 IOPS 或吞吐量: - 对于 Hyperdisk ML:每 6 小时 1 次
- 对于所有其他 Hyperdisk 类型:每 4 小时一次
 
 您可以使用 Google Cloud 控制台、gcloud CLI 或 REST 更改 Hyperdisk 卷的预配大小和性能。 控制台- 在 Google Cloud 控制台中,前往磁盘页面。 
- 在项目的磁盘列表中,点击要更改其容量或预配性能的 Hyperdisk 卷的名称。 
- 在“磁盘详情”页面上,点击修改。 - 在大小字段中,为磁盘输入新的大小。磁盘大小必须在支持的值范围内。
- 对于 Hyperdisk Extreme、平衡 Hyperdisk 和 Hyperdisk Balanced High Availability:在预配的 IOPS 字段中,输入卷的新 IOPS 值。
- 对于 Hyperdisk Throughput、Hyperdisk ML、Hyperdisk Balanced 和 Hyperdisk Balanced High Availability:在预配吞吐量字段中,输入卷的新吞吐量值。
 
- 点击保存以将更改应用于磁盘。 
 gcloud使用 disks update命令并指定--size、--provisioned-iops或--provisioned-throughput标志。如需更改 Hyperdisk Balanced High Availability 卷的大小,请添加 --region标志。gcloud compute disks update DISK_NAME \ --size=DISK_SIZE \ [--region=REGION] \ --provisioned-iops=IOPS_LIMIT \ --provisioned-throughput=THROUGHPUT_LIMIT替换以下内容: - DISK_NAME:您要修改的 Hyperdisk 卷的名称。
- DISK_SIZE(可选):磁盘的新大小。该值必须是一个整数,后跟 GB 表示吉比字节,或 TB 表示太比字节。磁盘大小必须在支持的值范围内。
- REGION:可选。Hyperdisk Balanced High Availability 磁盘所在的区域
- IOPS_LIMIT(可选):Hyperdisk Extreme、Hyperdisk Balanced 和 Hyperdisk Balanced High Availability 卷的 IOPS 配置。该值必须在支持的值范围内。
- THROUGHPUT_LIMIT(可选):Hyperdisk Throughput、Hyperdisk ML、Hyperdisk Balanced 或 Hyperdisk Balanced High Availability 卷的吞吐量配置,以整数形式指定,表示吞吐量(以 MiB/秒为单位)。该值必须在支持的值范围内。
 REST构建对 compute.disks.update方法的PATCH请求。在请求正文中,指定sizeGb、provisionedIops或provisionedThroughput参数。PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME { "sizeGb": "DISK_SIZE, "provisionedIops": "IOPS_LIMIT", "provisionedThroughput": "THROUGHPUT_LIMIT" }如需修改 Hyperdisk Balanced High Availability 卷,请构建一个向 compute.regionDisks.update方法发出的PATCH请求。PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/disks/DISK_NAME { "sizeGb": "DISK_SIZE, "provisionedIops": "IOPS_LIMIT", "provisionedThroughput": "THROUGHPUT_LIMIT" }替换以下内容: - PROJECT_ID:您的项目 ID。
- ZONE:您的 Hyperdisk 卷所在的可用区。
- REGION:对于 Hyperdisk Balanced High Availability 磁盘,这是磁盘所在的区域。
- DISK_NAME:要修改的 Hyperdisk 卷的名称。
- DISK_SIZE(可选):磁盘的新大小。该值必须是一个整数,后跟 GB 表示吉比字节,或 TB 表示太比字节。磁盘大小必须在支持的值范围内。
- IOPS_LIMIT(可选):Hyperdisk Extreme、Hyperdisk Balanced 或 Hyperdisk Balanced High Availability 卷的 IOPS 配置。该值必须在支持的值范围内。
- THROUGHPUT_LIMIT(可选):Hyperdisk Balanced、Hyperdisk ML 或 Hyperdisk Balanced High Availability 卷的吞吐量配置,以整数表示,表示吞吐量(以 MiB/秒为单位)。该值必须在支持的值范围内。
 如果您尝试在指定限制内多次修改 Hyperdisk 卷的大小或性能,则会收到类似于 Cannot update provisioned throughput due to being rate limited或Disk cannot be resized due to being rate limited的错误消息。备份 Hyperdisk 卷调整磁盘大小不会删除或修改磁盘数据,但最佳做法是,始终通过创建快照备份磁盘,然后再对文件系统或分区进行任何更改。 调整文件系统和分区的大小增大 Hyperdisk 卷的大小后,您可能需要调整其文件系统和分区的大小: - 启动磁盘:如果您使用的是自定义 Linux 映像或自定义 Windows 映像,则必须手动调整根的大小分区和文件系统。对于具有公共映像的虚拟机,Compute Engine 会在您增加启动磁盘的大小并重启虚拟机后自动调整根分区和文件系统的大小。 
- 非启动磁盘:增加磁盘大小后,您必须扩展磁盘上的文件系统以使用增加的空间。 
 以下示例展示了如何手动调整启动磁盘的根分区和文件系统的大小,以及如何手动调整无分区表的非启动数据磁盘的文件系统的大小。此示例假定挂接的磁盘之前已格式化并装载。 Linux 虚拟机- 在 Google Cloud 控制台中,前往虚拟机实例页面。 
- 点击挂接了新磁盘的实例旁的 SSH 按钮。浏览器会建立连到该实例的终端连接。 
- 使用 - df和- lsblk命令列出文件系统的大小并查找磁盘的设备名称。- $ sudo df -Th Filesystem Type Size Used Avail Use% Mounted on udev devtmpfs 3.9G 0 3.9G 0% /dev /dev/nvme0n1p1 ext4 9.7G 2.0G 7.2G 22% / /dev/nvme0n1p15 vfat 124M 12M 113M 10% /boot/efi /dev/nvme0n2 ext4 98G 24K 98G 1% /mnt/disks/data - $ sudo lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT nvme0n1 259:0 0 20G 0 disk ├─nvme0n1p1 259:5 0 9.9G 0 part / ├─nvme0n1p14 259:6 0 3M 0 part └─nvme0n1p15 259:7 0 124M 0 part /boot/efi nvme0n2 259:4 0 100G 0 disk /mnt/disks/data - 此示例包含以下磁盘: - 启动磁盘:/dev/nvme0n1p1分区位于大小调整为 20 GB 的启动磁盘上。分区表和文件系统仅向操作系统提供 9.9 GB 的容量。
- 非启动数据磁盘:/dev/nvme0n2非启动数据磁盘没有分区表,但该磁盘上的文件系统可为操作系统提供 100 GB 的容量。此磁盘的装载目录为/mnt/disks/data。
 - 记下 - df命令输出中的 Type 列,该列表明磁盘使用的是- ext4还是- xfs文件系统。
- 启动磁盘:
- 验证分区类型: - sudo parted -l - 在调整磁盘大小后首次运行此命令时,您可能会看到类似以下内容的消息: - Warning: Not all of the space available to /dev/nvme0n1 appears to be used, you can fix the GPT to use all of the space (an extra 20971520 blocks) or continue with the current setting? Fix/Ignore? - 如果输入 - Fix,操作系统将自动重新对磁盘进行分区,以向操作系统提供额外空间。如果您没有任何其他磁盘要修改,请跳到最后一步。
- 如果您选择不使用自动修复选项或该选项不可用,请查看要重新分区的磁盘的信息: - sudo parted -l /dev/DEVICE_NAME - 查找字段:Partition Table,如果值为 - msdos,则该磁盘具有 MBR 分区类型。这意味着此类磁盘的大小上限为 2 TB。
- 对于启动磁盘,调整磁盘上的根分区和文件系统的大小。此示例假定虚拟机映像不支持自动根分区和文件系统大小调整。 - 使用 - parted调整根分区的大小。例如,以下命令会将设备的分区 1 扩展为可能的最大大小:- 在设备上打开 - parted:- sudo parted /dev/DEVICE_NAME 
- 在提示符处,输入: - (parted) resizepart
- 在 - Partition number?提示符处,输入:- 1 
- 在 - Warning: Partition /dev/DEVICE_NAMEp1 is being used. Are you sure you want to continue?提示符处,输入:- Yes 
- 在 - End?提示符处,输入- 100% 
- 在 - (parted)提示符处,输入:- (parted) quit
 
- 使用 - parted -l查看新的分区表。- sudo parted -l /dev/DEVICE_NAME Model: nvme_card-pd (nvme) Disk /dev/DEVICE_NAME: 21.5GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 14 1049kB 4194kB 3146kB bios_grub 15 4194kB 134MB 130MB fat16 boot, esp 1 134MB 21.5GB 21.3GB ext4
- 扩展文件系统: - 如果您使用的是 - ext4,请使用- resize2fs命令:- sudo resize2fs /dev/DEVICE_NAME 
- 如果您使用的是 - xfs,请使用- xfs_growfs命令:- sudo xfs_growfs -d / 
- 如果您使用的是 btrfs,请使用 - btrfs命令:- sudo btrfs filesystem resize max / 
 
 
- 对于非启动数据磁盘,调整磁盘上文件系统的大小。 - 如果您使用的是 - ext4,请使用- resize2fs命令扩展文件系统:- sudo resize2fs /dev/DATA_DEVICE_NAME - 将 - DATA_DEVICE_NAME替换为数据磁盘的设备名称。在此示例中,设备名称为- /dev/nvme0n2。
- 如果您使用的是 - xfs,请使用- xfs_growfs命令扩展文件系统:- sudo xfs_growfs MOUNT_DIR 
- 如果您使用的是 btrfs,请使用 - btrfs命令扩展文件系统:- sudo btrfs filesystem resize max MOUNT_DIR - 将 MOUNT_DIR 替换为设备的装载点。您可以在 - lsblk命令的输出中找到- MOUNTPOINT列中列出的装载点。
 
- 使用 - df命令验证文件系统是否已扩展。例如:- df -h /dev/DATA_DEVICE_NAME Filesystem Size Used Avail Use% Mounted on /dev/DATA_DEVICE_NAME 118G 70M 118G 1% MOUNT_DIR
 Windows 虚拟机使用 Windows 磁盘管理实用程序调整 Windows 实例上的分区大小。 - 在 Google Cloud 控制台中,前往虚拟机实例页面。 
- 点击已调整大小的磁盘所属实例旁边的 RDP 按钮。浏览器会建立连到该实例的 RDP 连接。 
- 右键点击 Windows“开始”按钮,然后选择磁盘管理以打开“磁盘管理”工具。   
- 通过在 Powershell 中运行来显示磁盘分区类型: - Get-Disk 
- 刷新“磁盘管理”工具,使其识别地区永久性磁盘上的额外空间。在“磁盘管理”窗口顶部,点击操作并选择刷新。   
- 在已调整大小的磁盘上,右键点击已格式化的分区并选择扩展卷。   
- 按照扩展卷向导中的说明扩展现有分区以包含额外的磁盘空间。如果现有分区已格式化为 NTFS,则分区大小上限受其集群大小设置的限制。 
- 完成向导步骤并且完成卷格式化后,请检查所挂接磁盘列表中的 - Status列,以确保新磁盘的状态为- Healthy。  
 完成此过程后,您无需重启虚拟机。现在,您可以使用添加的磁盘空间来存储数据。 后续步骤- 详细了解 Hyperdisk。
- 了解如何分析 Hyperdisk 卷的当前 IOPS 级别。
 如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。 最后更新时间 (UTC):2025-10-19。 -