Block Storage API V2 (已移除)¶
注意
Block Storage API 的版本 2 在 Pike 版本中已被弃用,并在 Xena 开发周期中移除。 本文档仅为历史目的而保留。
版本 3 的 Block Storage API 在 Mitaka 版本中引入。 版本 3.0 是在 /v3 端点处默认的微版本,其设计与版本 2 相同。 因此,使用 Block Storage API v2 的脚本应该可以轻松地适应版本 3,只需进行少量更改。
API 版本¶
列出所有 Block Storage API 版本的相关信息。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
300 - 多重选择 |
资源对应于多个表示形式。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
405 - 方法不允许 |
该方法对于此端点和资源无效。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
503 - 服务不可用 |
服务现在无法处理请求。 |
响应¶
Example List Api Versions: JSON request
{
"versions": [
{
"status": "SUPPORTED",
"updated": "2014-06-28T12:20:21Z",
"links": [
{
"href": "https://docs.openstack.org/",
"type": "text/html",
"rel": "describedby"
},
{
"href": "http://10.0.2.15:8776/v2/",
"rel": "self"
}
],
"min_version": "",
"version": "",
"media-types": [
{
"base": "application/json",
"type": "application/vnd.openstack.volume+json;version=1"
}
],
"id": "v2.0"
},
{
"status": "CURRENT",
"updated": "2016-02-08T12:20:21Z",
"links": [
{
"href": "https://docs.openstack.org/",
"type": "text/html",
"rel": "describedby"
},
{
"href": "http://10.0.2.15:8776/v3/",
"rel": "self"
}
],
"min_version": "3.0",
"version": "{Current_Max_Version}",
"media-types": [
{
"base": "application/json",
"type": "application/vnd.openstack.volume+json;version=1"
}
],
"id": "v3.0"
}
]
}
可用区 (os-availability-zone)¶
列出可用区信息。
列出可用区信息。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
body |
字符串 |
项目的 UUID。 |
availabilityZoneInfo |
body |
数组 |
可用区信息列表。 |
zoneName |
body |
字符串 |
可用区名称。 |
zoneState |
body |
对象 |
可用区的当前状态。 |
available |
body |
布尔值 |
是否可用区可供使用。 |
响应示例¶
{
"availabilityZoneInfo": [{
"zoneState": {
"available": true
},
"zoneName": "nova"
}]
}
备份 (backups)¶
备份是存储在外部服务中的卷的完整副本。 可以配置该服务。 唯一支持的服务是对象存储。 随后可以将备份从外部服务恢复到最初拍摄备份的相同卷,或恢复到新卷。
在创建、列出或删除备份时,这些状态值是可能的
备份状态
状态 |
描述 |
creating |
备份正在创建中。 |
available |
备份已准备好恢复到卷。 |
deleting |
备份正在删除中。 |
error |
备份发生错误。 |
恢复中 |
备份正在恢复到卷。 |
error_deleting |
删除备份时发生错误。 |
如果发生错误,可以在备份的 fail_reason 字段中找到有关错误的更多信息。
列出项目有权访问的 Block Storage 备份,并显示详细信息。
Response codes¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
all_tenants (可选) |
查询 |
字符串 |
显示所有项目的详细信息。仅限管理员。 |
sort_key (可选) |
查询 |
字符串 |
按属性排序。有效值是 |
sort_dir (可选) |
查询 |
字符串 |
按一个或多个属性和排序方向组合进行排序。 如果在集合中省略排序方向,则默认值为 |
limit (可选) |
查询 |
整数 |
请求项目页面大小。返回最多限制值数量的项目。使用 |
marker (可选) |
查询 |
字符串 |
最后一个已查看项目的 ID。使用 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
status |
body |
字符串 |
备份状态。 请参阅备份状态表以获取可能的状态值。 |
object_count |
body |
整数 |
备份中的对象数量。 |
fail_reason |
body |
字符串 |
如果备份失败,则失败的原因。 否则为 null。 |
description (可选) |
body |
字符串 |
备份描述或 null。 |
links |
body |
数组 |
备份链接。 |
availability_zone (可选) |
body |
字符串 |
可用区的名称。 |
created_at |
body |
字符串 |
创建资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
updated_at |
body |
字符串 |
更新资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含, 如果未设置 |
name |
body |
字符串 |
备份名称。 |
has_dependent_backups (可选) |
body |
布尔值 |
如果此值为 |
volume_id |
body |
字符串 |
卷的 UUID。 |
container (可选) |
body |
字符串 |
容器名称或 null。 |
backups |
body |
数组 |
一个 |
size |
body |
整数 |
卷的大小,以 gibibytes (GiB) 为单位。 |
id |
body |
字符串 |
备份的 UUID。 |
is_incremental (可选) |
body |
布尔值 |
指示备份模式是否为增量备份。 如果此值为 |
data_timestamp |
body |
字符串 |
卷上的数据首次保存的时间。 如果它是来自卷的备份,它将与备份的 |
snapshot_id (可选) |
body |
字符串 |
源卷快照的 UUID。 |
响应示例¶
{
"backups": [
{
"availability_zone": "az1",
"container": "volumebackups",
"created_at": "2013-04-02T10:35:27.000000",
"description": null,
"fail_reason": null,
"id": "2ef47aee-8844-490c-804d-2a8efe561c65",
"links": [
{
"href": "https://:8776/v2/c95fc3e4afe248a49a28828f286a7b38/backups/2ef47aee-8844-490c-804d-2a8efe561c65",
"rel": "self"
},
{
"href": "https://:8776/c95fc3e4afe248a49a28828f286a7b38/backups/2ef47aee-8844-490c-804d-2a8efe561c65",
"rel": "bookmark"
}
],
"name": "backup001",
"object_count": 22,
"size": 1,
"status": "available",
"volume_id": "e5185058-943a-4cb4-96d9-72c184c337d6",
"is_incremental": true,
"has_dependent_backups": false
},
{
"availability_zone": "az1",
"container": "volumebackups",
"created_at": "2013-04-02T10:21:48.000000",
"description": null,
"fail_reason": null,
"id": "4dbf0ec2-0b57-4669-9823-9f7c76f2b4f8",
"links": [
{
"href": "https://:8776/v2/c95fc3e4afe248a49a28828f286a7b38/backups/4dbf0ec2-0b57-4669-9823-9f7c76f2b4f8",
"rel": "self"
},
{
"href": "https://:8776/c95fc3e4afe248a49a28828f286a7b38/backups/4dbf0ec2-0b57-4669-9823-9f7c76f2b4f8",
"rel": "bookmark"
}
],
"name": "backup002",
"object_count": 22,
"size": 1,
"status": "available",
"volume_id": "e5185058-943a-4cb4-96d9-72c184c337d6",
"is_incremental": true,
"has_dependent_backups": false
}
]
}
显示备份的详细信息。
Response codes¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
backup_id |
路径 |
字符串 |
备份的 UUID。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
status |
body |
字符串 |
备份状态。 请参阅备份状态表以获取可能的状态值。 |
object_count |
body |
整数 |
备份中的对象数量。 |
container (可选) |
body |
字符串 |
容器名称或 null。 |
description (可选) |
body |
字符串 |
备份描述或 null。 |
links |
body |
数组 |
备份链接。 |
availability_zone (可选) |
body |
字符串 |
可用区的名称。 |
created_at |
body |
字符串 |
创建资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
updated_at |
body |
字符串 |
更新资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含, 如果未设置 |
name |
body |
字符串 |
备份名称。 |
has_dependent_backups (可选) |
body |
布尔值 |
如果此值为 |
volume_id |
body |
字符串 |
卷的 UUID。 |
fail_reason |
body |
字符串 |
如果备份失败,则失败的原因。 否则为 null。 |
size |
body |
整数 |
卷的大小,以 gibibytes (GiB) 为单位。 |
备份中 |
body |
对象 |
一个 |
id |
body |
字符串 |
备份的 UUID。 |
is_incremental (可选) |
body |
布尔值 |
指示备份模式是否为增量备份。 如果此值为 |
data_timestamp |
body |
字符串 |
卷上的数据首次保存的时间。 如果它是来自卷的备份,它将与备份的 |
snapshot_id (可选) |
body |
字符串 |
源卷快照的 UUID。 |
Response Example¶
{
"backup": {
"availability_zone": "az1",
"container": "volumebackups",
"created_at": "2013-04-02T10:35:27.000000",
"description": null,
"fail_reason": null,
"id": "2ef47aee-8844-490c-804d-2a8efe561c65",
"links": [
{
"href": "https://:8776/v2/c95fc3e4afe248a49a28828f286a7b38/backups/2ef47aee-8844-490c-804d-2a8efe561c65",
"rel": "self"
},
{
"href": "https://:8776/c95fc3e4afe248a49a28828f286a7b38/backups/2ef47aee-8844-490c-804d-2a8efe561c65",
"rel": "bookmark"
}
],
"name": "backup001",
"object_count": 22,
"size": 1,
"status": "available",
"volume_id": "e5185058-943a-4cb4-96d9-72c184c337d6",
"is_incremental": true,
"has_dependent_backups": false
}
}
删除备份。
Response codes¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
backup_id |
路径 |
字符串 |
备份的 UUID。 |
Restores a Block Storage backup to an existing or new Block Storage volume.
您必须指定卷的 UUID 或名称。 如果同时指定 UUID 和名称,则 UUID 优先。
如果指定 volume_id,则卷的状态必须为 available。
Response codes¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
413 - 请求实体过大 |
无法完成此操作。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
restore |
body |
对象 |
一个 |
name |
body |
字符串 |
备份名称。 |
volume_id |
body |
字符串 |
卷的 UUID。 |
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
backup_id |
路径 |
字符串 |
备份的 UUID。 |
请求示例¶
{
"restore": {
"name": "vol-01",
"volume_id": "64f5d2fb-d836-4063-b7e2-544d5c1ff607"
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
restore |
body |
对象 |
一个 |
backup_id |
路径 |
字符串 |
备份的 UUID。 |
volume_id |
body |
字符串 |
卷的 UUID。 |
volume_name |
body |
字符串 |
卷名称。 |
响应示例¶
{
"restore": {
"backup_id": "2ef47aee-8844-490c-804d-2a8efe561c65",
"volume_id": "795114e8-7489-40be-a978-83797f2c1dd3"
}
}
Creates a Block Storage backup from a volume.
卷的状态必须为 available,或者如果使用了 force 标志,则也可以创建 in-use 卷的备份。
Response codes¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
container (可选) |
body |
字符串 |
容器名称或 null。 |
description (可选) |
body |
字符串 |
备份描述或 null。 |
incremental (可选) |
body |
布尔值 |
备份模式。 有效值为 |
volume_id |
body |
字符串 |
卷的 UUID。 |
force (可选) |
body |
布尔值 |
指示是否备份,即使卷已附加。 默认值为 |
备份中 |
body |
对象 |
一个 |
name |
body |
字符串 |
备份名称。 |
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
snapshot_id (可选) |
body |
字符串 |
源卷快照的 UUID。 |
请求示例¶
{
"backup": {
"container": null,
"description": null,
"name": "backup001",
"volume_id": "64f5d2fb-d836-4063-b7e2-544d5c1ff607",
"incremental": true
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
备份中 |
body |
对象 |
一个 |
id |
body |
字符串 |
备份的 UUID。 |
links |
body |
数组 |
备份链接。 |
name |
body |
字符串 |
备份名称。 |
Lists Block Storage backups to which the project has access.
Response codes¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
Request¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
all_tenants (可选) |
查询 |
字符串 |
显示所有项目的详细信息。仅限管理员。 |
sort_key (可选) |
查询 |
字符串 |
按属性排序。有效值是 |
sort_dir (可选) |
查询 |
字符串 |
按一个或多个属性和排序方向组合进行排序。 如果在集合中省略排序方向,则默认值为 |
limit (可选) |
查询 |
整数 |
请求项目页面大小。返回最多限制值数量的项目。使用 |
marker (可选) |
查询 |
字符串 |
最后一个已查看项目的 ID。使用 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
backups |
body |
数组 |
一个 |
id |
body |
字符串 |
备份的 UUID。 |
links |
body |
数组 |
备份链接。 |
name |
body |
字符串 |
备份名称。 |
响应示例¶
{
"backups": [
{
"id": "2ef47aee-8844-490c-804d-2a8efe561c65",
"links": [
{
"href": "https://:8776/v2/c95fc3e4afe248a49a28828f286a7b38/backups/2ef47aee-8844-490c-804d-2a8efe561c65",
"rel": "self"
},
{
"href": "https://:8776/c95fc3e4afe248a49a28828f286a7b38/backups/2ef47aee-8844-490c-804d-2a8efe561c65",
"rel": "bookmark"
}
],
"name": "backup001"
},
{
"id": "4dbf0ec2-0b57-4669-9823-9f7c76f2b4f8",
"links": [
{
"href": "https://:8776/v2/c95fc3e4afe248a49a28828f286a7b38/backups/4dbf0ec2-0b57-4669-9823-9f7c76f2b4f8",
"rel": "self"
},
{
"href": "https://:8776/c95fc3e4afe248a49a28828f286a7b38/backups/4dbf0ec2-0b57-4669-9823-9f7c76f2b4f8",
"rel": "bookmark"
}
],
"name": "backup002"
}
]
}
导出备份信息。
Response codes¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
404 - Not Found |
找不到请求的资源。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
backup_id |
路径 |
字符串 |
备份的 UUID。 |
Response Parameters¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
backup-record |
body |
对象 |
一个对象,记录卷备份元数据,包括 |
backup_service |
body |
字符串 |
用于执行备份的服务。 |
backup_url |
body |
字符串 |
用于定位备份的标识符字符串。 |
响应示例¶
{
"backup-record": {
"backup_service": "cinder.backup.drivers.swift",
"backup_url": "eyJzdGF0"
}
}
导入备份信息。
Response codes¶
成功¶
代码 |
原因 |
|---|---|
201 - 已创建 |
请求已完成,并创建了新资源。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
503 - 服务不可用 |
服务现在无法处理请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
backup-record |
body |
对象 |
一个对象,记录卷备份元数据,包括 |
backup_service |
body |
字符串 |
用于执行备份的服务。 |
backup_url |
body |
字符串 |
用于定位备份的标识符字符串。 |
请求示例¶
{
"backup-record": {
"backup_service": "cinder.backup.drivers.swift",
"backup_url": "eyJzdGF0"
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
id |
body |
字符串 |
备份的 UUID。 |
links |
body |
数组 |
备份链接。 |
name |
body |
字符串 |
备份名称。 |
响应示例¶
{
"backup": {
"id": "deac8b8c-35c9-4c71-acaa-889c2d5d5c8e",
"links": [
{
"href": "https://:8776/v2/c95fc3e4afe248a49a28828f286a7b38/backups/deac8b8c-35c9-4c71-acaa-889c2d5d5c8e",
"rel": "self"
},
{
"href": "https://:8776/c95fc3e4afe248a49a28828f286a7b38/backups/deac8b8c-35c9-4c71-acaa-889c2d5d5c8e",
"rel": "bookmark"
}
],
"name": null
}
}
Backup actions (backups, action)¶
强制删除备份并重置备份状态。
强制删除备份。 在请求主体中指定 os-force_delete 操作。
此操作将删除备份和任何备份数据。
如果备份驱动程序不支持此操作,则返回 405 状态代码。
Response codes¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
错误¶
代码 |
原因 |
|---|---|
404 - Not Found |
找不到请求的资源。 |
405 - 方法不允许 |
该方法对于此端点和资源无效。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
os-force_delete |
body |
字符串 |
The |
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
backup_id |
路径 |
字符串 |
备份的 UUID。 |
Request Example¶
{
"os-force_delete": {}
}
重置备份的状态。 在请求主体中指定 os-reset_status 操作。
Response codes¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
404 - Not Found |
找不到请求的资源。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
status |
body |
字符串 |
备份的状态。 |
os-reset_status |
body |
对象 |
The |
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
backup_id |
路径 |
字符串 |
备份的 UUID。 |
请求示例¶
{
"os-reset_status": {
"status": "available"
}
}
Capabilities for storage back ends (capabilities)¶
显示存储后端的功能。
显示主机上存储后端的功能。 hostname 的格式为 hostname@volume_backend_name。
Response codes¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
hostname |
路径 |
字符串 |
托管存储后端的宿主机的名称。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
pool_name |
body |
字符串 |
存储池的名称。 |
description (可选) |
body |
字符串 |
备份描述或 null。 |
volume_backend_name |
body |
字符串 |
后端卷的名称。 |
namespace |
body |
字符串 |
存储命名空间,例如 |
visibility |
body |
字符串 |
卷类型访问权限。 |
driver_version |
body |
字符串 |
驱动程序版本。 |
vendor_name |
body |
字符串 |
供应商名称。 |
properties |
body |
对象 |
后端卷功能列表,由 cinder 标准功能和供应商唯一属性组成。 |
storage_protocol |
body |
字符串 |
后端卷的存储后端。 例如, |
replication_targets |
body |
列表 |
用于在此后端上复制卷的卷后端列表。 |
display_name |
body |
字符串 |
卷后端功能名称。 |
响应示例¶
{
"namespace": "OS::Storage::Capabilities::fake",
"vendor_name": "OpenStack",
"volume_backend_name": "lvmdriver-1",
"pool_name": "pool",
"driver_version": "2.0.0",
"storage_protocol": "iSCSI",
"display_name": "Capabilities of Cinder LVM driver",
"description": "These are volume type options provided by Cinder LVM driver, blah, blah.",
"visibility": "public",
"replication_targets": [],
"properties": {
"compression": {
"title": "Compression",
"description": "Enables compression.",
"type": "boolean"
},
"qos": {
"title": "QoS",
"description": "Enables QoS.",
"type": "boolean"
},
"replication": {
"title": "Replication",
"description": "Enables replication.",
"type": "boolean"
},
"thin_provisioning": {
"title": "Thin Provisioning",
"description": "Sets thin provisioning.",
"type": "boolean"
}
}
}
一致性组快照¶
列出所有,列出所有详细信息,显示详细信息,创建和删除一致性组快照。
删除一致性组快照。
Response codes¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
cgsnapshot_id |
路径 |
字符串 |
一致性组快照的 ID。 |
显示一致性组快照的详细信息。
Response codes¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
cgsnapshot_id |
路径 |
字符串 |
一致性组快照的 ID。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
status (可选) |
body |
字符串 |
一致性组快照的 |
description (可选) |
body |
字符串 |
备份描述或 null。 |
created_at |
body |
字符串 |
创建资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
consistencygroup_id |
body |
字符串 |
一致性组的 UUID。 |
id |
body |
字符串 |
卷传输的 UUID。 |
name |
body |
字符串 |
卷传输的名称。 |
响应示例¶
{
"cgsnapshot": {
"id": "6f519a48-3183-46cf-a32f-41815f813986",
"consistencygroup_id": "6f519a48-3183-46cf-a32f-41815f814444",
"status": "available",
"created_at": "2015-09-16T09:28:52.000000",
"name": "my-cg1",
"description": "my first consistency group"
}
}
列出所有一致性组快照的详细信息。
Response codes¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
all_tenants (可选) |
查询 |
字符串 |
显示所有项目的详细信息。仅限管理员。 |
Response Parameters¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
status (可选) |
body |
字符串 |
一致性组快照的 |
description (可选) |
body |
字符串 |
备份描述或 null。 |
created_at |
body |
字符串 |
创建资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
consistencygroup_id |
body |
字符串 |
一致性组的 UUID。 |
id |
body |
字符串 |
卷传输的 UUID。 |
name |
body |
字符串 |
卷传输的名称。 |
响应示例¶
{
"cgsnapshots": [
{
"id": "6f519a48-3183-46cf-a32f-41815f813986",
"consistencygroup_id": "6f519a48-3183-46cf-a32f-41815f814444",
"status": "available",
"created_at": "2015-09-16T09:28:52.000000",
"name": "my-cg1",
"description": "my first consistency group"
},
{
"id": "aed36625-a6d7-4681-ba59-c7ba3d18c148",
"consistencygroup_id": "aed36625-a6d7-4681-ba59-c7ba3d18dddd",
"status": "error",
"created_at": "2015-09-16T09:31:15.000000",
"name": "my-cg2",
"description": "Edited description"
}
]
}
列出所有一致性组快照。
Response codes¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
all_tenants (可选) |
查询 |
字符串 |
显示所有项目的详细信息。仅限管理员。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
id |
body |
字符串 |
卷传输的 UUID。 |
name |
body |
字符串 |
卷传输的名称。 |
响应示例¶
{
"cgsnapshots": [
{
"id": "6f519a48-3183-46cf-a32f-41815f813986",
"name": "my-cg1"
},
{
"id": "aed36625-a6d7-4681-ba59-c7ba3d18c148",
"name": "my-cg2"
}
]
}
创建一致性组快照。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
name |
body |
字符串 |
卷传输的名称。 |
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
请求示例¶
{
"cgsnapshot": {
"consistencygroup_id": "6f519a48-3183-46cf-a32f-41815f814546",
"name": "firstcg",
"description": "first consistency group",
"user_id": "6f519a48-3183-46cf-a32f-41815f814444",
"project_id": "6f519a48-3183-46cf-a32f-41815f815555",
"status": "creating"
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
status (可选) |
body |
字符串 |
一致性组快照的 |
description (可选) |
body |
字符串 |
备份描述或 null。 |
created_at |
body |
字符串 |
创建资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
consistencygroup_id |
body |
字符串 |
一致性组的 UUID。 |
id |
body |
字符串 |
卷传输的 UUID。 |
name |
body |
字符串 |
卷传输的名称。 |
一致性组¶
一致性组使您能够在多个卷上以完全相同的时间点创建快照。 例如,数据库可能会将其表、日志和配置放在单独的卷上。 要从以前的时间点恢复此数据库,最好从相同的时间点一起恢复日志、表和配置。
使用策略配置文件来授予权限,以限制角色对这些操作的访问。
列出一致性组。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
all_tenants (可选) |
查询 |
字符串 |
显示所有项目的详细信息。仅限管理员。 |
sort_key (可选) |
查询 |
字符串 |
按属性排序。有效值是 |
sort_dir (可选) |
查询 |
字符串 |
按一个或多个属性和排序方向组合进行排序。 如果在集合中省略排序方向,则默认值为 |
limit (可选) |
查询 |
整数 |
请求项目页面大小。返回最多限制值数量的项目。使用 |
marker (可选) |
查询 |
字符串 |
最后一个已查看项目的 ID。使用 |
Response Parameters¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
id |
body |
字符串 |
卷传输的 UUID。 |
name |
body |
字符串 |
卷传输的名称。 |
响应示例¶
{
"consistencygroups": [
{
"id": "6f519a48-3183-46cf-a32f-41815f813986",
"name": "my-cg1"
},
{
"id": "aed36625-a6d7-4681-ba59-c7ba3d18c148",
"name": "my-cg2"
}
]
}
创建一致性组。
Response codes¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
description |
body |
字符串 |
一致性组描述。 |
availability_zone (可选) |
body |
字符串 |
可用区的名称。 |
volume_types |
body |
字符串 |
用逗号分隔的卷类型列表。 在具有多个存储后端的环境中,调度程序将根据卷类型确定将卷发送到哪里。 有关如何使用卷类型来创建多个存储后端的信息,请参阅 配置多个存储后端。 |
name (可选) |
body |
字符串 |
一致性组名称。 |
Request Example¶
{
"consistencygroup": {
"name": "firstcg",
"description": "first consistency group",
"volume_types": "type1,type2",
"availability_zone": "az0"
}
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
status |
body |
字符串 |
一致性组的状态。 |
description (可选) |
body |
字符串 |
一致性组描述。 |
availability_zone (可选) |
body |
字符串 |
可用区的名称。 |
created_at |
body |
字符串 |
创建资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
volume_types |
body |
数组 |
卷类型列表。 在具有多个存储后端的环境中,调度程序将根据卷类型确定将卷发送到哪里。 有关如何使用卷类型来创建多个存储后端的信息,请参阅 配置多个存储后端。 |
name (可选) |
body |
字符串 |
一致性组名称。 |
id (可选) |
body |
字符串 |
一致性组的 UUID。 |
响应示例¶
{
"consistencygroup": {
"status": "error",
"description": "first consistency group",
"availability_zone": "az0",
"created_at": "2016-08-19T19:32:19.000000",
"volume_types": ["type1", "type2"],
"id": "63d1a274-de38-4384-a97e-475306777027",
"name": "firstcg"
}
}
显示一致性组的详细信息。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
consistencygroup_id |
body |
字符串 |
一致性组的 UUID。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
status |
body |
字符串 |
一致性组的状态。 |
description (可选) |
body |
字符串 |
备份描述或 null。 |
availability_zone (可选) |
body |
字符串 |
可用区的名称。 |
created_at |
body |
字符串 |
创建资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
volume_types |
body |
数组 |
卷类型列表。 在具有多个存储后端的环境中,调度程序将根据卷类型确定将卷发送到哪里。 有关如何使用卷类型来创建多个存储后端的信息,请参阅 配置多个存储后端。 |
id |
body |
字符串 |
卷传输的 UUID。 |
name |
body |
字符串 |
卷传输的名称。 |
Response Example¶
{
"consistencygroup": {
"id": "6f519a48-3183-46cf-a32f-41815f813986",
"status": "available",
"availability_zone": "az1",
"created_at": "2015-09-16T09:28:52.000000",
"name": "my-cg1",
"description": "my first consistency group",
"volume_types": [
"123456"
]
}
}
从源创建一致性组。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
status |
body |
字符串 |
一致性组的状态。 |
user_id |
body |
字符串 |
用户的 UUID。 |
description (可选) |
body |
字符串 |
备份描述或 null。 |
cgsnapshot_id (可选) |
body |
字符串 |
一致性组快照的 UUID。 |
source_cgid (可选) |
body |
字符串 |
源一致性组的 UUID。 |
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
name |
body |
字符串 |
卷传输的名称。 |
project_id |
body |
字符串 |
项目的 UUID。 |
请求示例¶
{
"consistencygroup-from-src": {
"name": "firstcg",
"description": "first consistency group",
"cgsnapshot_id": "6f519a48-3183-46cf-a32f-41815f813986",
"source_cgid": "6f519a48-3183-46cf-a32f-41815f814546",
"user_id": "6f519a48-3183-46cf-a32f-41815f815555",
"project_id": "6f519a48-3183-46cf-a32f-41815f814444",
"status": "creating"
}
}
删除一个一致性组。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
force (可选) |
body |
布尔值 |
指示是否备份,即使卷已附加。 默认值为 |
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
consistencygroup_id |
body |
字符串 |
一致性组的 UUID。 |
请求示例¶
{
"consistencygroup": {
"force": false
}
}
列出带有详细信息的一致性组。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
all_tenants (可选) |
查询 |
字符串 |
显示所有项目的详细信息。仅限管理员。 |
sort_key (可选) |
查询 |
字符串 |
按属性排序。有效值是 |
sort_dir (可选) |
查询 |
字符串 |
按一个或多个属性和排序方向组合进行排序。 如果在集合中省略排序方向,则默认值为 |
limit (可选) |
查询 |
整数 |
请求项目页面大小。返回最多限制值数量的项目。使用 |
marker (可选) |
查询 |
字符串 |
最后一个已查看项目的 ID。使用 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
status |
body |
字符串 |
一致性组的状态。 |
description (可选) |
body |
字符串 |
备份描述或 null。 |
availability_zone (可选) |
body |
字符串 |
可用区的名称。 |
created_at |
body |
字符串 |
创建资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
volume_types |
body |
数组 |
卷类型列表。 在具有多个存储后端的环境中,调度程序将根据卷类型确定将卷发送到哪里。 有关如何使用卷类型来创建多个存储后端的信息,请参阅 配置多个存储后端。 |
id |
body |
字符串 |
卷传输的 UUID。 |
name |
body |
字符串 |
卷传输的名称。 |
响应示例¶
{
"consistencygroups": [
{
"id": "6f519a48-3183-46cf-a32f-41815f813986",
"status": "available",
"availability_zone": "az1",
"created_at": "2015-09-16T09:28:52.000000",
"name": "my-cg1",
"description": "my first consistency group",
"volume_types": [
"123456"
]
},
{
"id": "aed36625-a6d7-4681-ba59-c7ba3d18c148",
"status": "error",
"availability_zone": "az2",
"created_at": "2015-09-16T09:31:15.000000",
"name": "my-cg2",
"description": "Edited description",
"volume_types": [
"234567"
]
}
]
}
更新一致性组。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
remove_volumes (可选) |
body |
字符串 |
要从卷一致性组中删除的一个或多个卷 UUID,用逗号分隔。 |
description (可选) |
body |
字符串 |
备份描述或 null。 |
add_volumes (可选) |
body |
字符串 |
要添加到卷一致性组的一个或多个卷 UUID,用逗号分隔。 |
name |
body |
字符串 |
卷传输的名称。 |
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
consistencygroup_id |
body |
字符串 |
一致性组的 UUID。 |
请求示例¶
{
"consistencygroup": {
"name": "my_cg",
"description": "My consistency group",
"add_volumes": "volume-uuid-1,volume-uuid-2",
"remove_volumes": "volume-uuid-8,volume-uuid-9"
}
}
Hosts 扩展 (os-hosts)¶
仅限管理员,具体取决于策略设置。
列出、显示主机。
列出所有主机摘要信息,这些信息未被禁用。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
admin_project_id |
路径 |
字符串 |
管理项目的 UUID。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
service-status |
body |
字符串 |
服务的状态。可以是 |
服务 |
body |
字符串 |
正在主机上运行的服务的名称。 |
zone |
body |
字符串 |
可用区名称。 |
service-state |
body |
字符串 |
服务的状态。可以是 |
host_name |
body |
字符串 |
托管存储后端的宿主机的名称,格式可能为 |
last-update |
body |
字符串 |
更新资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含, 如果未设置 |
响应示例¶
{
"hosts": [{
"service-status": "available",
"service": "cinder-backup",
"zone": "nova",
"service-state": "enabled",
"host_name": "node1",
"last-update": "2017-03-09T21:38:41.000000"
},
{
"service-status": "available",
"service": "cinder-scheduler",
"zone": "nova",
"service-state": "enabled",
"host_name": "node1",
"last-update": "2017-03-09T21:38:38.000000"
},
{
"service-status": "available",
"service": "cinder-volume",
"zone": "nova",
"service-state": "enabled",
"host_name": "node1@lvm",
"last-update": "2017-03-09T21:38:35.000000"
}]
}
显示 cinder-volume 主机的卷和快照详细信息。
注意: 此 API 专门用于 cinder-volume 主机。它对其他 Cinder 服务主机或禁用 cinder-volume 服务的宿主机无效。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
admin_project_id |
路径 |
字符串 |
管理项目的 UUID。 |
host_name |
路径 |
字符串 |
托管存储后端的宿主机的名称。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
volume_count |
body |
字符串 |
卷总数。 |
total_volume_gb |
body |
字符串 |
已使用的 GiB(千兆字节)总量。 |
total_snapshot_gb |
body |
字符串 |
已使用的快照总数。 |
project |
body |
字符串 |
主机资源所属的项目 UUID。在摘要资源中,该值为 |
host |
body |
字符串 |
托管存储后端的宿主机的名称,格式可能为 |
snapshot_count |
body |
整数 |
已使用的快照总数。 |
示例:显示主机详细信息
{
"host": [{
"resource": {
"volume_count": "8",
"total_volume_gb": "11",
"total_snapshot_gb": "1",
"project": "(total)",
"host": "node1@rbd-sas",
"snapshot_count": "1"
}
},
{
"resource": {
"volume_count": "8",
"total_volume_gb": "11",
"total_snapshot_gb": "1",
"project": "f21a9c86d7114bf99c711f4874d80474",
"host": "node1@rbd-sas",
"snapshot_count": "1"
}
}]
}
配额 (limits)¶
显示项目的绝对配额。
绝对配额值为 -1 表示该项目的绝对配额是无限的。
显示项目的绝对配额。
绝对配额值为 -1 表示该项目的绝对配额是无限的。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
403 - 禁止 |
策略不允许当前用户执行此操作。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
totalSnapshotsUsed |
body |
整数 |
已使用的快照总数。 |
maxTotalBackups |
body |
整数 |
最大备份数量。 |
maxTotalVolumeGigabytes |
body |
整数 |
最大卷总量,以 GiB(千兆字节)为单位。 |
限制 |
body |
对象 |
一个 |
maxTotalSnapshots |
body |
整数 |
最大快照数量。 |
maxTotalBackupGigabytes |
body |
整数 |
备份总量的最大值,以 GiB(千兆字节)为单位。 |
totalBackupGigabytesUsed |
body |
整数 |
已使用的备份 GiB(千兆字节)总量。 |
maxTotalVolumes |
body |
整数 |
最大卷数量。 |
totalVolumesUsed |
body |
整数 |
已使用的卷总数。 |
rate |
body |
数组 |
卷复制带宽速率限制,用于缓解实例数据访问速度变慢的问题。 |
totalBackupsUsed |
body |
整数 |
已使用的备份总数。 |
totalGigabytesUsed |
body |
整数 |
已使用的 GiB(千兆字节)总量。 |
absolute |
body |
对象 |
一个 |
响应示例¶
{
"limits": {
"rate": [],
"absolute": {
"totalSnapshotsUsed": 0,
"maxTotalBackups": 10,
"maxTotalVolumeGigabytes": 1000,
"maxTotalSnapshots": 10,
"maxTotalBackupGigabytes": 1000,
"totalBackupGigabytesUsed": 0,
"maxTotalVolumes": 10,
"totalVolumesUsed": 0,
"totalBackupsUsed": 0,
"totalGigabytesUsed": 0
}
}
}
后端存储池¶
仅限管理员。列出调度服务已知的所有后端存储池。
列出所有后端存储池。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
detail (可选) |
查询 |
布尔值 |
是否显示池详细信息或仅在响应中显示池名称。设置为 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
updated |
body |
字符串 |
扩展上次更新的日期和时间戳。 |
QoS_support |
body |
布尔值 |
服务质量 (QoS) 支持。 |
name |
body |
字符串 |
后端的名称。 |
total_capacity_gb |
body |
字符串 |
后端卷的总容量,以 GB 为单位。有效值是字符串,例如 |
volume_backend_name |
body |
字符串 |
后端卷的名称。 |
capabilities |
body |
对象 |
后端的capabilities。该值为 |
free_capacity_gb |
body |
字符串 |
后端卷的可用容量,以 GB 为单位。有效值是字符串,例如 |
driver_version |
body |
字符串 |
驱动程序版本。 |
reserved_percentage |
body |
整数 |
后端内部使用保留的总容量的百分比。 |
storage_protocol |
body |
字符串 |
后端卷的存储后端。 例如, |
响应示例¶
{
"pools": [
{
"name": "pool1",
"capabilities": {
"updated": "2014-10-28T00:00:00-00:00",
"total_capacity_gb": 1024,
"free_capacity_gb": 100,
"volume_backend_name": "pool1",
"reserved_percentage": 0,
"driver_version": "1.0.0",
"storage_protocol": "iSCSI",
"QoS_support": false
}
},
{
"name": "pool2",
"capabilities": {
"updated": "2014-10-28T00:00:00-00:00",
"total_capacity_gb": 512,
"free_capacity_gb": 200,
"volume_backend_name": "pool2",
"reserved_percentage": 0,
"driver_version": "1.0.1",
"storage_protocol": "iSER",
"QoS_support": true
}
}
]
}
卷传输¶
将卷从一个用户传输到另一个用户。
接受卷传输。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
auth_key |
body |
字符串 |
卷传输的身份验证密钥。 |
transfer |
body |
对象 |
卷传输对象。 |
transfer_id (可选) |
路径 |
字符串 |
卷传输的唯一标识符。 |
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
请求示例¶
{
"accept": {
"auth_key": "9266c59563c84664"
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
volume_id |
body |
字符串 |
卷的 UUID。 |
id |
body |
字符串 |
卷传输的 UUID。 |
links |
body |
数组 |
卷传输的链接。 |
name |
body |
字符串 |
卷传输的名称。 |
响应示例¶
{
"transfer": {
"id": "cac5c677-73a9-4288-bb9c-b2ebfb547377",
"name": "first volume transfer",
"volume_id": "894623a6-e901-4312-aa06-4275e6321cce",
"links": [
{
"href": "https:///v2/firstproject/volumes/1",
"rel": "self"
},
{
"href": "https:///firstproject/volumes/1",
"rel": "bookmark"
}
]
}
}
创建卷传输。
先决条件
卷
status必须为available不支持传输加密卷
如果卷有快照,这些快照必须为
available
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
transfer |
body |
对象 |
卷传输对象。 |
name |
body |
字符串 |
卷传输的名称。 |
volume_id |
body |
字符串 |
卷的 UUID。 |
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
请求示例¶
{
"transfer": {
"volume_id": "c86b9af4-151d-4ead-b62c-5fb967af0e37",
"name": "first volume"
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
auth_key |
body |
字符串 |
卷传输的身份验证密钥。 |
links |
body |
数组 |
卷传输的链接。 |
created_at |
body |
字符串 |
创建资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
volume_id |
body |
字符串 |
卷的 UUID。 |
id |
body |
字符串 |
卷传输的 UUID。 |
name |
body |
字符串 |
卷传输的名称。 |
响应示例¶
{
"transfer": {
"id": "1a7059f5-8ed7-45b7-8d05-2811e5d09f24",
"created_at": "2015-02-25T03:56:53.081642",
"name": "first volume",
"volume_id": "c86b9af4-151d-4ead-b62c-5fb967af0e37",
"auth_key": "9266c59563c84664",
"links": [
{
"href": "https:///v2/firstproject/volumes/3",
"rel": "self"
},
{
"href": "https:///firstproject/volumes/3",
"rel": "bookmark"
}
]
}
}
列出卷传输。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
all_tenants (可选) |
查询 |
字符串 |
显示所有项目的详细信息。仅限管理员。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
volume_id |
body |
字符串 |
卷的 UUID。 |
id |
body |
字符串 |
卷传输的 UUID。 |
links |
body |
数组 |
卷传输的链接。 |
name |
body |
字符串 |
卷传输的名称。 |
响应示例¶
{
"transfers": [
{
"id": "cac5c677-73a9-4288-bb9c-b2ebfb547377",
"name": "first volume transfer",
"volume_id": "894623a6-e901-4312-aa06-4275e6321cce",
"links": [
{
"href": "https:///v2/firstproject/volumes/1",
"rel": "self"
},
{
"href": "https:///firstproject/volumes/1",
"rel": "bookmark"
}
]
},
{
"id": "f26c0dee-d20d-4e80-8dee-a8d91b9742a1",
"name": "second volume transfer",
"volume_id": "673db275-379f-41af-8371-e1652132b4c1",
"links": [
{
"href": "https:///v2/firstproject/volumes/2",
"rel": "self"
},
{
"href": "https:///firstproject/volumes/2",
"rel": "bookmark"
}
]
}
]
}
显示卷传输的详细信息。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
transfer_id (可选) |
路径 |
字符串 |
卷传输的唯一标识符。 |
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
created_at |
body |
字符串 |
创建资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
volume_id |
body |
字符串 |
卷的 UUID。 |
id |
body |
字符串 |
卷传输的 UUID。 |
links |
body |
数组 |
卷传输的链接。 |
name |
body |
字符串 |
卷传输的名称。 |
响应示例¶
{
"transfer": {
"id": "cac5c677-73a9-4288-bb9c-b2ebfb547377",
"created_at": "2015-02-25T03:56:53.081642",
"name": "first volume transfer",
"volume_id": "894623a6-e901-4312-aa06-4275e6321cce",
"links": [
{
"href": "https:///v2/firstproject/volumes/1",
"rel": "self"
},
{
"href": "https:///firstproject/volumes/1",
"rel": "bookmark"
}
]
}
}
删除卷传输。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
transfer_id (可选) |
路径 |
字符串 |
卷传输的唯一标识符。 |
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
列出卷传输,带有详细信息。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
all_tenants (可选) |
查询 |
字符串 |
显示所有项目的详细信息。仅限管理员。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
created_at |
body |
字符串 |
创建资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
volume_id |
body |
字符串 |
卷的 UUID。 |
id |
body |
字符串 |
卷传输的 UUID。 |
links |
body |
数组 |
卷传输的链接。 |
name |
body |
字符串 |
卷传输的名称。 |
响应示例¶
{
"transfers": [
{
"id": "cac5c677-73a9-4288-bb9c-b2ebfb547377",
"created_at": "2015-02-25T03:56:53.081642",
"name": "first volume transfer",
"volume_id": "894623a6-e901-4312-aa06-4275e6321cce",
"links": [
{
"href": "https:///v2/firstproject/volumes/1",
"rel": "self"
},
{
"href": "https:///firstproject/volumes/1",
"rel": "bookmark"
}
]
},
{
"id": "f26c0dee-d20d-4e80-8dee-a8d91b9742a1",
"created_at": "2015-03-25T03:56:53.081642",
"name": "second volume transfer",
"volume_id": "673db275-379f-41af-8371-e1652132b4c1",
"links": [
{
"href": "https:///v2/firstproject/volumes/2",
"rel": "self"
},
{
"href": "https:///firstproject/volumes/2",
"rel": "bookmark"
}
]
}
]
}
服务质量 (QoS) 规范 (qos-specs)¶
仅限管理员。
创建、列出、显示详细信息、关联、取消关联、设置密钥、取消设置密钥和删除服务质量 (QoS) 规范。
取消将 QoS 规范从所有关联中分离。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
qos_id |
路径 |
字符串 |
QoS 规范的 ID。 |
取消设置 QoS 规范中的密钥。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
keys |
body |
数组 |
密钥列表。 |
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
qos_id |
路径 |
字符串 |
QoS 规范的 ID。 |
请求示例¶
{
"keys": [
"key1"
]
}
响应示例¶
成功的 PUT 操作的响应中没有主体内容。
列出 QoS 规范的所有关联。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
qos_id |
路径 |
字符串 |
QoS 规范的 ID。 |
响应示例¶
{
"qos_specs": {
"specs": {
"availability": "100",
"numberOfFailures": "0"
},
"consumer": "back-end",
"name": "reliability-spec",
"id": "0388d6c6-d5d4-42a3-b289-95205c50dd15"
},
"links": [
{
"href": "http://23.253.228.211:8776/v2/e1cf63117ae74309a5bcc2002a23be8b/qos_specs/0388d6c6-d5d4-42a3-b289-95205c50dd15",
"rel": "self"
},
{
"href": "http://23.253.228.211:8776/e1cf63117ae74309a5bcc2002a23be8b/qos_specs/0388d6c6-d5d4-42a3-b289-95205c50dd15",
"rel": "bookmark"
}
]
}
将 QoS 规范与卷类型关联。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
qos_id |
路径 |
字符串 |
QoS 规范的 ID。 |
vol_type_id |
路径 |
字符串 |
现有卷类型的 UUID。 |
取消将 QoS 规范与卷类型分离。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
qos_id |
路径 |
字符串 |
QoS 规范的 ID。 |
vol_type_id |
路径 |
字符串 |
现有卷类型的 UUID。 |
显示 QoS 规范的详细信息。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
405 - 方法不允许 |
该方法对于此端点和资源无效。 |
413 - 请求实体过大 |
无法完成此操作。 |
503 - 服务不可用 |
服务现在无法处理请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
qos_id |
路径 |
字符串 |
QoS 规范的 ID。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
name |
body |
字符串 |
QoS 规范的名称。 |
links |
body |
数组 |
QoS 规范的链接。 |
id |
body |
字符串 |
QoS 规范生成的 ID。 |
qos_specs |
body |
对象 |
一个 |
consumer (可选) |
body |
字符串 |
消费者类型。 |
specs |
body |
对象 |
一个 |
响应示例¶
{
"qos_specs": {
"specs": {
"availability": "100",
"numberOfFailures": "0"
},
"consumer": "back-end",
"name": "reliability-spec",
"id": "0388d6c6-d5d4-42a3-b289-95205c50dd15"
},
"links": [
{
"href": "http://23.253.228.211:8776/v2/e1cf63117ae74309a5bcc2002a23be8b/qos_specs/0388d6c6-d5d4-42a3-b289-95205c50dd15",
"rel": "self"
},
{
"href": "http://23.253.228.211:8776/e1cf63117ae74309a5bcc2002a23be8b/qos_specs/0388d6c6-d5d4-42a3-b289-95205c50dd15",
"rel": "bookmark"
}
]
}
设置 QoS 规范中的密钥。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
qos_specs |
body |
对象 |
一个 |
specs |
body |
对象 |
一个 |
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
qos_id |
路径 |
字符串 |
QoS 规范的 ID。 |
请求示例¶
{
"qos_specs": {
"delay": "1"
}
}
响应示例¶
{
"qos_specs": {
"delay": "1"
}
}
删除 QoS 规范。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
qos_id |
路径 |
字符串 |
QoS 规范的 ID。 |
force (可选) |
body |
布尔值 |
指示是否备份,即使卷已附加。 默认值为 |
创建 QoS 规范。
在请求主体中指定一个或多个键值对。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
qos_specs |
body |
对象 |
一个 |
consumer (可选) |
body |
字符串 |
消费者类型。 |
name |
body |
字符串 |
QoS 规范的名称。 |
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
请求示例¶
{
"qos_specs": {
"availability": "100",
"name": "reliability-spec",
"numberOfFailures": "0"
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
name |
body |
字符串 |
QoS 规范的名称。 |
links |
body |
数组 |
QoS 规范的链接。 |
id |
body |
字符串 |
QoS 规范生成的 ID。 |
qos_specs |
body |
对象 |
一个 |
consumer (可选) |
body |
字符串 |
消费者类型。 |
specs |
body |
对象 |
一个 |
列出服务质量 (QoS) 规范。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
sort_key (可选) |
查询 |
字符串 |
按属性排序。有效值是 |
sort_dir (可选) |
查询 |
字符串 |
按一个或多个属性和排序方向组合进行排序。 如果在集合中省略排序方向,则默认值为 |
limit (可选) |
查询 |
整数 |
请求项目页面大小。返回最多限制值数量的项目。使用 |
marker (可选) |
查询 |
字符串 |
最后一个已查看项目的 ID。使用 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
specs |
body |
对象 |
一个 |
qos_specs |
body |
对象 |
一个 |
consumer (可选) |
body |
字符串 |
消费者类型。 |
id |
body |
字符串 |
QoS 规范生成的 ID。 |
name |
body |
字符串 |
QoS 规范的名称。 |
响应示例¶
{
"qos_specs": [
{
"specs": {
"availability": "100",
"numberOfFailures": "0"
},
"consumer": "back-end",
"name": "reliability-spec",
"id": "0388d6c6-d5d4-42a3-b289-95205c50dd15"
},
{
"specs": {
"delay": "0",
"throughput": "100"
},
"consumer": "back-end",
"name": "performance-spec",
"id": "ecfc6e2e-7117-44a4-8eec-f84d04f531a8"
}
]
}
配额类集扩展 (os-quota-class-sets)¶
仅限管理员,具体取决于策略设置。
显示和更新项目的配额类。
显示项目的配额类设置。如果配额类资源不存在特定值,则将报告默认值。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
quota_class_name |
路径 |
字符串 |
要设置配额的配额类的名称。 |
admin_project_id |
路径 |
字符串 |
管理项目的 UUID。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
backup_gigabytes |
body |
整数 |
备份总量的最大值,以 GiB(千兆字节)为单位。 |
backups |
body |
整数 |
最大备份数量。 |
千兆字节 |
body |
整数 |
最大卷总量,以 GiB(千兆字节)为单位。 |
groups |
body |
整数 |
最大组数。 |
per_volume_gigabytes |
body |
整数 |
每个卷的最大存储量,以千兆字节 (GiB) 为单位。 |
快照 |
body |
整数 |
最大快照数量。 |
volumes |
body |
整数 |
最大卷数量。 |
id |
body |
字符串 |
配额类集的名称。 |
响应示例¶
{
"quota_class_set": {
"per_volume_gigabytes": -1,
"volumes_lvmdriver-1": -1,
"groups": 10,
"gigabytes": 1000,
"backup_gigabytes": 1000,
"snapshots": 10,
"gigabytes_lvmdriver-1": -1,
"volumes": 10,
"snapshots_lvmdriver-1": -1,
"backups": 10,
"id": "default"
}
}
更新项目的配额类设置。如果 quota_class_name 键不存在,则 API 将创建一个。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
admin_project_id |
路径 |
字符串 |
管理项目的 UUID。 |
quota_class_name |
路径 |
字符串 |
要设置配额的配额类的名称。 |
千兆字节 |
body |
整数 |
最大卷总量,以 GiB(千兆字节)为单位。 |
snapshots (可选) |
body |
整数 |
最大快照数量。 |
volumes (可选) |
body |
整数 |
最大卷数量。 |
volume-type (可选) |
路径 |
字符串 |
项目要访问的卷类型 ID。 |
请求示例¶
{
"quota_class_set": {
"volumes_lmv": 10,
"gigabytes_lmv": 1000,
"snapshots_lmv": 10
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
backup_gigabytes |
body |
整数 |
备份总量的最大值,以 GiB(千兆字节)为单位。 |
backups |
body |
整数 |
最大备份数量。 |
千兆字节 |
body |
整数 |
最大卷总量,以 GiB(千兆字节)为单位。 |
groups |
body |
整数 |
最大组数。 |
per_volume_gigabytes |
body |
整数 |
每个卷的最大存储量,以千兆字节 (GiB) 为单位。 |
快照 |
body |
整数 |
最大快照数量。 |
volumes |
body |
整数 |
最大卷数量。 |
响应示例¶
{
"quota_class_set": {
"per_volume_gigabytes": -1,
"volumes_lvmdriver-1": -1,
"groups": 10,
"gigabytes": 1000,
"backup_gigabytes": 1000,
"snapshots": 10,
"gigabytes_lvmdriver-1": -1,
"volumes": 10,
"snapshots_lvmdriver-1": -1,
"backups": 10
}
}
配额集扩展 (os-quota-sets)¶
仅限管理员,具体取决于策略设置。
显示、更新和删除项目的配额。
显示项目的配额。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
admin_project_id |
路径 |
字符串 |
管理项目的 UUID。 |
usage (可选) |
查询 |
布尔值 |
设置为 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
quota_set |
body |
对象 |
一个 |
id |
body |
字符串 |
项目的 UUID。 |
volumes |
body |
整数 |
每个项目允许的卷数量。 |
volumes_{volume_type} |
body |
整数 |
允许每个项目和指定卷类型的卷数量。 |
快照 |
body |
整数 |
每个项目允许的快照数量。 |
snapshots_{volume_type} |
body |
整数 |
允许每个项目和指定卷类型的快照数量。 |
backups |
body |
整数 |
每个项目允许的备份数量。 |
groups |
body |
整数 |
每个项目允许的组数量。 |
per_volume_gigabytes |
body |
整数 |
每个卷允许的请求中的卷大小(GB)。 |
千兆字节 |
body |
整数 |
每个项目允许的卷和快照的大小(GB)。 |
gigabytes_{volume_type} |
body |
整数 |
允许每个项目和指定卷类型的卷和快照的大小(GB)。 |
backup_gigabytes |
body |
整数 |
允许每个项目的备份大小(GB)。 |
响应示例¶
{
"quota_set": {
"gigabytes": 5,
"snapshots": 10,
"volumes": 20
}
}
更新项目的配额。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
admin_project_id |
路径 |
字符串 |
管理项目的 UUID。 |
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
quota_set |
body |
对象 |
一个 |
volumes |
body |
整数 |
每个项目允许的卷数量。 |
volumes_{volume_type} |
body |
整数 |
允许每个项目和指定卷类型的卷数量。 |
快照 |
body |
整数 |
每个项目允许的快照数量。 |
snapshots_{volume_type} |
body |
整数 |
允许每个项目和指定卷类型的快照数量。 |
backups |
body |
整数 |
每个项目允许的备份数量。 |
groups |
body |
整数 |
每个项目允许的组数量。 |
per_volume_gigabytes |
body |
整数 |
每个卷允许的请求中的卷大小(GB)。 |
千兆字节 |
body |
整数 |
每个项目允许的卷和快照的大小(GB)。 |
gigabytes_{volume_type} |
body |
整数 |
允许每个项目和指定卷类型的卷和快照的大小(GB)。 |
backup_gigabytes |
body |
整数 |
允许每个项目的备份大小(GB)。 |
请求示例¶
{
"quota_set": {
"snapshots": 45
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
quota_set |
body |
对象 |
一个 |
volumes |
body |
整数 |
每个项目允许的卷数量。 |
volumes_{volume_type} |
body |
整数 |
允许每个项目和指定卷类型的卷数量。 |
快照 |
body |
整数 |
每个项目允许的快照数量。 |
snapshots_{volume_type} |
body |
整数 |
允许每个项目和指定卷类型的快照数量。 |
backups |
body |
整数 |
每个项目允许的备份数量。 |
groups |
body |
整数 |
每个项目允许的组数量。 |
per_volume_gigabytes |
body |
整数 |
每个卷允许的请求中的卷大小(GB)。 |
千兆字节 |
body |
整数 |
每个项目允许的卷和快照的大小(GB)。 |
gigabytes_{volume_type} |
body |
整数 |
允许每个项目和指定卷类型的卷和快照的大小(GB)。 |
backup_gigabytes |
body |
整数 |
允许每个项目的备份大小(GB)。 |
响应示例¶
{
"quota_set": {
"snapshots": 45
}
}
删除项目的配额,使配额恢复为默认值。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
admin_project_id |
路径 |
字符串 |
管理项目的 UUID。 |
响应示例¶
成功的 DELETE 操作的响应中没有主体内容。
获取项目的默认配额。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
admin_project_id |
路径 |
字符串 |
管理项目的 UUID。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
quota_set |
body |
对象 |
一个 |
id |
body |
字符串 |
项目的 UUID。 |
volumes |
body |
整数 |
每个项目允许的卷数量。 |
volumes_{volume_type} |
body |
整数 |
允许每个项目和指定卷类型的卷数量。 |
快照 |
body |
整数 |
每个项目允许的快照数量。 |
snapshots_{volume_type} |
body |
整数 |
允许每个项目和指定卷类型的快照数量。 |
backups |
body |
整数 |
每个项目允许的备份数量。 |
groups |
body |
整数 |
每个项目允许的组数量。 |
per_volume_gigabytes |
body |
整数 |
每个卷允许的请求中的卷大小(GB)。 |
千兆字节 |
body |
整数 |
每个项目允许的卷和快照的大小(GB)。 |
gigabytes_{volume_type} |
body |
整数 |
允许每个项目和指定卷类型的卷和快照的大小(GB)。 |
backup_gigabytes |
body |
整数 |
允许每个项目的备份大小(GB)。 |
响应示例¶
{
"quota_set": {
"gigabytes": 5,
"snapshots": 10,
"volumes": 20
}
}
卷管理扩展 (os-volume-manage)¶
使用现有存储创建卷,而不是分配新的存储。
通过使用现有存储而不是分配新的存储来创建块存储卷。
调用者必须在请求的 ref 参数中指定对现有存储卷的引用。虽然每个存储驱动程序可能会以不同的方式解释此引用,但驱动程序应接受包含 source-id 或 source-name 元素的引用结构(如果可能)。
API 通过将现有存储卷的大小向上舍入到下一个千兆字节 (GiB) 来选择卷的大小。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
description (可选) |
body |
字符串 |
备份描述或 null。 |
availability_zone (可选) |
body |
字符串 |
可用区的名称。 |
bootable |
body |
布尔值 |
启用或禁用可引导属性。您可以从可引导卷启动实例。 |
volume_type (可选) |
路径 |
字符串 |
项目要访问的卷类型 ID。 |
name |
body |
字符串 |
卷传输的名称。 |
volume |
body |
对象 |
一个 |
host |
body |
字符串 |
现有卷所在的 OpenStack 块存储主机。 |
ref |
body |
字符串 |
对现有卷的引用。此引用的内部结构取决于卷驱动程序实现。有关结构中所需元素的详细信息,请参阅卷驱动程序的文档。 |
metadata |
body |
对象 |
快照的任何元数据键值对。 |
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
请求示例¶
{
"volume": {
"host": "geraint-VirtualBox",
"ref": {
"source-name": "existingLV",
"source-id": "1234"
},
"name": "New Volume",
"availability_zone": "az2",
"description": "Volume imported from existingLV",
"volume_type": null,
"bootable": true,
"metadata": {
"key1": "value1",
"key2": "value2"
}
}
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
volume |
body |
对象 |
一个 |
status |
body |
字符串 |
卷状态。 |
migration_status (可选) |
body |
字符串 |
卷迁移状态。仅限管理员。 |
user_id |
body |
字符串 |
用户的 UUID。 |
attachments |
body |
数组 |
实例附加信息。如果此卷附加到服务器实例,则 attachments 列表包括附加服务器的 UUID、附加 UUID、附加主机的名称(如果有)、卷 UUID、设备和设备 UUID。否则,此列表为空。 |
links |
body |
数组 |
卷链接。 |
availability_zone (可选) |
body |
字符串 |
可用区的名称。 |
bootable |
body |
字符串 |
启用或禁用可引导属性。您可以从可引导卷启动实例。 |
encrypted |
body |
布尔值 |
如果为 true,则此卷已加密。 |
created_at |
body |
字符串 |
创建资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
description (可选) |
body |
字符串 |
卷描述。 |
updated_at |
body |
字符串 |
更新资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含, 如果未设置 |
volume_type (可选) |
路径 |
字符串 |
项目要访问的卷类型 ID。 |
name |
body |
字符串 |
卷名称。 |
replication_status |
body |
字符串 |
卷复制状态。 |
consistencygroup_id |
body |
字符串 |
一致性组的 UUID。 |
source_volid (可选) |
body |
字符串 |
源卷的 UUID。API 创建一个与源卷大小相同的新卷,除非请求了更大的大小。 |
snapshot_id (可选) |
body |
字符串 |
要从现有快照创建卷,请指定卷快照的 UUID。卷将在相同的可用区中创建,并且大小与快照相同。 |
multiattach |
body |
布尔值 |
如果为 true,则此卷可以附加到多个实例。 |
metadata |
body |
对象 |
一个 |
id |
body |
字符串 |
卷的 UUID。 |
size |
body |
整数 |
卷的大小,以 gibibytes (GiB) 为单位。 |
响应示例¶
{
"volume": {
"status": "creating",
"user_id": "eae1472b5fc5496998a3d06550929e7e",
"attachments": [],
"links": [
{
"href": "http://10.0.2.15:8776/v2/87c8522052ca4eed98bc672b4c1a3ddb/volumes/23cf872b-c781-4cd4-847d-5f2ec8cbd91c",
"rel": "self"
},
{
"href": "http://10.0.2.15:8776/87c8522052ca4eed98bc672b4c1a3ddb/volumes/23cf872b-c781-4cd4-847d-5f2ec8cbd91c",
"rel": "bookmark"
}
],
"availability_zone": "az2",
"bootable": "false",
"encrypted": "false",
"created_at": "2014-07-18T00:12:54.000000",
"description": "Volume imported from existingLV",
"os-vol-tenant-attr:tenant_id": "87c8522052ca4eed98bc672b4c1a3ddb",
"volume_type": null,
"name": "New Volume",
"source_volid": null,
"snapshot_id": null,
"metadata": {
"key2": "value2",
"key1": "value1"
},
"id": "23cf872b-c781-4cd4-847d-5f2ec8cbd91c",
"size": 0
}
}
卷类型访问权限 (volumes)¶
项目对私有卷类型的访问权限。
默认情况下,卷类型是公开的。要创建私有卷类型,请在卷类型创建时将 is_public 布尔字段设置为 false。要控制对私有卷类型的访问,用户需要将项目添加到或从卷类型中删除项目。没有项目的私有卷类型只能由具有管理角色和上下文的用户访问。
将私有卷类型访问权限添加到项目。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project |
body |
字符串 |
项目的 ID。要将访问权限添加到此项目 ID 的卷类型。 |
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_type |
路径 |
字符串 |
项目要访问的卷类型 ID。 |
请求示例¶
{
"addProjectAccess": {
"project": "f270b245cb11498ca4031deb7e141cfa"
}
}
从项目中删除私有卷类型访问权限。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project |
body |
字符串 |
项目的 ID。要将访问权限添加到此项目 ID 的卷类型。 |
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_type |
路径 |
字符串 |
项目要访问的卷类型 ID。 |
请求示例¶
{
"removeProjectAccess": {
"project": "f270b245cb11498ca4031deb7e141cfa"
}
}
列出具有对私有卷类型访问权限的项目 ID。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_type |
路径 |
字符串 |
项目要访问的卷类型 ID。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
body |
字符串 |
项目的 UUID。 |
响应示例¶
{
"volume_type_access": {
"volume_type_id": "3c67e124-39ad-4ace-a507-8bb7bf510c26",
"project_id": "f270b245cb11498ca4031deb7e141cfa"
}
}
API 扩展 (extensions)¶
列出块存储 API 扩展。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
updated |
body |
字符串 |
更新资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含, 如果未设置 |
description (可选) |
body |
字符串 |
备份描述或 null。 |
links |
body |
数组 |
卷传输的链接。 |
namespace |
body |
字符串 |
与扩展关联的链接。 |
alias |
body |
字符串 |
扩展的别名。例如,“FOXNSOX”、“os- availability-zone”、“os-extended-quotas”、“os- share-unmanage” 或 “os-used-limits”。 |
name |
body |
字符串 |
卷传输的名称。 |
响应示例¶
{
"extensions": [
{
"updated": "2013-04-18T00:00:00+00:00",
"name": "SchedulerHints",
"links": [],
"namespace": "https://docs.openstack.org/block-service/ext/scheduler-hints/api/v2",
"alias": "OS-SCH-HNT",
"description": "Pass arbitrary key/value pairs to the scheduler."
},
{
"updated": "2011-06-29T00:00:00+00:00",
"name": "Hosts",
"links": [],
"namespace": "https://docs.openstack.org/volume/ext/hosts/api/v1.1",
"alias": "os-hosts",
"description": "Admin-only host administration."
},
{
"updated": "2011-11-03T00:00:00+00:00",
"name": "VolumeTenantAttribute",
"links": [],
"namespace": "https://docs.openstack.org/volume/ext/volume_tenant_attribute/api/v1",
"alias": "os-vol-tenant-attr",
"description": "Expose the internal project_id as an attribute of a volume."
},
{
"updated": "2011-08-08T00:00:00+00:00",
"name": "Quotas",
"links": [],
"namespace": "https://docs.openstack.org/volume/ext/quotas-sets/api/v1.1",
"alias": "os-quota-sets",
"description": "Quota management support."
},
{
"updated": "2011-08-24T00:00:00+00:00",
"name": "TypesManage",
"links": [],
"namespace": "https://docs.openstack.org/volume/ext/types-manage/api/v1",
"alias": "os-types-manage",
"description": "Types manage support."
},
{
"updated": "2013-07-10T00:00:00+00:00",
"name": "VolumeEncryptionMetadata",
"links": [],
"namespace": "https://docs.openstack.org/volume/ext/os-volume-encryption-metadata/api/v1",
"alias": "os-volume-encryption-metadata",
"description": "Volume encryption metadata retrieval support."
},
{
"updated": "2012-12-12T00:00:00+00:00",
"name": "Backups",
"links": [],
"namespace": "https://docs.openstack.org/volume/ext/backups/api/v1",
"alias": "backups",
"description": "Backups support."
},
{
"updated": "2013-07-16T00:00:00+00:00",
"name": "SnapshotActions",
"links": [],
"namespace": "https://docs.openstack.org/volume/ext/snapshot-actions/api/v1.1",
"alias": "os-snapshot-actions",
"description": "Enable snapshot manager actions."
},
{
"updated": "2012-05-31T00:00:00+00:00",
"name": "VolumeActions",
"links": [],
"namespace": "https://docs.openstack.org/volume/ext/volume-actions/api/v1.1",
"alias": "os-volume-actions",
"description": "Enable volume actions\n "
},
{
"updated": "2013-10-03T00:00:00+00:00",
"name": "UsedLimits",
"links": [],
"namespace": "https://docs.openstack.org/volume/ext/used-limits/api/v1.1",
"alias": "os-used-limits",
"description": "Provide data on limited resources that are being used."
},
{
"updated": "2012-05-31T00:00:00+00:00",
"name": "VolumeUnmanage",
"links": [],
"namespace": "https://docs.openstack.org/volume/ext/volume-unmanage/api/v1.1",
"alias": "os-volume-unmanage",
"description": "Enable volume unmanage operation."
},
{
"updated": "2011-11-03T00:00:00+00:00",
"name": "VolumeHostAttribute",
"links": [],
"namespace": "https://docs.openstack.org/volume/ext/volume_host_attribute/api/v1",
"alias": "os-vol-host-attr",
"description": "Expose host as an attribute of a volume."
},
{
"updated": "2013-07-01T00:00:00+00:00",
"name": "VolumeTypeEncryption",
"links": [],
"namespace": "https://docs.openstack.org/volume/ext/volume-type-encryption/api/v1",
"alias": "encryption",
"description": "Encryption support for volume types."
},
{
"updated": "2013-06-27T00:00:00+00:00",
"name": "AvailabilityZones",
"links": [],
"namespace": "https://docs.openstack.org/volume/ext/os-availability-zone/api/v1",
"alias": "os-availability-zone",
"description": "Describe Availability Zones."
},
{
"updated": "2013-08-02T00:00:00+00:00",
"name": "Qos_specs_manage",
"links": [],
"namespace": "https://docs.openstack.org/volume/ext/qos-specs/api/v1",
"alias": "qos-specs",
"description": "QoS specs support."
},
{
"updated": "2011-08-24T00:00:00+00:00",
"name": "TypesExtraSpecs",
"links": [],
"namespace": "https://docs.openstack.org/volume/ext/types-extra-specs/api/v1",
"alias": "os-types-extra-specs",
"description": "Type extra specs support."
},
{
"updated": "2013-08-08T00:00:00+00:00",
"name": "VolumeMigStatusAttribute",
"links": [],
"namespace": "https://docs.openstack.org/volume/ext/volume_mig_status_attribute/api/v1",
"alias": "os-vol-mig-status-attr",
"description": "Expose migration_status as an attribute of a volume."
},
{
"updated": "2012-08-13T00:00:00+00:00",
"name": "CreateVolumeExtension",
"links": [],
"namespace": "https://docs.openstack.org/volume/ext/image-create/api/v1",
"alias": "os-image-create",
"description": "Allow creating a volume from an image in the Create Volume API."
},
{
"updated": "2014-01-10T00:00:00-00:00",
"name": "ExtendedServices",
"links": [],
"namespace": "https://docs.openstack.org/volume/ext/extended_services/api/v2",
"alias": "os-extended-services",
"description": "Extended services support."
},
{
"updated": "2012-06-19T00:00:00+00:00",
"name": "ExtendedSnapshotAttributes",
"links": [],
"namespace": "https://docs.openstack.org/volume/ext/extended_snapshot_attributes/api/v1",
"alias": "os-extended-snapshot-attributes",
"description": "Extended SnapshotAttributes support."
},
{
"updated": "2012-12-07T00:00:00+00:00",
"name": "VolumeImageMetadata",
"links": [],
"namespace": "https://docs.openstack.org/volume/ext/volume_image_metadata/api/v1",
"alias": "os-vol-image-meta",
"description": "Show image metadata associated with the volume."
},
{
"updated": "2012-03-12T00:00:00+00:00",
"name": "QuotaClasses",
"links": [],
"namespace": "https://docs.openstack.org/volume/ext/quota-classes-sets/api/v1.1",
"alias": "os-quota-class-sets",
"description": "Quota classes management support."
},
{
"updated": "2013-05-29T00:00:00+00:00",
"name": "VolumeTransfer",
"links": [],
"namespace": "https://docs.openstack.org/volume/ext/volume-transfer/api/v1.1",
"alias": "os-volume-transfer",
"description": "Volume transfer management support."
},
{
"updated": "2014-02-10T00:00:00+00:00",
"name": "VolumeManage",
"links": [],
"namespace": "https://docs.openstack.org/volume/ext/os-volume-manage/api/v1",
"alias": "os-volume-manage",
"description": "Allows existing backend storage to be 'managed' by Cinder."
},
{
"updated": "2012-08-25T00:00:00+00:00",
"name": "AdminActions",
"links": [],
"namespace": "https://docs.openstack.org/volume/ext/admin-actions/api/v1.1",
"alias": "os-admin-actions",
"description": "Enable admin actions."
},
{
"updated": "2012-10-28T00:00:00-00:00",
"name": "Services",
"links": [],
"namespace": "https://docs.openstack.org/volume/ext/services/api/v2",
"alias": "os-services",
"description": "Services support."
}
]
}
卷快照 (snapshots)¶
快照是卷包含的数据在某个时间点的副本。
在创建、列出或删除快照时,这些状态值是可能的
快照状态
状态 |
描述 |
creating |
快照正在创建中。 |
available |
快照已准备好使用。 |
backing-up |
快照正在备份中。 |
deleting |
快照正在删除中。 |
error |
发生快照创建错误。 |
deleted |
快照已被删除。 |
unmanaging |
快照正在取消管理。 |
恢复中 |
快照正在恢复到卷。 |
error_deleting |
发生快照删除错误。 |
列出所有块存储快照,带有详情,项目可以访问。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
all_tenants (可选) |
查询 |
字符串 |
显示所有项目的详细信息。仅限管理员。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
status |
body |
字符串 |
快照的状态。 |
os-extended-snapshot-attributes:progress |
body |
字符串 |
构建进度的百分比值。 |
description (可选) |
body |
字符串 |
备份描述或 null。 |
created_at |
body |
字符串 |
创建资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
name |
body |
字符串 |
卷传输的名称。 |
volume_id |
body |
字符串 |
如果快照是从卷创建的,则为卷 ID。 |
os-extended-snapshot-attributes:project_id |
body |
字符串 |
拥有项目的 UUID。 |
size |
body |
整数 |
卷的大小,以 gibibytes (GiB) 为单位。 |
id |
body |
字符串 |
快照 UUID。 |
metadata |
body |
对象 |
快照的任何元数据键值对。 |
updated_at |
body |
字符串 |
更新资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含, 如果未设置 |
snapshots_links |
body |
数组 |
与扩展相关的链接列表。 |
响应示例¶
{
"snapshots": [
{
"status": "available",
"metadata": {
"name": "test"
},
"os-extended-snapshot-attributes:progress": "100%",
"name": "test-volume-snapshot",
"volume_id": "173f7b48-c4c1-4e70-9acc-086b39073506",
"os-extended-snapshot-attributes:project_id": "bab7d5c60cd041a0a36f7c4b6e1dd978",
"created_at": "2015-11-29T02:25:51.000000",
"size": 1,
"id": "b1323cda-8e4b-41c1-afc5-2fc791809c8c",
"description": "volume snapshot",
"updated_at": "2015-12-11T07:24:57Z"
}
],
"snapshots_links": [
{
"href": "https://10.43.176.164:8776/v3/d55fb90e300b436cb2714a17137be023/snapshots?limit=1&marker=2e0cd28e-d7a2-4cdb-87e6-cd37c417c06d",
"rel": "next"
}
]
}
创建一个卷快照,这是卷数据在某个时间点的完整副本。您可以从快照创建卷。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
snapshot |
body |
字符串 |
在创建过程中使用的快照的部分表示。 |
volume_id |
body |
字符串 |
卷的 UUID。 |
force (可选) |
body |
布尔值 |
指示是否备份,即使卷已附加。 默认值为 |
description (可选) |
body |
字符串 |
备份描述或 null。 |
name |
body |
字符串 |
卷传输的名称。 |
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
请求示例¶
{
"snapshot": {
"name": "snap-001",
"description": "Daily backup",
"volume_id": "5aa119a8-d25b-45a7-8d1b-88e127885635",
"force": true
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
status |
body |
字符串 |
快照的状态。 |
description (可选) |
body |
字符串 |
备份描述或 null。 |
created_at |
body |
字符串 |
创建资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
name |
body |
字符串 |
卷传输的名称。 |
snapshot |
body |
字符串 |
在创建过程中使用的快照的部分表示。 |
volume_id |
body |
字符串 |
如果快照是从卷创建的,则为卷 ID。 |
metadata |
body |
对象 |
快照的任何元数据键值对。 |
id |
body |
字符串 |
快照 UUID。 |
size |
body |
整数 |
卷的大小,以 gibibytes (GiB) 为单位。 |
列出所有块存储快照,带有摘要信息,项目可以访问。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
all_tenants (可选) |
查询 |
字符串 |
显示所有项目的详细信息。仅限管理员。 |
sort_key (可选) |
查询 |
字符串 |
按属性排序。有效值是 |
sort_dir (可选) |
查询 |
字符串 |
按一个或多个属性和排序方向组合进行排序。 如果在集合中省略排序方向,则默认值为 |
limit (可选) |
查询 |
整数 |
请求项目页面大小。返回最多限制值数量的项目。使用 |
offset (可选) |
查询 |
整数 |
与 |
marker (可选) |
查询 |
字符串 |
最后一个已查看项目的 ID。使用 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
status |
body |
字符串 |
快照的状态。 |
description (可选) |
body |
字符串 |
备份描述或 null。 |
created_at |
body |
字符串 |
创建资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
name |
body |
字符串 |
卷传输的名称。 |
volume_id |
body |
字符串 |
如果快照是从卷创建的,则为卷 ID。 |
metadata |
body |
对象 |
快照的任何元数据键值对。 |
id |
body |
字符串 |
快照 UUID。 |
size |
body |
整数 |
卷的大小,以 gibibytes (GiB) 为单位。 |
updated_at |
body |
字符串 |
更新资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含, 如果未设置 |
snapshots_links |
body |
数组 |
与扩展相关的链接列表。 |
响应示例¶
{
"snapshots": [
{
"status": "available",
"metadata": {
"name": "test"
},
"name": "test-volume-snapshot",
"volume_id": "173f7b48-c4c1-4e70-9acc-086b39073506",
"created_at": "2015-11-29T02:25:51.000000",
"size": 1,
"id": "b1323cda-8e4b-41c1-afc5-2fc791809c8c",
"description": "volume snapshot",
"updated_at": "2015-12-11T07:24:57Z"
}
],
"snapshots_links": [
{
"href": "https://10.43.176.164:8776/v3/d55fb90e300b436cb2714a17137be023/snapshots?limit=1&marker=2e0cd28e-d7a2-4cdb-87e6-cd37c417c06d",
"rel": "next"
}
]
}
显示快照的元数据。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
snapshot_id (可选) |
body |
字符串 |
要从现有快照创建卷,请指定卷快照的 UUID。卷将在相同的可用区中创建,并且大小与快照相同。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
metadata |
body |
对象 |
快照的任何元数据键值对。 |
响应示例¶
{
"metadata": {
"name": "test"
}
}
更新快照的元数据。
创建或替换与键匹配的元数据项。不修改请求中未包含的项。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
metadata |
body |
对象 |
快照的任何元数据键值对。 |
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
snapshot_id (可选) |
body |
字符串 |
要从现有快照创建卷,请指定卷快照的 UUID。卷将在相同的可用区中创建,并且大小与快照相同。 |
请求示例¶
{
"metadata": {
"key": "v2"
}
}
响应示例¶
{
"metadata": {
"key": "v2"
}
}
使用请求中的键值对替换快照的所有元数据。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
metadata |
body |
对象 |
快照的任何元数据键值对。 |
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
snapshot_id (可选) |
body |
字符串 |
要从现有快照创建卷,请指定卷快照的 UUID。卷将在相同的可用区中创建,并且大小与快照相同。 |
请求示例¶
{
"metadata": {
"key": "v2"
}
}
响应示例¶
{
"metadata": {
"key": "v2"
}
}
显示快照的详情。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
snapshot_id (可选) |
body |
字符串 |
要从现有快照创建卷,请指定卷快照的 UUID。卷将在相同的可用区中创建,并且大小与快照相同。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
status |
body |
字符串 |
快照的状态。 |
os-extended-snapshot-attributes:progress |
body |
字符串 |
构建进度的百分比值。 |
description (可选) |
body |
字符串 |
备份描述或 null。 |
created_at |
body |
字符串 |
创建资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
name |
body |
字符串 |
卷传输的名称。 |
snapshot |
body |
字符串 |
在创建过程中使用的快照的部分表示。 |
volume_id |
body |
字符串 |
如果快照是从卷创建的,则为卷 ID。 |
os-extended-snapshot-attributes:project_id |
body |
字符串 |
拥有项目的 UUID。 |
size |
body |
整数 |
卷的大小,以 gibibytes (GiB) 为单位。 |
id |
body |
字符串 |
快照 UUID。 |
metadata |
body |
对象 |
快照的任何元数据键值对。 |
updated_at |
body |
字符串 |
更新资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含, 如果未设置 |
响应示例¶
{
"snapshot": {
"status": "available",
"os-extended-snapshot-attributes:progress": "100%",
"description": "Daily backup",
"created_at": "2013-02-25T04:13:17.000000",
"metadata": {},
"volume_id": "5aa119a8-d25b-45a7-8d1b-88e127885635",
"os-extended-snapshot-attributes:project_id": "0c2eba2c5af04d3f9e9d0d410b371fde",
"size": 1,
"id": "2bb856e1-b3d8-4432-a858-09e4ce939389",
"name": "snap-001",
"updated_at": "2013-03-11T07:24:57Z"
}
}
更新快照。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
snapshot |
body |
字符串 |
在创建过程中使用的快照的部分表示。 |
description (可选) |
body |
字符串 |
备份描述或 null。 |
name |
body |
字符串 |
卷传输的名称。 |
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
snapshot_id (可选) |
body |
字符串 |
要从现有快照创建卷,请指定卷快照的 UUID。卷将在相同的可用区中创建,并且大小与快照相同。 |
请求示例¶
{
"snapshot": {
"name": "snap-002",
"description": "This is yet, another snapshot."
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
status |
body |
字符串 |
快照的状态。 |
description (可选) |
body |
字符串 |
备份描述或 null。 |
created_at |
body |
字符串 |
创建资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
name |
body |
字符串 |
卷传输的名称。 |
snapshot |
body |
字符串 |
在创建过程中使用的快照的部分表示。 |
volume_id |
body |
字符串 |
如果快照是从卷创建的,则为卷 ID。 |
metadata |
body |
对象 |
快照的任何元数据键值对。 |
id |
body |
字符串 |
快照 UUID。 |
size |
body |
整数 |
卷的大小,以 gibibytes (GiB) 为单位。 |
响应示例¶
{
"snapshot": {
"created_at": "2013-02-20T08:11:34.000000",
"description": "This is yet, another snapshot",
"name": "snap-002",
"id": "4b502fcb-1f26-45f8-9fe5-3b9a0a52eaf2",
"size": 1,
"status": "available",
"metadata": {},
"volume_id": "2402b902-0b7a-458c-9c07-7435a826f794"
}
}
删除快照。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
snapshot_id (可选) |
body |
字符串 |
要从现有快照创建卷,请指定卷快照的 UUID。卷将在相同的可用区中创建,并且大小与快照相同。 |
快照操作 (snapshots, action)¶
仅限管理员。重置快照的状态。
重置状态。在请求体中指定 os-reset_status 操作。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
status |
body |
字符串 |
快照的状态。 |
os-reset_status |
body |
对象 |
The |
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
snapshot_id (可选) |
body |
字符串 |
要从现有快照创建卷,请指定卷快照的 UUID。卷将在相同的可用区中创建,并且大小与快照相同。 |
请求示例¶
{
"os-reset_status": {
"status": "available"
}
}
卷类型 (types)¶
更新卷类型。
为了创建具有多个存储后端的环境,您必须指定一个卷类型。API 将块存储卷后端作为 cinder-volume 的子项生成,并从唯一的队列中获取它们。API 将后端命名为 cinder-volume.HOST.BACKEND。例如,cinder-volume.ubuntu.lvmdriver。当您创建卷时,调度器会选择一个合适的后端来处理该卷类型的请求。
有关如何使用卷类型来创建多个存储后端的信息,请参阅 配置多个存储后端。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
volume_type |
body |
对象 |
一个 |
volume_type_id (可选) |
路径 |
字符串 |
现有卷类型的 UUID。 |
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
请求示例¶
{
"volume_type": {
"name": "vol-type-001",
"description": "volume type 0001",
"is_public": true,
"extra_specs": {
"capabilities": "gpu"
}
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
is_public (可选) |
body |
布尔值 |
可供公众访问的卷类型。 |
extra_specs |
body |
对象 |
一组包含卷类型规范的键值对。 |
description (可选) |
body |
字符串 |
备份描述或 null。 |
volume_type |
body |
对象 |
一个 |
name |
body |
字符串 |
卷传输的名称。 |
响应示例¶
{
"volume_type": {
"id": "6685584b-1eac-4da6-b5c3-555430cf68ff",
"name": "vol-type-001",
"description": "volume type 001",
"is_public": "true",
"extra_specs": {
"capabilities": "gpu"
}
}
}
更新分配给卷类型的附加规格。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
extra_specs |
body |
对象 |
一组包含卷类型规范的键值对。 |
volume_type |
body |
对象 |
一个 |
volume_type_id (可选) |
路径 |
字符串 |
现有卷类型的 UUID。 |
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
请求示例¶
{
"volume_type": {
"name": "vol-type-001",
"description": "volume type 0001",
"is_public": true,
"extra_specs": {
"capabilities": "gpu"
}
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
is_public (可选) |
body |
布尔值 |
可供公众访问的卷类型。 |
extra_specs |
body |
对象 |
一组包含卷类型规范的键值对。 |
description (可选) |
body |
字符串 |
备份描述或 null。 |
volume_type |
body |
对象 |
一个 |
name |
body |
字符串 |
卷传输的名称。 |
响应示例¶
{
"volume_type": {
"id": "6685584b-1eac-4da6-b5c3-555430cf68ff",
"name": "vol-type-001",
"description": "volume type 001",
"is_public": "true",
"extra_specs": {
"capabilities": "gpu"
}
}
}
显示卷类型的详细信息。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
volume_type_id (可选) |
路径 |
字符串 |
现有卷类型的 UUID。 |
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
is_public (可选) |
body |
布尔值 |
可供公众访问的卷类型。 |
extra_specs |
body |
对象 |
一组包含卷类型规范的键值对。 |
description (可选) |
body |
字符串 |
备份描述或 null。 |
volume_type |
body |
对象 |
一个 |
name |
body |
字符串 |
卷传输的名称。 |
响应示例¶
{
"volume_type": {
"id": "6685584b-1eac-4da6-b5c3-555430cf68ff",
"name": "vol-type-001",
"description": "volume type 001",
"is_public": "true",
"extra_specs": {
"capabilities": "gpu"
}
}
}
删除卷类型。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
volume_type_id (可选) |
路径 |
字符串 |
现有卷类型的 UUID。 |
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
列出卷类型。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
sort_key (可选) |
查询 |
字符串 |
按属性排序。有效值是 |
sort_dir (可选) |
查询 |
字符串 |
按一个或多个属性和排序方向组合进行排序。 如果在集合中省略排序方向,则默认值为 |
limit (可选) |
查询 |
整数 |
请求项目页面大小。返回最多限制值数量的项目。使用 |
offset (可选) |
查询 |
整数 |
与 |
marker (可选) |
查询 |
字符串 |
最后一个已查看项目的 ID。使用 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
volume_types |
body |
数组 |
卷类型列表。 在具有多个存储后端的环境中,调度程序将根据卷类型确定将卷发送到哪里。 有关如何使用卷类型来创建多个存储后端的信息,请参阅 配置多个存储后端。 |
extra_specs |
body |
对象 |
一组包含卷类型规范的键值对。 |
name |
body |
字符串 |
卷传输的名称。 |
volume_type (可选) |
路径 |
字符串 |
项目要访问的卷类型 ID。 |
响应示例¶
{
"volume_types": [
{
"extra_specs": {
"capabilities": "gpu"
},
"id": "6685584b-1eac-4da6-b5c3-555430cf68ff",
"name": "SSD"
},
{
"extra_specs": {},
"id": "8eb69a46-df97-4e41-9586-9a40a7533803",
"name": "SATA"
}
]
}
创建一个卷类型。
为了创建具有多个存储后端的环境,您必须指定一个卷类型。块存储卷后端作为 cinder-volume 的子项生成,并从唯一的队列中获取它们。它们被命名为 cinder-volume.HOST.BACKEND。例如,cinder-volume.ubuntu.lvmdriver。当创建卷时,调度器会根据卷类型选择一个合适的后端来处理请求。
有关如何使用卷类型来创建多个存储后端的信息,请参阅 配置多个存储后端。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
volume_type |
body |
对象 |
一个 |
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
请求示例¶
{
"volume_type": {
"name": "vol-type-001",
"description": "volume type 0001",
"os-volume-type-access:is_public": true,
"extra_specs": {
"capabilities": "gpu"
}
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
is_public (可选) |
body |
布尔值 |
可供公众访问的卷类型。 |
extra_specs |
body |
对象 |
一组包含卷类型规范的键值对。 |
description (可选) |
body |
字符串 |
备份描述或 null。 |
volume_type |
body |
对象 |
一个 |
name |
body |
字符串 |
卷传输的名称。 |
响应示例¶
{
"volume_type": {
"id": "6685584b-1eac-4da6-b5c3-555430cf68ff",
"name": "vol-type-001",
"description": "volume type 001",
"is_public": "true",
"extra_specs": {
"capabilities": "gpu"
}
}
}
显示加密类型。
要显示现有卷类型的加密类型。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
volume_type_id (可选) |
路径 |
字符串 |
现有卷类型的 UUID。 |
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
volume_type_id |
body |
字符串 |
卷类型的 UUID。 |
encryption_id |
路径 |
字符串 |
加密类型的 ID。 |
encryption |
body |
对象 |
加密信息。 |
key_size (可选) |
body |
整数 |
加密密钥的大小,以位为单位。例如,128 或 256。默认值为 None。 |
provider |
body |
字符串 |
提供加密支持的类。 |
control_location (可选) |
body |
字符串 |
执行加密的虚拟服务位置。有效值为“前端”或“后端”。默认值为“前端”。 |
cipher (可选) |
body |
字符串 |
加密算法或模式。例如,aes-xts-plain64。默认值为 None。 |
deleted |
body |
布尔值 |
资源是否已删除。 |
created_at |
body |
字符串 |
创建资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
updated_at |
body |
字符串 |
更新资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含, 如果未设置 |
deleted_at |
body |
字符串 |
删除资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含, 如果 |
响应示例¶
{
"volume_type_id": "2d29462d-76cb-417c-8a9f-fb23140f1577",
"control_location": "front-end",
"deleted": false,
"created_at": "2016-12-28T02:32:25.000000",
"updated_at": null,
"encryption_id": "81e069c6-7394-4856-8df7-3b237ca61f74",
"key_size": 256,
"provider": "luks",
"deleted_at": null,
"cipher": "aes-xts-plain64"
}
删除加密类型。
要删除现有卷类型的加密类型。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
volume_type_id (可选) |
路径 |
字符串 |
现有卷类型的 UUID。 |
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
encryption_id |
路径 |
字符串 |
加密类型的 ID。 |
创建加密类型。
要为现有卷类型创建加密类型。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
volume_type_id (可选) |
路径 |
字符串 |
现有卷类型的 UUID。 |
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
encryption |
body |
对象 |
加密信息。 |
key_size (可选) |
body |
整数 |
加密密钥的大小,以位为单位。例如,128 或 256。默认值为 None。 |
provider |
body |
字符串 |
提供加密支持的类。 |
control_location (可选) |
body |
字符串 |
执行加密的虚拟服务位置。有效值为“前端”或“后端”。默认值为“前端”。 |
cipher (可选) |
body |
字符串 |
加密算法或模式。例如,aes-xts-plain64。默认值为 None。 |
请求示例¶
{
"encryption":{
"key_size": 256,
"provider": "luks",
"control_location":"front-end",
"cipher": "aes-xts-plain64"
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
volume_type_id |
body |
字符串 |
卷类型的 UUID。 |
encryption_id |
路径 |
字符串 |
加密类型的 ID。 |
encryption |
body |
对象 |
加密信息。 |
key_size (可选) |
body |
整数 |
加密密钥的大小,以位为单位。例如,128 或 256。默认值为 None。 |
provider |
body |
字符串 |
提供加密支持的类。 |
control_location (可选) |
body |
字符串 |
执行加密的虚拟服务位置。有效值为“前端”或“后端”。默认值为“前端”。 |
cipher (可选) |
body |
字符串 |
加密算法或模式。例如,aes-xts-plain64。默认值为 None。 |
响应示例¶
{
"encryption": {
"volume_type_id": "2d29462d-76cb-417c-8a9f-fb23140f1577",
"control_location": "front-end",
"encryption_id": "81e069c6-7394-4856-8df7-3b237ca61f74",
"key_size": 256,
"provider": "luks",
"cipher": "aes-xts-plain64"
}
}
更新加密类型。
要更新现有卷类型的加密类型。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
volume_type_id (可选) |
路径 |
字符串 |
现有卷类型的 UUID。 |
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
encryption_id |
路径 |
字符串 |
加密类型的 ID。 |
encryption |
body |
对象 |
加密信息。 |
key_size (可选) |
body |
整数 |
加密密钥的大小,以位为单位。例如,128 或 256。默认值为 None。 |
provider (可选) |
body |
字符串 |
提供加密支持的类。 |
control_location (可选) |
body |
字符串 |
执行加密的虚拟服务位置。有效值为“前端”或“后端”。默认值为“前端”。 |
cipher (可选) |
body |
字符串 |
加密算法或模式。例如,aes-xts-plain64。默认值为 None。 |
请求示例¶
{
"encryption":{
"key_size": 64,
"provider": "luks",
"control_location":"back-end"
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
encryption |
body |
对象 |
加密信息。 |
key_size (可选) |
body |
整数 |
加密密钥的大小,以位为单位。例如,128 或 256。默认值为 None。 |
provider (可选) |
body |
字符串 |
提供加密支持的类。 |
control_location (可选) |
body |
字符串 |
执行加密的虚拟服务位置。有效值为“前端”或“后端”。默认值为“前端”。 |
cipher (可选) |
body |
字符串 |
加密算法或模式。例如,aes-xts-plain64。默认值为 None。 |
响应示例¶
{
"encryption":{
"key_size": 64,
"provider": "luks",
"control_location":"back-end"
}
}
API 版本详细信息¶
显示块存储 API v2 的详细信息。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
location |
body |
字符串 |
服务的完整 URL 或服务器。 |
响应示例¶
{
"versions": [
{
"status": "DEPRECATED",
"updated": "2017-02-25T12:00:00Z",
"media-types": [
{
"base": "application/json",
"type": "application/vnd.openstack.volume+json;version=2"
}
],
"id": "v2.0",
"links": [
{
"href": "https://docs.openstack.org/",
"type": "text/html",
"rel": "describedby"
},
{
"href": "http://23.253.248.171:8776/v2/",
"rel": "self"
}
],
"min_version": "",
"version": ""
}
]
}
卷操作 (volumes, action)¶
扩展卷的大小、重置卷的状态、设置卷的镜像元数据以及删除卷的镜像元数据。将卷附加到服务器、从服务器分离卷以及从块存储管理中删除卷,而实际上并不删除与该卷关联的后端存储对象。
将卷的大小扩展到请求的大小,以 GiB(千兆字节)为单位。在请求体中指定 os-extend 操作。
先决条件
卷状态必须为
available。必须存在足够的存储空间才能扩展卷。
用户配额必须具有足够的卷存储空间。
故障排除
如果
error_extending卷状态,则表示请求失败。请确保满足先决条件并重试请求。如果请求再次失败,请调查存储后端。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
os-extend |
body |
对象 |
|
new_size |
body |
整数 |
卷的新大小,以 GiB(千兆字节)为单位。 |
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_id |
路径 |
字符串 |
卷的 UUID。 |
请求示例¶
{
"os-extend": {
"new_size": 3
}
}
仅限管理员。重置卷的状态、附加状态和迁移状态。在请求体中指定 os-reset_status 操作。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
status |
body |
字符串 |
卷状态。 |
migration_status (可选) |
body |
字符串 |
卷迁移状态。仅限管理员。 |
os-reset_status |
body |
对象 |
The |
attach_status (可选) |
body |
字符串 |
卷附加状态。 |
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_id |
路径 |
字符串 |
卷的 UUID。 |
请求示例¶
{
"os-reset_status": {
"status": "available",
"attach_status": "detached",
"migration_status": "migrating"
}
}
为卷设置镜像元数据。在请求体中指定 os-set_image_metadata 操作。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
os-set_image_metadata |
body |
对象 |
|
metadata |
body |
对象 |
快照的任何元数据键值对。 |
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_id |
路径 |
字符串 |
卷的 UUID。 |
请求示例¶
{
"os-set_image_metadata": {
"metadata": {
"image_id": "521752a6-acf6-4b2d-bc7a-119f9148cd8c",
"image_name": "image",
"kernel_id": "155d900f-4e14-4e4c-a73d-069cbf4541e6",
"ramdisk_id": "somedisk"
}
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
metadata |
body |
对象 |
镜像元数据键值对。 |
响应示例¶
{
"metadata": {
"kernel_id": "6ff710d2-942b-4d6b-9168-8c9cc2404ab1",
"container_format": "bare",
"min_ram": "0",
"ramdisk_id": "somedisk",
"disk_format": "qcow2",
"image_name": "image",
"image_id": "5137a025-3c5f-43c1-bc64-5f41270040a5",
"checksum": "f8ab98ff5e73ebab884d80c9dc9c7290",
"min_disk": "0",
"size": "13267968"
}
}
删除卷的镜像元数据,按键删除。在请求体中指定 os-unset_image_metadata 操作,以及要删除的元数据键值对的 key。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
os-unset_image_metadata |
body |
对象 |
|
key |
body |
字符串 |
要删除的元数据的元数据键名称。 |
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_id |
路径 |
字符串 |
卷的 UUID。 |
请求示例¶
{
"os-unset_image_metadata": {
"key": "ramdisk_id"
}
}
显示卷的镜像元数据。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_id |
路径 |
字符串 |
卷的 UUID。 |
os-show_image_metadata (可选) |
body |
对象 |
|
请求示例¶
{
"os-show_image_metadata": {}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
metadata |
body |
对象 |
镜像元数据键值对。 |
响应示例¶
{
"metadata": {
"key1": "value1",
"key2": "value2"
}
}
将卷附加到服务器。在请求体中指定 os-attach 操作。
先决条件
卷状态必须为
available。您应该设置
instance_uuid或host_name。
响应码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
instance_uuid (可选) |
body |
字符串 |
正在附加的实例的 UUID。 |
挂载点 |
body |
字符串 |
正在附加的挂载点。 |
host_name (可选) |
body |
字符串 |
正在附加的主机名称。 |
os-attach |
body |
对象 |
|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_id |
路径 |
字符串 |
卷的 UUID。 |
请求示例¶
{
"os-attach": {
"instance_uuid": "95D9EF50-507D-11E5-B970-0800200C9A66",
"mountpoint": "/dev/vdc"
}
}
从服务器分离卷。在请求体中指定 os-detach 操作。
先决条件
卷状态必须为
in-use。
响应码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
attachment_id (可选) |
body |
字符串 |
接口 ID。 |
os-detach |
body |
对象 |
|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_id |
路径 |
字符串 |
卷的 UUID。 |
请求示例¶
{
"os-detach": {
"attachment_id": "d8777f54-84cf-4809-a679-468ffed56cf1"
}
}
从块存储管理中移除卷,但不移除与之关联的后端存储对象。在请求体中指定 os-unmanage 操作。
先决条件
卷状态必须为
available。
响应码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
os-unmanage |
body |
对象 |
|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_id |
路径 |
字符串 |
卷的 UUID。 |
请求示例¶
{
"os-unmanage": {}
}
强制卷分离。在请求体中指定 os-force_detach 操作。
在断开卷连接后,回滚未成功的分离操作。
策略默认设置仅允许具有管理角色权限的用户执行此操作。云提供商可以通过策略配置文件中的 volume_extension:volume_admin_actions:force_detach 规则更改这些权限。
响应码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
connector (可选) |
body |
对象 |
|
attachment_id (可选) |
body |
字符串 |
接口 ID。 |
os-force_detach |
body |
对象 |
|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_id |
路径 |
字符串 |
卷的 UUID。 |
请求示例¶
{
"os-force_detach": {
"attachment_id": "d8777f54-84cf-4809-a679-468ffed56cf1",
"connector": {
"initiator": "iqn.2012-07.org.fake:01"
}
}
}
更改现有卷的类型。在请求体中指定 os-retype 操作。
更改现有卷的卷类型,Cinder 可能会根据新的卷类型将卷迁移到合适的卷宿主机。
不支持将正在使用的卷从支持多附件的类型更改为不支持多附件的类型,反之亦然。通常不建议重新调整正在使用的多附件卷的类型,如果该卷具有多个活动的读/写附件。
策略默认设置仅允许具有管理角色权限或卷所有者执行此操作。云提供商可以通过策略配置文件更改这些权限。
将未加密的卷重新类型化为相同大小的加密卷很可能会失败。即使卷与源卷的大小相同,加密卷也需要存储额外的加密信息开销。这导致新卷无法容纳所有数据。
响应码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
new_type |
body |
字符串 |
卷更改的新卷类型。 |
migration_policy (可选) |
body |
字符串 |
指定卷重新调整类型时是否应迁移。可能的值为 注意 如果卷附加到服务器实例并将被迁移,那么默认策略仅允许具有管理角色权限的用户尝试重新调整类型操作。对正在使用的加密卷进行迁移到新宿主机的重新调整类型操作不受支持。 |
os-retype |
body |
对象 |
|
volume_id |
路径 |
字符串 |
卷的 UUID。 |
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
请求示例¶
{
"os-retype": {
"new_type": "dedup-tier-replicaton",
"migration_policy": "never"
}
}
在请求体中指定 os-migrate_volume 操作。
host (str) – 卷迁移的目标主机。主机格式为 host@backend。
通常不建议重新调整正在使用的多附件卷的类型,如果该卷具有多个活动的读/写附件。
策略默认设置仅允许具有管理角色权限的用户执行此操作。云提供商可以通过策略配置文件更改这些权限。
先决条件
卷
status必须为available或in-use。卷
migration_status必须为None、deleting、error或success。卷
replication_status必须为None、disabled或not-capable。迁移必须发生在卷当前所在的另一个宿主机上。
卷不能是组的成员。
卷不能具有快照。
异步后置条件
在成功时,卷 status 将返回到原始状态 available 或 in-use,并且 migration_status 将为 success。如果失败,migration_status 将为 error。如果失败,并且 lock_volume 为 true 并且卷最初为 available,则 status 将返回到 available。
响应码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
volume_id |
路径 |
字符串 |
卷的 UUID。 |
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
os-migrate_volume |
body |
对象 |
|
host |
body |
字符串 |
卷迁移的目标宿主机。宿主机格式为 |
force_host_copy (可选) |
body |
布尔值 |
如果为 false(默认值),则依赖于卷后端驱动程序执行迁移,这可能是优化的。如果为 true,或者卷驱动程序未能自行迁移卷,则执行基于宿主机的通用迁移。 |
lock_volume (可选) |
body |
布尔值 |
如果为 true,则迁移 |
请求示例¶
{
"os-migrate_volume": {
"host": "node1@lvm"
}
}
在请求体中指定 os-migrate_volume_completion 操作。
完成卷的迁移,更新数据库中的新卷,将新卷的 status 返回到原始卷的 status,最后删除原始卷。
先决条件
原始卷和新卷的
migration_status必须都为None,或者都设置为非None值。此外,当设置新卷的
migration_status必须采用target:VOLUME_UUID的形式,其中 VOLUME_UUID 是原始卷 UUID。
异步后置条件
在成功时,卷 status 将返回到原始状态 available 或 in-use,并且 migration_status 将为 success。如果失败,migration_status 将为 error。
响应码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
volume_id |
路径 |
字符串 |
卷的 UUID。 |
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
os-migrate_volume_completion |
body |
对象 |
|
new_volume |
body |
字符串 |
新卷的 UUID。 |
错误 (可选) |
body |
布尔值 |
用于指示是否发生需要清理的错误。 |
请求示例¶
{
"os-migrate_volume_completion": {
"new_volume": "2b955850-f177-45f7-9f49-ecb2c256d161",
"error": false
}
}
尝试强制删除卷,无论其状态如何。在请求体中指定 os-force_delete 操作。
响应码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
os-force_delete |
body |
字符串 |
The |
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_id |
路径 |
字符串 |
卷的 UUID。 |
请求示例¶
{
"os-force_delete": {}
}
更新卷的启动状态,将其标记为可启动卷。在请求体中指定 os-set_bootable 操作。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_id |
路径 |
字符串 |
卷的 UUID。 |
os-set_bootable |
body |
对象 |
|
bootable |
body |
布尔值 |
启用或禁用可引导属性。您可以从可引导卷启动实例。 |
请求示例¶
{
"os-set_bootable": {
"bootable": "True"
}
}
卷 (volumes)¶
卷是一种可分离的块存储设备,类似于 USB 硬盘。您可以一次将一个卷附加到一个实例。
snapshot_id 和 source_volid 参数指定此卷来自的快照或卷的 ID。如果卷不是从快照或源卷创建的,则这些值为 null。
在创建、列出、更新或删除卷时,可能的状态值是
卷状态
状态 |
描述 |
creating |
卷正在创建。 |
available |
卷已准备好附加到实例。 |
attaching |
卷正在附加到实例。 |
detaching |
卷正在从实例分离。 |
in-use |
卷已附加到实例。 |
maintenance |
锁定中 |
deleting |
卷正在被删除。 |
awaiting-transfer |
卷正在等待传输。 |
error |
发生卷创建错误。 |
error_deleting |
发生卷删除错误。 |
backing-up |
卷正在备份。 |
restoring-backup |
正在将备份还原到卷。 |
error_backing-up |
备份发生错误。 |
error_restoring |
发生备份还原错误。 |
error_extending |
尝试扩展卷时发生错误。 |
downloading |
卷正在下载镜像。 |
uploading |
卷正在上传到镜像。 |
retyping |
卷正在更改为另一种卷类型。 |
extending |
正在扩展 |
列出项目可以访问的所有块存储卷,并显示详细信息。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
all_tenants (可选) |
查询 |
字符串 |
显示所有项目的详细信息。仅限管理员。 |
sort (可选) |
查询 |
字符串 |
以 <key> [: <direction>] 形式的逗号分隔的排序键列表,以及可选的排序方向。有效的方向是 |
limit (可选) |
查询 |
整数 |
请求项目页面大小。返回最多限制值数量的项目。使用 |
offset (可选) |
查询 |
整数 |
与 |
marker (可选) |
查询 |
字符串 |
最后一个已查看项目的 ID。使用 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
migration_status (可选) |
body |
字符串 |
卷迁移状态。仅限管理员。 |
attachments |
body |
数组 |
实例附加信息。如果此卷附加到服务器实例,则 attachments 列表包括附加服务器的 UUID、附加 UUID、附加主机的名称(如果有)、卷 UUID、设备和设备 UUID。否则,此列表为空。 |
links |
body |
数组 |
卷传输的链接。 |
availability_zone (可选) |
body |
字符串 |
可用区的名称。 |
os-vol-host-attr:host (可选) |
body |
字符串 |
卷的当前后端。主机格式为 |
encrypted |
body |
布尔值 |
如果为 true,则此卷已加密。 |
updated_at |
body |
字符串 |
更新资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含, 如果未设置 |
replication_status |
body |
字符串 |
卷复制状态。 |
snapshot_id (可选) |
body |
字符串 |
要从现有快照创建卷,请指定卷快照的 UUID。卷将在相同的可用区中创建,并且大小与快照相同。 |
id |
body |
字符串 |
卷传输的 UUID。 |
size |
body |
整数 |
卷的大小,以 gibibytes (GiB) 为单位。 |
user_id |
body |
字符串 |
用户的 UUID。 |
os-vol-tenant-attr:tenant_id |
body |
字符串 |
卷所属的项目 ID。 |
os-vol-mig-status-attr:migstat (可选) |
body |
字符串 |
此卷迁移的状态(None 表示当前没有正在进行的迁移)。 |
metadata |
body |
对象 |
快照的任何元数据键值对。 |
status |
body |
字符串 |
卷状态。 |
volume_image_metadata (可选) |
body |
对象 |
镜像元数据条目的列表。仅包含从镜像或最初从镜像创建的卷的快照创建的卷。 |
description (可选) |
body |
字符串 |
备份描述或 null。 |
multiattach |
body |
布尔值 |
如果为 true,则此卷可以附加到多个实例。 |
source_volid (可选) |
body |
字符串 |
源卷的 UUID。API 创建一个与源卷大小相同的新卷,除非请求了更大的大小。 |
consistencygroup_id |
body |
字符串 |
一致性组的 UUID。 |
os-vol-mig-status-attr:name_id (可选) |
body |
字符串 |
此卷名称在后端基于的卷 ID。 |
name |
body |
字符串 |
卷传输的名称。 |
bootable |
body |
字符串 |
启用或禁用可引导属性。您可以从可引导卷启动实例。 |
created_at |
body |
字符串 |
创建资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
volumes |
body |
数组 |
一个 |
volume_type (可选) |
路径 |
字符串 |
项目要访问的卷类型 ID。 |
volumes_links (可选) |
body |
数组 |
卷链接。 |
响应示例¶
{
"volumes": [
{
"migration_status": null,
"attachments": [
{
"server_id": "f4fda93b-06e0-4743-8117-bc8bcecd651b",
"attachment_id": "3b4db356-253d-4fab-bfa0-e3626c0b8405",
"host_name": null,
"volume_id": "6edbc2f4-1507-44f8-ac0d-eed1d2608d38",
"device": "/dev/vdb",
"id": "6edbc2f4-1507-44f8-ac0d-eed1d2608d38"
}
],
"links": [
{
"href": "http://23.253.248.171:8776/v2/bab7d5c60cd041a0a36f7c4b6e1dd978/volumes/6edbc2f4-1507-44f8-ac0d-eed1d2608d38",
"rel": "self"
},
{
"href": "http://23.253.248.171:8776/bab7d5c60cd041a0a36f7c4b6e1dd978/volumes/6edbc2f4-1507-44f8-ac0d-eed1d2608d38",
"rel": "bookmark"
}
],
"availability_zone": "nova",
"os-vol-host-attr:host": "difleming@lvmdriver-1#lvmdriver-1",
"encrypted": false,
"replication_status": "disabled",
"snapshot_id": null,
"id": "6edbc2f4-1507-44f8-ac0d-eed1d2608d38",
"size": 2,
"user_id": "32779452fcd34ae1a53a797ac8a1e064",
"os-vol-tenant-attr:tenant_id": "bab7d5c60cd041a0a36f7c4b6e1dd978",
"os-vol-mig-status-attr:migstat": null,
"metadata": {
"readonly": false,
"attached_mode": "rw"
},
"status": "in-use",
"description": null,
"multiattach": true,
"source_volid": null,
"consistencygroup_id": null,
"os-vol-mig-status-attr:name_id": null,
"name": "test-volume-attachments",
"bootable": "false",
"created_at": "2015-11-29T03:01:44.000000",
"volume_type": "lvmdriver-1"
},
{
"migration_status": null,
"attachments": [],
"links": [
{
"href": "http://23.253.248.171:8776/v2/bab7d5c60cd041a0a36f7c4b6e1dd978/volumes/173f7b48-c4c1-4e70-9acc-086b39073506",
"rel": "self"
},
{
"href": "http://23.253.248.171:8776/bab7d5c60cd041a0a36f7c4b6e1dd978/volumes/173f7b48-c4c1-4e70-9acc-086b39073506",
"rel": "bookmark"
}
],
"availability_zone": "nova",
"os-vol-host-attr:host": "difleming@lvmdriver-1#lvmdriver-1",
"encrypted": false,
"replication_status": "disabled",
"snapshot_id": null,
"id": "173f7b48-c4c1-4e70-9acc-086b39073506",
"size": 1,
"user_id": "32779452fcd34ae1a53a797ac8a1e064",
"os-vol-tenant-attr:tenant_id": "bab7d5c60cd041a0a36f7c4b6e1dd978",
"os-vol-mig-status-attr:migstat": null,
"metadata": {},
"status": "available",
"volume_image_metadata": {
"kernel_id": "8a55f5f1-78f7-4477-8168-977d8519342c",
"checksum": "eb9139e4942121f22bbc2afc0400b2a4",
"min_ram": "0",
"ramdisk_id": "5f6bdf8a-92db-4988-865b-60bdd808d9ef",
"disk_format": "ami",
"image_name": "cirros-0.3.4-x86_64-uec",
"image_id": "b48c53e1-9a96-4a5a-a630-2e74ec54ddcc",
"container_format": "ami",
"min_disk": "0",
"size": "25165824"
},
"description": "",
"multiattach": false,
"source_volid": null,
"consistencygroup_id": null,
"os-vol-mig-status-attr:name_id": null,
"name": "test-volume",
"bootable": "true",
"created_at": "2015-11-29T02:25:18.000000",
"volume_type": "lvmdriver-1"
}
],
"volumes_links": [{
"href": "https://158.69.65.111/volume/v2/4ad9f06ab8654e40befa59a2e7cac86d/volumes/detail?limit=1&marker=3b451d5d-9358-4a7e-a746-c6fd8b0e1462",
"rel": "next"
}]
}
创建卷。
要创建可启动卷,请在请求体中的 imageRef 属性中包含要从中创建卷的镜像的 UUID。
先决条件
您必须有足够的卷存储配额才能创建请求大小的卷。
异步后置条件
在具有正确权限的情况下,您可以通过 API 调用将卷状态查看为
available。在具有正确访问权限的情况下,您可以在 OpenStack 块存储管理的存储系统中查看创建的卷。
故障排除
如果卷状态仍然为
creating或显示其他错误状态,则请求失败。请确保满足先决条件,然后调查存储后端。卷未在 OpenStack 块存储管理的存储系统中创建。
存储节点需要足够的可用存储空间来匹配卷创建请求的大小。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
size |
body |
整数 |
卷的大小,以 gibibytes (GiB) 为单位。 |
description |
body |
字符串 |
卷描述。 |
imageRef (可选) |
body |
字符串 |
要从中创建卷的镜像的 UUID。创建可启动卷是必需的。 |
availability_zone (可选) |
body |
字符串 |
可用区的名称。 |
source_volid (可选) |
body |
字符串 |
源卷的 UUID。API 创建一个与源卷大小相同的新卷,除非请求了更大的大小。 |
name (可选) |
body |
字符串 |
卷名称。 |
volume |
body |
对象 |
一个 |
consistencygroup_id (可选) |
body |
字符串 |
一致性组的 UUID。 |
volume_type (可选) |
body |
字符串 |
卷类型(名称或 ID)。要创建具有多个存储后端的环境,您必须指定卷类型。块存储卷后端作为 |
snapshot_id (可选) |
body |
字符串 |
要从现有快照创建卷,请指定卷快照的 UUID。卷将在相同的可用区中创建,并且大小与快照相同。 |
OS-SCH-HNT:scheduler_hints (可选) |
body |
对象 |
发送到调度器的字典数据。 |
metadata (可选) |
body |
对象 |
与卷关联的一个或多个元数据键值对。 |
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
请求示例¶
{
"volume": {
"size": 10,
"availability_zone": null,
"source_volid": null,
"description": null,
"multiattach": false,
"snapshot_id": null,
"name": null,
"imageRef": null,
"volume_type": null,
"metadata": {},
"consistencygroup_id": null
},
"OS-SCH-HNT:scheduler_hints": {
"same_host": [
"a0cf03a5-d921-4877-bb5c-86d26cf818e1",
"8c19174f-4220-44f0-824a-cd1eeef10287"
]
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
migration_status (可选) |
body |
字符串 |
卷迁移状态。仅限管理员。 |
attachments |
body |
数组 |
实例附加信息。如果此卷附加到服务器实例,则 attachments 列表包括附加服务器的 UUID、附加 UUID、附加主机的名称(如果有)、卷 UUID、设备和设备 UUID。否则,此列表为空。 |
links |
body |
数组 |
卷传输的链接。 |
availability_zone (可选) |
body |
字符串 |
可用区的名称。 |
encrypted |
body |
布尔值 |
如果为 true,则此卷已加密。 |
updated_at |
body |
字符串 |
更新资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含, 如果未设置 |
replication_status |
body |
字符串 |
卷复制状态。 |
snapshot_id (可选) |
body |
字符串 |
要从现有快照创建卷,请指定卷快照的 UUID。卷将在相同的可用区中创建,并且大小与快照相同。 |
id |
body |
字符串 |
卷传输的 UUID。 |
size |
body |
整数 |
卷的大小,以 gibibytes (GiB) 为单位。 |
user_id |
body |
字符串 |
用户的 UUID。 |
metadata |
body |
对象 |
快照的任何元数据键值对。 |
status |
body |
字符串 |
卷状态。 |
description (可选) |
body |
字符串 |
备份描述或 null。 |
multiattach |
body |
布尔值 |
如果为 true,则此卷可以附加到多个实例。 |
source_volid (可选) |
body |
字符串 |
源卷的 UUID。API 创建一个与源卷大小相同的新卷,除非请求了更大的大小。 |
volume |
body |
对象 |
一个 |
consistencygroup_id |
body |
字符串 |
一致性组的 UUID。 |
name |
body |
字符串 |
卷传输的名称。 |
bootable |
body |
字符串 |
启用或禁用可引导属性。您可以从可引导卷启动实例。 |
created_at |
body |
字符串 |
创建资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
volume_type (可选) |
路径 |
字符串 |
项目要访问的卷类型 ID。 |
响应示例¶
{
"volume": {
"status": "creating",
"migration_status": null,
"user_id": "0eea4eabcf184061a3b6db1e0daaf010",
"attachments": [],
"links": [
{
"href": "http://23.253.248.171:8776/v2/bab7d5c60cd041a0a36f7c4b6e1dd978/volumes/6edbc2f4-1507-44f8-ac0d-eed1d2608d38",
"rel": "self"
},
{
"href": "http://23.253.248.171:8776/bab7d5c60cd041a0a36f7c4b6e1dd978/volumes/6edbc2f4-1507-44f8-ac0d-eed1d2608d38",
"rel": "bookmark"
}
],
"availability_zone": "nova",
"bootable": "false",
"encrypted": false,
"created_at": "2015-11-29T03:01:44.000000",
"description": null,
"updated_at": null,
"volume_type": "lvmdriver-1",
"name": "test-volume-attachments",
"replication_status": "disabled",
"consistencygroup_id": null,
"source_volid": null,
"snapshot_id": null,
"multiattach": false,
"metadata": {},
"id": "6edbc2f4-1507-44f8-ac0d-eed1d2608d38",
"size": 2
}
}
列出项目可以访问的所有块存储卷的摘要信息。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
all_tenants (可选) |
查询 |
字符串 |
显示所有项目的详细信息。仅限管理员。 |
sort (可选) |
查询 |
字符串 |
以 <key> [: <direction>] 形式的逗号分隔的排序键列表,以及可选的排序方向。有效的方向是 |
limit (可选) |
查询 |
整数 |
请求项目页面大小。返回最多限制值数量的项目。使用 |
offset (可选) |
查询 |
整数 |
与 |
marker (可选) |
查询 |
字符串 |
最后一个已查看项目的 ID。使用 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
volumes |
body |
数组 |
一个 |
id |
body |
字符串 |
卷传输的 UUID。 |
links |
body |
数组 |
卷传输的链接。 |
name |
body |
字符串 |
卷传输的名称。 |
volumes_links (可选) |
body |
数组 |
卷链接。 |
响应示例¶
{
"volumes": [
{
"id": "45baf976-c20a-4894-a7c3-c94b7376bf55",
"links": [
{
"href": "https://:8776/v2/0c2eba2c5af04d3f9e9d0d410b371fde/volumes/45baf976-c20a-4894-a7c3-c94b7376bf55",
"rel": "self"
},
{
"href": "https://:8776/0c2eba2c5af04d3f9e9d0d410b371fde/volumes/45baf976-c20a-4894-a7c3-c94b7376bf55",
"rel": "bookmark"
}
],
"name": "vol-004"
},
{
"id": "5aa119a8-d25b-45a7-8d1b-88e127885635",
"links": [
{
"href": "https://:8776/v2/0c2eba2c5af04d3f9e9d0d410b371fde/volumes/5aa119a8-d25b-45a7-8d1b-88e127885635",
"rel": "self"
},
{
"href": "https://:8776/0c2eba2c5af04d3f9e9d0d410b371fde/volumes/5aa119a8-d25b-45a7-8d1b-88e127885635",
"rel": "bookmark"
}
],
"name": "vol-003"
}
],
"volumes_links": [{
"href": "https://158.69.65.111/volume/v2/4ad9f06ab8654e40befa59a2e7cac86d/volumes/detail?limit=1&marker=3b451d5d-9358-4a7e-a746-c6fd8b0e1462",
"rel": "next"
}]
}
显示卷的详细信息。
先决条件
卷必须存在。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_id |
路径 |
字符串 |
卷的 UUID。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
migration_status (可选) |
body |
字符串 |
卷迁移状态。仅限管理员。 |
attachments |
body |
数组 |
实例附加信息。如果此卷附加到服务器实例,则 attachments 列表包括附加服务器的 UUID、附加 UUID、附加主机的名称(如果有)、卷 UUID、设备和设备 UUID。否则,此列表为空。 |
links |
body |
数组 |
卷传输的链接。 |
availability_zone (可选) |
body |
字符串 |
可用区的名称。 |
os-vol-host-attr:host (可选) |
body |
字符串 |
卷的当前后端。主机格式为 |
encrypted |
body |
布尔值 |
如果为 true,则此卷已加密。 |
updated_at |
body |
字符串 |
更新资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含, 如果未设置 |
replication_status |
body |
字符串 |
卷复制状态。 |
snapshot_id (可选) |
body |
字符串 |
要从现有快照创建卷,请指定卷快照的 UUID。卷将在相同的可用区中创建,并且大小与快照相同。 |
id |
body |
字符串 |
卷传输的 UUID。 |
size |
body |
整数 |
卷的大小,以 gibibytes (GiB) 为单位。 |
user_id |
body |
字符串 |
用户的 UUID。 |
os-vol-tenant-attr:tenant_id |
body |
字符串 |
卷所属的项目 ID。 |
os-vol-mig-status-attr:migstat (可选) |
body |
字符串 |
此卷迁移的状态(None 表示当前没有正在进行的迁移)。 |
metadata |
body |
对象 |
快照的任何元数据键值对。 |
status |
body |
字符串 |
卷状态。 |
volume_image_metadata (可选) |
body |
对象 |
镜像元数据条目的列表。仅包含从镜像或最初从镜像创建的卷的快照创建的卷。 |
description (可选) |
body |
字符串 |
备份描述或 null。 |
multiattach |
body |
布尔值 |
如果为 true,则此卷可以附加到多个实例。 |
source_volid (可选) |
body |
字符串 |
源卷的 UUID。API 创建一个与源卷大小相同的新卷,除非请求了更大的大小。 |
volume |
body |
对象 |
一个 |
consistencygroup_id |
body |
字符串 |
一致性组的 UUID。 |
os-vol-mig-status-attr:name_id (可选) |
body |
字符串 |
此卷名称在后端基于的卷 ID。 |
name |
body |
字符串 |
卷传输的名称。 |
bootable |
body |
字符串 |
启用或禁用可引导属性。您可以从可引导卷启动实例。 |
created_at |
body |
字符串 |
创建资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
volume_type (可选) |
路径 |
字符串 |
项目要访问的卷类型 ID。 |
响应示例¶
{
"volume": {
"status": "available",
"attachments": [],
"links": [
{
"href": "https://:8776/v2/0c2eba2c5af04d3f9e9d0d410b371fde/volumes/5aa119a8-d25b-45a7-8d1b-88e127885635",
"rel": "self"
},
{
"href": "https://:8776/0c2eba2c5af04d3f9e9d0d410b371fde/volumes/5aa119a8-d25b-45a7-8d1b-88e127885635",
"rel": "bookmark"
}
],
"availability_zone": "nova",
"bootable": "false",
"os-vol-host-attr:host": "ip-10-168-107-25",
"source_volid": null,
"snapshot_id": null,
"id": "5aa119a8-d25b-45a7-8d1b-88e127885635",
"description": "Super volume.",
"name": "vol-002",
"created_at": "2013-02-25T02:40:21.000000",
"volume_type": "None",
"os-vol-tenant-attr:tenant_id": "0c2eba2c5af04d3f9e9d0d410b371fde",
"size": 1,
"metadata": {
"contents": "not junk"
}
}
}
更新卷。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
volume |
body |
对象 |
一个 |
description (可选) |
body |
字符串 |
备份描述或 null。 |
name |
body |
字符串 |
卷传输的名称。 |
metadata (可选) |
body |
对象 |
与卷关联的一个或多个元数据键值对。 |
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_id |
路径 |
字符串 |
卷的 UUID。 |
请求示例¶
{
"volume": {
"name": "vol-003",
"description": "This is yet, another volume."
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
migration_status (可选) |
body |
字符串 |
卷迁移状态。仅限管理员。 |
attachments |
body |
数组 |
实例附加信息。如果此卷附加到服务器实例,则 attachments 列表包括附加服务器的 UUID、附加 UUID、附加主机的名称(如果有)、卷 UUID、设备和设备 UUID。否则,此列表为空。 |
links |
body |
数组 |
卷传输的链接。 |
availability_zone (可选) |
body |
字符串 |
可用区的名称。 |
encrypted |
body |
布尔值 |
如果为 true,则此卷已加密。 |
updated_at |
body |
字符串 |
更新资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含, 如果未设置 |
replication_status |
body |
字符串 |
卷复制状态。 |
snapshot_id (可选) |
body |
字符串 |
要从现有快照创建卷,请指定卷快照的 UUID。卷将在相同的可用区中创建,并且大小与快照相同。 |
id |
body |
字符串 |
卷传输的 UUID。 |
size |
body |
整数 |
卷的大小,以 gibibytes (GiB) 为单位。 |
user_id |
body |
字符串 |
用户的 UUID。 |
metadata |
body |
对象 |
与卷关联的一个或多个元数据键值对。 |
status |
body |
字符串 |
卷状态。 |
description (可选) |
body |
字符串 |
备份描述或 null。 |
multiattach |
body |
布尔值 |
如果为 true,则此卷可以附加到多个实例。 |
source_volid (可选) |
body |
字符串 |
源卷的 UUID。API 创建一个与源卷大小相同的新卷,除非请求了更大的大小。 |
volume |
body |
对象 |
一个 |
consistencygroup_id |
body |
字符串 |
一致性组的 UUID。 |
name |
body |
字符串 |
卷传输的名称。 |
bootable |
body |
字符串 |
启用或禁用可引导属性。您可以从可引导卷启动实例。 |
created_at |
body |
字符串 |
创建资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
volume_type (可选) |
路径 |
字符串 |
项目要访问的卷类型 ID。 |
响应示例¶
{
"volume": {
"status": "available",
"migration_status": null,
"user_id": "0eea4eabcf184061a3b6db1e0daaf010",
"attachments": [],
"links": [
{
"href": "https://:8776/v2/0c2eba2c5af04d3f9e9d0d410b371fde/volumes/5aa119a8-d25b-45a7-8d1b-88e127885635",
"rel": "self"
},
{
"href": "https://:8776/0c2eba2c5af04d3f9e9d0d410b371fde/volumes/5aa119a8-d25b-45a7-8d1b-88e127885635",
"rel": "bookmark"
}
],
"availability_zone": "nova",
"bootable": "false",
"encrypted": false,
"created_at": "2015-11-29T03:01:44.000000",
"description": "This is yet, another volume.",
"updated_at": null,
"volume_type": "lvmdriver-1",
"name": "vol-003",
"replication_status": "disabled",
"consistencygroup_id": null,
"source_volid": null,
"snapshot_id": null,
"multiattach": false,
"metadata": {
"contents": "not junk"
},
"id": "5aa119a8-d25b-45a7-8d1b-88e127885635",
"size": 1
}
}
删除卷。
先决条件
卷状态必须为
available、in-use、error或error_restoring。您不能已经拥有该卷的快照。
您不能删除正在迁移的卷。
异步后置条件
卷在卷索引中被删除。
OpenStack 块存储管理的卷在存储节点中被删除。
故障排除
如果卷状态仍然为
deleting或变为error_deleting,则请求失败。请确保满足先决条件,然后调查存储后端。OpenStack 块存储管理的卷未从存储系统中删除。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_id |
路径 |
字符串 |
卷的 UUID。 |
cascade (可选) |
路径 |
布尔值 |
删除与卷一起的任何快照。默认值为 False。 |
创建或替换卷的元数据。不修改请求中不存在的项目。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
metadata |
body |
对象 |
与卷关联的一个或多个元数据键值对。 |
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_id |
路径 |
字符串 |
卷的 UUID。 |
请求示例¶
{
"metadata": {
"name": "metadata0"
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
metadata |
body |
对象 |
与卷关联的一个或多个元数据键值对。 |
响应示例¶
{
"metadata": {
"name": "metadata0"
}
}
显示卷的元数据。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_id |
路径 |
字符串 |
卷的 UUID。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
metadata |
body |
对象 |
与卷关联的一个或多个元数据键值对。 |
响应示例¶
{
"metadata": {}
}
使用请求中的键值对替换卷的所有元数据。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
metadata |
body |
对象 |
与卷关联的一个或多个元数据键值对。 |
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_id |
路径 |
字符串 |
卷的 UUID。 |
请求示例¶
{
"metadata": {
"name": "metadata1"
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
metadata |
body |
对象 |
与卷关联的一个或多个元数据键值对。 |
响应示例¶
{
"metadata": {
"name": "metadata1"
}
}
显示卷的特定键的元数据。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_id |
路径 |
字符串 |
卷的 UUID。 |
key |
路径 |
字符串 |
您想要查看的元数据的元数据键名称。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
meta |
body |
对象 |
卷的元数据键值对。 |
响应示例¶
{
"meta": {
"name": "test"
}
}
删除卷的元数据。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_id |
路径 |
字符串 |
卷的 UUID。 |
key |
路径 |
字符串 |
要删除的元数据的元数据键名称。 |
更新卷的特定键的元数据。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_id |
路径 |
字符串 |
卷的 UUID。 |
key |
路径 |
字符串 |
您想要更新的元数据的元数据键名称。 |
meta |
body |
对象 |
卷的元数据键值对。 |
请求示例¶
{
"meta": {
"name": "new_name"
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
meta |
body |
对象 |
卷的元数据键值对。 |
响应示例¶
{
"meta": {
"name": "new_name"
}
}