管理 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.list
  • 如需列出存储池中的磁盘: compute.storagePools.get
  • 如需查看存储池的属性: compute.storagePools.get
  • 如需更新存储池的预配容量或性能,请执行以下操作:
    • compute.storagePools.get
    • compute.storagePools.update
  • 如需删除存储空间池: compute.storagePools.delete

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

限制

Hyperdisk 存储池具有以下限制:

  • 在 24 小时内,您最多可以更改两次存储池的预配容量。
  • 您无法动态地将磁盘移入或移出存储池。
  • 您无法克隆存储池中的磁盘或截取磁盘的即时快照。
  • 您每小时最多可以删除 5 个存储池。
  • 存储池管理命令要么成功,要么立即失败,但最长可能需要 5 分钟才能完成操作,更改最长可能需要 30 分钟才会显示。

如需查看 Hyperdisk 存储池限制的完整列表,请参阅存储池的限制

修改存储池时的值范围

存储池的最小预配容量为 10 TiB,最大预配容量为 1 PiB。您可以采用 1 TiB 的增量更改存储池的预配容量。

如需了解性能预配限制,请参阅以下内容:

列出项目的存储池

如需查看在项目中创建的存储池,请使用 Google Cloud 控制台、Google Cloud CLI 或 REST。

控制台

  1. 转到 Google Cloud 控制台中的存储池页面。
    转到“存储池”页面

    该页面显示在所选项目中创建的存储池。

  2. 可选:使用过滤条件栏仅显示与过滤条件参数(例如位置、类型、名称和池容量剩余)匹配的存储池。

gcloud

如需列出当前项目中创建的所有存储池,请使用 gcloud compute storage-pools list 命令

gcloud compute storage-pools list

REST

如需显示在项目和可用区中创建的存储池,请使用 storagePools.list 方法构建 GET 请求。

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

替换以下内容:

  • PROJECT_ID:包含存储池的项目的 ID
  • ZONE:存储池所在的可用区,例如 us-central1-a

列出存储池中的磁盘

如需获取存储池中创建的磁盘列表,请使用 Google Cloud 控制台、Google Cloud CLI 或 REST。

控制台

  1. 转到 Google Cloud 控制台中的存储池页面。
    转到“存储池”页面

    该页面显示在所选项目中创建的存储池。

  2. 名称字段中,点击要查看的存储池的名称。

    管理存储池页面会打开。

  3. 存储池磁盘部分中,您可以查看在存储池中创建的磁盘。

gcloud

如需列出在存储池中创建的磁盘,请使用 gcloud compute storage-pools list-disks 命令

gcloud compute storage-pools list-disks STORAGE_POOL_NAME  \
    [--zone=ZONE]

替换以下内容:

  • STORAGE_POOL_NAME:存储池的名称。
  • ZONE:可选。存储池所在的可用区,例如 us-central1-a

REST

如需列出正在使用存储池的磁盘,请使用 storagePools.listDisks 方法构建 GET 请求。

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/storagePools/STORAGE_POOL_NAME/listDisks

替换以下内容:

  • PROJECT_ID:包含存储池的项目的 ID
  • ZONE:存储池所在的可用区,例如 us-central1-a
  • STORAGE_POOL_NAME:存储池的名称。

描述存储池

如需查看存储空间池的详细信息,您可以使用 Google Cloud 控制台、Google Cloud CLI 或 REST。

控制台

  1. 转到 Google Cloud 控制台中的存储池页面。
    转到“存储池”页面
  2. 对于页面中列出的每个存储池,您可以查看以下信息:

    • 状态
    • 名称
    • 位置
    • 池类型
    • 存储池容量
    • 剩余的池容量
    • 池 IOPS
    • 存储池 IOPS 余量
    • 池中创建的磁盘数
  3. 名称字段中,点击要查看的存储池的名称。

    管理存储池页面会打开。

  4. 存储池设置部分中,您可以查看存储池的其他属性,例如创建时间和容量预配类型。

  5. 存储池磁盘部分中,您可以查看有关在存储池中创建的磁盘的信息。

gcloud

使用 gcloud compute storage-pools describe 命令查看存储池的详细信息。

gcloud compute storage-pools describe STORAGE_POOL_NAME  \
    [--zone=ZONE]

替换以下内容:

  • STORAGE_POOL_NAME:具有唯一性的存储池名称。
  • ZONE:可选。存储池所在的可用区,例如 us-central1-a

REST

