修改 Google Cloud Hyperdisk 卷的设置


您可以修改 Google Cloud Hyperdisk 卷的属性,以满足工作负载的需求。例如,您可以分别减少或增加预配 IOPS 或吞吐量以降低费用或提高性能。您可以通过设置 Hyperdisk ML 卷的访问模式来指定虚拟机访问卷中数据的方式。

本页面介绍如何修改 Hyperdisk 卷的容量、性能和其他设置。

准备工作

  • 设置身份验证(如果尚未设置)。身份验证是通过其进行身份验证以访问 Google Cloud 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以按如下方式向 Compute Engine 进行身份验证。

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. 安装 Google Cloud CLI,然后通过运行以下命令初始化 Google Cloud CLI:

      gcloud init
    2. Set a default region and zone.
    3. REST

      如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。

        安装 Google Cloud CLI,然后通过运行以下命令初始化 Google Cloud CLI:

        gcloud init

      如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证

所需的角色和权限

如需获得修改 Hyperdisk 所需的权限,请让管理员向您授予项目的以下 IAM 角色:

如需详细了解如何授予角色,请参阅管理访问权限

此预定义角色包含修改 Hyperdisk 所需的 compute.disks.update 权限。

您也可以使用自定义角色或其他预定义角色来获取此权限。

修改 Hyperdisk 概览

您可以动态更改 Hyperdisk 卷的访问模式、大小和性能特征。

Hyperdisk 卷支持的大小和性能更改

下表汇总了每种 Hyperdisk 类型支持的容量和性能更改。

Hyperdisk 类型 可自定义吞吐量 可自定义 IOPS 可在虚拟机之间共享
平衡 Hyperdisk
Hyperdisk Extreme
Hyperdisk ML
Hyperdisk Throughput

创建或修改 Hyperdisk 卷时使用的值必须在每个磁盘的 Hyperdisk 限制中所述的最大值和最小值范围内。

如果您要修改挂接到虚拟机的 Hyperdisk 卷的大小,则新值不能超过每个虚拟机的 Hyperdisk 限制

Hyperdisk 卷的预配 IOPS 和吞吐量必须遵循关于 Hyperdisk 的 IOPS 和吞吐量预配中所述的规则。

容量变化

您调整 Hyperdisk 卷的大小的方式,只能是增大它的大小。您无法减少 Hyperdisk 卷的容量。如果您要减小 Hyperdisk 卷的大小,则必须创建较小的卷,将数据从原始卷迁移到较小的卷,然后删除原始卷。

即使 Hyperdisk 卷挂接到正在运行的虚拟机,您也可以调整其大小。

您可以每 6 小时调整一次 Hyperdisk Throughput 卷的大小。对于所有其他 Hyperdisk 类型,您可以每 4 小时更改一次预配容量。

为获得最佳结果,请在更改 Hyperdisk 卷的容量时完成以下步骤:

  1. 增大卷的大小
  2. 备份磁盘
  3. 调整磁盘分区的大小

效果变化

更改预配的 IOPS 或吞吐量后,更改最多可能需要 15 分钟才能生效。对 Hyperdisk ML 卷进行的更改最长可能需要 20 分钟才能生效。

对于除 Hyperdisk ML 之外的所有 Hyperdisk 类型,您可以每 4 小时动态更改一次预配 IOPS 或吞吐量。您可以每 6 小时更改一次 Hyperdisk ML 卷的预配吞吐量。

更改 Hyperdisk 卷的预配 IOPS 或吞吐量不会删除或修改磁盘数据。

如果您尝试在指定限制内多次修改 Hyperdisk 卷,则会收到类似于这样的错误消息:Cannot update provisioned throughput due to being rate limited.

访问模式

如需在多个虚拟机之间共享 Hyperdisk ML 卷,您必须将相应卷的访问模式设置为只读。将访问模式设置为只读后,您无法重新启用写入访问。只有 Hyperdisk ML 卷才支持将访问模式更改为只读。

如需设置磁盘的访问模式,请参阅设置访问模式

限制

  • 对于 Hyperdisk ML 卷,您只能将访问模式设置为只读。将访问模式设置为只读后,无法将其重新设置为读写。
  • 您无法为 Hyperdisk Throughput、平衡 Hyperdisk 和 Hyperdisk Extreme 卷设置访问模式。
  • 如需设置磁盘的访问模式,必须将相应磁盘与所有虚拟机分离。

将 Hyperdisk ML 卷的访问模式设置为只读

您可以将 Hyperdisk ML 卷的访问模式从读写模式设置为只读模式。将访问模式设置为只读后,您无法重新启用读写访问。

您可以使用 Google Cloud 控制台、Google Cloud CLI 或 REST 设置访问模式。

