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

创建云硬盘

功能介绍

创建云硬盘。

调用方法

请参见如何调用API

URI

POST /v2/{project_id}/volumes

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

项目ID。

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

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

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

表3 请求Body参数

参数

是否必选

参数类型

描述

volume

CinderCreateVolumeOption object

待创建的云硬盘信息 说明: 不支持同时使用“source_volid”、“snapshot_id”和“imageRef”这三个字段中的任意两个。

OS-SCH-HNT:scheduler_hints

CinderCreateVolumeSchedulerHints object

调度参数。调度参数,当前支持dedicated_storage_id字段,表明将云硬盘创建在DSS存储池中。

表4 CinderCreateVolumeOption

参数

是否必选

参数类型

描述

availability_zone

String

指定要创建云硬盘的AZ。 若指定的AZ不存在或指定的AZ和备份所在的AZ不同,则创云硬盘失败。

consistencygroup_id

String

一致性组ID,该参数表示此云硬盘属 于该一致性组,当前云硬盘服务不支 持该功能

description

String

云硬盘的描述。最大支持85个字符。

imageRef

String

镜像ID,指定该参数表示创建云硬盘方式为从镜像创建。

说明:

不支持通过BMS的镜像创建BMS系统盘。 获取镜像ID的方法:请参见查询镜像列表

metadata

VolumeMetadata object

云硬盘的metadata数据,metadata中的key和value长度不大于255个字节。

“metadata”字段信息中列举了部分字段,您还可以根据创建云硬盘的要求输入其他字段。

说明:

metadata里面不能有value为null的键值对。

multiattach

Boolean

创建共享云硬盘的信息。默认值为false。

true:表示为共享云硬盘。

false:表示为非共享云硬盘。

请参见

共享云硬盘及使用方法了解更多信息。

name

String

云硬盘名称。最大支持64个字符。

size

Integer

云硬盘大小,单位为GiB,其限制如下: 系统盘:1GiB-1024GiB 数据盘:10GiB-32768GiB 创建空白云硬盘,size为必选,请在范围内根据需求自定义。

从快照创建云硬盘时,size为必选,且云硬盘大小不能小于快照大小。

从镜像创建云硬盘时,size为必选,且云硬盘大小不小于镜像属性中min_disk要求的最小云硬盘容量。

snapshot_id

String

快照ID,指定该参数表示创建云硬盘方式为从快照创建云硬盘

source_replica

String

该参数表示从云硬盘的克隆来创建云硬 盘,当前云硬盘服务不支持该功能

source_volid

String

源云硬盘ID,指定该参数表示创建云 硬盘方式为从源云硬盘克隆。当前云 硬盘服务不支持该功能。

volume_type

String

云硬盘类型。

目前支持"SATA", "SAS", "GPSSD, "SSD","ESSD","GPSSD2","ESSD2"七种

  • “SATA”为普通IO云硬盘
  • “SAS”为高IO云硬盘
  • "GPSSD"为通用型SSD云硬盘
  • “SSD”为超高IO云硬盘
  • “ESSD”为极速IO云硬盘
  • "GPSSD2"为通用型SSD V2云硬盘
  • "ESSD2"为极速型SSD V2云硬盘 当指定的云硬盘类型在availability_zone内不存在时,则创建云硬盘失败。
说明:

从快照创建云硬盘时,volume_type字段必须和快照源云硬盘保持一致。 了解不同云硬盘类型的详细信息,请参见

云硬盘类型及性能介绍

枚举值:

  • ESSD2
  • GPSSD2
  • ESSD
  • SSD
  • GPSSD
  • SAS
  • SATA

iops

Integer

给云硬盘配置iops,购买GPSSD2、ESSD2类型的云硬盘时必填,其他类型不能设置。

说明:

throughput

Integer

给云硬盘配置吞吐量,单位是MiB/s,购买GPSSD2类型云盘时必填,其他类型不能设置。

说明:

-了解GPSSD2类型的吞吐量大小范围,请参见云硬盘类型及性能介绍里面的云硬盘性能数据表

  • 只支持按需计费。
表5 VolumeMetadata

参数

是否必选

参数类型

描述

__system__cmkid

String

metadata中的加密cmkid字段,与__system__encrypted配合表示需要加密,cmkid长度固定为36个字节。

说明:

请参考 查询密钥列表,通过HTTPS请求获取密钥ID。

__system__encrypted

String

metadata中的表示加密功能的字段,0代表不加密,1代表加密。 该字段不存在时,云硬盘默认为不加密。

full_clone

String

从快照创建云硬盘时,如需使用link克隆方式,请指定该字段的值为0。

hw:passthrough

String

true表示云硬盘的设备类型为SCSI类型,即允许ECS操作系统直接访问底层存储介质。支持SCSI锁命令。

false表示云硬盘的设备类型为VBD (虚拟块存储设备 , Virtual Block Device)类型,即为默认类型,VBD只能支持简单的SCSI读写命令。

该字段不存在时,云硬盘默认为VBD类型。

表6 CinderCreateVolumeSchedulerHints

参数

是否必选

参数类型

描述

dedicated_storage_id

String

专属分布式存储池id。

响应参数

状态码: 202

表7 响应Body参数

参数

参数类型

描述

volume

CreateVolumeDetail object

待创建的云硬盘信息。

表8 CreateVolumeDetail

参数

参数类型

描述

id

String

云硬盘ID。

links

Array of Link objects

云硬盘URI自描述信息。

name

String

云硬盘名称。

