IBM Cloud Docs
创建 Block Storage for VPC 卷

创建 Block Storage for VPC 卷

使用 UI,CLI,API 或 Terraform 创建 Block Storage for VPC 卷。 您可以在实例供应过程中创建卷,作为稍后可以附加到实例的独立卷,或者通过从快照复原来创建卷。

开始之前,请确保您已创建 VPC。 使用快照创建卷时,可以使用自己账户或其他账户的快照。 如果您计划使用其他账户的快照,请确保 IAM 授权 正确到位。

创建Block Storage for VPC控制台中的卷

在创建虚拟服务器实例或作为独立卷时,使用 IBM Cloud 控制台来创建 Block Storage for VPC 卷。

创建实例时创建和连接 Block Storage for VPC 卷

  1. IBM Cloud 控制台,单击 导航菜单 图标 菜单图标 > 基础架构 VPC 图标 > 计算 > 虚拟服务器实例
  2. 从虚拟服务器实例列表中,单击 创建
  3. 在“VPC 供应的虚拟服务器”页面中,选择“服务器类型”,“位置”,“操作系统”,“概要文件”和“布置组”等。 有关供应实例的更多信息,请参阅 使用 UI 创建虚拟服务器实例
  4. 将在页面上显示要创建的引导卷的详细信息。 您可以通过点击編輯圖標編輯圖標 更改大小、指定加密并添加任何用户标签来识别此资源。
  5. 要创建数据卷并将其附加到实例,请在数据量实例配置页面的创造。 在侧面板中,指定卷详细信息。
    1. 您可以选择从快照导入数据,方法是单击从快照导入切换。 从列表中选择可用快照,或根据其 CRN 查找快照。
    2. 为您的文件指定一个独特且富有意义的名称。 例如,它可以是一个描述您的计算或工作负载功能的名称。 文件名必须以小写字母开头。 名称最多可包含 63 个小写字母数字字符,并包含连字符 (-)。卷名称在整个 VPC 基础设施中必须是唯一的。 如果需要,您可以稍后编辑名称。
    3. 自动删除功能默认处于关闭状态。 如果您希望在删除附加的虚拟服务器实例时删除该卷,请单击切换按钮以启用该功能。
    4. 资源组和位置从实例继承。 这些值不能改变。
    5. 您可以指定与此卷关联的可选用户标签。 有关使用用户标记组织资源的更多信息,请参阅 使用标记
    6. 选择加密类型。 所有卷上都默认启用提供商管理的加密。 您还可以选择使用自己的根密钥创建包络加密。 加密密钥在密钥管理服务中创建和维护(Key Protect或者Hyper Protect Crypto Services )。 有关详细信息,请参阅For more information, see 设置客户管理加密的先决条件
    7. 单击下一步
    8. 选择存储配置文件。
      • 对于 IOPS 层,选择具有所需性能级别的磁贴,并指定卷大小 (以 GB 为单位)。 卷的大小为 10 - 16,000 GB。
      • 对于 定制 IOPS,请根据卷大小指定卷大小和 IOPS 范围。 卷的大小为 10 - 16,000 GB。 当您输入 IOPS 值时,UI 将显示可接受的范围。 您还可以单击存储大小链接,查看包含 自定义卷配置文件 的大小和 IOPS 范围的表格。
    9. 单击保存
  6. 您将返回虚拟实例配置页面来完成定义虚拟服务器实例的其余属性。
  7. 如果您对自己的选择满意,请点击创建虚拟服务器

一个 Block Storage for VPC 卷一次只能附加到一个虚拟服务器上。 在 Block Storage for VPC 卷摘要页面上,您可以通过选择 “已连接实例”下的实例名称来查看虚拟服务器实例的详细信息。

从现有实例创建和连接 Block Storage for VPC 卷

您可以从现有实例创建 Block Storage for VPC 卷。

  1. 转到虚拟服务器实例列表。 在 IBM Cloud 控制台,单击 导航菜单 图标 菜单图标 > 基础架构 VPC 图标 > 计算 > 虚拟服务器实例
  2. 从列表中选择一个实例。
  3. 在实例详细信息页面上,滚动到 存储卷,然后单击 连接
  4. 在侧面板中,单击 块卷 下的向下箭头,然后选择 创建数据卷。 侧面板通过用于定义卷的字段展开。
    1. 如果先前已创建卷快照,那么用于导入卷快照的选项将变为可用。 单击切换至 从快照导入,然后从列表中选择快照或根据其 CRN 查找快照。
    2. 为您的文件指定一个独特且富有意义的名称。 例如,它可以是一个描述您的计算或工作负载功能的名称。 文件名必须以小写字母开头。 名称最多可包含 63 个小写字母数字字符,并包含连字符 (-)。卷名称在整个 VPC 基础设施中必须是唯一的。 如果需要,您可以稍后编辑名称。
    3. 自动删除功能默认处于关闭状态。 如果您希望在删除附加的虚拟服务器实例时删除该卷,请单击切换按钮以启用该功能。
    4. 资源组和位置从实例继承。 这些值不能改变。
    5. 您可以指定与此卷关联的可选用户标签。 有关使用用户标记组织资源的更多信息,请参阅 使用标记
    6. 选择加密类型。 所有卷上都默认启用提供商管理的加密。 您还可以选择使用自己的根密钥创建包络加密。 加密密钥在密钥管理服务中创建和维护(Key Protect或者Hyper Protect Crypto Services )。
    7. 单击下一步
    8. 选择存储配置文件。
      • 对于 IOPS 层,选择具有所需性能级别的磁贴,并指定卷大小 (以 GB 为单位)。 卷的大小为 10 - 16,000 GB。
      • 对于 定制 IOPS,请根据卷大小指定卷大小和 IOPS 范围。 当您输入 IOPS 值时,UI 将显示可接受的范围。 您还可以单击存储大小链接,查看包含 自定义卷配置文件 的大小和 IOPS 范围的表格。
    9. 单击保存
  5. 完成定义卷后,单击 保存。 创建卷并将其附加到实例。 您将返回到实例详细信息页面。 新卷显示在存储卷列表中。

