IBM Cloud Docs
将定制映像导入并验证到 VPC 中

将定制映像导入并验证到 VPC 中

您可以在本地创建自己的定制映像,然后从 IBM Cloud® Object Storage将其导入到 IBM Cloud® Virtual Private Cloud 基础结构。 然后,您可以使用自定义图像创建一个新的虚拟服务器实例,该实例在KVM虚拟机管理程序上运行。 如果计划在专用目录中使用定制映像,那么必须首先将该定制映像导入到 IBM Cloud VPC 中并对其进行验证。

您还可以在导入时创建一个自定义的启动卷图像,并将其附加到服务器上。 有关更多信息,请参阅 关于从卷创建映像

先决条件

要完成此任务,您必须具有可用的 IBM Cloud® Object Storage 实例。 您还必须创建一个授权,以便VPC的图像服务能够访问 IBM Cloud Object Storage 中的图像。 有关更多信息,请参阅 授予对 IBM Cloud Object Storage 的访问权以导入和导出映像

所有自定义图像必须符合以下要求:所有自定义图像必须符合以下要求:所有自定义图像必须符合以下要求:所有自定义图像必须符合以下要求

  • 包含单个文件或卷。
  • 应为 qcow2 或 vhd 格式。
  • 启用云启动或使用 ESXi kickstart 启动。
  • 大小不超过 250 GB。
  • 最小大小为 10 GB。 对于小于 10 GB 的任何映像,大小将向上取整为 10 GB。

导入定制映像时,请牢记以下注意事项:

  • 导入定制映像时,该映像会成为将其导入到的帐户的专用映像。
  • 您选择导入镜像的区域就是您可以根据该镜像创建虚拟服务器的区域。
  • 对于具有 Red Hat Enterprise Linux® 或 Windows ® 操作系统的定制映像,必须选择相应版本的操作系统。 根据配置映像的方式,选择自带许可证 byol,或者如果计划通过 IBM Cloud对操作系统进行许可,请选择未附加 byol 的版本。

有关定制映像的更多信息,请参阅 定制映像入门

使用 UI 导入定制图像

如果 IBM Cloud Object Storage 中有可用映像,那么可以使用 IBM Cloud VPC 控制台将其导入到 IBM Cloud 基础架构。

  1. 确保兼容的定制映像在 IBM Cloud Object Storage 中可用。 要将图像上载到 IBM Cloud Object Storage,请在存储区的“对象”页面上,单击 上载。 可以使用 Aspera 高速传输插件来上传大于 200 MB 的映像。 有关更多信息,请参阅 创建 Linux 定制映像创建 Windows 定制映像自带许可证上载数据 到 IBM Cloud Object Storage。
  2. IBM Cloud 控制台中,转至 “菜单”图标 "菜单" 图标 > VPC 基础结构> 计算> 映像
  3. 定制图像 选项卡上,单击 创建
  4. 填写表 1 中描述的字段,然后单击 创建定制图像
导入自定义图像用户界面字段
字段
地区 选择您希望定制映像可用于供应的特定地理区域和区域。
名称 自定义图片需要命名。
资源组 选择自定义图片的资源组。
标记 您可以将标签分配给此资源,以便可以轻松地过滤资源列表中的资源。
选择 Cloud Object Storage 作为源。 将显示一个列表,您可以从中选择存储要导入的映像的 IBM Cloud Object Storage 服务实例。
是否需要改为从卷创建定制映像? 通过选择 虚拟服务器实例引导卷块存储器引导卷来选择定制映像的源。 有关更多信息,请参阅 从卷创建映像
地区 选择存储映像的特定地理区域。
存储区 选择存储映像的 IBM Cloud Object Storage 存储区。
名称 选择 IBM Cloud Object Storage 服务实例中要导入的映像文件。 如果要导入已加密的映像,那么必须使用 QEMU 和您自己的口令使用 LUKS 加密对该映像进行加密。 有关更多信息,请参阅 加密映像
操作系统

选择映像中包含的操作系统。