如需检索有关存储池的详细信息,请使用 storagePools.get 方法构建 GET 请求。

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

替换以下内容:

  • PROJECT_ID:包含存储池的项目的 ID
  • ZONE:存储池所在的可用区,例如 us-central1-a
  • STORAGE_POOL_NAME:存储池的名称

更新存储池的预配容量、IOPS 或吞吐量

您可以增加或减少存储池的预配容量、IOPS 或吞吐量。如需增加存储池的容量、IOPS 或吞吐量,您必须拥有项目和区域的可用配额。

控制台

  1. 转到 Google Cloud 控制台中的存储池页面。
    转到“存储池”页面
  2. 名称字段中,点击要修改的存储池的名称。

    管理存储池页面会打开。

  3. 点击 修改

    此时会打开修改存储池页面。

  4. 可选:在存储池容量字段中,输入池预配容量的新值。新值必须至少比当前值高 1 TiB,并且最多只能比当前值多 100 TiB。最小大小不能小于 10 TiB,最大大小不能超过 1024 TiB。

  5. 可选:在预配吞吐量字段中,输入预配吞吐量的新值。

  6. 可选:对于 Hyperdisk Balanced 类型的存储池,在预配 IOPS 字段中,输入预配的 IOPS 的新值。

  7. 点击保存以更新存储池。

gcloud

使用 gcloud compute storage-pools update 命令修改存储池。

gcloud compute storage-pools update STORAGE_POOL_NAME  \
    --zone=ZONE   \
    --provisioned-capacity=POOL_SIZETiB   \
    --provisioned-iops=IOPS   \
    --provisioned-throughput=THROUGHPUT   \
    --description=DESCRIPTION

替换以下内容:

  • STORAGE_POOL_NAME:存储池的名称。
  • ZONE:可选:存储池所在的可用区,例如 us-central1-a
  • POOL_SIZE:可选:存储池预配的容量(以 TiB 为单位)。
  • IOPS:可选:存储池预配的 IOPS。此标志只能用于 Hyperdisk Balanced 存储池。
  • THROUGHPUT:可选:存储池预配的吞吐量(以 MBps 为单位)。
  • DESCRIPTION:可选:存储池的描述性字符串。

REST

如需更新存储池,请使用 storagePools.update 方法构建 PATCH 请求。

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

{
    "description": "DESCRIPTION",
    "poolProvisionedCapacityGb": "SIZE",
    "poolProvisionedIops": "IOPS",
    "poolProvisionedThroughput": "THROUGHPUT"
}

替换以下内容:

  • PROJECT_ID:项目 ID
  • ZONE:存储池所在的可用区,例如 us-central1-a
  • STORAGE_POOL_NAME:存储池的名称。
  • DESCRIPTION:可选:用于描述存储池的文本字段。
  • SIZE:可选:新的存储池预配的容量(以 GiB 为单位)。
  • IOPS:可选:存储池预配的 IOPS 的新值。仅当存储池包含 hyperdisk-balanced 类型的磁盘时,才能指定此属性。
  • THROUGHPUT:可选:存储池预配吞吐量的新值(以 MBps 为单位)。

删除存储池

如需删除或移除存储池,您必须先删除存储池中的所有磁盘。然后,您可以使用 Google Cloud 控制台、Google Cloud CLI 或 REST 删除存储池。

删除存储池的操作不可逆转。但是,删除存储池不会删除根据存储池中创建的磁盘截取的任何快照。您必须单独删除这些快照。

控制台

  1. 转到 Google Cloud 控制台中的存储池页面。
    转到“存储池”页面
  2. 名称字段中,点击要移除的存储池的名称。

    管理存储池页面会打开。

  3. 存储池磁盘部分,验证是否未列出存储池的磁盘。

  4. 点击 删除池

gcloud

使用 gcloud compute storage-pools delete 命令删除存储池。

gcloud compute storage-pools delete STORAGE_POOL_NAME  \
    --zone=ZONE   \

替换以下内容:

  • STORAGE_POOL_NAME:具有唯一性的存储池名称。
  • ZONE:可选:存储池所在的可用区,例如 us-central1-a

REST

如需移除存储池,请为 storagePools.delete 方法构建 DELETE 请求。

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

替换以下内容:

  • PROJECT_ID:项目 ID
  • ZONE:存储池所在的可用区,例如 us-central1-a
  • STORAGE_POOL_NAME:具有唯一性的存储池名称。

后续步骤