IBM Cloud Docs
从卷创建映像

从卷创建映像

您可以从连接到可用虚拟服务器实例的卷创建映像,作为控制台中的引导卷,从 CLI 或使用 API 创建映像。

用于从卷创建映像的方案

您可以通过多种方式从卷创建映像。

  • 选择实例并从该实例的引导卷创建映像。 新映像继承引导卷的加密 (客户管理或 IBM管理)。

  • 选择实例,从该实例的引导卷创建映像,并指定其他加密。 例如,如果引导卷是使用 IBM管理的加密进行加密的,那么可以为新映像选择客户管理的加密。

  • 从 Block Storage 卷列表中的引导卷创建映像。 该卷必须是连接到虚拟服务器实例的引导卷。

根据要创建的映像的大小,作业可能需要 5 分钟到 1.5 小时。 您可以取消排队时间过长的作业。 有关更多信息,请参阅 性能注意事项

在控制台中从卷创建映像

您可以从连接到可用虚拟服务器实例的卷创建映像,作为控制台中的引导卷。

要创建引导卷的映像,必须停止关联的虚拟服务器实例。

  1. IBM Cloud 控制台,单击 导航菜单 图标 菜单图标 > 基础架构 VPC 图标 > 计算 > 图像

  2. 定制图像 选项卡上,单击 创建。 将显示“VPC 的定制图像”页面。

  3. 填写“导入定制图像”页面上的必填字段,然后继续使用其中一个 选项。

    导入自定义图像用户界面字段
    字段
    地区 选择您希望定制映像可用于供应的地理区域和位置。
    地域 从列表中选择。
    区域 从列表中选择。
    详细信息
    名称 自定义图像需要一个名称。
    资源组 为图像选择一个资源组。 该选择以后无法更改。
    标记 您可以将标签分配给此资源,以便可以轻松地过滤资源列表中的资源。
    访问权管理标记 如名称所示,这些标记可以帮助组织访问控制,而无需更新 IAM 策略。 有关更多信息,请参阅 使用标记控制对资源的访问
    通过选择 Virtual server 实例启动卷(默认)或 Block Storage 启动卷来选择自定义映像的来源。
  4. 选择图像源:

    • 选择 虚拟服务器实例引导卷 作为定制映像的源,以显示可用实例的列表。

      • 从列表中选择实例。
      • 如果实例正在运行并且卷选择器已禁用,请单击 操作 图标 "操作" 图标,然后选择 停止
    • 选择 Block Storage 引导卷 作为定制映像的源,以显示可用引导卷的列表。

      • 从列表中选择音量。
      • 如果禁用了卷选择器,请单击 操作 图标 "操作" 图标,然后选择 停止附加的实例
  5. 选择加密类型,即 IBM管理的加密或客户管理的加密。

    • 缺省选择为 提供者管理。 此加密使用 IBM管理的密钥。 以后无法移除加密。
    • 如果要创建使用您自己的密钥进行加密的映像,请选择存储用于保护口令的客户根密钥 (CRK) 的密钥管理服务: Key ProtectHyper Protect Crypto Services。 然后,可以通过两种方式指定密钥。
      • 按实例查找
        1. 从列表中选择密钥管理服务实例。
        2. 选择密钥。 如果没有可用的密钥,请单击 创建 以创建密钥。
      • 按 CRN 查找
        1. 输入加密密钥的 CRN。
  6. 高级选项: 可以使用切换控件来激活映像生命周期管理。 通过选择此选项,您可以管理映像何时变为 deprecatedobsolete。 您可以调度单个状态变更或调度映像的完整生命周期。 您可以使用日历日期和时间或天数来调度状态更改。 废弃日期必须始终晚于废弃日期。 更多信息,请参阅 自定义图像生命周期

  7. 在右侧面板上,单击 创建定制图像

查看和使用定制图像