对于具有 Red Hat Enterprise Linux 或 Windows 操作系统的定制映像,您可以通过 IBM Cloud自带许可证 (BYOL) 或许可证。

对于 Red Hat Enterprise Linux 或 Windows BYOL 定制映像,必须选择在名称后追加 -byol 的操作系统。 例如,如果您具有 Windows 2019 BYOL 定制映像,请针对操作系统选择 windows-2019-amd64-byol。 导入 BYOL 定制映像时未能选择 -byol 版本的操作系统可能导致无法启动虚拟服务器。

如果配置了 Red Hat Enterprise Linux 或 Windows 定制映像以通过 IBM Cloud进行许可,那么必须选择非 BYOL 操作系统。 例如,如果您具有计划通过 IBM Cloud许可的 Windows 2019 定制映像,请在导入定制映像时选择 windows-2019-amd64 作为操作系统。

对于使用通用操作系统的定制映像,请选择 Generic ,然后选择相应的版本。

备注:

  • 若要使用未在 IBM Cloud VPC 中列出的操作系统创建自定义镜像,您必须创建一个使用通用操作系统的自定义镜像。 有关更多信息,请参阅 创建通用操作系统定制映像

  • 如果映像需要该技术来引导和初始化,请选择 ESXi kickstart 版本。 但是,此选项仅可用于裸机服务器。

加密 默认选项是“供应商管理”。 如果尚未使用 QEMU 对映像进行加密,请使用缺省值 Provider-managed。 如果要导入使用 QEMU 和您自己的口令加密的映像,请选择用于存储保护口令的客户根密钥 (CRK) 的密钥管理服务。 选择 Key ProtectHyper Protect Crypto Services。 VHD格式的图像不支持加密。
加密服务实例 对于加密映像,请选择密钥管理服务的特定实例,其中存储了用于打包加密口令的 CRK。 有关更多信息,请参阅 设置密钥管理服务和密钥
密钥名称 选择用于打包加密口令的客户根密钥 (CRK)。 有关更多信息,请参阅 设置密钥管理服务和密钥
包装的数据加密密钥 对于已加密的映像,请指定与打包数据加密密钥 (WDEK) 相关联的密文。 WDEK 是通过将用于使用客户根密钥加密映像的口令打包而生成的。 有关更多信息,请参阅 设置密钥管理服务和密钥
管理映像生命周期 (可选) 选择以调度映像的状态更改。 您可以调度单个状态变更或调度映像的完整生命周期。 映像状态为:

  • available: 映像可用于创建实例。

  • deprecated: 映像仍可用于供应实例。 在状态更改为 obsolete之前,使用 deprecated 状态可能会阻止使用该映像。

  • obsolete: 该映像不可用于供应实例。

  • 调度完整生命周期: 您可以同时调度 deprecatedobsolete 状态更改。

您可以在三种状态之间来回移动。 将仅显示您可以更改为的状态。 您可以使用日历日期和时间或天数来调度状态更改。 废弃日期必须始终晚于废弃日期。

使用 CLI 导入定制映像

确保兼容的定制映像在 IBM Cloud Object Storage 中可用。 有关更多信息,请参阅 创建 Linux 定制映像创建 Windows 定制映像创建通用操作系统定制映像自带许可证将数据 上载到 IBM Cloud Object Storage。

当您在 IBM Cloud Object Storage 中有一个图像可用时,您可以使用命令行界面(CLI)将其导入到 IBM Cloud VPC 基础架构中。

要使用 CLI 导入定制映像,请使用 ibmcloud is image-create 命令。 指定要使用 IMAGE_NAME 变量创建的定制映像的名称。 该名称不能由区域中的另一个映像使用,并且将为系统提供的映像保留以 ibm- 开头的名称。 您还必须指定源; 例如,指定带有图像文件位置的 --file 选项。 使用映像的操作系统名称指定 --os-name 选项。

ibmcloud is image-create IMAGE_NAME [--file IMAGE_FILE_LOCATION] [--os-name OPERATING_SYSTEM_NAME]

