将 Hyperdisk 存储添加到虚拟机


您可以通过完成以下任务,将 Hyperdisk Extreme 或 Hyperdisk Throughput 卷用于虚拟机:

  • 创建空白的非启动、可用区 Hyperdisk 卷,并将其作为虚拟机的一部分,或者作为单独的任务挂接到虚拟机。
  • 格式化卷并进行装载,以提供对数据或文件系统的访问权限。

该过程对于 Hyperdisk Balanced 卷是相同的,但您还可以创建 Hyperdisk Balanced 类型的启动磁盘。

如需了解 Hyperdisk 的一般信息,请参阅关于 Hyperdisk

准备工作

  • 在将 Hyperdisk 卷添加到虚拟机之前,请查看 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

所需的角色和权限

如需获得将 Hyperdisk 卷添加到虚拟机所需的权限,请让您的管理员为您授予项目的以下 IAM 角色:

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

这些预定义角色包含将 Hyperdisk 卷添加到虚拟机所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

如需将 Hyperdisk 磁盘卷添加到虚拟机,您需要具备以下权限:

  • 为了创建并挂接 Hyperdisk 卷:
    • 项目的 compute.disks.create 权限
    • 针对虚拟机的 compute.instances.attachDisk 权限
    • 针对您要挂接到虚拟机的卷的 compute.disks.use
  • 为了格式化和装载挂接的卷:针对虚拟机的 compute.instances.setMetadata

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

将 Hyperdisk 卷添加到虚拟机

您可以使用 Google Cloud 控制台、Google Cloud CLI 或 REST 创建并挂接 Hyperdisk 卷。

控制台

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

    转到虚拟机实例

  2. 点击要在其中添加磁盘的虚拟机的名称。

  3. 虚拟机实例详情页面上,点击修改

  4. 额外磁盘标题下,点击添加新磁盘

  5. 为磁盘指定一个名称,并视需要添加说明。选择空白磁盘作为磁盘来源类型

  6. 磁盘设置下,选择以下磁盘类型之一:

    1. Hyperdisk Balanced。您还可以更改默认磁盘大小预配的 IOPS预配的吞吐量设置。
    2. Hyperdisk Extreme。您还可以更改默认磁盘大小预配 IOPS 设置。
    3. Hyperdisk Throughput。您还可以更改默认磁盘大小预配吞吐量设置。
  7. 点击保存

  8. 在虚拟机的修改窗口中,点击保存以应用对虚拟机的更改并添加新磁盘。

gcloud

  1. 使用 gcloud compute disks create 命令创建 Hyperdisk 卷。

    gcloud compute disks create DISK_NAME \
       --zone=ZONE \
       --size=DISK_SIZE \
       --type=DISK_TYPE \
       --provisioned-iops=IOPS_LIMIT
       --provisioned-throughput=THROUGHPUT_LIMIT
    

    替换以下内容:

    • DISK_NAME:新磁盘的名称。
    • ZONE:要在其中创建新磁盘的可用区的名称。
    • DISK_SIZE:可选:新磁盘的大小。该值必须是一个整数,后跟大小单位(GB 表示吉比字节,或 TB 表示太比字节)。如果未指定大小单位,则使用 100 GB 作为默认值。接受的磁盘大小值包括:
      • Hyperdisk Balanced:从 4 GiB 到 64 TiB(含边界值),以 1 GiB 为增量。
      • Hyperdisk Extreme:从 64 GiB 到 64 TiB(含边界值),以 1 GiB 为增量。
      • Hyperdisk Throughput:从 2 TiB 到 32 TiB(含边界值),以 1 GiB 为增量。
    • DISK_TYPE:磁盘类型。请使用以下某个值:hyperdisk-balancedhyperdisk-extremehyperdisk-throughput
    • IOPS_LIMIT:可选:对于 Hyperdisk Balanced 或 Hyperdisk Extreme 磁盘,这是磁盘可以处理的每秒 I/O 操作数 (IOPS)。IOPS 必须在以下限制内指定:

      • Hyperdisk Balanced
        • 最小值:每 GiB 磁盘容量 500 IOPS 或 3,000 中的较小值
        • 最大值:每 GiB 容量 500 IOPS 或 160,000 IOPS 中的较小值
      • Hyperdisk Extreme
        • 最小值:每 GiB 磁盘容量 2 IOPS。
        • 最大值:容量的 1,200 倍(以 GiB 为单位)或 350,000 中的较小值。

      如果您未指定 IOPS 或磁盘大小值,则使用默认值:

      • Hyperdisk Balanced:默认 IOPS 为 3,600。如果指定磁盘大小,则默认值取决于大小:
        • 6 GiB 或更小:每 GiB 磁盘大小 500 IOPS
        • 大于 6 GiB:3000 + 每 GiB 磁盘大小 6 IOPS 所得值或 160,000 中的较小值
      • Hyperdisk Extreme:默认值为磁盘容量的 100 倍(以 GiB 为单位)或机器类型的 IOPS 上限中的较小值。

      例如,您可以按如下方式在 C3 虚拟机上为 Hyperdisk Extreme 预配 IOPS:

      • 对于 64 GiB 磁盘,您可以预配 128 到 64,000 范围内的 IOPS。默认 IOPS 为 6,400。
      • 对于 64,000 GiB 磁盘,您可以预配 128,000 到 350,000 范围内的 IOPS。默认 IOPS 为 350,000。
    • THROUGHPUT_LIMIT:可选:对于 Hyperdisk Balanced 或 Hyperdisk Throughput 卷,这是一个整数,表示磁盘可以处理的吞吐量(以 MiB/秒为单位)。吞吐量必须在以下限制内指定:

      • Hyperdisk Balanced
        • 最小值:IOPS 除以 256 所得值或 140 MiBps 中的较大值
        • 最大值:IOPS 除以 256 所得值或 2,400 MiBps 中的较大值
      • Hyperdisk Throughput
        • 最小值:每 TiB 容量 10 MB/秒。
        • 最大值:每个卷 600 MB/秒或每 TiB 容量 90 MB/秒中的较小值。

      如果您未指定 IOPS、吞吐量或磁盘大小值,则使用默认值。

      • Hyperdisk Balanced:默认吞吐量为 140 MiBps。如果指定磁盘大小,则默认值取决于大小:
        • 6 GiB 或更少:140 MiBps
        • 大于 6 GiB:((6 * disk size in GiB) / 4) + 140 或 2,400 MiBps 中的较小值
      • Hyperdisk Throughput:默认吞吐量为每 TiB 磁盘容量 90 MiBps,但不超过每个磁盘支持的吞吐量上限。
  2. 可选:使用 gcloud compute disks describe DISK_NAME 命令查看磁盘的说明。

  3. 创建磁盘后,您可以将磁盘挂接到虚拟机

