
# 弹性云服务器挂载磁盘 - AttachServerVolume
#### 功能介绍
把磁盘挂载到弹性云服务器上。
本接口为异步接口，当前弹性云服务器挂载磁盘请求下发成功后会返回job_id，此时弹性云服务器挂载磁盘并没有立即完成，需要通过调用[查询任务的执行状态 - ShowJob](https://support.huaweicloud.com/api-ecs/ecs_02_0901.html)查询job状态，当Job状态为 SUCCESS 时代表弹性云服务器磁盘挂载成功。
#### 调试
您可以在[API Explorer](https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=ECS&api=AttachServerVolume)中调试该接口。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-ecs/ecs_06_0000.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
 
| 授权项                     | 访问级别  | 资源类型（\*为必须） | 条件键                                                                                                                                                                                                                                                                                                                                                                                                                                                                | 别名 | 依赖的授权项          |
|:---|:---|:---|:---|:---|:---|
| ecs:cloudServers:attach | write | instance \* | - g:ResourceTag/\<tag-key\>  - g:EnterpriseProjectId  - evs:Encrypted  - ecs:KmsKeyId  - ecs:VolumeId   | -  | evs:volumes:use |
   
#### URI
POST /v1/{project_id}/cloudservers/{server_id}/attachvolume
参数说明请参见[表1]。
 表1参数说明 
| 参数         | 是否必选 | 描述                                                                                                                                                                                                                                                                                                                                                                          |
|:---|:---|:---|
| project_id | 是    | **参数解释：** 项目ID。 获取方法请参见[获取项目ID](https://support.huaweicloud.com/api-ecs/ecs_01_0016.html)。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及 |
| server_id  | 是    | **参数解释：** 云服务器ID。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                   |
   
#### 请求消息
表2请求参数 
| 参数               | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
|:---|:---|:---|:---|
| volumeAttachment | 是    | Object  | **参数解释：** 云服务器挂载信息，参考[表3]。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                             |
| dry_run          | 否    | Boolean | **参数解释** **：** 是否预检此次请求。配置为预检时，此次请求不会挂载磁盘。 **约束限制：** 不涉及 **取值范围：** - true：预检此次请求，检查项包括是否填写了必需参数、请求格式等。 - 如果检查不通过，则返回对应错误。  - 如果检查通过，则返回202状态码。      - false：发送正常请求，不对请求体做预检。   **默认取值：** false |
   
 表3volumeAttachment数据结构说明 
| 参数             | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
|:---|:---|:---|:---|
| volumeId       | 是    | String  | **参数解释：** 待挂载磁盘的磁盘ID，UUID格式。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| device         | 否    | String  | **参数解释：** 磁盘挂载点。 **约束限制：** 新增加的磁盘挂载点不能和已有的磁盘挂载点相同。 **取值范围：** - 对于采用XEN虚拟化类型的弹性云服务器，device为必选参数；系统盘挂载点请指定/dev/sda；数据盘挂载点请按英文字母顺序依次指定，如/dev/sdb，/dev/sdc，如果指定了以"/dev/vd"开头的挂载点，系统默认改为"/dev/sd"。  - 对于采用KVM虚拟化类型的弹性云服务器，系统盘挂载点请指定/dev/vda；数据盘挂载点可不用指定，也可按英文字母顺序依次指定，如/dev/vdb，/dev/vdc，如果指定了以"/dev/sd"开头的挂载点，系统默认改为"/dev/vd"。  - 对于仅支持SCSI类型磁盘的弹性云服务器，系统盘挂载点为"/dev/sda"，数据盘的挂载点请按英文字母顺序依次指定，如/dev/sdb，/dev/sdc，系统不会修改默认挂载点。   **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| volume_type    | 否    | String  | **参数解释：** 云硬盘类型。 **约束限制：** 不涉及 **取值范围：** 目前支持"SATA"，"SAS"，"GPSSD"，"SSD"，"ESSD"，"GPSSD2"和"ESSD2"。 - "SATA"为普通IO云硬盘（已售罄）  - "SAS"为高IO云硬盘  - "GPSSD"为通用型SSD云硬盘  - "SSD"为超高IO云硬盘  - "ESSD"为极速型SSD云硬盘  - "GPSSD2"为通用型SSD V2云硬盘  - "ESSD2"为极速型SSD V2云硬盘   **默认取值：** 不涉及 |
| count          | 否    | Integer | **参数解释：** 云硬盘的个数。 **约束限制：** 该字段在dry_run为true并且volumeId不存在时有效，如果该字段不存在，默认为1。 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| hw:passthrough | 否    | String  | **参数解释：** 云硬盘的设备类型。 **约束限制：** 不涉及 **取值范围：** - true：表示云硬盘的设备类型为SCSI类型，即允许ECS操作系统直接访问底层存储介质。支持SCSI锁命令。  - false：表示云硬盘的设备类型为VBD (虚拟块存储设备 , Virtual Block Device)类型，VBD只能支持简单的SCSI读写命令。   **默认取值：** false                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
   
#### 响应消息
响应参数如[表4]所示。
 表4响应参数 
| 参数     | 参数类型   | 描述                                                                                                                                                                                                                                                  |
|:---|:---|:---|
| job_id | String | **参数解释：** 提交任务成功后返回的任务ID，用户可以使用该ID对任务执行情况进行查询。如何根据job_id来查询Job的执行状态，请参考[查询Job状态](https://support.huaweicloud.com/api-ecs/ecs_02_0900.html)。 **取值范围：** 不涉及 |
   
异常响应请参考[响应（任务类）](https://support.huaweicloud.com/api-ecs/ecs_07_0005.html)，异常响应要素说明。
#### 请求示例
- 挂载SCSI类型的云硬盘到云服务器，挂载点为"/dev/sda"。
  ```
  POST https://{endpoint}/v1/{project_id}/cloudservers/{server_id}/attachvolume
  {
      "volumeAttachment": {
           "volumeId": "a26887c6-c47b-4654-abb5-dfadf7d3f803",
           "device": "/dev/sda",
           "volume_type": "SSD",
           "hw:passthrough": "true"
      },
      "dry_run": false
  }
  ```
  
- 发送挂载磁盘预检请求。
  ```
  POST https://{endpoint}/v1/{project_id}/cloudservers/{server_id}/attachvolume
  {
      "volumeAttachment": {
           "volumeId": "a26887c6-c47b-4654-abb5-dfadf7d3f803",
           "volume_type": "SSD",
           "hw:passthrough": "true"
      },
      "dry_run": true
  }
  ```
  
 
#### 响应示例
```
{
    "job_id": "ff80808288d41e1b018990260955686a"
}
```
#### 返回值
请参考[通用请求返回值](https://support.huaweicloud.com/api-ecs/ecs_07_0001.html)。
#### 错误码
请参考[错误码](https://support.huaweicloud.com/api-ecs/ecs_07_0002.html)。