以下示例创建名称为 my-ubuntu-16-amd64 的定制映像。 图像源位置为 cos://us-south/custom-image-vpc-bucket/customImage-0.qcow2。 操作系统为 ubuntu-16-amd64

ibmcloud is image-create my-ubuntu-16-amd64 --file cos://us-south/custom-image-vpc-bucket/customImage-0.qcow2 --os-name ubuntu-16-amd64

有关更多信息,请参阅 VPC CLI 参考页面中的 ibmcloud is image-create

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

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

指定要使用 IMAGE_NAME 变量创建的定制映像的名称。 该名称不能由区域中的另一个映像使用,并且将为系统提供的映像保留以 ibm- 开头的名称。 您还必须指定源; 例如,指定带有图像文件位置的 --file 选项。 使用映像的操作系统名称指定 --os-name 选项。

要调度 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

调度日期和时间时,不能使用当前日期和时间或将来的日期和时间。 例如,如果是 6 月 12 日的 8 AM,那么调度的日期和时间必须在 6 月 12 日的 8 AM 之后。 如果同时定义 deprecate-atobsolete-at 日期和时间,那么 deprecate-at 日期必须晚于 obsolete-at 日期和时间。

ibmcloud is image-create IMAGE_NAME [--file IMAGE_FILE_LOCATION] [--os-name OPERATING_SYSTEM_NAME] [--deprecate-at YYYY-MM-DDThh:mm:ss+hh:mm] [--obsolete-at YYYY-MM-DDThh:mm:ss+hh:mm]

以下示例创建名称为 my-ubuntu-16-amd64 的定制映像。 图像源位置为 cos://us-south/custom-image-vpc-bucket/customImage-0.qcow2。 操作系统为 ubuntu-16-amd64。 已安排在 2023-03-01T06:11:28+05:30 上不推荐使用该映像。 该映像已调度为在 2023-12-31T06:11:28+05:30 上过时。

ibmcloud is image-create my-ubuntu-16-amd64 --file cos://us-south/custom-image-vpc-bucket/customImage-0.qcow2 --os-name ubuntu-16-amd64 --deprecate-at 2023-03-01T06:11:28+05:30 --obsolete-at 2023-12-31T06:11:28+05:30

有关更多信息,请参阅 VPC CLI 参考页面中的 ibmcloud is image-create

使用 API 导入定制映像

确保兼容的定制映像在 IBM Cloud Object Storage 中可用。 有关更多信息,请参阅 创建 Linux 定制映像创建 Windows 定制映像创建通用操作系统定制映像自带许可证上载数据 到 IBM Cloud Object Storage。

当您在 IBM Cloud Object Storage中具有可用映像时,可以使用应用程序编程接口 (API) 将其导入到 IBM Cloud VPC 基础结构。

要使用 API 导入定制映像,请使用 创建映像

name 不能由区域中的另一个映像使用,以 ibm- 开头的名称将保留用于系统提供的映像。 使用图像的位置指定 file.href 子属性。 使用映像操作系统的名称指定 operating_system.name 子属性。

通用操作系统定制映像是可用于评估和测试目的的 Beta 功能。 通用操作系统具有 family 个 (共 Generic 个)。 确保选择 allow_user_image_creation 值为 true 的值以及操作系统正确引导和初始化所需的 user_data_format。 有关更多信息,请参阅 用户数据格式注意事项

以下示例导入名称为 my-image,源位置为 cos://us-south/my-bucket/my-image.qcow2 的定制映像,该映像的操作系统为 debian-9-amd64

curl -X POST "$vpc_api_endpoint/v1/images?version=2023-02-21&generation=2" -H "Authorization: Bearer $iam_token" -d '{
      "name": "my-image",
      "file": {
        "href": "cos://us-south/my-bucket/my-image.qcow2"
      },
      "operating_system": {
        "name": "debian-9-amd64"
      }
    }'

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

使用应用程序编程接口 (API) 导入定制映像时,还可以使用 创建映像 命令同时调度 IBM Cloud VPC 定制映像的生命周期状态更改。

