• Native OpenStack API

noa
  1. Help Center
  2. Native OpenStack API
  3. API Reference
  4. OpenStack Cinder API v3
  5. EVS Disk
  6. Creating EVS Disks

Creating EVS Disks

Function

This API is used to create one or multiple EVS disks.

URI

  • URI format

    POST /v3/{project_id}/volumes

  • Parameter description

    Parameter

    Mandatory

    Description

    project_id

    Yes

    Specifies the project ID.

Request

  • Parameter description

    Parameter

    Type

    Mandatory

    Description

    volume

    map<string,string>

    Yes

    Specifies the information of the disks to be created. For details, see Parameters in the volume field.

  • Parameters in the volume field

    Parameter

    Type

    Mandatory

    Description

    availability_zone

    string

    Yes

    Specifies the AZ where you want to create the disk. If the AZ does not exist, the disk will fail to create.

    NOTE:

    For details about how to obtain the AZ, see Querying All AZs.

    source_volid

    string

    No

    Specifies the source disk ID. If this parameter is specified, the disk is cloned from an existing disk. Currently, this function is not supported.

    description

    string

    No

    Specifies the disk description. The value can contain a maximum of 255 bytes.

    snapshot_id

    string

    No

    Specifies the snapshot ID. If this parameter is specified, the disk is created from a snapshot.

    NOTE:

    For details about how to obtain the snapshot ID, see Querying Details About EVS Snapshots.

    size

    int

    Yes

    Specifies the disk size, in GB.

    • If the disk is created from an image, the disk size must be greater than or equal to the image size.
    • If the disk is created from a snapshot, the disk size must be greater than or equal to the snapshot size.

    name

    string

    No

    Specifies the disk name. The value can contain a maximum of 255 bytes.

    imageRef

    string

    No

    Specifies the image ID. If this parameter is specified, the disk is created from an image.

    NOTE:

    BMS system disks cannot be created from BMS images.

    For details about how to obtain the image ID, see Querying Images in the Image Management Service API Reference.

    volume_type

    string

    No

    Specifies the disk type.

    Currently, the value can be SSD, SAS, SATA, co-p1, or uh-l1.
    • SSD: specifies the ultra-high I/O disk type.
    • SAS: specifies the high I/O disk type.
    • SATA: specifies the common I/O disk type.
    • co-p1: specifies the high I/O (performance-optimized I) disk type.
    • uh-l1: specifies the ultra-high I/O (latency-optimized) disk type.

      Disks of the co-p1 and uh-l1 types are used exclusively for HPC ECSs and SAP HANA ECSs.

    If the specified disk type is not available in the AZ, the disk will fail to create.

    NOTE:
    • If the disk is created from a snapshot, the volume_type field must be the same as that of the snapshot's source disk.
    • For details about disk types, see Disk Types and Disk Performance in the Elastic Volume Service User Guide.

    metadata

    map<string, string>

    No

    Specifies the disk metadata. The length of the key or value in the metadata cannot exceed 255 bytes.

    For details about metadata, see Parameters in the metadata field. The table lists some fields. You can also specify other fields based on the disk creation requirements.

    NOTE:

    Parameter values under metadata cannot be null.

    source_replica

    string

    No

    Specifies the source disk ID. If this parameter is specified, the disk is cloned from an existing disk. Currently, this function is not supported.

    consistencygroup_id

    string

    No

    Specifies the ID of the consistency group. If this parameter is specified, the disk belongs to this consistency group. Currently, this function is not supported.

    shareable

    string

    No

    Specifies whether the disk is shareable. The value can be true (sharable) or false (not sharable). This is an extended attribute.

    NOTE:

    This field is no longer used. Use multiattach.

    multiattach

    boolean

    No

    Specifies whether the disk is shareable. The default value is false.
    • true: specifies a shared disk.
    • false: specifies a non-shared disk.
    NOTE:

    Specifying either two of the source_volid, snapshot_id, and imageRef fields is not supported.

  • Parameters in the metadata field

    Parameter

    Type

    Mandatory

    Description

    __system__encrypted

    string

    No

    Specifies the parameter that describes the encryption function in metadata. The value can be 0 (encryption function disabled) or 1 (encryption function enabled).

    If this parameter does not exist, the disk will not be encrypted by default.

    __system__cmkid

    string

    No

    Specifies the parameter that describes the encryption CMK ID in metadata. This parameter is used together with __system__encrypted for encryption. The length of cmkid is fixed at 36 bytes.

    NOTE:

    For details about how to obtain the CMK ID, see section Querying the List of CMKs in the Key Management Service API Reference.

    hw:passthrough

    string

    No

    • If this parameter is set to true, the disk device type will be SCSI, which allows ECS OSs to directly access the underlying storage media and supports SCSI reservation commands.
    • If this parameter is set to false, the disk device type will be VBD, which supports only simple SCSI read/write commands.
    • If this parameter does not exist, the disk device type will be VBD, the default type.
      NOTE:

      If parameter shareable is set to true and parameter hw:passthrough is not specified, shared VBD disks are created.

    full_clone

    string

    No

    If the disk is created from a snapshot and linked cloning needs to be used, set this parameter to 0.

    NOTE:

    The preceding table provides only some parameters in metadata for your reference. You can also specify other fields based on the disk creation requirements.

    • If the disk is created from a snapshot, __system__encrypted and __system__cmkid are not supported, and the newly created disk has the same encryption attribute as that of the snapshot's source disk.
    • If the disk is created from an image, __system__encrypted and __system__cmkid are not supported, and the newly created disk has the same encryption attribute as that of the image.
    • If the disk is created from a snapshot, hw:passthrough is not supported, and the newly created disk has the same device type as that of the snapshot's source disk.
    • If the disk is created from an image, hw:passthrough is not supported, and the device type of newly created disk is VBD.
  • Example request
    {
        "volume": {
            "name": "openapi_vol01", 
            "imageRef": "027cf713-45a6-45f0-ac1b-0ccc57ac12e2", 
            "availability_zone": "xxx", 
            "description": "create for api test", 
            "volume_type": "SATA", 
            "metadata": {
                "volume_owner": "openapi"
            }, 
            "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"
        }
    }

