Updated on 2024-03-26 GMT+08:00

Creating EVS Disks

Function

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

URI

  • URI format

    POST /v2/{project_id}/cloudvolumes

  • Parameter description

    Parameter

    Mandatory

    Description

    project_id

    Yes

    The project ID.

    For details about how to obtain the project ID, see Obtaining a Project ID.

Request

  • Request parameters

    Parameter

    Type

    Mandatory

    Description

    volume

    Object

    Yes

    The information of the disk to be created. For details, see Parameters in the volume field.

  • Parameters in the volume field

    Parameter

    Type

    Mandatory

    Description

    backup_id

    String

    No

    The backup ID. This parameter is mandatory when you create the disk from a backup.

    NOTE:

    For how to obtain the backup ID, see Querying Details About VBS Backups (Native OpenStack API) in the Volume Backup Service API Reference.

    availability_zone

    String

    Yes

    The AZ where you want to create the disk. If the specified AZ does not exist, the disk will fail to be created.

    NOTE:

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

    description

    String

    No

    The disk description, which can contain a maximum of 255 bytes.

    size

    Integer

    Yes

    The disk size, in GB. The value can be as follows:
    • System disk: 1 GB to 1024 GB
    • Data disk: 10 GB to 32768 GB

    This parameter is mandatory when you create an empty disk. You can specify the parameter value as required within the value range.

    This parameter is mandatory when you create the disk from a snapshot. Ensure that the disk size is greater than or equal to the snapshot size.

    This parameter is mandatory when you create the disk from an image. Ensure that the disk size is greater than or equal to the minimum disk capacity required by min_disk in the image attributes.

    This parameter is optional when you create the disk from a backup. If this parameter is not specified, the disk size is equal to the backup size.

    NOTE:

    If the specified value is a decimal, the number part of the value will be used.

    name

    String

    No

    The disk name.

    • If you create disks one by one, the name value is the disk name, which can contain a maximum of 255 characters.
    • If you create multiple disks (the count value greater than 1), the system will automatically add a hyphen followed by a four-digit incremental number, such as -0000, to the end of each disk name. For example, the disk names can be volume-0001 and volume-0002. The value can contain a maximum of 250 bytes.

    snapshot_id

    String

    No

    The snapshot ID. If this parameter is specified, the disk will be created from a snapshot.

    NOTE:

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

    imageRef

    String

    No

    The image ID. If this parameter is specified, the disk will be created from an image.

    NOTE:

    BMS system disks cannot be created from BMS images.

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

    volume_type

    String

    Yes

    The disk type.

    The value can be SATA or SSD.
    • SSD: the ultra-high I/O type
    • SATA: the common I/O type

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

    NOTE:
    • When the disk is created from a snapshot, the disk type of the new disk will be consistent with that of the snapshot's source disk.
    • For details about disk types, see Disk Types and Performance in the Elastic Volume Service User Guide.

    count

    Integer

    No

    The number of disks to be created in a batch. If this parameter is not specified, only one disk will be created. You can create a maximum of 100 disks in a batch.

    If disks are created from backups, batch creation is not supported, and this parameter must be set to 1.

    NOTE:

    If the specified value is a decimal, the number part of the value will be used.

    shareable

    String

    No

    Whether the disk is shareable. The value can be true (shared disk) or false (common disk).

    NOTE:

    This field is no longer used. Use multiattach.

    metadata

    Map<String,String>

    No

    The metadata of the disk to be created.

    Optional parameters:

    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:

    __system__encrypted: the encryption field in metadata. The value can be 0 (does not encrypt the disk) or 1 (encrypts the disk). If this parameter is not specified, the encryption attribute of the disk will be the same as that of the data source. If the disk is not created from a data source, the disk will not be encrypted by default.

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

    hw:passthrough:

    • If this parameter is set to true, the disk device type will be SCSI, which allows ECS OSs to directly access underlying storage media. SCSI reservation commands are supported.
    • 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 is not specified, the disk device type will be VBD.

    multiattach

    Boolean

    No

    Whether the disk is shareable. The default value is false.
    • true: indicates a shared disk will be created.
    • false: indicates a non-shared disk will be created.

    tags

    Object

    No

    The tags to be added to the disk during the disk creation.

    A maximum of 10 tags can be added to a disk.

    A tag key must be unique. Deduplication will be performed for duplicate keys. Therefore, only one tag key in the duplicate keys is valid.

    • Tag key: A tag key can contain a maximum of 36 characters.

      Character set: A-Z, a-z, 0-9, hyphens (-), underscores (_), and Unicode characters (\u4E00-\u9FFF)

    • Tag value: A tag value can contain a maximum of 43 characters and can be an empty string.

      Character set: A-Z, a-z, 0-9, periods (.), hyphens (-), underscores (_), and Unicode characters (\u4E00-\u9FFF)

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

  • Example request
    {
        "volume": {
            "backup_id": null, 
            "count": 1, 
            "availability_zone": "az-dc-1", 
            "description": "test_volume_1", 
            "size": 120, 
            "name": "test_volume_1", 
            "volume_type": "SSD", 
            "metadata": {
                "__system__encrypted": "1", 
                "__system__cmkid": "37b0d52e-c249-40d6-83cb-2b93f22445bd"
            }
        }
    }

Response

  • Response parameters

    Parameter

    Type

    Description

    job_id

    String

    The task ID.

    NOTE:

    error

    Object

    The error message returned if an error occurs. For details, see Parameters in the error field.

  • Parameters in the error field

    Parameter

    Type

    Description

    message

    String

    The error message returned if an error occurs.

    code

    String

    The error code returned if an error occurs.

    For details about the error code, see Error Codes.

  • Example response
    {
        "job_id": "70a599e0-31e7-49b7-b260-868f441e862b"
    }

    or

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

Status Codes

  • Normal

    200

Error Codes

For details, see Error Codes.