name 不能由区域中的另一个映像使用,以 ibm- 开头的名称将保留用于系统提供的映像。 使用图像的位置指定 file.href 子属性。 使用映像操作系统的名称指定 operating_system.name 子属性。

要调度 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

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

以下示例导入名称为 my-image,源位置为 cos://us-south/my-bucket/my-image.qcow2 的定制映像,该映像的操作系统为 debian-9-amd64。 已安排在 2023-03-01T06:11:28+05:30 上不推荐使用该映像。 该映像已调度为在 2023-12-31T06:11:28+05:30 上过时。

curl -X POST "$vpc_api_endpoint/v1/images?version=2023-02-21&generation=2" -H "Authorization: Bearer $iam_token" -d '{
      "name": "my-image",
      "file": {
        "href": "cos://us-south/my-bucket/my-image.qcow2"
      },
      "operating_system": {
        "name": "debian-9-amd64"
      },
      "deprecation_at": "2023-03-01T06:11:28+05:30",
      "obsolescence_at": "2023-12-31T06:11:28+05:30"
    }'

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

使用 Terraform 导入定制映像时,还可以使用 Terraform 资源命令 ibm_is_image同时调度 IBM Cloud VPC 定制映像的生命周期状态更改。

name 属性不能由区域中的另一个映像使用,以 ibm- 开头的名称将保留用于系统提供的映像。

要调度 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

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

以下示例导入名称为 example-image,源位置为 cos://us-south/buckettesttest/livecd.ubuntu-cpc.azure.vhd 的定制映像,该映像的操作系统为 ubuntu-16-04-amd64。 已安排在 2023-11-28T15:10:00.000Z 上不推荐使用该映像。 该映像已调度为在 2023-11-28T15:10:00.000Z 上过时。

  • 将状态变更调度为 deprecated

    resource "ibm_is_image" "example" {
      name               = "example-image"
      href               = "cos://us-south/buckettesttest/livecd.ubuntu-cpc.azure.vhd"
      operating_system   = "ubuntu-16-04-amd64"
      deprecated_at      = "2023-11-28T15:10:00.000Z"
    }
    
  • 将状态变更调度为 obsolete

    resource "ibm_is_image" "example" {
      name               = "example-image"
      href               = "cos://us-south/buckettesttest/livecd.ubuntu-cpc.azure.vhd"
      operating_system   = "ubuntu-16-04-amd64"
      obsolescence_at    = "2023-11-28T15:10:00.000Z"
    }
    

使用 UI 验证导入的定制映像

导入定制映像后,可以查看将该映像导入到 IBM Cloud VPC时为该映像生成的校验和。

如果在导入映像之前在本地生成校验和,那么可以比较这两个校验和以确保它们完全相同。 匹配的校验和指示图像未改变。

  1. IBM Cloud 控制台中,转至 “菜单”图标 "菜单" 图标 > VPC 基础结构> 计算> 映像

  2. 定制映像 选项卡上,从定制映像列表中,单击要验证的定制映像的名称。

  3. 在图像详细信息侧面板中,找到 校验和 (SHA256) 字段。 您将看到类似于 6809606da67eb83670e6249e54e94043eb43c0471669fb96ea4050c4c07e2df7的内容。

    仅适用于 z/OS Wazi aaS 定制映像: 无法验证从 Wazi Image Builder部署的已导入定制映像的校验和。

  4. 将“校验和”(SHA256) 值与在本地计算映像的校验和时生成的输出进行比较。

    • 示例 Linux 命令: sha256sum ubuntu_image.qcow2
    • 示例 Mac 命令: shasum -a 256 ubuntu_image.qcow2
    • 您收到类似于以下内容的输出: 6809606da67eb83670e6249e54e94043eb43c0471669fb96ea4050c4c07e2df7
  5. 使用此映像创建虚拟服务器实例或裸机服务器。 有关更多信息,请参阅 创建虚拟服务器实例在 VPC 上创建 Bare Metal Servers

使用 CLI 验证导入的定制映像

导入定制映像后,可以查看将该映像导入到 IBM Cloud VPC时为该映像生成的校验和。

