更新时间:2024-09-30 GMT+08:00
分享

创建云硬盘

功能介绍

创建按需或包周期云硬盘。

在创建包周期云硬盘的场景下:

调用方法

请参见如何调用API

URI

POST /v2.1/{project_id}/cloudvolumes

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

项目ID。

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

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

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

X-Client-Token

String

请求的幂等标识。该参数的值由客户端生成,需要确保不同请求的参数值唯一,取值为36位的UUID格式字符串,有效期为8小时。携带相同幂等标识的多个请求,会认为多个请求为同一个幂等请求,会返回相同的响应体。

表3 请求Body参数

参数

是否必选

参数类型

描述

bssParam

BssParamForCreateVolume object

按需和包周期的扩展参数

volume

CreateVolumeOption object

待创建的云硬盘信息

server_id

String

创建云硬盘并挂载到目标虚拟机。 创建的云硬盘的计费模式会与虚拟机的计费模式保持一致。 目前只支持ECS服务的虚拟机,暂不支持BMS的裸金属服务器。

OS-SCH-HNT:scheduler_hints

CreateVolumeSchedulerHints object

云硬盘调度参数,可用于指定云硬盘创建到某个专属存储池中

表4 BssParamForCreateVolume

参数

是否必选

参数类型

描述

chargingMode

String

功能说明:计费模式。默认值为postPaid。 取值范围:

  • prePaid:包年包月

  • postPaid:按需

缺省值:postPaid

枚举值:

  • postPaid

  • prePaid

isAutoPay

String

功能说明:是否立即支付。chargingMode为PrePaid时该参数会生效。默认值为false。 取值范围:

  • true:立即支付,从账户余额中自动扣费

  • false:不立即支付,创建订单暂不支付

缺省值:false

枚举值:

  • true

  • false

isAutoRenew

String

功能说明:是否自动续订。chargingMode为prePaid时该参数会生效。默认值为false。 取值范围:

  • true:自动续订,自动续订周期与订购周期相同

  • false:不自动续订

缺省值:false

枚举值:

  • true

  • false

periodNum

Integer

功能说明:订购周期数,chargingMode为prePaid时该参数会生效,并且该参数为为必选。 取值范围:

  • periodType为month时,为[1-9]

  • periodType为year时,为[1-1]

periodType

String

功能说明:订购周期单位。chargingMode为prePaid时该参数会生效,并且该参数为必选。 取值范围:

  • month:月

  • year:年

枚举值:

  • month

  • year

表5 CreateVolumeOption

参数

是否必选

参数类型

描述

availability_zone

String

指定要创建云硬盘的可用区。

backup_id

String

备份ID,从备份创建云硬盘时为必选。

count

Integer

批量创云硬盘的个数。如果无该参数,表明只创建1个云硬盘,目前最多支持批量创建100个。 从备份创建云硬盘时,不支持批量创建,数量只能为“1”。

如果发送请求时,将参数值设置为小数,则默认取小数点前的整数。

description

String

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

enterprise_project_id

String

企业项目ID。创建云硬盘时,给云硬盘绑定企业项目ID。

imageRef

String

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

metadata

Map<String,String>

创建云硬盘的metadata信息

可选参数如下:[__system__cmkid]

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

说明:

请求获取密钥ID的方法请参考:"查询密钥列表"。

[__system__encrypted]

metadata中的表示加密功能的字段,0代表不加密,1代表加密。不指定该字段时,云硬盘的加密属性与数据源保持一致,如果不是从数据源创建的场景,则默认不加密。

[full_clone]

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

[hw:passthrough]

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

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

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

multiattach

Boolean

是否为共享云硬盘。true为共享盘,false为普通云硬盘。

name

String

云硬盘名称。如果为创建单个云硬盘,name为云硬盘名称。最大支持64个字符。创建的云硬盘数量(count字段对应的值)大于1时,为区分不同云硬盘,创建过程中系统会自动在名称后加“-0000”的类似标记。例如:volume-0001、volume-0002。

size

Integer

云硬盘大小,单位为GiB,其限制如下: -系统盘:1GiB-1024GiB -数据盘:10GiB-32768GiB -创建空白云硬盘和从 镜像/快照 创建云硬盘时,size为必选,且云硬盘大小不能小于 镜像/快照 大小。 -从备份创建云硬盘时,size为可选,不指定size时,云硬盘大小和备份大小一致。