创建独立 Block Storage for VPC 卷

您可以创建一个独立于虚拟服务器配置的 Block Storage for VPC 卷,并在以后将该卷附加到实例。

  1. IBM Cloud 控制台,单击 导航菜单 图标 菜单图标 > 基础架构 VPC 图标 > 存储 > Block Storage 卷
  2. 单击创建
  3. 在Block Storage for VPC配置页面,查看地点信息。 地理位置、区域和可用区从 VPC 继承(例如,北美、达拉斯、Dallas-1 )。 您可以从菜单中点击編輯圖標編輯圖標
  4. 在里面细节部分中,必须指定卷的名称以及要将卷添加到的资源组。 (可选) 您可以添加用户和访问权管理标记。
    1. 为卷指定有意义的名称。 例如,提供用于描述计算或工作负载功能的名称。

      文件名必须以小写字母开头。 卷名称最多可包含 63 个小写字母数字字符,并包含连字符 (-)。卷名称在整个 VPC 基础设施中必须是唯一的。 您可以稍后编辑名称。

    2. 指定 资源组

    3. 指定 用户标记 以组织资源并供 备份策略 使用。

    4. 指定在 IAM 中创建的 访问权管理标记,以帮助您管理对卷的访问权。

  5. 在里面可选配置部分中,您可以指定是否要使用快照中的数据创建卷。 有关详细信息,请参阅For more information, see 创建独立Block Storage for VPC来自快照的卷。 此外,您还可以选择应用备份策略。 点击 “申请” 查看可用政策和计划。
  6. 在里面轮廓部分中,您可以指定卷的性能配置文件、其 IOPS 和容量。
    • 对于 IOPS 层,选择具有所需性能级别的磁贴,并指定卷大小 (以 GB 为单位)。 卷的大小为 10 - 16,000 GB。
    • 对于 定制 IOPS,请根据卷大小指定卷大小和 IOPS 范围。 当您输入 IOPS 值时,UI 将显示可接受的范围。 您还可以单击存储大小链接,查看包含 自定义卷配置文件 的大小和 IOPS 范围的表格。
  7. 在里面静态加密部分,您可以选择保留加密IBM-管理密钥在所有卷上默认启用。 或者,您也可以通过选择密钥管理服务来使用 您自己的加密密钥:Key Protect 或 Hyper Protect Crypto Services. 要找到您的加密密钥,请选择以下选项之一:
    • 按实例查找
      1. 从列表中选择数据加密实例。 如果您还没有实例,那么可以单击链接以创建实例。
      2. 选择存储在Key Protect用于加密卷的实例。
    • 通过 CRN 定位:输入用于加密卷的客户根密钥的 CRN。
  8. 完成后,点击创建块存储卷
    • 如果您尚未准备好订购或仅查找定价信息,那么可以将在侧面板中看到的信息添加到估算中。 有关此功能如何工作的详细信息,请参阅 估算您的成本
  9. 你被送回Block Storage for VPC卷页面,其中显示一条消息,表明正在创建卷(卷状态为_待办的_)。 创建卷时会显示第二条消息(卷状态为_可用的_)。
  10. 要查看新卷的详细信息,请选择后一条消息中的查看资源链接,以转至“卷详细信息”页面。

当您刷新控制台中的 Block Storage 卷列表时,新卷将出现在卷列表的开头。 对于独立卷,“附件类型”列为空白 (-)。操作菜单操作图标 在表格行的末尾提供了一个链接 附加Block Storage卷到实例

创建独立Block Storage for VPC控制台中快照中的卷

当您 创建 Block Storage for VPC 卷 时,可以选择快照并使用其数据来创建新卷。 提供的快照处于稳定状态。 从快照创建的数据卷未附加到实例,并显示在 Block Storage for VPC 卷的列表 中。 您稍后可以将其附加到实例上。

您可以从“可引导”快照复原引导卷。 创建虚拟服务器实例时,将复原引导卷。

  1. IBM Cloud 控制台,单击 导航菜单 图标 菜单图标 > 基础架构 VPC 图标 > 存储 > Block Storage 卷
  2. 选择创建
  3. 指定卷的位置、卷名称、可选资源组和标签。
  4. 在里面可选配置部分,点击从快照导入。 请选择以下选项之一
    • 单击 Import existing snapshot 查看可用快照列表。 呈现的所有快照都处于 _ 稳定_状态。 默认情况下,不可启动选项卡被选中,其中列出了所有数据卷快照。 要还原启动卷,请单击 Bootable 选项卡。 默认选择将卷附加到新虚拟服务器实例。 在创建实例时复原引导卷。
    • 单击按 CRN 导入快照,并提供要使用的快照的 CRN。
  5. 单击保存。 有关快照的信息显示在卷供应页面上,包括名称,大小,创建日期,源卷以及是否为可引导快照。 可引导快照信息包括操作系统和映像。 加密从快照继承,并显示在加密部分中。
  6. 点击创建块存储卷

