# Attaching a Disk to an ECS

#### Function

This API is used to attach a disk to an ECS.

#### URI

POST /v1/{project_id}/cloudservers/{server_id}/attachvolume

Table 1 describes the parameters in the URI.

Table 1 Parameter description
Parameter | Mandatory | Description
--- | --- | ---
project_id | Yes | Specifies the project ID.
server_id | Yes | Specifies the ECS ID.

#### Request

Table 2 Request parameters
Parameter | Mandatory | Type | Description
--- | --- | --- | ---
volumeAttachment | Yes | Object | Specifies the ECS attachment information. For details, see Table 3.

dry_run

No

Boolean

Specifies whether to check the request and attach the disk.

- true: indicates that only the request is sent, and no disk will be attached. Check items include mandatory parameters, request format, and service restrictions. If the check fails, the system returns an error. If the check result is as expected, the system properly responds.
- false: indicates that only the request is sent and the disk will be attached if the check result is as expected.

The default value is false.

Table 3 volumeAttachment field description
Parameter | Mandatory | Type | Description
--- | --- | --- | ---
volumeId | Yes | String | Specifies the ID of the disk to be attached. The value is in UUID format.

device

No

String

Indicates the disk device name.

NOTE:

- The new disk device name cannot be the same as an existing one.
- For KVM ECSs, set the parameter value to /dev/vda for system disks. The device names for data disks of KVM ECSs are optional. If the device names of data disks are required, set them in alphabetical order. For example, if there are two data disks, set the device names of the two data disks to /dev/vdb and /dev/vdc, respectively. If you set a device name starting with /dev/sd, the system uses /dev/vd by default.

volume_type | No | String | Specifies the disk type. If volumeId is unavailable and dry_run is set to true, volume_type is available and must be specified.
count | No | Integer | Specifies the number of disks. If volumeId is unavailable and dry_run is set to true, count is available. If count is unavailable, the number of disks is 1 by default.

hw:passthrough

No

String

- If this parameter is set to true, the disk device type is SCSI, which allows ECS OSs to directly access the underlying storage media. SCSI reservation commands are supported.
- If this parameter is set to false, the disk device type is VBD, which supports only simple SCSI read/write commands.

If volumeId is unavailable and dry_run is set to true, hw:passthrough is available and must be specified.

#### Response

See Responses (Task).

#### Example Request

    POST https://{endpoint}/v1/{project_id}/cloudservers/{server_id}/attachvolume

    {
        "volumeAttachment": {
             "volumeId": "a26887c6-c47b-4654-abb5-dfadf7d3f803",
             "device": "/dev/sda",
             "volume_type": "SSD",
             "count": 5,
             "hw:passthrough": "true"
        },
        "dry_run": false
    }

#### Example Response

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

#### Returned Values

See Returned Values for General Requests.

#### Error Codes

See Error Codes.

Parent topic: Disk Management