snapshot_id

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字段必须和快照源云硬盘保持一致。 了解不同云硬盘类型的详细信息,请参见 云硬盘类型及性能介绍

枚举值:

  • SATA

  • SAS

  • GPSSD

  • SSD

  • ESSD

  • GPSSD2

  • ESSD2

tags

Map<String,String>

云硬盘标签信息。

iops

Integer

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

说明:

了解GPSSD2、ESSD2类型的iops大小范围,请参见 云硬盘类型及性能介绍里面的云硬盘性能数据表

  • 只支持按需计费。

throughput

Integer

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

说明:

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

  • 只支持按需计费。

表6 CreateVolumeSchedulerHints

参数

是否必选

参数类型

描述

dedicated_storage_id

String

指定专属存储池ID,表示将云硬盘创建在该ID对应的存储池中。

响应参数

状态码: 202

表7 响应Body参数

参数

参数类型

描述

job_id

String

任务ID,云硬盘为按需计费时返回该参数。

order_id

String

订单ID,云硬盘为包周期计费时返回该参数。

  • 直接在包周期云服务器上新增云硬盘,系统会自动将云硬盘挂载到包周期云服务器上。该情形下也会返回该参数。

  • 如果您需要支付订单,请参考:"支付包周期产品订单"。

volume_ids

Array of strings

待创建的云硬盘ID列表。

  • 通过云硬盘ID查询云硬盘详情 ,若返回404 可能云硬盘正在创建中或者已经创建失败。

  • 通过JobId查询云硬盘创建任务是否完成查询job的状态

状态码: 400

表8 响应Body参数

参数

参数类型

描述

error

Error object

出现错误时,返回的错误码。错误码和其对应的含义请参考错误码说明

表9 Error

参数

参数类型

描述

code

String

出现错误时,返回的错误码。错误码和其对应的含义请参考错误码说明

message

String

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

请求示例

  • 在DSS存储池1b6198f2-20a6-5dcc-aa21-58c1af5dc488中创建一个共享加密云硬盘,该云硬盘所在的位置为华北-北京四可用区一,该云硬盘的名称为EVS-Test,云硬盘模式为SCSI,云硬盘类型为高IO,容量为10GiB。

    POST https://{endpoint}/v2.1/{project_id}/cloudvolumes
    
    {
      "volume" : {
        "availability_zone" : "cn-north-4a",
        "size" : 10,
        "name" : "EVS-Test",
        "volume_type" : "SAS",
        "metadata" : {
          "hw:passthrough" : "true",
          "__system__encrypted" : "1",
          "__system__cmkid" : "94257794-d7aa-462c-9eaa-9f32c05b9966",
          "region" : "cn-north-4"
        },
        "multiattach" : true,
        "enterprise_project_id" : "0"
      },
      "OS-SCH-HNT:scheduler_hints" : {
        "dedicated_storage_id" : "1b6198f2-20a6-5dcc-aa21-58c1af5dc488"
      }
    }
  • 创建一个共享云硬盘,该云硬盘所在位置为华北-北京四可用区一,该云硬盘名称为EVS-Test2,云硬盘类型为通用型SSD V2,IOPS性能配置为5000,吞吐量性能配置为500MiB/s,容量为100GiB,并为该云硬盘添加标签。该云硬盘订购周期为3个月,且开通自动续订,下单后立即从账户余额中自动扣费。

    POST https://{endpoint}/v2.1/{project_id}/cloudvolumes
    
    {
      "volume": {
        "count": 1,
        "availability_zone": "cn-north-4a",
        "size": 100,
        "name": "EVS-Test2",
        "volume_type": "GPSSD2",
        "metadata": {},
        "tags": {
          "key_string": "value_string"
        },
        "iops": 5000,
        "throughput": 500,
        "multiattach": 1
      },
      "bssParam": {
        "chargingMode": "prePaid",
        "periodType": "month",
        "periodNum": 3,
        "isAutoPay": true,
        "isAutoRenew": true,
      }
    }

响应示例

状态码: 202

Accepted

{
  "job_id" : "70a599e0-31e7-49b7-b260-868f441e862b",
  "volume_ids" : [ "e1fa3e72-8c92-4871-9152-bf66fef0afe9" ]
}

状态码: 400

Bad Request

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

状态码

状态码

描述

202

Accepted

400

Bad Request

错误码

请参见错误码

相关文档