当您刷新 Block Storage for VPC 卷册页面时,新卷册会出现在卷册列表的开头。 如果已成功创建卷,其状态显示为“可用”。 对于独立卷,“附件类型”列为空白 (-)。表行末尾的 操作 菜单 "操作" 图标 提供了一个链接,用于 将 Block Storage for VPC 卷连接到实例

从 CLI 创建 Block Storage for VPC 卷

您可以使用命令行界面 (CLI) 来创建 Block Storage for VPC 卷。

准备工作

在使用CLI之前,您必须安装 IBM Cloud CLI和VPC CLI插件。 有关更多信息,请参阅 CLI 先决条件

  1. 登录 IBM Cloud。
    ibmcloud login --sso -a cloud.ibm.com
    
    此命令会返回 URL 并提示输入密码。 在浏览器中转至该 URL 并登录。 如果成功,您将获得一次性密码。 复制此密码并将其作为响应粘贴到提示上。 成功认证后,系统会提示您选择帐户。 如果您有权访问多个账户,请选择要登录的账户。 响应任何剩余提示以完成登录。

从 CLI 创建 Block Storage for VPC 卷

运行以下命令创建一个 Block Storage for VPC 卷。 提供卷名、概要文件名称和区域中可用性专区的名称。 有关 Block Storage for VPC 概要文件的更多信息,请参阅 概要文件。 额外选项显示在方括号中。

有效的卷标名称可以包含小写字母数字字符(a-z、0-9)和连字符(-)的组合,最多63个字符。 卷名必须以小写字母开头。 卷名在整个 VPC 基础结构中必须唯一。 例如,如果在同一帐户和区域中创建两个同名卷,那么会触发 volume name duplicate 错误。

ibmcloud is volume-create VOLUME_NAME PROFILE_NAME ZONE_NAME [--capacity CAPACITY] [--iops IOPS] [--resource-group-id RESOURCE_GROUP_ID | --resource-group-name RESOURCE_GROUP_NAME] [--tags  TAG_NAME1,TAG_NAME2,...] [--json]

请参阅以下示例。

$ ibmcloud is volume-create demovolume1 custom us-east-1 --capacity 500 --iops 3000 --tags env:test,env:prod
Creating volume demovolume1 in resource group Default under account Test Account as user test.user@ibm.com...

ID                                     r014-e45f9c8c-4655-4a3e-9d90-70c2d64d1746   
Name                                   demovolume1   
CRN                                    crn:v1:bluemix:public:is:us-east-1:a/a1234567::volume:r014-e45f9c8c-4655-4a3e-9d90-70c2d64d1746   
Status                                 pending   
Attachment state                       unattached   
Capacity                               500   
IOPS                                   3000   
Bandwidth(Mbps)                        6291   
Profile                                custom   
Encryption key                         -   
Encryption                             provider_managed   
Resource group                         defaults   
Created                                2023-07-24T16:20:52+00:00   
Zone                                   us-east-1   
Health State                           inapplicable   
Volume Attachment Instance Reference   -   
Active                                 false   
Busy                                   false   
Tags                                   env:test,env:prod
Storage Generation                     1

容量以兆字节为单位,范围从10到16000GB。 如果未指定,缺省容量为 100 GB。 IOPS 值可以是 100 到 48,000 IOPS,具体取决于概要文件和卷大小。 如果未指定,IOPS 值会根据卷概要文件缺省为有效配置。 有关更多信息,请参阅 custom IOPS 表。

卷名最多可以是 63 个小写字母数字字符,并且包含连字符 (-),并且必须以小写字母开头。 卷名在整个 VPC 基础结构中必须唯一。

记下卷标识。 当您将 Block Storage for VPC 附加到虚拟服务器实例、查看 Block Storage for VPC 卷详细信息或删除卷时,需要指定ID。

当卷状态为 pending 时,卷运行状况状态显示 inapplicable。 创建卷后,除非创建失败,否则运行状况状态将显示 OK。 有关更多信息,请参阅 Block Storage for VPC 卷运行状况

将添加用户标记以标识卷资源。 当这些标记与备份策略中的标记匹配时,将根据备份计划中的调度来备份卷。 有关更多信息,请参阅 创建备份策略

通过 CLI 使用客户管理的加密创建独立 Block Storage for VPC 卷

要在命令行界面(CLI)上创建一个由客户管理的加密 Block Storage 卷,请使用带有 --encryption-key 选项的 ibmcloud is volume-create 命令。 encryption_key 选项需要密钥管理服务中根密钥的有效CRN。

ibmcloud is volume-create VOLUME_NAME PROFILE_NAME ZONE_NAME [--encryption-key ENCRYPTION_KEY] [--capacity CAPACITY] [--iops IOPS] [--resource-group-id RESOURCE_GROUP_ID | --resource-group-name RESOURCE_GROUP_NAME] [--output JSON]

