创建 Hyperdisk 存储池


Hyperdisk 存储池是一种新的块存储资源,可帮助您以汇总方式管理 Hyperdisk 块存储。Hyperdisk 存储池在 Hyperdisk Throughput 存储池和 Hyperdisk Balanced 存储池变体中提供。

创建存储池时,您必须指定以下属性:

  • 存储池类型
  • 可用区
  • 池预配的容量
  • 池预配的 IOPS 和吞吐量

您可以将标准容量或高级容量预配与 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 Instance Admin (v1) (roles/compute.instanceAdmin.v1)
  • 如需连接到能够以服务账号的身份运行的虚拟机实例:Service Account User (v1)(roles/iam.serviceAccountUser 角色)

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

这些预定义角色包含创建存储池所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

创建存储池需要以下权限:

  • 针对项目的 compute.storagePools.create 权限
  • 针对项目的 compute.storagePools.setLabels 权限

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

限制

Hyperdisk 存储池具有以下限制:

资源限制

  • 您可以创建预配容量高达 1 PiB 的 Hyperdisk 存储池。
  • 您每小时最多可以创建 5 个存储池。
  • 您每天最多可以创建 10 个存储池。
  • 您最多可以为每个项目创建 10 个存储池。
  • 您无法更改池的预配模型;您无法将标准容量存储池更改为高级容量存储池。
  • 存储池是可用区级资源。
  • 您最多可以在一个存储池中创建 1000 个磁盘。
  • 您只能将 Hyperdisk 存储池与 Compute Engine 搭配使用。Cloud SQL 实例无法使用 Hyperdisk 存储池。
  • 在 24 小时内,您最多可以调整两次存储池的大小。

存储池中的磁盘限制

容量范围和预配的性能限制

创建存储池时,预配的容量、IOPS 和吞吐量受到以下内容中所述的约束:

创建 Hyperdisk 存储池

如需创建新的 Hyperdisk 存储池,请使用 Google Cloud 控制台、Google Cloud CLI 或 REST。

控制台

  1. 转到 Google Cloud 控制台中的创建存储池页面。
    转到“创建存储池”页面
  2. 名称字段中,为存储池输入具有唯一性的名称。
  3. 可选:在说明字段中,输入存储池的说明。
  4. 位置字段中,选择要在其中创建存储池的区域和可用区。
  5. 存储池类型部分选择一个值。
  6. 选择容量类型,然后在存储池容量字段中指定要为存储池预配的容量。您可以指定 10 TiB 到 1 PiB 的大小。

    如需创建容量较大的存储池,您可能需要申请更高的配额

  7. 对于 Hyperdisk Balanced 存储池,在预配 IOPS 字段中,输入要为存储池预配的 IOPS。

  8. 对于 Hyperdisk Throughput 存储池或 Hyperdisk Balanced 存储池,在预配吞吐量字段中,输入要为存储池预配的吞吐量。

  9. 点击提交以创建存储池。

gcloud

如需创建 Hyperdisk 存储池,请使用 gcloud compute storage-pools create 命令

gcloud compute storage-pools create NAME  \
    --zone=ZONE   \
    --storage-pool-type=STORAGE_POOL_TYPE   \
    --capacity-provisioning-type=CAPACITY_PROVISIONING_TYPE \
    --provisioned-capacity=POOL_CAPACITY   \
    --provisioned-iops=IOPS   \
    --provisioned-throughput=THROUGHPUT   \
    --description=DESCRIPTION

替换以下内容:

  • NAME:具有唯一性的存储池名称。
  • ZONE:要在其中创建存储池的可用区,例如 us-central1-a
  • STORAGE_POOL_TYPE:要存储在存储池中的磁盘类型。允许的值包括 hyperdisk-throughputhyperdisk-balanced
  • CAPACITY_PROVISIONING_TYPE:可选:存储池的容量预配类型。允许的值包括 advancedstandard。如果未指定,则系统会使用值 advanced
  • POOL_CAPACITY:要为新存储池预配的总容量,默认以 GiB 为单位。
  • IOPS:要为存储池预配的 IOPS。此标志只能用于 Hyperdisk Balanced 存储池。
  • THROUGHPUT:要为存储池预配的吞吐量(以 MBps 为单位)。
  • DESCRIPTION:可选:描述存储池的文本字符串。

REST

使用 storagePools.insert 方法构建 POST 请求以创建 Hyperdisk 存储池。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/storagePools

{
    "name": "NAME",
    "description": "DESCRIPTION",
    "poolProvisionedCapacityGb": "POOL_CAPACITY",
    "storagePoolType": "STORAGE_POOL_TYPE",
    "poolProvisionedIops": "IOPS",
    "poolProvisionedThroughput": "THROUGHPUT",
    "capacityProvisioningType": "CAPACITY_PROVISIONING_TYPE"
}

替换以下内容:

  • PROJECT_ID:项目 ID
  • ZONE:要在其中创建存储池的可用区,例如 us-central1-a
  • NAME:存储池具有唯一性的名称。
  • DESCRIPTION:可选:描述存储池的文本字符串。
  • POOL_CAPACITY:要为新存储池预配的总容量,默认以 GiB 为单位。
  • STORAGE_POOL_TYPE:要存储在存储池中的磁盘类型。允许的值包括 hyperdisk-throughputhyperdisk-balanced
  • IOPS:可选:要为存储池预配的 IOPS。此标志只能用于 Hyperdisk Balanced 存储池。
  • THROUGHPUT:可选:要为存储池预配的吞吐量(以 MBps 为单位)。
  • CAPACITY_PROVISIONING_TYPE:可选:存储池的容量预配类型。允许的值包括 advancedstandard。如果未指定,则系统会使用值 advanced

后续步骤