控制台

  1. 在 Google Cloud 控制台中,转到磁盘页面。

    转到“磁盘”

  2. 在项目的磁盘列表中,点击要更改其容量或预配性能的 Hyperdisk 卷的名称。

  3. 在“磁盘详情”页面上,点击修改

  4. 访问模式字段中,选择所需的访问模式。如需启用只读模式,请选择以只读模式连接多个虚拟机

  5. 如需应用更改,请点击保存

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-SINGLE,用于从 1 个虚拟机进行读写访问。

REST

构建对 compute.disks.update 方法的 POST 请求。在请求正文中,使用 "accessMode" 参数设置访问模式。

POST 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_SINGLE,用于从 1 个虚拟机进行读写访问。

更改 Hyperdisk 卷的大小或预配性能

您可以使用以下时间限制增加卷大小并更改 Hyperdisk 卷的预配 IOPS 或吞吐量:

  • 增加磁盘大小:

    • 对于 Hyperdisk Throughput:每 6 小时一次
    • 对于所有其他 Hyperdisk 类型:每 4 小时一次
  • 修改预配 IOPS 或吞吐量:

    • 对于 Hyperdisk ML:每 6 小时一次
    • 对于所有其他 Hyperdisk 类型:每 4 小时一次

如果您尝试在 4 小时到期之前更改磁盘,则会收到这样的错误消息:Cannot update provisioned throughput due to being rate limited.

您可以使用 Google Cloud 控制台、gcloud CLI 或 REST 更改 Hyperdisk 卷的预配大小和性能。

控制台

  1. 在 Google Cloud 控制台中,转到磁盘页面。

    转到“磁盘”

  2. 在项目的磁盘列表中,点击要更改其容量或预配性能的 Hyperdisk 卷的名称。

  3. 在“磁盘详情”页面上,点击修改

    1. 大小字段中,为磁盘输入新的大小。磁盘大小必须在支持的值范围内。
    2. 对于 Hyperdisk Extreme 和 Hyperdisk Balanced:在预配的 IOPS 字段中,输入卷的新 IOPS 值。
    3. 对于 Hyperdisk Throughput、Hyperdisk ML 和平衡 Hyperdisk:在预配的吞吐量字段中,输入卷的新吞吐量值。
  4. 点击保存以将更改应用于磁盘。

gcloud

使用 disks update 命令并指定 --size--provisioned-iops--provisioned-throughput 标志。

gcloud compute disks update DISK_NAME  \
    --size=DISK_SIZE  \
    --provisioned-iops=IOPS_LIMIT  \
    --provisioned-throughput=THROUGHPUT_LIMIT

替换以下内容:

  • DISK_NAME:您要修改的 Hyperdisk 卷的名称。
  • DISK_SIZE(可选):磁盘的新大小。该值必须是一个整数,后跟 GB 表示吉比字节,或 TB 表示太比字节。磁盘大小必须在支持的值范围内。
  • IOPS_LIMIT(可选):Hyperdisk Extreme 和 Hyperdisk Balanced 卷的 IOPS 配置。该值必须在支持的值范围内。
  • THROUGHPUT_LIMIT(可选):Hyperdisk Throughput、Hyperdisk ML 和平衡 Hyperdisk 卷的吞吐量配置,以整数形式指定,表示吞吐量(以 MiB/秒为单位)。该值必须在支持的值范围内。

REST

构建对 compute.disks.update 方法的 POST 请求。在请求正文中,指定 sizeGbprovisionedIopsprovisionedThroughput 参数。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME/update
{
   "sizeGb": "DISK_SIZE,
   "provisionedIops": "IOPS_LIMIT",
   "provisionedThroughput": "THROUGHPUT_LIMIT"
}

替换以下内容:

  • PROJECT_ID:您的项目 ID。
  • ZONE:您的 Hyperdisk 卷所在的可用区。
  • DISK_NAME:要修改的 Hyperdisk 卷的名称。
  • DISK_SIZE(可选):磁盘的新大小。该值必须是一个整数,后跟 GB 表示吉比字节,或 TB 表示太比字节。磁盘大小必须在支持的值范围内。
  • IOPS_LIMIT(可选):Hyperdisk Extreme 或 Hyperdisk Balanced 卷的 IOPS 配置。该值必须在支持的值范围内。
  • THROUGHPUT_LIMIT(可选):平衡 Hyperdisk、Hyperdisk ML 或 Hyperdisk Throughput 卷的吞吐量配置,以整数形式指定,表示吞吐量(以 MiB/秒为单位)。该值必须在支持的值范围内。

备份 Hyperdisk 卷

调整磁盘大小不会删除或修改磁盘数据,但最佳做法是,始终通过创建快照备份磁盘,然后再对文件系统或分区进行任何更改。

调整文件系统和分区的大小

增大 Hyperdisk 卷的大小后,您可能需要调整其文件系统和分区的大小。如需了解详情,请参阅 Persistent Disk 文档中的调整文件系统和分区的大小

后续步骤