以下示例显示了具有定制 IOPS 的卷以及使用客户管理的加密创建的容量。

$ ibmcloud is volume-create demo-cli-volume custom us-east-1 --capacity 300 --iops 1500 --encryption-key crn:v1:bluemix:public:kms:us-east:a/a1234567:3b05b403-8f51-4dac-9114-c777d0a760d4:key:7a8a2761-08e3-455f-a348-144ed604bba9
Creating volume demo-cli-volume under account Test Account as user test.user@ibm.com...

ID                                     r014-3984600c-6f4d-4940-82de-519a867fa3c0   
Name                                   demo-cli-volume   
CRN                                    crn:v1:bluemix:public:is:us-east-1:a/a1234567::volume:r014-3984600c-6f4d-4940-82de-519a867fa3c0   
Status                                 pending   
Attachment state                       unattached   
Capacity                               300   
IOPS                                   1500   
Bandwidth(Mbps)                        3145   
Profile                                custom   
Encryption key                         crn:v1:bluemix:public:kms:us-east:a/a1234567:3b05b403-8f51-4dac-9114-c777d0a760d4:key:7a8a2761-08e3-455f-a348-144ed604bba9   
Encryption                             user_managed   
Resource group                         defaults   
Created                                2023-06-29T20:10:52+00:00   
Zone                                   us-east-1   
Health State                           inapplicable   
Volume Attachment Instance Reference   -   
Active                                 false
Busy                                   false   
Tags                                   -
Storage Generation                     1

从 CLI 从快照创建独立 Block Storage for VPC 卷

运行“ibmcloud is volume-create 命令,在”--snapshot 选项中指定用于创建新卷的快照的名称、ID 或 CRN。 卷已取消连接,如响应中的连接状态所指示。

此示例从由名称指定的快照创建新卷。

$ ibmcloud is volume-create volume-4 general-purpose us-east-1 --snapshot snapshot-3
Creating volume volume-4 under account Test Account as user test.user@ibm.com...

ID                                     r014-dee9736d-08ee-4992-ba8d-3b64a4f0baac
Name                                   volume-4
CRN                                    crn:v1:bluemix:public:is:us-east-1:a/a1234567::volume:r014-dee9736d-08ee-4992-ba8d-3b64a4f0baac
Status                                 pending
Attachment state                       unattached
Capacity                               100
IOPS                                   3000
Bandwidth(Mbps)                        393
Profile                                general-purpose
Encryption key                         -
Encryption                             provider_managed
Resource group                         defaults
Created                                2023-06-29T16:14:59+00:00
Zone                                   us-east-1
Health State                           inapplicable
Volume Attachment Instance Reference   -
Active                                 false
Busy                                   false
Tags                                   -
Storage Generation                     1

有关更多信息,请参阅 CLI 参考中的 ibmcloud is volume-create

创建数据卷作为现有虚拟服务器实例的连接

您可以使用 instance-volume-attachment-add 命令来创建卷并将其连接到实例。 以下示例创建具有 custom 概要文件,100 GB 容量和 100 IOPS 的卷。

ibmcloud is instance-volume-attachment-add acd-vol-attach1 my-instance-1 --profile custom --new-volume-name acd-vol-2 --iops 100 --capacity 100
Creating volume attachment acd-vol-attach1 for instance my-instance-1 under account Test Account as user test.user@ibm.com...

ID                730f-5f63eb4d-2683-4dd6-a20a-5ab06b4061c6   
Name              acd-vol-attach1   
Volume            -   
Status            attaching   
Bandwidth(Mbps)   14   
Type              data   
Device            -   
Auto delete       false   
Created           2023-05-05T07:42:33+05:30   

有关更多信息,请参阅 CLI 参考中的 ibmcloud is instance-volume-attachment-add

通过 CLI 创建实例并向卷添加用户标记

您可以在创建虚拟服务器实例时为引导卷和数据卷指定用户标记。 运行 instance-create 命令并在 user_tags 选项中指定用户标记。 您还可以稍后编辑标记或向指定卷添加更多标记。 有关更多信息,请参阅 VPC CLI 参考

在示例命令中,

  • 引导卷由 --boot-volume 选项定义,该选项指定用户标记 env:test4env:dev4
  • 数据卷连接由 --volume-attach 选项定义,并指定相同的用户标记。

您可以在创建实例后查看引导或数据卷的详细信息时查看用户标记。

ibmcloud is instance-create my-vsi-4 my-vpc-2 us-south-1 bx2-2x8 cli-subnet-1 --image ibm-centos-7-9-minimal-amd64-6 --keys my-keys4 --boot-volume '{"name": "boot-vol-4", "volume": {"name": "my-boot-vol-4", "profile": {"name": "general-purpose"},"user_tags": ["env:test4", "env:dev4"]}}' --volume-attach  '[{"name": "my-vol-att1", "volume": {"name":"my-vol-4", "profile": {"name": "general-purpose"}, "capacity": 10,"user_tags": ["env:test4", "env:dev4"]}}]'

Creating instance my-vsi-4 under account vpcdemo1 as user myuser@mycompany.com...