创建映像时,它将显示在定制映像列表中。

  1. IBM Cloud 控制台中,转至 菜单 菜单图标 > VPC 基础结构 VPC 图标 > 计算> 映像
  2. 定制映像 选项卡上,单击映像名称以查看从中创建该映像的卷。
  3. 查看图像详细信息。 单击 部分中的链接以转至源卷。

要在创建实例时使用此映像,请将其选择为操作系统类型。

  1. IBM Cloud 控制台中,转至 菜单 菜单图标 > VPC 基础结构VPC 图标 > 计算> 虚拟服务器实例
  2. 单击创建。 有关如何配置新虚拟服务器实例的详细信息,请参阅 在控制台中创建虚拟服务器实例。 对于 操作系统,选择 定制映像 磁贴。
  3. 单击 选择定制映像,然后从创建的卷中选择映像。

使用 CLI 从卷创建映像

使用 CLI 从作为主引导卷或辅助引导卷连接到可用虚拟服务器实例的卷创建映像。

准备工作

  1. 确保已下载、安装并初始化以下 CLI 插件:

    • IBM Cloud CLI
    • infrastructure-service 插件

    有关更多信息,请参阅 CLI 参考

  2. 确保您已创建 IBM Cloud VPC

从连接到实例的引导卷创建映像

  1. 要找到要从中创建映像的实例,请在区域中 列出实例。 记下命令输出中的实例标识。

    ibmcloud is instances
    
  2. 停止正在运行的实例,然后从卷创建映像。

    ibmcloud is instance-stop INSTANCE_ID
    
  3. 运行 image-create 命令 以创建引导卷的映像。 指定源卷的标识。

    ibmcloud is image-create IMAGE_NAME [--source-volume VOLUME_ID]
    

    请参阅以下示例:

    $ ibmcloud is image-create test-ifv-vol1 --source-volume ecc68c2f-96a1-4862-bc86-14f47e5d9ed8
    
    Creating image test-ifv-vol1 in resource group  under account Test Account as user test.user@ibm.com...
    ID                 5b2fd4ee-c636-44c4-9673-453fca36832e
    Name               test-ifv-vol1
    CRN                crn:v1:bluemix:public:is:us-south:a/a123456::image:5b2fd4ee-c636-44c4-9673-453fca36832e
    Status             pending
    Status reason      Code                   Message                                                More info
                       image_request_queued   The image request is accepted and waiting for system   -
                                              resources to become available.
    Operating system   Name             Architecture   Vendor   Version                 Dedicated host only
                       centos-8-amd64   amd64          CentOS   8.x - Minimal Install   false
    Source volume      ID                                     Name
                       ecc68c2f-96a1-4862-bc86-14f47e5d9ed8   aa-1-bx-boot-1617035447000
    Created            2021-05-20T09:43:16+08:00
    Visibility         private
    File size(GB)      -
    Encryption         none
    Resource group     f22cf48f-8836-4527-9131-1d7c73ba85e9
    

使用 CLI 调度定制映像生命周期状态更改

使用命令行界面 (CLI) 导入定制映像时,还可以使用 ibmcloud is image-create 命令的选项同时调度 IBM Cloud VPC 定制映像的生命周期状态更改。

使用 IMAGE_NAME 变量指定要创建的定制映像的名称,使用 --source-volume 选项指定源以指示源是现有引导卷。

要调度 deprecate-atobsolete-at 属性,请以 ISO 8601 (YYYY-MM-DDThh:mm:ss+hh:mm) 日期和时间格式指定日期。

  • YYYY 是四位数的年份。
  • MM 是两位数的月份。
  • DD 是两位数的日期。
  • T 分隔日期和时间信息。
  • hh 是两位数的小时。
  • mm 是两位数的分钟数。
  • +hh:mm-hh:mm 是全球标准时区。

因此,北美中央标准时区 (CST) 2023 年 9 月 30 日晚上 8:00 的日期将为 2023-09-30T20:00:00-06:00

