存储卷
创建存储卷
接口描述
创建存储卷(磁盘)。
接口路径
POST /v1/storages/volumes
请求参数
参数名称 | 参数类型 | 是否必须 | 默认值 | 描述 |
---|---|---|---|---|
name | string | 是 | 磁盘名称 | |
capacity | int | 是 | 磁盘大小(单位GB) | |
filesystem | string | 否 | Windows为ntfs,Linux为ext4 | 磁盘文件系统 |
storage_pool_id | int | 否 | 存储池Id | |
~~server_id~~ | ~~int~~ | ~~否~~ | ~~服务器Id~~ | |
~~storage_pool~~ | ~~string~~ | ~~否~~ | ~~存储池名称~~ | |
backing_file_id | int | 否 | backing file所在存储池Id | |
~~backing_file~~ | ~~string~~ | ~~否~~ | ~~创建qcow2磁盘时指定backing file~~ | |
~~backing_file_pool~~ | ~~string~~ | ~~否~~ | ~~创建qcow2磁盘时指定backing file所在存储池~~ |
请求示例:
# 在指定服务器上创建一个100G的qcow2磁盘
{
"server_id": 2,
"name": "test001",
"storage_pool": "local_system",
"format": "qcow2",
"filesystem": "ntfs",
"capacity": 100
}
# 在指定服务器上创建qcow2磁盘,并指定backing file
{
"server_id": 2,
"name": "test001_001",
"storage_pool": "local_system",
"backing_file": "test001.qcow2",
"backing_file_pool": "local_system"
}
# 在指定服务器上创建qcow2磁盘,并指定backing file
{
"name": "test001_002",
"storage_pool_id": 1,
"backing_file_id": 15
}
返回数据
名称 | 类型 | 描述 |
---|---|---|
code | int | 状态码(100001表示成功,其它表示异常) |
msg | string | 状态码描述信息 |
data | int | 存储卷ID |
reason | string | 异常时的原因 |
删除存储卷
接口描述
删除存储卷(磁盘)。
接口路径
DELETE /v1/storages/volumes/:id
请求参数
路径参数
参数名称 | 参数类型 | 是否必须 | 备注 |
---|---|---|---|
id | int | 是 | 存储卷ID |
返回数据
名称 | 类型 | 描述 |
---|---|---|
code | int | 状态码(100001表示成功,其它表示异常) |
msg | string | 状态码描述信息 |
reason | string | 异常时的原因 |
查看存储卷列表
接口描述
查看存储卷列表。
接口路径
GET /v1/storages/volumes
请求参数
参数名称 | 是否必须 | 示例 | 备注 |
---|---|---|---|
datacenter_id | 否 | ?datacenter_id=10 | 数据中心ID |
storage_pools | 否 | ?storage_pools=1,2,3 | 存储池id,多个以逗号分割 |
limit | 否 | ?limit=100 | 限制查询数量 |
offset | 否 | ?offset=100 | 指定查询时跳过的数量 |
返回数据
名称 | 类型 | 描述 |
---|---|---|
code | int | 状态码(100001表示成功,其它表示异常) |
msg | string | 状态码描述信息 |
data | []object | 存储卷信息 |
reason | string | 异常时的原因 |
响应示例:
{
"code": 100001,
"msg": "success",
"data": {
"count": 1,
"items": [
{
"id": 3, // volume id
"created_at": "2024-06-25T15:49:05.574+08:00", // 创建时间
"updated_at": "2024-06-25T15:49:05.574+08:00", // 更新时间
"volume_name": "014d4025217e418191f2cfb86d711c72", // volume文件名
"capacity": 40, // volume 容量
"type": "file", // volume 类型
"is_system": true, // 是否是虚拟机系统盘
"backing_file": "/opt/export/baseimg/win10_21h1_debug.qcow2", // qcow2的backing file
"backing_file_pool": "baseimg", // qcow2的backing file所在存储池
"backing_file_format": "qcow2",
"mount_flag": "persistent", // 磁盘被挂载到虚机的flag
"disk_type": "SSD",
"filesystem": "",
"path": "/opt/srv/kvm/014d4025217e418191f2cfb86d711c72", // volume路径
"storage_pool": "local_system", // volume所在存储池
"storage_pool_name": "local_system", // volume存储池路径
"storage_pool_id": 1, // 存储池id
"format": "qcow2", // volume格式
"datacenter_name": "office", // 数据中心
"virtual_machine_id": 3 // 虚拟机id
}
]
}
}
查看存储卷
接口描述
查看存储卷详情。
接口路径
GET /v1/storages/volumes/:id
请求参数
参数名称 | 参数类型 | 是否必须 | 备注 |
---|---|---|---|
id | int | 是 | 存储卷ID |
返回数据
名称 | 类型 | 描述 |
---|---|---|
code | int | 状态码(100001表示成功,其它表示异常) |
msg | string | 状态码描述信息 |
data | object | 存储卷信息 |
reason | string | 异常时的原因 |
响应示例:
{
"code": 100001,
"msg": "success",
"data": {
"id": 12, // volume id
"created_at": "2025-01-22T15:57:07.17+08:00", // 创建时间
"updated_at": "2025-01-22T15:57:07.17+08:00", // 更新时间
"name": "v-Vile.qcow2", // 存储卷name
"volume_name": "v-Vile.qcow2", // 存储卷文件名
"capacity": 100, // 存储卷容量
"type": "file", // 存储卷类型
"disk_type": "SSD",
"filesystem": "ntfs", // 文件系统
"path": "/opt/srv/kvm/v-Vile.qcow2", // 存储卷文件路径
"storage_pool": "local_system", // 存储卷所在存储池
"storage_pool_name": "local_system",
"format": "qcow2", // 存储卷格式
"datacenter_name": "office",
"volume_type": "volume",
"uid": 1,
"aged": false,
"children": []
}
}
上传存储卷
接口描述
上传存储卷(磁盘)。
接口为异步接口,返回有任务ID和存储卷ID,可用任务ID去查询上传存储卷任务状态。
上传存储卷任务超时时间180分钟。
接口路径
POST /v1/storages/volumes/upload
请求参数
参数名称 | 参数类型 | 是否必须 | 备注 |
---|---|---|---|
name | string | 是 | 存储卷名称(标识名称,非存储卷文件名) |
source_format | string | 是 | 源格式(qcow2、raw) |
storage_service | string | 是 | 存储服务类型(http、s3、oss。注意:预签名的oss url应视为http) |
storage_endpoint | string | 是 | 存储卷下载地址 |
storage_access_key | string | 否 | 对象存储 access key |
storage_secret_key | string | 否 | 对象存储 secret key |
storage_region | string | 否 | 对象存储 region |
storage_bucket | string | 否 | 对象存储 bucket |
storage_object_path | string | 否 | 对象存储 object path |
storage_use_ssl | string | 否 | 下载地址是否启用https |
server_id | int | 服务器ID(把存储卷上传到指定服务器上) | |
storage_pool_id | int | 是 | 存储池ID |
返回数据
名称 | 类型 | 描述 |
---|---|---|
code | int | 状态码(100001表示成功,其它表示异常) |
msg | string | 状态码描述信息 |
data | object | |
- task_id | int | 任务ID |
- volume_id | int | 存储卷ID(可以用作创建存储卷backing_file_id 参数的值,不建议直接挂载) |
reason | string | 异常时的原因 |
响应示例:
{
"code": 100001,
"msg": "success",
"data": {
"task_id": 17,
"volume_id": 569
}
}
修改磁盘容量
接口描述
修改磁盘大小(仅支持qcow2格式)。
接口路径
PUT /v1/storages/volumes/:id/capacity
请求参数
参数名称 | 类型 | 是否必须 | 默认值 | 备注 |
---|---|---|---|---|
capacity | int | 是 | 存储卷容量(单位GB) |
返回数据
名称 | 类型 | 描述 |
---|---|---|
code | int | 状态码(100001表示成功,其它表示异常) |
msg | string | 状态码描述信息 |
reason | string | 异常时的原因 |