ID                                    efd06503-f514-4ea2-ba6c-2b9c715e6269
Name                                  my-vsi-4
CRN                                   crn:v1:bluemix:public:is:us-south-1:a/a1234567::instance:efd06503-f514-4ea2-ba6c-2b9c715e6269
Status                                pending
Availability policy on host failure   restart
Startable                             true
Profile                               bx2-2x8
Architecture                          amd64
vCPUs                                 2
Memory(GiB)                           8
Bandwidth(Mbps)                       4000
Volume bandwidth(Mbps)                1000
Network bandwidth(Mbps)               3000
Metadata service                      Enabled
                                      false

Image                                 ID                                          Name
                                      r006-c5471ef3-15f5-4468-964b-f9b4d3ca8120   ibm-centos-7-9-minimal-amd64-6

VPC                                   ID                                          Name
                                      r006-dd1c6831-cc4d-4c40-aab2-6b0c17f41424   my-vpc-2

Zone                                  us-south-1
Resource group                        ID                                 Name
                                      bdd96715c2a44f2bb60df4ff14a543f5   Default

Created                               2022-08-09T09:25:06+05:30
Boot volume                           ID   Name   Attachment ID                               Attachment name
                                      -    -      r006-1bcf5342-c12f-4908-ad0f-99218cd603b9   boot-vol-4

Data volumes                          ID   Name   Attachment ID                               Attachment name
                                      -    -      r006-c034f0f9-2269-44e4-a76a-4f4ad8c47b65   my-vol-att1

通过 CLI 创建实例模板并将用户标记添加到卷

您可以在创建实例时为引导卷和数据卷指定用户标记。 运行 instance-template-create 命令并在 user_tags 参数中指定用户标记。

在以下示例中,该命令向要应用于卷的实例模板添加两个用户标记。

ibmcloud is instance-template-create my-tpl-1 my-vpc-2 us-south-1 bx2-2x8 cli-subnet-1 --image ibm-centos-7-9-minimal-amd64-6 --keys my-keys4 --boot-volume '{"name": "boot-vol-1", "volume": {"name": "my-boot-vol-1", "profile": {"name": "general-purpose"},"user_tags": ["env:test1", "env:dev1"]}}' --volume-attach  '[{"name": "my-vol-att", "volume": {"name":"my-vol-1", "profile": {"name": "general-purpose"}, "capacity": 10,"user_tags": ["env:test1", "env:dev1"] }}]'

Creating instance template my-tpl-1 under account vpcdemo as user myuser@mycompany.com...

ID                          38ef87e9-3a4d-4d72-8450-86c16b76ae0d
Name                        my-tpl-1
CRN                         crn:v1:bluemix:public:is:us-south-1:a/a1234567::instance-template:38ef87e9-3a4d-4d72-8450-86c16b76ae0d
Resource group              Default
Image                       c5471ef3-15f5-4468-964b-f9b4d3ca8120
VPC                         dd1c6831-cc4d-4c40-aab2-6b0c17f41424
Zone                        us-south-1
Profile                     bx2-2x8
Metadata service            Enabled
                            false

Keys                        Key IDs
                            e7d18039-0e0e-4207-8598-de7cca949030

Boot volume                 Name            Capacity   Profile           IOPS   Attachment name   Auto delete   Tags
                            my-boot-vol-1   100        general-purpose   0      boot-vol-1     true          env:test1,env:dev1

Data volumes                ID   Name       Capacity   Profile           IOPS   Attachment name   Auto delete   Tags
                            -    my-vol-1   10         general-purpose   0      my-vol-att        false         env:test1,env:dev1

Primary Network Interface   Name      Subnet ID                                   Security Groups                             Allow source IP spoofing   Reserved IP Address   Reserved IP ID   Reserved IP Name   Reserved IP Auto Delete
                            primary   0617-c1f1e468-3283-4f44-9d08-3d57b77817f1   7c2db5ac-19e0-4d83-8226-e6178fedfe56   false                      -                     -                -                  -

Created                     2022-08-22T09:10:34+05:30

使用实例模板来创建具有用户标记的实例和卷。 请参阅以下示例。

ibmcloud is instance-template-create --template my-tpl-1 --name my-vsi-3 --boot-volume '{"name": "boot-vol-3", "volume": {"name": "my-boot-vol-3", "profile": {"name": "general-purpose"},"user_tags": ["env:test3", "env:dev3"]}}' --volume-attach  '[{"name": "my-vol-att1", "volume": {"name":"my-vol-3", "profile": {"name": "general-purpose"}, "capacity": 10,"user_tags": ["env:test3", "env:dev3"] }}]'

使用 API 创建 Block Storage for VPC 卷

您可以通过直接调用 VPC REST API来创建 Block Storage for VPC 卷。 有关文件共享 VPC API 的更多信息,请参阅 VPC API 参考

准备工作

定义 IAM 令牌、API 端点和 API 版本的变量。 有关指示信息,请参阅设置 API 和 CLI 环境

使用 API 在实例供应过程中创建数据卷

发出 POST /instances 请求以创建实例,并使用 volume_attachments 参数定义卷。 指定卷名,容量和概要文件。 此外,请在请求中指定 generation=2

有效的卷标名称可以包含小写字母数字字符(a-z、0-9)和连字符(-)的组合,最多63个字符。 卷名必须以小写字母开头。 卷名在整个 VPC 基础结构中必须唯一。 例如,如果在同一帐户和区域中创建两个同名卷,那么会触发 volume name duplicate 错误。