REST

  1. 使用 disks.insert 方法构建 POST 请求以创建可用区级 Hyperdisk。 请求应包含 namesizeGbtypeprovisionedIopsprovisionedThroughput 属性。 如需创建一个空白且未格式化的非启动磁盘,请不要为此磁盘指定来源映像或来源快照。

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

    替换以下内容:

    • PROJECT_ID:您的项目 ID
    • ZONE:您的虚拟机和新磁盘所在的可用区
    • DISK_NAME:新磁盘的名称
    • DISK_SIZE:可选:新磁盘的大小。 该值必须是一个整数,后跟 GB 表示吉比字节,或 TB 表示太比字节。每个磁盘类型范围的可接受大小,以 1 GiB 为增量:
      • Hyperdisk Balanced:从 4 GiB 到 64 TiB(含边界值)。
      • Hyperdisk Extreme:从 64 GiB 到 64 TiB(含边界值)。
      • Hyperdisk Throughput:从 2 TiB 到 32 TiB(含边界值)。
    • DISK_TYPE:磁盘类型。如需创建 Hyperdisk 卷,请使用以下值之一:hyperdisk-balancedhyperdisk-extremehyperdisk-throughput
    • IOPS_LIMIT(可选):对于 Hyperdisk Balanced 和 Hyperdisk Extreme,这是磁盘每秒可处理的 I/O 操作次数。IOPS 必须在以下限制内指定:

      • 最小值::
        • Hyperdisk Balanced:每 GiB 磁盘容量 500 IOPS 或 3000 中的较小值
        • Hyperdisk Extreme:每 GiB 磁盘容量有两个 IOPS
      • 最大值:
        • Hyperdisk Balanced:每 GiB 磁盘容量 500 IOPS 或 160000 IOPS 中的较小值
        • Hyperdisk Extreme:每 GiB 磁盘容量 1000 IOPS 或机器类型的 IOPS 上限中的较小值。

      如果您未指定 IOPS 值,则系统会使用默认值,即:

      • Hyperdisk Balanced:如果未指定磁盘大小,则为 3600 IOPS。如果指定磁盘大小,则默认值取决于大小:
        • 6 GiB 或更小:每 GiB 磁盘大小 500 IOPS
        • 大于 6 GiB:3000 + 每 GiB 磁盘大小 6 IOPS 所得值或 160,000 中的较小值
      • Hyperdisk Extreme:每 GiB 磁盘容量 100 IOPS 或机器类型的 IOPS 上限中的较小值。

      例如,您可以为 C3 虚拟机上的 Hyperdisk Extreme 磁盘预配 IOPS,如下所示:

      • 对于 64 GiB 磁盘,您可以预配 128 到 64,000 范围内的 IOPS。默认 IOPS 为 6,400。
      • 对于 64 TiB 磁盘,您可以预配 128,000 到 350,000 范围内的 IOPS。默认 IOPS 为 350,000。
    • THROUGHPUT_LIMIT:可选:对于 Hyperdisk Balanced 或 Hyperdisk Throughput 卷,这是一个整数,表示磁盘可以处理的吞吐量(以 MiB/秒为单位)。吞吐量必须在以下限制内指定:

      • Hyperdisk Balanced
        • 最小值:IOPS 除以 256 所得值或 140 MiBps 中的较大值
        • 最大值:IOPS 除以 256 所得值,但不超过 2,400 MiBps
      • Hyperdisk Throughput
        • 最小值:每 TiB 容量 10 MB/秒。
        • 最大值:每个卷 600 MB/秒或每 TiB 容量 90 MB/秒中的较小值。

      如果您未指定 IOPS、吞吐量或磁盘大小值,则使用默认值。

      • Hyperdisk Balanced:默认吞吐量为 140 MiBps。如果指定磁盘大小,则默认值取决于大小:
        • 6 GiB 或更少:140 MiBps
        • 大于 6 GiB:((6 * disk size in GiB) / 4) + 140 或 2,400 MiBps 中的较小值
      • Hyperdisk Throughput:默认吞吐量为每 TiB 磁盘容量 90 MiBps,但不超过每个磁盘支持的吞吐量上限。
  2. 可选:使用 compute.disks.get 方法查看磁盘的说明。

  3. 创建磁盘后,您可以将磁盘挂接到任何正在运行或已停止的虚拟机。

格式化并装载磁盘

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

后续步骤