更改磁盘类型


您无法将磁盘类型从 Persistent Disk 更改为 Google Cloud Hyperdisk。 此外,没有将现有磁盘移入或移出 Hyperdisk 存储池的命令。

在存储池内外更改磁盘类型或重新创建磁盘的过程相同:

  1. 创建现有磁盘的快照。
  2. 使用快照作为磁盘的数据源,创建正确类型或位置的新磁盘。
  3. 验证新磁盘后,您可以删除原始磁盘。

准备工作

  • 如果要将新的 Hyperdisk 卷放在存储池中,请查看存储池的文档,尤其是:

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

    选择标签页以了解您打算如何使用本页面上的示例:

    控制台

    当您使用 Google Cloud 控制台访问 Google Cloud 服务和 API 时,无需设置身份验证。

    gcloud

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

      gcloud init
    2. 设置默认区域和可用区

    REST

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

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

      gcloud init

所需的角色和权限

如需获得更改磁盘类型所需的权限,请让管理员向您授予项目上的以下 IAM 角色:

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

这些预定义角色包含更改磁盘类型所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

如需更改磁盘类型,您需要具备以下权限:

  • 如需创建磁盘的快照:
    • 针对项目的 compute.snapshots.create 权限
    • 针对磁盘的 compute.disks.createSnapshot 权限
  • 创建新磁盘:针对项目的 compute.disks.create 权限
  • 如需在存储池中创建磁盘:
    • 针对项目的 compute.storagePools.use 权限
    • 针对项目的 compute.disks.create 权限
  • 如需将磁盘挂接到虚拟机:
    • 针对虚拟机的 compute.instances.attachDisk 权限
    • 针对您要挂接到虚拟机的卷的 compute.disks.use
  • 如需删除磁盘:针对项目的 compute.disks.delete 权限

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

更改磁盘的类型或位置

如需将 Persistent Disk 卷迁移到 Hyperdisk,或者在存储池内外重新创建磁盘,请创建磁盘快照,然后在创建新磁盘时使用该快照。

创建新的 Hyperdisk 卷时,您可以将其创建为独立磁盘,也可以在存储池中创建磁盘(如果存储池存在)。

控制台

  1. 准备创建磁盘快照:

    重要说明:如果您在创建快照之前暂停应用,则只有在快照资源达到 UPLOADING 状态后才能恢复工作负载。

    如需了解详情,请参阅手动创建应用一致快照中的表。

  2. 创建现有磁盘的快照

  3. 可选:如需在存储池中创建新的 Hyperdisk,您必须创建存储空间池(如果不存在)。
  4. 转到磁盘页面。

    转到“磁盘”
  5. 点击 + 创建磁盘
  6. 磁盘类型下,选择 Hyperdisk ExtremeHyperdisk ThroughputHyperdisk Balanced

    可选:如需使用存储池,请选择 Hyperdisk Balanced 或 Hyperdisk Throughput。

  7. 对于磁盘来源类型,选择快照,然后选择要恢复的快照的名称。
  8. 指定新磁盘的大小(以 GiB 为单位)。此数字必须等于或大于快照最初的来源磁盘大小。
  9. 可选:如果您要更改磁盘类型,请更改默认值:

    • Hyperdisk Balanced:更改预配的 IOPS 值和预配的吞吐量值。
    • Hyperdisk Extreme:更改预配的 IOPS 值。
    • Hyperdisk Throughput:更改预配的吞吐量值。
  10. 可选:如需在存储池中创建新磁盘,请执行以下操作:

    1. 存储空间池部分中,选择启用存储池
    2. 选择要在其中创建磁盘的存储池的名称。

      列表中仅显示所选可用区中存在的存储池。

  11. 点击创建以创建新磁盘。

gcloud

  1. 准备创建磁盘快照:

    重要说明:如果您在创建快照之前暂停应用,则只有在快照资源达到 UPLOADING 状态后才能恢复工作负载。

    如需了解详情,请参阅手动创建应用一致快照中的表。

  2. 创建现有磁盘的快照

  3. 使用 disks create 命令根据快照创建 Hyperdisk Extreme 卷。

    gcloud compute disks create DISK_NAME \
     --zone=ZONE \
     --storage-pool=STORAGE_POOL_NAME \
     --size=SIZE \
     --source-snapshot=SNAPSHOT_NAME \
     --type=DISK_TYPE \
     --provisioned-iops=PROVISIONED_IOPS \
     --provisioned-throughput=PROVISIONED_THROUGHPUT
    

    替换以下内容:

    • DISK_NAME:磁盘的唯一名称。您可以提供由空间指定的磁盘名称列表,以创建具有相同属性的多个磁盘。
    • ZONE:您要在其中创建磁盘的可用区。如果要在存储池中创建磁盘,则必须指定存储池所在的可用区。采用区域-可用区格式指定此值,例如 us-central1-a
    • STORAGE_POOL_NAME(可选):要在其中创建磁盘的存储池的名称。如果不添加此标志,则系统会创建一个独立的 Hyperdisk。
    • SIZE(可选):新磁盘的预配容量。该大小必须大于或等于来源 Persistent Disk 的大小。该值必须是一个整数,后跟大小单位(GB 表示吉比字节,或 TB 表示太比字节)。如果未指定大小,则使用 100 GB 作为默认值。
    • SNAPSHOT_NAME:您根据原始磁盘创建的快照的名称。
    • DISK_TYPE:要创建的磁盘类型。如果在存储池中创建磁盘,则此值必须与 Hyperdisk 存储池的类型匹配,即 hyperdisk-balancedhyperdisk-throughput
    • PROVISIONED_IOPS(可选):要为磁盘预配的 IOPS。只有在创建 Hyperdisk Balanced 或 Hyperdisk Extreme 磁盘时才能使用此标志。
    • PROVISIONED_THROUGHPUT(可选):对于 Hyperdisk Balanced 和 Hyperdisk Throughput 磁盘,要为磁盘预配的每秒吞吐量 (MB)。该值必须为正整数。

将新磁盘设为可供虚拟机实例访问

创建磁盘后,您必须先将磁盘挂接到虚拟机,然后才能使用它。

由于您创建的新磁盘不是空白磁盘,因此在将磁盘挂接到虚拟机后,您只需装载该磁盘,即可将其提供给操作系统。

如需了解如何装载磁盘,请参阅以下内容:

移除原始磁盘

验证新磁盘后,您可以执行以下操作:

后续步骤