更新时间:2024-02-27 GMT+08:00

将云硬盘导出为镜像

功能介绍

将系统盘或数据盘的数据导出为IMS镜像,导出的镜像在IMS的私有镜像列表中可以查看并使用。

接口约束

云硬盘容量需≤1TB。

调用方法

请参见如何调用API

URI

POST /v2/{project_id}/volumes/{volume_id}/action

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

项目ID。

获取方法请参见"获取项目ID"。

volume_id

String

云硬盘ID。

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。

表3 请求Body参数

参数

是否必选

参数类型

描述

os-volume_upload_image

CinderExportToImageOption object

标记将云硬盘导出为镜像的操作。

表4 CinderExportToImageOption

参数

是否必选

参数类型

描述

container_format

String

云硬盘导出镜像的容器类型。

目前支持ami、ari、aki、ovf、bare。默认是bare。

缺省值:bare

枚举值:

  • ami

  • ari

  • aki

  • ovf

  • bare

disk_format

String

云硬盘导出镜像的格式。

目前支持vhd、zvhd、zvhd2、raw、qcow2。默认是vhd。

缺省值:vhd

枚举值:

  • vhd

  • zvhd

  • zvhd2

  • raw

  • qcow2

force

Boolean

强制导出镜像的标示,默认值是false。

当force标记为false时,云硬盘处于正在使用状态时,不能强制导出镜像。 当force标记为true时,即使云硬盘处于正在使用状态时,仍可以导出镜像。

image_name

String

云硬盘导出镜像的名称。

名称的长度范围为1~128位。 名称只能包含以下字符:大写字母、小写字母、中文、数字、特殊字符包含“-”、“.”、“_”和空格。

__os_type

String

云硬盘导出镜像的系统类型。目前只支持“windows”和“linux”,默认值是“linux”。说明:只有云硬盘的volume_image_metadata信息中无“__os_type”字段且云硬盘状态为“available”时,设置的__os_type才会生效。如果不传递该参数,则使用默认的“linux”值作为镜像的系统类型。

缺省值:linux

枚举值:

  • windows

  • linux

响应参数

状态码: 202

表5 响应Body参数

参数

参数类型

描述

os-volume_upload_image

Image object

标记将云硬盘导出为镜像的操作。

表6 Image

参数

参数类型

描述

container_format

String

云硬盘导出镜像的容器类型。

目前支持ami、ari、aki、ovf、bare。默认是bare。

disk_format

String

云硬盘导出镜像的格式。

目前支持vhd、zvhd、zvhd2、raw、qcow2。默认是vhd。

display_description

String

云硬盘描述信息。

id

String

云硬盘ID。

image_id

String

云硬盘导出镜像的ID。

image_name

String

云硬盘导出镜像的名称

size

Integer

云硬盘容量。

status

String

云硬盘导出镜像后的状态,正常值为 “uploading”。

updated_at

String

云硬盘更新时间。

时间格式:UTC YYYY-MM-DDTHH:MM:SS.XXXXXX

volume_type

VolumeType object

云硬盘类型的信息。

表7 VolumeType

参数

参数类型

描述

id

String

云硬盘类型的ID。

name

String

云硬盘类型名称。

extra_specs

VolumeTypeExtraSpecs object

云硬盘类型的规格。

description

String

云硬盘类型的描述信息。

qos_specs_id

String

预留属性。

is_public

Boolean

预留属性。

表8 VolumeTypeExtraSpecs

参数

参数类型

描述

RESKEY:availability_zones

String

支持当前云硬盘类型的可用区列表,列表的元素以逗号分隔。 若没有该参数,则表示当前云硬盘类型支持所有可用区。

availability-zone

String

预留属性。

os-vendor-extended:sold_out_availability_zones

String

当前云硬盘类型已售罄的可用区列表,列表的元素以逗号分隔。

volume_backend_name

String

预留属性。

HW:availability_zone

String

预留属性。

状态码: 400

表9 响应Body参数

参数

参数类型

描述

error

Error object

出现错误时,返回的错误信息。

表10 Error

参数

参数类型

描述

code

String

出现错误时,返回的错误码。

错误码和其对应的含义请参考错误码说明

message

String

出现错误时,返回的错误消息。

请求示例

导出云硬盘为镜像:云硬盘导出镜像的容器类型为bare,导出镜像的格式为vhd,导出镜像的系统类型为linux,且云硬盘处于正在使用状态时,可以强制导出镜像。

POST https://{endpoint}/v2/{project_id}/volumes/{volume_id}/action

{
  "os-volume_upload_image" : {
    "image_name" : "sxmatch2",
    "force" : true,
    "container_format" : "bare",
    "disk_format" : "vhd",
    "__os_type" : "linux"
  }
}

响应示例

状态码: 202

Accepted

{
  "os-volume_upload_image" : {
    "status" : "uploading",
    "size" : 40,
    "id" : "16369c5d-384d-4e64-b37a-56d898769362",
    "image_id" : "c5333daa-fbc8-4d1d-bf79-b0567bb45d15",
    "image_name" : "evs-ims-test1027",
    "volume_type" : {
      "description" : "None",
      "deleted" : false,
      "created_at" : "2015-05-24T14:47:22.132268",
      "updated_at" : "2017-07-29T11:29:33.730076",
      "extra_specs" : {
        "volume_backend_name" : "<or> FusionStorage_SATA <or> FusionStorage_SAS <or> fusionstoragesata",
        "XX:availability_zone" : "kvmxen.dc1"
      },
      "is_public" : true,
      "id" : "8247b6ed-37f0-4c48-8ef1-f0027fb332bc",
      "name" : "SATA"
    },
    "container_format" : "bare",
    "disk_format" : "vhd",
    "display_description" : "",
    "updated_at" : "2018-01-11T01:50:25.800931"
  }
}

状态码: 400

Bad Request

{
  "error" : {
    "message" : "XXXX",
    "code" : "XXX"
  }
}

状态码

状态码

描述

202

Accepted

400

Bad Request

错误码

请参见错误码