status

String

云硬盘状态,具体请参见云硬盘状态

attachments

Array of VolumeAttachment objects

挂载信息。

availability_zone

String

云硬盘所属AZ。

bootable

String

是否为启动云硬盘。 true:表示为启动云硬盘。 false:表示为非启动云硬盘。

encrypted

Boolean

当前云硬盘服务不支持该字段。

created_at

String

创建云硬盘的时间。

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

description

String

云硬盘描述。

volume_type

String

云硬盘类型。

目前支持"SATA", "SAS", "GPSSD, "SSD","ESSD","GPSSD2","ESSD2"七种

  • “SATA”为普通IO云硬盘
  • “SAS”为高IO云硬盘
  • "GPSSD"为通用型SSD云硬盘
  • “SSD”为超高IO云硬盘
  • “ESSD”为极速IO云硬盘
  • "GPSSD2"为通用型SSD V2云硬盘
  • "ESSD2"为极速型SSD V2云硬盘 当指定的云硬盘类型在availability_zone内不存在时,则创建云硬盘失败。

replication_status

String

预留属性。

consistencygroup_id

String

所属一致性组ID。

source_volid

String

源云硬盘ID。

当前云硬盘服务不支持该字段。

snapshot_id

String

快照ID。

metadata

VolumeMetadata object

元数据。

size

Integer

云硬盘大小,单位为GiB。

user_id

String

使用云硬盘用户ID。

updated_at

String

云硬盘更新时间。

shareable

Boolean

是否为可共享云硬盘。 说明: 该字段已经废弃,请使用multiattach。

multiattach

Boolean

是否为共享云硬盘。 true:表示为共享云硬盘。 false:表示为非共享云硬盘。

storage_cluster_id

String

预留属性。

表10 VolumeAttachment

参数

参数类型

描述

attached_at

String

挂载的时间信息。

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

attachment_id

String

挂载信息对应的ID。

device

String

挂载点

host_name

String

云硬盘挂载到的云服务器云主机对应 的物理主机的名称。

id

String

挂载的资源ID

server_id

String

云硬盘挂载到的云服务器云主机的 ID。

volume_id

String

云硬盘ID

表11 VolumeMetadata

参数

参数类型

描述

__system__cmkid

String

metadata中的加密cmkid字段,与__system__encrypted配合表示需要加密,cmkid长度固定为36个字节。

说明:

请参考 查询密钥列表,通过HTTPS请求获取密钥ID。

__system__encrypted

String

metadata中的表示加密功能的字段,0代表不加密,1代表加密。 该字段不存在时,云硬盘默认为不加密。

full_clone

String

从快照创建云硬盘时,如需使用link克隆方式,请指定该字段的值为0。

hw:passthrough

String

true表示云硬盘的设备类型为SCSI类型,即允许ECS操作系统直接访问底层存储介质。支持SCSI锁命令。

false表示云硬盘的设备类型为VBD (虚拟块存储设备 , Virtual Block Device)类型,即为默认类型,VBD只能支持简单的SCSI读写命令。

该字段不存在时,云硬盘默认为VBD类型。

状态码: 400

表12 响应Body参数

参数

参数类型

描述

error

Error object

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

表13 Error

参数

参数类型

描述

code

String

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

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

message

String

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

请求示例

创建一个云硬盘:使用镜像在DSS存储池中创建一个非共享云硬盘,云硬盘的类型为普通IO,磁盘模式为SCSI,云硬盘的大小为40GiB。

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

{
  "volume" : {
    "name" : "openapi_vol01",
    "imageRef" : "027cf713-45a6-45f0-ac1b-0ccc57ac12e2",
    "availability_zone" : "xxx",
    "description" : "create for api test",
    "volume_type" : "SATA",
    "metadata" : {
      "hw:passthrough" : "true"
    },
    "consistencygroup_id" : null,
    "source_volid" : null,
    "snapshot_id" : null,
    "multiattach" : false,
    "source_replica" : null,
    "size" : 40
  },
  "OS-SCH-HNT:scheduler_hints" : {
    "dedicated_storage_id" : "eddc1a3e-4145-45be-98d7-bf6f65af9767"
  }
}

响应示例

状态码: 202

Accepted

{
  "volume" : {
    "attachments" : [ ],
    "availability_zone" : "xxx",
    "bootable" : "false",
    "created_at" : "2016-05-25T02:38:40.392463",
    "description" : "create for api test",
    "encrypted" : false,
    "id" : "8dd7c486-8e9f-49fe-bceb-26aa7e312b66",
    "links" : [ {
      "href" : "https://volume.localdomain.com:8776/v2/5dd0b0056f3d47b6ab4121667d35621a/volumes/8dd7c486-8e9f-49fe-bceb-26aa7e312b66",
      "rel" : "self"
    }, {
      "href" : "https://volume.localdomain.com:8776/5dd0b0056f3d47b6ab4121667d35621a/volumes/8dd7c486-8e9f-49fe-bceb-26aa7e312b66",
      "rel" : "bookmark"
    } ],
    "metadata" : {
      "__system__encrypted" : 0
    },
    "name" : "openapi_vol01",
    "replication_status" : "disabled",
    "multiattach" : false,
    "size" : 40,
    "status" : "creating",
    "user_id" : "39f6696ae23740708d0f358a253c2637",
    "volume_type" : "SATA"
  }
}

状态码: 400

Bad Request

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

状态码

状态码

描述

202

Accepted

400

Bad Request

错误码

请参见错误码