此示例指定引导卷和数据卷的客户管理的加密和用户标记。

curl -X POST "$vpc_api_endpoint/v1/instances?version=2022-06-14&generation=2" -H "Authorization: $iam_token" -d '{
  "boot_volume_attachment": {
    "volume": {
      "encryption_key": {"crn": "crn:[...]"},
      "name": "my-boot-volume",
      "profile": {"name": "general-purpose"},
      "storage_generation": 1,
      "user_tags": {"env:test","env:prod"}}},
  "image": {"id": "9aaf3bcb-dcd7-4de7-bb60-24e39ff9d366"},
  "keys": [{"id": "363f6d70-0000-0001-0000-00000013b96c"}],
  "name": "my-instance",
  "placement_target": {"id": "0787-8c2a09be-ee18-4af2-8ef4-6a6060732221"},
  "primary_network_interface": {
    "name": "my-network-interface",
    "subnet": {"id": "bea6a632-5e13-42a4-b4b8-31dc877abfe4"}},
  "profile": {"name": "bx2-2x8"},
  "volume_attachments": [
    {"volume": {
        "capacity": 1000,
        "encryption_key": {"crn": "crn:[...]"},
        "name": "my-data-volume",
        "profile": {"name": "5iops-tier"},
        "storage_generation": 1,
        "user_tags": {"env:test","env:prod"}}
    }],
  "vpc": {"id": "f0aae929-7047-46d1-92e1-9102b07a7f6f"},
  "zone": {"name": "us-south-1"}
}'

成功的响应如下所示:

{
  "bandwidth": 4000,
  "boot_volume_attachment": {
    "device": {
      "id": "a8a15363-a6f7-4f01-af60-715e85b28141"
    },
    "href": "https://us-south.iaas.cloud.ibm.com/v1/instances/eb1b7391-2ca2-4ab5-84a8-b92157a633b0/volume_attachments/7389-a8a15363-a6f7-4f01-af60-715e85b28141",
    "id": "a8a15363-a6f7-4f01-af60-715e85b28141",
    "name": "my-boot-volume-attachment",
    "volume": {
      "crn": "crn:[...]",
      "href": "https://us-south.iaas.cloud.ibm.com/v1/volumes/49c5d61b-41e7-4c01-9b7a-1a97366c6916",
      "id": "49c5d61b-41e7-4c01-9b7a-1a97366c6916",
      "name": "my-boot-volume"
    }
  },
  "created_at": "2022-06-15T16:11:57Z",
  "crn": "crn:[...]",
  "dedicated_host": {
    "crn": "crn:[...]",
    "href": "https://us-south.iaas.cloud.ibm.com/v1/dedicated_hosts/0787-8c2a09be-ee18-4af2-8ef4-6a6060732221",
    "id": "0787-8c2a09be-ee18-4af2-8ef4-6a6060732221",
    "name": "test-new",
    "resource_type": "dedicated_host"
  },
  "disks": [],
  "href": "https://us-south.iaas.cloud.ibm.com/v1/instances/eb1b7391-2ca2-4ab5-84a8-b92157a633b0",
  "id": "eb1b7391-2ca2-4ab5-84a8-b92157a633b0",
  "image": {
    "crn": "crn:[...]",
    "href": "https://us-south.iaas.cloud.ibm.com/v1/images/9aaf3bcb-dcd7-4de7-bb60-24e39ff9d366",
    "id": "9aaf3bcb-dcd7-4de7-bb60-24e39ff9d366",
    "name": "my-image"
  },
  "memory": 8,
  "name": "my-instance",
  "network_interfaces": [
    {
      "href": "https://us-south.iaas.cloud.ibm.com/v1/instances/e402fa1b-96f6-4aa2-a8d7-703aac843651/network_interfaces/7ca88dfb-8962-469d-b1de-1dd56f4c3275",
      "id": "7ca88dfb-8962-469d-b1de-1dd56f4c3275",
      "name": "my-network-interface",
      "primary_ipv4_address": "10.0.0.32",
      "resource_type": "network_interface",
      "subnet": {
        "crn": "crn:[...]",
        "href": "https://us-south.iaas.cloud.ibm.com/v1/subnets/7389-bea6a632-5e13-42a4-b4b8-31dc877abfe4",
        "id": "bea6a632-5e13-42a4-b4b8-31dc877abfe4",
        "name": "my-subnet"
      }
    }
  ],
  "placement_target": {
    "crn": "crn:[...]",
    "href": "https://us-south.iaas.cloud.ibm.com/v1/dedicated_hosts/0787-8c2a09be-ee18-4af2-8ef4-6a6060732221",
    "id": "0787-8c2a09be-ee18-4af2-8ef4-6a6060732221",
    "name": "test-new",
    "resource_type": "dedicated_host"
  },
  "primary_network_interface": {
    "href": "https://us-south.iaas.cloud.ibm.com/v1/instances/e402fa1b-96f6-4aa2-a8d7-703aac843651/network_interfaces/7ca88dfb-8962-469d-b1de-1dd56f4c3275",
    "id": "7ca88dfb-8962-469d-b1de-1dd56f4c3275",
    "name": "my-network-interface",
    "primary_ipv4_address": "10.0.0.32",
    "resource_type": "network_interface",
    "subnet": {
      "crn": "crn:[...]",
      "href": "https://us-south.iaas.cloud.ibm.com/v1/subnets/bea6a632-5e13-42a4-b4b8-31dc877abfe4",
      "id": "bea6a632-5e13-42a4-b4b8-31dc877abfe4",
      "name": "my-subnet"
    }
  },
  "profile": {
    "href": "https://us-south.iaas.cloud.ibm.com/v1/instance/profiles/bx2-2x8",
    "name": "bx2-2x8"
  },
  "resource_group": {
    "href": "https://resource-controller.cloud.ibm.com/v2/resource_groups/4bbce614c13444cd8fc5e7e878ef8e21",
    "id": "4bbce614c13444cd8fc5e7e878ef8e21",
    "name": "Default"
  },
  "status": "running",
  "status_reasons": [],
  "vcpu": {
    "architecture": "amd64",
    "count": 2
  },
  "volume_attachments": [
    {
      "device": {
        "id": "a8a15363-a6f7-4f01-af60-715e85b28141"
      },
      "href": "https://us-south.iaas.cloud.ibm.com/v1/instances/e402fa1b-96f6-4aa2-a8d7-703aac843651/volume_attachments/7389-a8a15363-a6f7-4f01-af60-715e85b28141",
      "id": "a8a15363-a6f7-4f01-af60-715e85b28141",
      "name": "my-boot-volume-attachment",
      "volume": {
        "crn": "crn:[...]",
        "href": "https://us-south.iaas.cloud.ibm.com/v1/volumes/49c5d61b-41e7-4c01-9b7a-1a97366c6916",
        "id": "49c5d61b-41e7-4c01-9b7a-1a97366c6916",
        "name": "my-boot-volume"
      }
    },
    {
      "device": {
        "id": "e77125cb-4df0-4988-a878-531ae0ae0b70"
      },
      "href": "https://us-south.iaas.cloud.ibm.com/v1/instances/e402fa1b-96f6-4aa2-a8d7-703aac843651/volume_attachments/7389-e77125cb-4df0-4988-a878-531ae0ae0b70",
      "id": "e77125cb-4df0-4988-a878-531ae0ae0b70",
      "name": "my-volume-attachment-1",
      "volume": {
        "crn": "crn:[...]",
        "href": "https://us-south.iaas.cloud.ibm.com/v1/volumes/2cc091f5-4d46-48f3-99b7-3527ae3f4392",
        "id": "2cc091f5-4d46-48f3-99b7-3527ae3f4392",
        "name": "my-data-volume"
      }
    }
  ],
  "vpc": {
    "crn": "crn:[...]",
    "href": "https://us-south.iaas.cloud.ibm.com/v1/vpcs/f0aae929-7047-46d1-92e1-9102b07a7f6f",
    "id": "f0aae929-7047-46d1-92e1-9102b07a7f6f",
    "name": "my-vpc"
  },
  "zone": {
    "href": "https://us-south.iaas.cloud.ibm.com/v1/regions/us-south/zones/us-south-1",
    "name": "us-south-1"
  }
}