Response

  • Parameter description

    Parameter

    Type

    Description

    volume

    map<string, string>

    Specifies the information of the created disks. For details, see Parameters in the volumes field.

    error

    string

    Specifies the error message returned when an error occurs. For details, see Parameters in the error field.

  • Parameters in the volumes field

    Parameter

    Type

    Description

    id

    string

    Specifies the disk ID.

    links

    array

    Specifies the disk URI. For details, see Parameters in the links field.

    name

    string

    Specifies the disk name.

    status

    string

    Specifies the disk status. For details, see EVS Disk Status.

    attachments

    array

    Specifies the disk attachment information. For details, see Parameters in the attachments field.

    availability_zone

    string

    Specifies the AZ to which the disk belongs.

    bootable

    string

    Specifies whether the disk is bootable.

    encrypted

    boolean

    Specifies whether the disk is encrypted.

    created_at

    string

    Specifies the time when the disk was created.

    Time format: UTC YYYY-MM-DDTHH:MM:SS

    description

    string

    Specifies the disk description.

    volume_type

    string

    Specifies the disk type.

    For details about disk types, see volume_type in the parameters of volume in the request of Creating EVS Disks.

    replication_status

    string

    Specifies the disk replication status.

    consistencygroup_id

    string

    Specifies the ID of the consistency group where the disk belongs.

    source_volid

    string

    Specifies the source disk ID.

    snapshot_id

    string

    Specifies the snapshot ID.

    metadata

    map<string, string>

    Specifies the disk metadata. For details, see Parameters in the metadata field.

    size

    int

    Specifies the disk size, in GB.

    user_id

    string

    Reserved field

    updated_at

    string

    Specifies the time when the disk was updated.

    Time format: UTC YYYY-MM-DDTHH:MM:SS

    shareable

    boolean

    Specifies whether the disk is shareable.

    NOTE:

    This field is no longer used. Use multiattach.

    multiattach

    boolean

    Specifies whether the disk is shareable.

  • Parameters in the links field

    Parameter

    Type

    Description

    href

    string

    Specifies the corresponding shortcut link.

    rel

    string

    Specifies the shortcut link marker name.

  • Parameters in the attachments field

    Parameter

    Type

    Description

    server_id

    string

    Specifies the ID of the server to which the disk is attached.

    attachment_id

    string

    Specifies the ID of the attachment information.

    attached_at

    string

    Specifies the time when the disk was attached.

    Time format: UTC YYYY-MM-DDTHH:MM:SS

    host_name

    string

    Specifies the name of the physical host accommodating the server to which the disk is attached.

    volume_id

    string

    Specifies the disk ID.

    device

    string

    Specifies the device name.

    id

    string

    Specifies the ID of the attached resource.

  • Parameters in the metadata field

    Parameter

    Type

    Description

    __system__encrypted

    string

    Specifies the parameter that describes the encryption function in metadata. The value can be 0 or 1.
    • 0: indicates the disk is not encrypted.
    • 1: indicates the disk is encrypted.
    • If this parameter does not appear, the disk is not encrypted by default.

    __system__cmkid

    string

    Specifies the parameter that describes the encryption CMK ID in metadata. This parameter is used together with __system__encrypted for encryption. The length of cmkid is fixed at 36 bytes.

    hw:passthrough

    string

    Specifies the parameter that describes the disk device type in metadata. The value can be true or false.
    • If this parameter is set to true, the disk device type is SCSI, that is, Small Computer System Interface (SCSI), which allows ECS OSs to directly access the underlying storage media and supports SCSI reservation commands.
    • If this parameter is set to false, the disk device type is VBD (the default type), that is, Virtual Block Device (VBD), which supports only simple SCSI read/write commands.
    • If this parameter does not appear, the disk device type is VBD.

    full_clone

    string

    Specifies the clone method. When the disk is created from a snapshot, the parameter value is 0, indicating the linked cloning method.

    readonly

    string

    Specifies whether the disk is read-only or read/write. The value can be True or False.
    • True: indicates that the disk is read-only.
    • False: indicates that the disk is read/write.

    attached_mode

    string

    Specifies whether the disk is attached as read-only or read/write. This parameter appears only when the disk has been attached to a server. The value can be ro or rw.
    • ro: indicates the disk is attached as read-only.
    • rw: indicates the disk is attached as read/write.

    policy

    string

    Specifies the backup policy ID in the metadata field.

  • Parameters in the error field

    Parameter

    Type

    Description

    message

    string

    Specifies the error message returned when an error occurs.

    code

    string

    Specifies the error code returned when an error occurs.

    For details about the error code, see Error Codes.

  • Example response
    {
        "volume": {
            "attachments": [ ], 
            "availability_zone": "xxx", 
            "bootable": "false", 
            "consistencygroup_id": null, 
            "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": {
                "volume_owner": "openapi"
            }, 
            "name": "openapi_vol01", 
            "replication_status": "disabled", 
            "multiattach": false, 
            "size": 40, 
            "snapshot_id": null, 
            "source_volid": null, 
            "status": "creating", 
            "updated_at": null, 
            "user_id": "39f6696ae23740708d0f358a253c2637", 
            "volume_type": "SATA"
        }
    }

    or

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

    In the preceding example, error indicates a general error, for example, badRequest or itemNotFound. An example is provided as follows:

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

Returned Values

  • Normal

    202

Error Codes

For details, see Error Codes.