在调度日期和时间时,无法使用当前日期和时间。 例如,如果是 2024 年 6 月 12 日上午 8:00,那么调度的日期和时间必须在 2024 年 6 月 12 日上午 8:00 之后。 如果同时定义 deprecate-atobsolete-at 日期和时间,那么 deprecate-at 日期必须晚于 obsolete-at 日期和时间。

ibmcloud is image-create IMAGE_NAME [--source-volume VOLUME_ID] [--deprecate-at YYYY-MM-DDThh:mm:ss+hh:mm] [--obsolete-at YYYY-MM-DDThh:mm:ss+hh:mm]

使用 API 从卷创建映像

通过对 VPC REST API 进行调用,以编程方式从 Block Storage for VPC 引导卷创建定制映像。 您可以列出所有实例和卷,然后使用特定卷的详细信息来创建映像。

准备工作

开始之前,请确保 设置 API 环境

使用 API 从实例引导创建映像

  1. 找到要从中创建映像的实例和引导卷。 使用 list instance 方法获取可用实例的列表。

    curl -X GET "$vpc_api_endpoint/v1/instances?version=2024-06-11&generation=2" -H "Authorization: Bearer $iam_token"
    
  2. 记下实例标识,并使用它来 检索实例 详细信息。

    curl -X GET "$vpc_api_endpoint/v1/instances/$instance_id?version=2024-06-11&generation=2" -H "Authorization: Bearer $iam_token"
    

    响应包含 volume_attachments 部分中引导卷的名称,标识和其他详细信息。

    "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"
        }
      }
    ]
    
  3. 如果实例正在运行,请通过在 POST /instances 调用中指定 stop 操作来将其停止:

    curl -X POST \
    "$vpc_api_endpoint/v1/instances/{instance-id}/gen/actions?ersion=2024-06-11&generation=2"
    -H "Authorization: Bearer $iam_token"\
    -d '{"type":"stop"}'
    
  4. 通过使用引导卷标识,创建映像。 请参阅以下示例:

     curl -X POST "$vpc_api_endpoint/v1/images?version=2024-06-11&generation=2"
     -H "Authorization: Bearer $iam_token"
     -d '{
          "name": "my-image",
          "source_volume": {"id": "4fec84ef-baf9-405d-bf3b-9d5a60e068f7"}
          }`
    

    在示例响应中,source_volume 指示用于创建映像的引导卷。 另外,请注意,映像加密显示为 none,因为源卷使用了缺省 IBM管理的加密。 如果 使用了您自己的根密钥,那么响应将改为显示 user-managed

    {
     "created_at": "2021-05-20T00:05:13.873893Z",
     "crn": "crn:[...]",
     "encryption": "none",
     "file": {},
     "href": "https://us-south.iaas.cloud.ibm.com/v1/images/4fec84ef-baf9-405d-bf3b-9d5a60e068f7",
     "id": "4fec84ef-baf9-405d-bf3b-9d5a60e068f7",
     "name": "test-ifv-boot-volume",
     "operating_system": {
       "architecture": "amd64",
       "display_name": "CentOS 8.x - Minimal Install (amd64)",
       "family": "CentOS",
       "href": "https://us-south.iaas.cloud.ibm.com/v1/operating_systems/centos-8-amd64",
       "name": "centos-8-amd64",
       "vendor": "CentOS",
       "version": "8.x - Minimal Install"
       },
     "resource_group": {
       "href": "https://us-south.iaas.cloud.ibm.com/v1/resource_groups/3fad3f2204eb4998c3964d254ffcd771",
       "id": "3fad3f2204eb4998c3964d254ffcd771",
       "name": "Default"
       },
     "status": "pending",
     "status_reasons": [],
     "visibility": "private",
     "source_volume":  {
       "id": "4fec84ef-baf9-405d-bf3b-9d5a60e068f7",
       "crn": "crn:[...]",
       "href": "",
       "name": "my-boot-volume"
       }
     }
    

从卷创建映像并指定您自己的加密密钥

  1. 如上一节所述,找到实例和引导卷信息。 停止实例。

  2. 获取密钥管理服务实例标识和根密钥 CRN。

  3. 发出 API 请求以 创建映像。 指定根密钥的 CRN 的卷标识,如以下示例中所示。

    curl -X POST "$vpc_api_endpoint/v1/images?version=2024-06-11&generation=2"
    -H "Authorization: Bearer $iam_token"
        -d '{
             "name": "my-encrypted-image",
             "source_volume": {"id": "4fec84ef-baf9-405d-bf3b-9d5a60e068f7"}
             "encryption_key":{"crn":"crn:[...key:...]"
            },
    

    响应包含有关根密钥的信息。

    {
     "created_at": "2021-05-20T00:05:13.873893Z",
     "crn": "crn:[...]",
     "encryption_key": {
       "crn": "crn:[...key:...]"
       },
     "encryption": "user_managed",
     "file": {},
     "href": "https://us-south.iaas.cloud.ibm.com/v1/images/4fec84ef-baf9-405d-bf3b-9d5a60e068f7",
     "id": "4fec84ef-baf9-405d-bf3b-9d5a60e068f7",
     "name": "test-ifv-boot-volume",
     "operating_system": {
       "architecture": "amd64",
       "display_name": "CentOS 8.x - Minimal Install (amd64)",
       "family": "CentOS",
       "href": "https://us-south.iaas.cloud.ibm.com/v1/operating_systems/centos-8-amd64",
       "name": "centos-8-amd64",
       "vendor": "CentOS",
       "version": "8.x - Minimal Install"
       },
     "resource_group": {
       "href": "https://us-south.iaas.cloud.ibm.com/v1/resource_groups/3fad3f2204eb4998c3964d254ffcd771",
       "id": "3fad3f2204eb4998c3964d254ffcd771",
       "name": "Default"
       },
     "status": "pending",
     "status_reasons": [],
     "visibility": "private",
     "source_volume":  {
       "id": "4fec84ef-baf9-405d-bf3b-9d5a60e068f7",
       "crn": "crn:[...]",
       "href": "",
       "name": "ifv-boot-vol"
       }
     }
    

使用 API 调度定制映像生命周期状态更改

使用应用程序编程接口 (API) 从卷创建映像时,可以同时调度定制映像的生命周期状态更改。

name 不能由区域中的另一个映像使用,以 ibm- 开头的名称将保留用于系统提供的映像。 指定 source.volume 子属性以指示来自卷的映像源。

要调度 deprecation_atobsolescence_at 属性,请以 ISO 8601 (YYYY-MM-DDThh:mm:ss+hh:mm) 日期和时间格式指定日期。

  • YYYY 是四位数的年份
  • MM 是两位数的月份
  • DD 是两位数的日
  • T 分隔日期和时间信息
  • hh 是两位数的小时
  • mm 是两位数的分钟数
  • +hh:mm-hh:mm 是全球标准时区

因此,北美中央标准时区 (CST) 2023 年 9 月 30 日晚上 8:00 的日期将为 2023-09-30T20:00:00-06:00

在调度日期和时间时,无法使用当前日期和时间。 例如,如果是 2024 年 6 月 12 日上午 8:00,那么调度的日期和时间必须在 2024 年 6 月 12 日上午 8:00 之后。 如果同时定义 deprecation_atobsolescence_at 日期和时间,那么 obsolescence_at 日期必须晚于 deprecation_at 日期和时间。

curl -X POST "$vpc_api_endpoint/v1/images?version=2023-02-21&generation=2"\
-H "Authorization: Bearer $iam_token"\
-d '{
      "name": "test-ifv-boot-volume",
      "source_volume": {
    	  "id": "4fec84ef-baf9-405d-bf3b-9d5a60e068f7"
      },
      "deprecation_at": "2023-03-01T06:11:28+05:30",
      "obsolescence_at": "2023-12-31T06:11:28+05:30"
    }'

后续步骤