使用 API 创建独立 Block Storage for VPC 卷

发出 POST /volumes 请求以创建卷。 指定名称,IOPS,容量,概要文件和区域。 此外,请在请求中指定 generation=2

以下示例在 us-south 区域中创建了具有 50 MB 容量和 100 IOPS 的 custom 卷。 该请求还指定客户管理的加密的客户根密钥和资源组。

curl -X POST "$vpc_api_endpoint/v1/volumes?version=2022-06-14&generation=2" \
-H "Authorization: $iam_token" \
-d '{
      "name": "my-volume-4",
      "iops": 100,
      "capacity": 50,
      "zone": {"name": "us-south-2"},
      "profile": {"name": "custom"},
      "encryption_key":{"crn":"crn:[...]"},
      "resource_group": {"id": "2d1bb5a8-40a8-447a-acf7-0eadc8aeb054"}
    }'

成功的回复示例如下。

{
  "capacity": 50,
  "created_at": "2022-06-14T23:16:53.000Z",
  "crn": "crn:[...]",
  "encryption": "user_managed",
  "encryption_key": {
    "crn": "crn:[...]"
  },
  "health_reasons": [],
  "health_state": "ok",
  "href": "https://us-south.iaas.cloud.ibm.com/v1/volumes/2d1bb5a8-40a8-447a-acf7-0eadc8aeb054",
  "id": "2d1bb5a8-40a8-447a-acf7-0eadc8aeb054",
  "iops": 100,
  "name": "my-volume-4",
  "profile": {
    "href": "https://us-south.iaas.cloud.ibm.com/v1/volume/profiles/custom",
    "name": "custom"
  },
  "resource_group": {
    "href": "https://resource-controller.cloud.ibm.com/v2/resource_groups/4bbce614c13444cd8fc5e7e878ef8e21",
    "id": "4bbce614c13444cd8fc5e7e878ef8e21",
    "name": "Default"
  },
  "status": "available",
  "status_reasons": [],
  "volume_attachments": [],
  "zone": {
    "href": "https://us-south.iaas.cloud.ibm.com/v1/regions/us-south/zones/us-south-2",
    "name": "us-south-2"
  }
}

