创建云硬盘
功能介绍
创建一个云硬盘。
要创建可启动云硬盘,请在请求正文中的imageRef
属性中包含要从中创建云硬盘的镜像的UUID。
前提条件
您必须有足够的云盘存储空间配额来创建一个请求大小的云硬盘。
异步后置条件
具有正确的权限的情况下,您可以通过API调用将云硬盘状态看作 available。
具有正确的权限的情况下,您可以看到OpenStack块存储管理的存储系统中创建的云硬盘。
故障排除
如果云硬盘状态保持
creating
或显示另一个错误状态,请求失败。 确保您满足先决条件,然后调查存储后端。在OpenStack 块存储管理的存储系统中不会创建云硬盘。
存储节点需要足够的空闲存储空间来匹配云硬盘创建请求的大小。
URI
POST /v2/{tenant_id}/volumes
参数 | 是否必选 | 描述 |
---|---|---|
tenant_id | 是 | 项目ID。 |
请求消息
参数 | 参数类型 | 是否必选 | 描述 |
---|---|---|---|
size | integer | 是 | 云盘的大小,单位为GiB(GiB)。 |
description | String | 否 | 云盘的描述信息或为空。 |
imageRef | String | 否 | 要从中创建云盘的镜像的UUID。需要创建可启动云盘。 |
volume_type | String | 否 | 项目要访问的云盘类型的ID。 |
snapshot_id | String | 否 | 要从现有快照创建云盘,请指定云盘快照的UUID。云盘是在与快照相同的可用性区域和大小中创建的。 |
name | String | 否 | 云盘的名称。 |
请求示例
示例一:创建一个空白的云硬盘
{
"volume": {
"size": 10,
"description": “1234”,
"name": “test”,
“volume_type”: “d5a85229-e57e-45e5-bf98-02905b6e2a17”
},
}
示例二:创建一个来源为镜像的云硬盘
{
"volume": {
"size": 10,
"description": “1234”,
"name": “test”,
“volume_type”: “d5a85229-e57e-45e5-bf98-02905b6e2a17”,
“imageRef”: “3e8b71d5-8903-433a-9bd6-8ba58215d745”
},
}
示例三:创建一个来源为云主机快照的云硬盘
{
"volume": {
"size": 10,
"description": “1234”,
"name": “test”,
“volume_type”: “d5a85229-e57e-45e5-bf98-02905b6e2a17”,
“imageRef”: “3e8b71d5-8903-433a-9bd6-8ba58215d745”
},
}
创建一个来源为云主机快照的云硬盘,volume api version的版本必须大于等于3.46,URI为:
POST /v3/{tenant_id}/volumes
,imageRef
的值为glance中云主机快照镜像的id。
示例四:创建一个来源为云硬盘快照的云硬盘
{
"volume": {
"size": 10,
"description": “1234”,
"name": “test”,
“volume_type”: “d5a85229-e57e-45e5-bf98-02905b6e2a17”,
“snapshot_id”: "00f8e0f5-4843-4743-915d-6e884f83a785"
},
}
响应消息
参数 | 参数类型 | 描述 |
---|---|---|
migration_status | String | 卷迁移状态。 |
attachments | array | 实例附件信息。如果此卷附加到服务器实例,则“附件”列表包括附加服务器的UUID、附件UUID、附加主机的名称(如果有)、卷UUID、设备和设备UUID。否则,此列表为空。 |
availability_zone | String | 可用域的名称。 |
encrypted | boolean | 如果为true,则加密此卷。 |
updated_at | String | 更新资源的日期和时间。 日期和时间戳格式为ISO 8601: CCYY-MM公司-直径:mm:ss±hh:毫米 例如,2015-08-27T09:49:58-05:00。 ±hh:mm值(如果包括在内)是从UTC偏移的时区。在上一个示例中,偏移值为-05:00。 如果未设置更新的日期和时间戳,则其值为空。 |
replication_status | String | 卷复制状态。 |
snapshot_id | String | 要从现有快照创建卷,请指定卷快照的UUID。卷是在与快照相同的可用性区域和大小中创建的。 |
id | String | 卷的id. |
size | integer | 卷的大小,单位为GiB(GiB)。 |
user_id | String | 用户的UUID。 |
metadata | object | 快照的一个或多个元数据键和值对(如果有)。 |
status | String | 云硬盘的状态。 |
description | String | 卷的描述或为空。 |
multiattach | boolean | 要使此卷连接到多个服务器,请将此值设置为true。默认值为false。 |
source_volid | String | 源卷的UUID。API将创建与源卷大小相同的新卷。 |
consistencygroup_id | String | 一致性组的UUID。 |
name | String | 卷的名字。 |
bootable | boolean | 启用或禁用可引导属性。可以从可引导卷引导实例。 |
created_at | String | 更新资源的日期和时间。 日期和时间戳格式为ISO 8601: CCYY-MM公司-直径:mm:ss±hh:毫米 例如,2015-08-27T09:49:58-05:00。 ±hh:mm值(如果包括在内)是从UTC偏移的时区。在上一个示例中,偏移值为-05:00。 如果未设置更新的日期和时间戳,则其值为空。 |
volume_type | String | 卷的类型。 |
响应示例
{
"volume": {
"status": "creating",
"migration_status": null,
"user_id": "88cdb5957eb9400bab69abbd47f485cf",
"attachments": [],
"links": [
{
"href": "http://cinder-api.openstack.svc.cluster.local:8776/v3/87aca7a4e69d4da09a3de67c28f3d48d/volumes/180ef249-647c-4108-b09d-bbe0039da157",
"rel": "self"
},
{
"href": "http://cinder-api.openstack.svc.cluster.local:8776/87aca7a4e69d4da09a3de67c28f3d48d/volumes/180ef249-647c-4108-b09d-bbe0039da157",
"rel": "bookmark"
}
],
"availability_zone": "default-az",
"bootable": "false",
"encrypted": false,
"created_at": "2021-02-23T07:14:37.935924",
"description": "1234",
"updated_at": null,
"volume_type": "hdd",
"name": "test-api-vm",
"replication_status": "disabled",
"consistencygroup_id": null,
"source_volid": null,
"snapshot_id": "ca273fb9-2283-4dbf-8dc5-4c6f709490ba",
"multiattach": false,
"metadata": {},
"id": "180ef249-647c-4108-b09d-bbe0039da157",
"size": 1
}
}
列举云硬盘
功能介绍
列举云硬盘。
URI
GET /v2/{tenant_id}/volumes
参数 | 是否必选 | 描述 |
---|---|---|
tenant_id | 是 | 项目ID。 |
请求消息
参数 | 参数类型 | 是否必选 | 描述 |
---|---|---|---|
limit | integer | 否 | 查询的最大个数限制 |
marker | String | 否 | 最后一项的ID。 |
sort | String | 否 | 排序键和可选排序方向的逗号分隔列表,格式为[:]。有效方向是asc(升序)或desc(降序)。 |
请求示例
示例一:列举本项目下所有的云盘
URI:GET``/v2/{tenant_id}/volumes
示例二:列举所有项目下的云盘的详细信息(仅限云管理员)
URI:GET ``/v2/{tenant_id}/volumes/detail?all_tenants=1
响应消息
参数 | 参数类型 | 描述 |
---|---|---|
id | String | 云盘的id。 |
links | array | 云盘传输的链接。 |
name | String | 云盘的名字。 |
响应示例
{
"volumes": [
{
"id": "c233a7b1-1641-4e5d-9b74-d7d67e05f5de",
"links": [
{
"href": "http://cinder-api.openstack.svc.cluster.local:8776/v2/87aca7a4e69d4da09a3de67c28f3d48d/volumes/c233a7b1-1641-4e5d-9b74-d7d67e05f5de",
"rel": "self"
},
{
"href": "http://cinder-api.openstack.svc.cluster.local:8776/87aca7a4e69d4da09a3de67c28f3d48d/volumes/c233a7b1-1641-4e5d-9b74-d7d67e05f5de",
"rel": "bookmark"
}
],
"name": "hb-test"
},
{
"id": "5a2432e5-84e1-4db6-895c-594ec389bf2f",
"links": [
{
"href": "http://cinder-api.openstack.svc.cluster.local:8776/v2/87aca7a4e69d4da09a3de67c28f3d48d/volumes/5a2432e5-84e1-4db6-895c-594ec389bf2f",
"rel": "self"
},
{
"href": "http://cinder-api.openstack.svc.cluster.local:8776/87aca7a4e69d4da09a3de67c28f3d48d/volumes/5a2432e5-84e1-4db6-895c-594ec389bf2f",
"rel": "bookmark"
}
],
"name": "test-api-vm"
},
]
}
显示云硬盘的详细信息
功能介绍
显示给定存储卷的详细信息。
前提条件
存储卷必须存在。
URI
GET/v2/{tenant_id}/volumes/{volume_id}
参数 | 是否必选 | 描述 |
---|---|---|
tenant_id | 是 | 项目ID。 |
volume_id | 是 | 云硬盘的id。 |
响应消息
参数 | 参数类型 | 描述 |
---|---|---|
migration_status | String | 卷迁移状态。 |
attachments | array | 实例附件信息。如果此卷附加到服务器实例,则“附件”列表包括附加服务器的UUID、附件UUID、附加主机的名称(如果有)、卷UUID、设备和设备UUID。否则,此列表为空。 |
links | array | 卷传输的链接。 |
availability_zone | String | 可用区域的名称。 |
os-vol-host-attr:host | String | 卷的当前后端。 |
encrypted | boolean | 如果为true,则加密此卷。 |
updated_at | String | 更新资源的日期和时间。 |
replication_status | String | 卷复制状态。 |
snapshot_id | String | 要从现有快照创建卷,请指定卷快照的UUID。卷是在与快照相同的可用性区域和大小中创建的。 |
id | String | 云盘的id。 |
size | integer | 云盘的大小。 |
user_id | String | 用户的uuid。 |
os-vol-tenant-attr:tenant_id | String | 卷所属的租户ID。 |
os-vol-mig-status-attr:migstat | String | 此卷迁移的状态(无表示当前未进行迁移)。 |
metadata | object | 快照的一个或多个元数据键和值对(如果有)。 |
status | String | 云盘的状态。 |
volume_image_metadata | object | 云盘上镜像的原数据信息。 |
description | String | 云盘的描述信息。 |
multiattach | boolean | 要使此卷连接到多个服务器,请将此值设置为true。默认值为false。 |
source_volid | String | 源卷的UUID。API将创建与源卷大小相同的新卷。 |
consistencygroup_id | String | 一致性组的UUID。 |
os-vol-mig-status-attr:name_id | String | 后端上此卷名所基于的卷ID。 |
name | String | 云盘的名称。 |
bootable | boolean | 启用或禁用可引导属性。可以从可引导卷引导实例。 |
created_at | String | 创建资源的日期和时间。 |
volume_type | String | 云盘类型的名字。 |
响应示例
{
"volume": {
"migration_status": null,
"attachments": [],
"links": [
{
"href": "http://cinder-api.openstack.svc.cluster.local:8776/v2/87aca7a4e69d4da09a3de67c28f3d48d/volumes/5a2432e5-84e1-4db6-895c-594ec389bf2f",
"rel": "self"
},
{
"href": "http://cinder-api.openstack.svc.cluster.local:8776/87aca7a4e69d4da09a3de67c28f3d48d/volumes/5a2432e5-84e1-4db6-895c-594ec389bf2f",
"rel": "bookmark"
}
],
"availability_zone": "default-az",
"os-vol-host-attr:host": "cinder-volume-worker@hdd#hdd",
"encrypted": false,
"updated_at": "2021-02-23T08:00:33.000000",
"replication_status": "disabled",
"snapshot_id": "00f8e0f5-4843-4743-915d-6e884f83a785",
"id": "5a2432e5-84e1-4db6-895c-594ec389bf2f",
"size": 1,
"user_id": "88cdb5957eb9400bab69abbd47f485cf",
"os-vol-tenant-attr:tenant_id": "87aca7a4e69d4da09a3de67c28f3d48d",
"os-vol-mig-status-attr:migstat": null,
"metadata": {},
"status": "available",
"volume_image_metadata": {
"os_distro": "cirros",
"container_format": "bare",
"min_ram": "0",
"disk_format": "raw",
"image_name": "TestVM",
"image_id": "3e8b71d5-8903-433a-9bd6-8ba58215d745",
"hypervisor_type": "qemu",
"min_disk": "1",
"checksum": "4bda4108d1a74dd73a6ae6d0ba369916",
"size": "41126400"
},
"description": "1234",
"multiattach": false,
"source_volid": null,
"consistencygroup_id": null,
"os-vol-mig-status-attr:name_id": null,
"name": "test-api-vm",
"bootable": "true",
"created_at": "2021-02-23T07:19:22.000000",
"volume_type": "hdd"
}
}
删除云硬盘
功能介绍
删除一个云硬盘。
前提条件
卷状态必须为
available
,in-use,error或
error_restoring。您的存储卷不能存在快照。
异步后置条件
存储卷在存储卷索引中已经删除。
OpenStack 块存储管理的卷在存储节点中被删除。
故障排除
如果卷状态保持在
delete
或变成error_deleting
,请求失败。 确保您满足先决条件,然后调查存储后端。OpenStack 块存储管理的卷不会从存储系统中删除。
URI
DELETE/v2/{tenant_id}/volumes/{volume_id}
参数 | 是否必选 | 描述 |
---|---|---|
tenant_id | 是 | 项目ID。 |
volume_id | 是 | 云硬盘的id。 |