如果在导入映像之前在本地生成校验和,那么可以比较这两个校验和以确保它们完全相同。 匹配的校验和指示图像未改变。

要使用 CLI 验证导入的定制映像,请使用 ibmcloud is image 命令。

首先,查看要验证的已导入定制映像的详细信息。 指定要使用 IMAGE 变量创建的定制映像的名称或标识。

ibmcloud is image IMAGE

有关更多信息,请参阅 VPC CLI 参考页面中的 ibmcloud is image

以下示例查看标识为 r134-1d1e92e9-6550-4d06-8483-d674310045fd 的定制映像的详细信息。

ibmcloud is image r134-1d1e92e9-6550-4d06-8483-d674310045fd
Getting image r134-1d1e92e9-6550-4d06-8483-d674310045fd under account Rios IMSLess as user gbgrout@ibm.com...

ID                             r134-589548bd-9241-4ad7-a610-1df6ba020793
Name                           my-image-from-volume-cli-1
CRN                            crn:v1:staging:public:is:us-south:a/efe5afc483594adaa8325e2b4d1290df::image:r134-589548bd-9241-4ad7-a610-1df6ba020793
Status                         available
Operating system               Name             Architecture   Vendor   Version                 Dedicated host only
                               centos-7-amd64   amd64          CentOS   7.x - Minimal Install   false

Source volume                  ID                                          Name
                               r134-6438d80f-4433-4445-be2f-0cca05afff3e   transpose-clubhouse-putt-repent

Created                        2023-03-16T01:11:03+05:30
Deprecation Date               2023-03-01T06:11:28+05:30
Obsolescence Date              2023-12-31T06:11:28+05:30
Visibility                     private
Owner type                     user
Minimum provisioned size(GB)   250
SHA256 Checksum                774d44ac0d55f2bfe869b995565715e5d9970ec23ce7127b2e2776b2618a9f7c
File size(GB)                  2
Encryption                     none
Resource group                 11caaa983d9c4beb82690daab08717e9
Resource type                  image
Catalog Offering Managed       false

将返回的校验和 (SHA256) 值与在本地计算映像的校验和时生成的输出进行比较。

  • 示例 Linux 命令: sha256sum ubuntu_image.qcow2
  • 示例 Mac 命令: shasum -a 256 ubuntu_image.qcow2
  • 您收到类似于以下内容的输出: 6809606da67eb83670e6249e54e94043eb43c0471669fb96ea4050c4c07e2df7

验证校验和 (SHA256) 之后,请使用该映像来创建虚拟服务器。 请参阅 使用 CLI 创建虚拟服务器实例

使用 API 验证导入的定制映像

导入定制映像后,可以查看将该映像导入到 IBM Cloud VPC时为该映像生成的校验和。

如果在导入映像之前在本地生成校验和,那么可以比较这两个校验和以确保它们完全相同。 匹配的校验和指示图像未改变。

要使用 API 作为定制映像进行验证,请使用 列出所有映像

对于 $image_id,指定要验证的定制映像的标识。

curl -X GET "$vpc_api_endpoint/v1/images/$image_id/?version=2023-02-21&generation=2" -H "Authorization: Bearer $iam_token"

将返回的校验和 (SHA256) 值与在本地计算映像的校验和时生成的输出进行比较。

  • 示例 Linux 命令: sha256sum ubuntu_image.qcow2
  • 示例 Mac 命令: shasum -a 256 ubuntu_image.qcow2
  • 您收到类似于以下内容的输出: 6809606da67eb83670e6249e54e94043eb43c0471669fb96ea4050c4c07e2df7

验证校验和 (SHA256) 之后,请使用该映像来创建虚拟服务器。 请参阅 使用 API 创建虚拟服务器实例

后续步骤

验证定制映像后,可以部署和管理定制映像。 有关更多信息,请参阅 管理定制映像

如果计划使用专用目录来管理定制映像,请参阅 为 VPC 启用虚拟服务器映像。 如果计划通过全局目录发布映像,并使用软件套餐向用户记帐,请参阅 使用套餐加入 VPC 的虚拟服务器