有关使用 API 创建卷的更多信息,请参阅 创建 Block Storage 卷 以及 创建卷 的 API 参考。

使用API从快照创建数据卷

您可以在 POST /volumes 调用中指定快照 ID、名称或 CRN,以创建独立数据卷。 当您指定快照的 storage_generation 属性值为1时,将创建具有相同 storage_generation 值的新块存储卷,并且只有同一代卷的配置文件可以应用于该卷。

将数据卷连接到虚拟服务器实例时,将完全复原数据。 有关详细信息,请参阅 关于从快照还原卷。 有关 API 调用示例,请参阅 从未附上卷的快照中恢复数据卷

使用 Terraform 创建 Block Storage for VPC 卷

要使用 Terraform,请下载 Terraform CLI 并配置 IBM Cloud® 提供程序插件。 有关更多信息,请参阅 Terraform 入门

VPC 基础架构服务使用特定区域端点,缺省情况下该端点以 us-south 为目标。 如果 VPC 是在另一个区域中创建的,请确保将 provider.tf 文件中的提供程序块中的相应区域作为目标。

请参阅以下以非缺省 us-south 区域为目标的示例。

provider "ibm" {
   region = "eu-de"
}

有效的卷标名称可以包含小写字母数字字符(a-z、0-9)和连字符(-)的组合,最多63个字符。 卷名必须以小写字母开头。 卷名在整个 VPC 基础结构中必须唯一。 例如,如果在同一帐户和区域中创建两个同名卷,那么会触发 volume name duplicate 错误。

使用 Terraform 创建独立 Block Storage for VPC 卷

要创建 Block Storage for VPC 卷,请使用 ibm_is_volume 资源。 以下示例创建具有 4 TB 容量的卷和 10iops-tier 性能概要文件。

resource "ibm_is_volume" "example" {
  name     = "example-volume"
  profile  = "10iops-tier"
  zone     = "us-south-1"
  capacity = 4000
}

以下示例创建具有 custom 概要文件的卷。 创建的卷具有 200 MB 容量,可以执行 1000 IOPS。

resource "ibm_is_volume" "example" {
  name           = "example-volume"
  profile        = "custom"
  zone           = "us-south-1"
  iops           = 1000
  capacity       = 200
  encryption_key = "crn:v1:bluemix:public:kms:us-south:a/a1234567:e4a29d1a-2ef0-42a6-8fd2-350deb1c647e:key:5437653b-c4b1-447f-9646-b2a2a4cd6179"
}

有关自变量和属性的更多信息,请参阅 ibm_is_volume

使用 Terraform 从快照创建独立 Block Storage for VPC 卷

要从快照创建 Block Storage for VPC 卷,请使用 ibm_is_volume 资源。 以下示例根据由其标识标识的快照创建卷。 您也可以使用名称或 CRN 来标识快照。

resource "ibm_is_volume" "storage" {
  name            = "example-volume"
  profile         = "general-purpose"
  zone            = "us-south-1"
  source_snapshot = ibm_is_snapshot.example.id
}

有关自变量和属性的更多信息,请参阅 ibm_is_volume

在使用 Terraform 的实例供应过程中从快照创建引导卷

要在创建虚拟服务器实例时从快照创建数据卷,请使用 ibm_is_instance 资源。 以下示例创建名为 "example-vsi-restore" 的虚拟服务器实例。 在 boot_volume 参数中定义了引导卷及其名称,源快照和用户标记。

resource "ibm_is_snapshot" "example" {
  name          = "example-snapshot"
  source_volume = ibm_is_instance.example.volume_attachments[0].volume_id
}

resource "ibm_is_instance" "example" {
  name    = "example-vsi-restore"
  profile = "cx2-2x4"
  boot_volume {
    name     = "boot-restore"
    snapshot = ibm_is_snapshot.example.id
    tags     = ["tags-0"]
  }
  primary_network_interface {
    subnet = ibm_is_subnet.example.id
  }
  vpc  = ibm_is_vpc.example.id
  zone = "us-south-1"
  keys = [ibm_is_ssh_key.example.id]
  network_interfaces {
    subnet = ibm_is_subnet.example.id
    name   = "eth1"
  }
}

如果要从另一个账户的快照中还原卷,可以使用 "source_snapshot_crn 参数,用其 CRN 而不是 ID 来标识快照。

有关自变量和属性的更多信息,请参阅 ibm_is_instance

使用 Terraform 创建要添加到现有实例的数据卷

要创建数据卷并将其连接到虚拟服务器实例,请使用 ibm_is_instance_volume_attachment 资源。 下面的示例使用 general-purpose 卷配置文件创建了一个 20 MB 的数据卷,并将其附加到 ibm_is_instance.example.id 实例。

rresource "ibm_is_instance_volume_attachment" "example" {
  instance = ibm_is_instance.example.id

  name                               = "example-vol-att-1"
  profile                            = "general-purpose"
  capacity                           = "20"
  delete_volume_on_attachment_delete = true
  delete_volume_on_instance_delete   = true
  volume_name                        = "example-vol-1"
}

有关自变量和属性的更多信息,请参阅 ibm_is_instance_volume_attachment

后续步骤

您可以继续创建更多 Block Storage for VPC 卷或管理现有卷。