块存储 API V3 (当前)¶
注意
大多数 API 方法的 URL 都包含一个 {project_id} 占位符,代表调用者的项目 ID。 从 v3.67 开始,`project_id` 在 URL 中是可选的,以下两种方式等价:
GET /v3/{project_id}/volumesGET /v3/volumes
在这两种情况下,API 方法实际使用的项目 ID 都是调用者 Keystone 上下文中的项目 ID。 因此,在 URL 中包含项目 ID 是多余的。
v3.67 微版本仅用作一个指示,表明 API 接受不带 `{project_id}` 段的 URL,这适用于所有请求,无论请求中的微版本是什么。 例如,提供 v3.67 或更高版本的 API 节点将接受不带 `{project_id}` 段的 URL,即使请求是针对 v3.0 的。 同样,它也会接受包含 `{project_id}` 段的 URL,即使请求是针对 v3.67 的。
API 版本¶
列出块存储 API 所有版本的信息。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
300 - 多重选择 |
资源对应于多个表示形式。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
405 - 方法不允许 |
该方法对于此端点和资源无效。 |
404 - Not Found |
找不到请求的资源。 |
409 - Conflict |
此资源有一个正在进行的操作,与此请求冲突。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
503 - 服务不可用 |
服务现在无法处理请求。 |
请求¶
响应¶
示例:列出 API 版本:JSON 请求
{
"versions": [
{
"id": "v3.0",
"links": [
{
"href": "https://docs.openstack.org/",
"rel": "describedby",
"type": "text/html"
},
{
"href": "http://127.0.0.1:45697/v3/",
"rel": "self"
}
],
"media-types": [
{
"base": "application/json",
"type": "application/vnd.openstack.volume+json;version=3"
}
],
"min_version": "3.0",
"status": "CURRENT",
"updated": "2022-08-31T00:00:00Z",
"version": "3.71"
}
]
}
API 版本详细信息¶
显示块存储 API v3 的详细信息。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
403 - 禁止 |
策略不允许当前用户执行此操作。 |
请求¶
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
status |
body |
字符串 |
此 API 版本的状态。它可以是以下之一:
|
updated |
body |
字符串 |
这是一个固定的字符串,API 版本会进行更新。 |
links |
body |
数组 |
指向相关资源的链接。 |
min_version |
body |
字符串 |
如果此版本的 API 支持微版本,则支持的最小微版本。如果不支持微版本,则为空字符串。 |
版本 |
body |
字符串 |
如果此版本的 API 支持微版本,则支持的最高微版本。如果不支持微版本,则为空字符串。 |
media-types |
body |
数组 |
媒体类型。它是一个固定字典的数组。 注意 此字段是遗留字段,不提供任何有用信息。它将被弃用并移除。 |
id |
body |
字符串 |
版本的一个常用名称。仅供参考,不具有实际语义意义。 |
响应示例¶
{
"versions": [
{
"id": "v3.0",
"links": [
{
"href": "https://docs.openstack.org/",
"rel": "describedby",
"type": "text/html"
},
{
"href": "http://127.0.0.1:44895/v3/",
"rel": "self"
}
],
"media-types": [
{
"base": "application/json",
"type": "application/vnd.openstack.volume+json;version=3"
}
],
"min_version": "3.0",
"status": "CURRENT",
"updated": "2023-08-31T00:00:00Z",
"version": "3.71"
}
]
}
API 扩展 (extensions)¶
列出块存储 API 扩展。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
300 - 多重选择 |
资源对应于多个表示形式。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
updated |
body |
字符串 |
更新资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含, 如果未设置 |
description |
body |
字符串 |
扩展描述。 |
links |
body |
数组 |
卷迁移的链接。 |
alias |
body |
字符串 |
扩展的别名。例如,“FOXNSOX”、“os-availability-zone”、“os-extended-quotas”、“os-share-unmanage”或“os-used-limits”。 |
name (可选) |
body |
字符串 |
对象名称。 |
响应示例¶
{
"extensions": [
{
"alias": "os-hosts",
"description": "Admin-only host administration.",
"links": [],
"name": "Hosts",
"updated": "2011-06-29T00:00:00+00:00"
},
{
"alias": "os-vol-tenant-attr",
"description": "Expose the internal project_id as an attribute of a volume.",
"links": [],
"name": "VolumeTenantAttribute",
"updated": "2011-11-03T00:00:00+00:00"
},
{
"alias": "os-quota-sets",
"description": "Quota management support.",
"links": [],
"name": "Quotas",
"updated": "2011-08-08T00:00:00+00:00"
},
{
"alias": "os-availability-zone",
"description": "Describe Availability Zones.",
"links": [],
"name": "AvailabilityZones",
"updated": "2013-06-27T00:00:00+00:00"
},
{
"alias": "os-volume-encryption-metadata",
"description": "Volume encryption metadata retrieval support.",
"links": [],
"name": "VolumeEncryptionMetadata",
"updated": "2013-07-10T00:00:00+00:00"
},
{
"alias": "backups",
"description": "Backups support.",
"links": [],
"name": "Backups",
"updated": "2012-12-12T00:00:00+00:00"
},
{
"alias": "os-snapshot-actions",
"description": "Enable snapshot manager actions.",
"links": [],
"name": "SnapshotActions",
"updated": "2013-07-16T00:00:00+00:00"
},
{
"alias": "os-volume-actions",
"description": "Enable volume actions.",
"links": [],
"name": "VolumeActions",
"updated": "2012-05-31T00:00:00+00:00"
},
{
"alias": "os-snapshot-manage",
"description": "Allows existing backend storage to be 'managed' by Cinder.",
"links": [],
"name": "SnapshotManage",
"updated": "2014-12-31T00:00:00+00:00"
},
{
"alias": "os-volume-unmanage",
"description": "Enable volume unmanage operation.",
"links": [],
"name": "VolumeUnmanage",
"updated": "2012-05-31T00:00:00+00:00"
},
{
"alias": "consistencygroups",
"description": "consistency groups support.",
"links": [],
"name": "Consistencygroups",
"updated": "2014-08-18T00:00:00+00:00"
},
{
"alias": "os-vol-host-attr",
"description": "Expose host as an attribute of a volume.",
"links": [],
"name": "VolumeHostAttribute",
"updated": "2011-11-03T00:00:00+00:00"
},
{
"alias": "encryption",
"description": "Encryption support for volume types.",
"links": [],
"name": "VolumeTypeEncryption",
"updated": "2013-07-01T00:00:00+00:00"
},
{
"alias": "os-vol-image-meta",
"description": "Show image metadata associated with the volume.",
"links": [],
"name": "VolumeImageMetadata",
"updated": "2012-12-07T00:00:00+00:00"
},
{
"alias": "os-types-manage",
"description": "Types manage support.",
"links": [],
"name": "TypesManage",
"updated": "2011-08-24T00:00:00+00:00"
},
{
"alias": "capabilities",
"description": "Capabilities support.",
"links": [],
"name": "Capabilities",
"updated": "2015-08-31T00:00:00+00:00"
},
{
"alias": "cgsnapshots",
"description": "cgsnapshots support.",
"links": [],
"name": "Cgsnapshots",
"updated": "2014-08-18T00:00:00+00:00"
},
{
"alias": "os-types-extra-specs",
"description": "Type extra specs support.",
"links": [],
"name": "TypesExtraSpecs",
"updated": "2011-08-24T00:00:00+00:00"
},
{
"alias": "os-used-limits",
"description": "Provide data on limited resources that are being used.",
"links": [],
"name": "UsedLimits",
"updated": "2013-10-03T00:00:00+00:00"
},
{
"alias": "os-vol-mig-status-attr",
"description": "Expose migration_status as an attribute of a volume.",
"links": [],
"name": "VolumeMigStatusAttribute",
"updated": "2013-08-08T00:00:00+00:00"
},
{
"alias": "os-volume-type-access",
"description": "Volume type access support.",
"links": [],
"name": "VolumeTypeAccess",
"updated": "2014-06-26T00:00:00Z"
},
{
"alias": "os-extended-services",
"description": "Extended services support.",
"links": [],
"name": "ExtendedServices",
"updated": "2014-01-10T00:00:00-00:00"
},
{
"alias": "os-extended-snapshot-attributes",
"description": "Extended SnapshotAttributes support.",
"links": [],
"name": "ExtendedSnapshotAttributes",
"updated": "2012-06-19T00:00:00+00:00"
},
{
"alias": "os-snapshot-unmanage",
"description": "Enable volume unmanage operation.",
"links": [],
"name": "SnapshotUnmanage",
"updated": "2014-12-31T00:00:00+00:00"
},
{
"alias": "qos-specs",
"description": "QoS specs support.",
"links": [],
"name": "Qos_specs_manage",
"updated": "2013-08-02T00:00:00+00:00"
},
{
"alias": "os-quota-class-sets",
"description": "Quota classes management support.",
"links": [],
"name": "QuotaClasses",
"updated": "2012-03-12T00:00:00+00:00"
},
{
"alias": "os-volume-transfer",
"description": "Volume transfer management support.",
"links": [],
"name": "VolumeTransfer",
"updated": "2013-05-29T00:00:00+00:00"
},
{
"alias": "os-volume-manage",
"description": "Allows existing backend storage to be 'managed' by Cinder.",
"links": [],
"name": "VolumeManage",
"updated": "2014-02-10T00:00:00+00:00"
},
{
"alias": "os-admin-actions",
"description": "Enable admin actions.",
"links": [],
"name": "AdminActions",
"updated": "2012-08-25T00:00:00+00:00"
},
{
"alias": "os-services",
"description": "Services support.",
"links": [],
"name": "Services",
"updated": "2012-10-28T00:00:00-00:00"
},
{
"alias": "scheduler-stats",
"description": "Scheduler stats support.",
"links": [],
"name": "Scheduler_stats",
"updated": "2014-09-07T00:00:00+00:00"
},
{
"alias": "OS-SCH-HNT",
"description": "Pass arbitrary key/value pairs to the scheduler.",
"links": [],
"name": "SchedulerHints",
"updated": "2013-04-18T00:00:00+00:00"
}
]
}
卷类型 (types)¶
要创建一个具有多个存储后端的环境,您必须指定一个卷类型。API 将块存储卷后端作为 `cinder-volume` 的子进程生成,并通过唯一队列对其进行键控。API 将后端命名为 `cinder-volume.HOST.BACKEND`。例如,`cinder-volume.ubuntu.lvmdriver`。当您创建卷时,调度器会选择一个合适的后端来处理该卷类型的请求。
有关如何使用卷类型创建多个存储后端的信息,请参阅 配置多个存储后端。
更新卷类型。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_type_id |
路径 |
字符串 |
现有卷类型的 UUID。 |
volume_type |
body |
对象 |
一个 `volume_type` 对象。 |
name (可选) |
body |
字符串 |
卷类型的名称。 |
description (可选) |
body |
字符串 |
卷类型的描述。 |
is_public (可选) |
body |
布尔值 |
卷类型是否公开可见。请参阅 有效的布尔值。 |
请求示例¶
{
"volume_type": {
"name": "vol-type-001",
"description": "volume type 0001",
"is_public": true
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
volume_type |
body |
对象 |
一个 `volume_type` 对象。 |
is_public |
body |
布尔值 |
卷类型是否公开可见。 |
extra_specs (可选) |
body |
对象 |
键值对,包含与卷类型相关的其他规范。例如,根据使用的存储驱动程序,可能包括功能、容量、压缩等。 |
description |
body |
字符串 |
卷类型的描述。 |
name |
body |
字符串 |
卷类型的名称。 |
id |
路径 |
字符串 |
现有卷类型的 UUID。 |
响应示例¶
{
"volume_type": {
"id": "6685584b-1eac-4da6-b5c3-555430cf68ff",
"name": "vol-type-001",
"description": "volume type 0001",
"is_public": true,
"extra_specs": {
"capabilities": "gpu"
}
}
}
向卷类型添加新的额外规范,或更新分配给卷类型的额外规范。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_type_id |
路径 |
字符串 |
现有卷类型的 UUID。 |
extra_specs |
body |
对象 |
包含卷类型规范的键值对集合。 |
请求示例¶
{
"extra_specs": {
"key1": "value1",
"key2": "value2"
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
extra_specs |
body |
对象 |
包含卷类型规范的键值对集合。 |
响应示例¶
{
"extra_specs": {
"key1": "value1",
"key2": "value2"
}
}
显示分配给卷类型的全部额外规范。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_type_id |
路径 |
字符串 |
现有卷类型的 UUID。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
extra_specs |
body |
对象 |
包含卷类型规范的键值对集合。 |
响应示例¶
{
"extra_specs": {
"capabilities": "gpu"
}
}
显示分配给卷类型的特定额外规范。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_type_id |
路径 |
字符串 |
现有卷类型的 UUID。 |
key |
路径 |
字符串 |
卷类型额外规范的键名。 |
响应示例¶
{
"capabilities": "gpu"
}
更新分配给卷类型的特定额外规范。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_type_id |
路径 |
字符串 |
现有卷类型的 UUID。 |
key |
路径 |
字符串 |
卷类型额外规范的键名。 |
请求示例¶
{
"key1": "value1"
}
响应示例¶
{
"key1": "value1"
}
删除分配给卷类型的特定额外规范。
响应码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_type_id |
路径 |
字符串 |
现有卷类型的 UUID。 |
key |
路径 |
字符串 |
卷类型额外规范的键名。 |
显示卷类型的详细信息。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_type_id |
路径 |
字符串 |
现有卷类型的 UUID。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
volume_type |
body |
对象 |
一个 `volume_type` 对象。 |
is_public |
body |
布尔值 |
卷类型是否公开可见。 |
extra_specs (可选) |
body |
对象 |
键值对,包含与卷类型相关的其他规范。例如,根据使用的存储驱动程序,可能包括功能、容量、压缩等。 |
description |
body |
字符串 |
卷类型的描述。 |
name |
body |
字符串 |
卷类型的名称。 |
id |
body |
字符串 |
卷类型的 UUID。 |
os-volume-type-access:is_public |
body |
布尔值 |
卷类型是否公开可见。 |
qos_specs_id (可选) |
body |
字符串 |
QoS 规范的 ID。 |
响应示例¶
{
"volume_type": {
"id": "6685584b-1eac-4da6-b5c3-555430cf68ff",
"qos_specs_id": null,
"name": "vol-type-001",
"description": "volume type 0001",
"os-volume-type-access:is_public": true,
"is_public": true,
"extra_specs": {
"capabilities": "gpu"
}
}
}
显示默认卷类型的详细信息,即,如果您在“创建卷”请求中未指定卷类型,则将使用的卷类型。这可能是以下之一:
您项目的默认卷类型 _(自微版本 3.62 起)_
由操作员配置的安装默认卷类型
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
404 - Not Found |
找不到请求的资源。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
错误条件¶
在块存储服务的 Train 版本之前的版本中,只能收到 404 (未找到) 响应,因为自 Train 版本以来,已配置的默认卷类型是必需的。
如果您收到 500 (内部错误响应),则表示操作员未正确配置默认卷类型。请联系您的云提供商。
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
volume_type |
body |
对象 |
一个 `volume_type` 对象。 |
is_public |
body |
布尔值 |
卷类型是否公开可见。 |
extra_specs (可选) |
body |
对象 |
键值对,包含与卷类型相关的其他规范。例如,根据使用的存储驱动程序,可能包括功能、容量、压缩等。 |
description |
body |
字符串 |
卷类型的描述。 |
name |
body |
字符串 |
卷类型的名称。 |
qos_specs_id (可选) |
body |
字符串 |
QoS 规范的 ID。 |
响应示例¶
{
"volume_type": {
"id": "6685584b-1eac-4da6-b5c3-555430cf68ff",
"qos_specs_id": null,
"name": "vol-type-001",
"description": "volume type 0001",
"is_public": true,
"extra_specs": {
"capabilities": "gpu"
}
}
}
删除卷类型。
给操作员的说明: 自 Train 版本以来,不允许使用无类型卷,并且每个部署都需要一个已配置的默认卷类型。尝试删除已配置的默认卷类型将失败。
响应码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_type_id |
路径 |
字符串 |
现有卷类型的 UUID。 |
列出卷类型。
要确定其中哪一个是默认类型(如果您在“创建卷”请求中未指定),请使用“显示默认卷类型”请求。
给用户的说明: 列表中可能有一个名为 `__DEFAULT__` 的卷类型。除非必要或操作员指示,否则请尽量不要在“创建卷”请求中使用此卷类型。如果您想创建 *您的* 默认卷类型的卷,只需在“创建卷”请求中省略 `volume_type` 参数即可。
给操作员的说明: `__DEFAULT__` 卷类型是在 Train 版本中引入的,作为占位符以防止创建无类型卷。在适当的条件下,它可以从您的部署中移除。有关详细信息,请参阅 Cinder 管理员指南 中的“默认卷类型”部分。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
is_public (可选) |
查询 |
布尔值 |
按公共可见性过滤卷类型。请参阅 有效的布尔值。 |
sort (可选) |
查询 |
字符串 |
逗号分隔的排序键和可选的排序方向列表,格式为 ` |
sort_key (可选) |
查询 |
字符串 |
按属性排序。有效值为 `name`、`status`、`container_format`、`disk_format`、`size`、`id`、`created_at` 或 `updated_at`。默认为 `created_at`。API 使用 `sort_key` 属性值的自然排序方向。已弃用,推荐使用组合的 `sort` 参数。 |
sort_dir (可选) |
查询 |
字符串 |
按一个或多个属性和排序方向的组合进行排序。如果省略组合中的排序方向,则默认为 `desc`。已弃用,推荐使用组合的 `sort` 参数。 |
limit (可选) |
查询 |
整数 |
请求项目页面大小。返回最多限制值数量的项目。使用 |
offset (可选) |
查询 |
整数 |
与 |
marker (可选) |
查询 |
字符串 |
最后一个已查看项目的 ID。使用 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
volume_types |
body |
数组 |
卷类型列表。在具有多个存储后端的环境中,调度器会根据卷类型确定将卷发送到哪里。有关如何使用卷类型创建多个存储后端的信息,请参阅 配置多个存储后端。 |
extra_specs (可选) |
body |
对象 |
键值对,包含与卷类型相关的其他规范。例如,根据使用的存储驱动程序,可能包括功能、容量、压缩等。 |
name |
body |
字符串 |
卷类型的名称。 |
is_public |
body |
布尔值 |
卷类型是否公开可见。 |
description |
body |
字符串 |
卷类型的描述。 |
id |
body |
字符串 |
卷类型的 UUID。 |
os-volume-type-access:is_public |
body |
布尔值 |
卷类型是否公开可见。 |
qos_specs_id (可选) |
body |
字符串 |
QoS 规范的 ID。 |
响应示例¶
{
"volume_types": [
{
"description": "volume type 0002",
"extra_specs": {
"capabilities": "gpu"
},
"id": "ef512777-6552-4013-82f0-57a96e5804b7",
"is_public": true,
"name": "vol-type-002",
"os-volume-type-access:is_public": true,
"qos_specs_id": null
},
{
"description": "volume type 0001",
"extra_specs": {
"capabilities": "gpu"
},
"id": "18947ff2-ad57-42b2-9350-34262e530203",
"is_public": true,
"name": "vol-type-001",
"os-volume-type-access:is_public": true,
"qos_specs_id": null
},
{
"description": "Default Volume Type",
"extra_specs": {},
"id": "7a56b996-b73f-4233-9f00-dd6a68b49b27",
"is_public": true,
"name": "__DEFAULT__",
"os-volume-type-access:is_public": true,
"qos_specs_id": null
}
]
}
创建一个卷类型。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_type |
body |
对象 |
一个 `volume_type` 对象。 |
name |
body |
字符串 |
卷类型的名称。 |
os-volume-type-access:is_public (可选) |
body |
布尔值 |
卷类型是否公开可见。请参阅 有效的布尔值。 |
description (可选) |
body |
字符串 |
卷类型的描述。 |
extra_specs (可选) |
body |
对象 |
键值对,包含与卷类型相关的其他规范。例如,根据使用的存储驱动程序,可能包括功能、容量、压缩等。 |
请求示例¶
{
"volume_type": {
"name": "vol-type-001",
"description": "volume type 0001",
"os-volume-type-access:is_public": true,
"extra_specs": {
"capabilities": "gpu"
}
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
volume_type |
body |
对象 |
一个 `volume_type` 对象。 |
is_public |
body |
布尔值 |
卷类型是否公开可见。 |
extra_specs (可选) |
body |
对象 |
键值对,包含与卷类型相关的其他规范。例如,根据使用的存储驱动程序,可能包括功能、容量、压缩等。 |
description |
body |
字符串 |
卷类型的描述。 |
name |
body |
字符串 |
卷类型的名称。 |
id |
body |
字符串 |
卷类型的 UUID。 |
os-volume-type-access:is_public |
body |
布尔值 |
卷类型是否公开可见。 |
响应示例¶
{
"volume_type": {
"name": "vol-type-001",
"extra_specs": {
"capabilities": "gpu"
},
"os-volume-type-access:is_public": true,
"is_public": true,
"id": "6d0ff92a-0007-4780-9ece-acfe5876966a",
"description": "volume type 0001"
}
}
显示现有卷类型的加密类型。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_type_id |
路径 |
字符串 |
现有卷类型的 UUID。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
volume_type_id |
body |
字符串 |
卷类型的 UUID。 |
encryption_id |
body |
字符串 |
加密的 UUID。 |
key_size (可选) |
body |
整数 |
加密密钥的大小(以位为单位)。通常为 256。默认值为 None。 |
provider |
body |
字符串 |
提供加密支持的类。 |
control_location (可选) |
body |
字符串 |
执行加密的逻辑服务。有效值为“front-end”或“back-end”。默认值为“front-end”。 |
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
例如, 如果包含, 如果 `deleted_at` 日期和时间戳未设置,则其值为 `null`。 |
响应示例¶
{
"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"
}
显示现有卷类型的加密规范项。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_type_id |
路径 |
字符串 |
现有卷类型的 UUID。 |
key |
路径 |
字符串 |
卷类型加密规范的键名。 |
响应示例¶
{
"cipher": "aes-xts-plain64"
}
删除现有卷类型的加密类型。
响应码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_type_id |
路径 |
字符串 |
现有卷类型的 UUID。 |
encryption_id |
路径 |
字符串 |
加密类型的 ID。 |
为现有卷类型创建加密类型。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_type_id |
路径 |
字符串 |
现有卷类型的 UUID。 |
encryption |
body |
对象 |
加密信息。 |
key_size (可选) |
body |
整数 |
加密密钥的大小(以位为单位)。通常为 256。默认值为 None。 |
provider |
body |
字符串 |
提供加密支持的类。选项包括:
|
control_location (可选) |
body |
字符串 |
执行加密的逻辑服务。有效值为“front-end”或“back-end”。默认值为“front-end”。 |
cipher (可选) |
body |
字符串 |
加密算法或模式。例如,aes-xts-plain64。默认值为 None。 |
请求示例¶
{
"encryption":{
"key_size": 256,
"provider": "luks",
"control_location":"front-end",
"cipher": "aes-xts-plain64"
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
encryption |
body |
对象 |
加密信息。 |
volume_type_id |
body |
字符串 |
卷类型的 UUID。 |
encryption_id |
body |
字符串 |
加密的 UUID。 |
key_size (可选) |
body |
整数 |
加密密钥的大小(以位为单位)。通常为 256。默认值为 None。 |
provider |
body |
字符串 |
提供加密支持的类。 |
control_location (可选) |
body |
字符串 |
执行加密的逻辑服务。有效值为“front-end”或“back-end”。默认值为“front-end”。 |
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 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_type_id |
路径 |
字符串 |
现有卷类型的 UUID。 |
encryption_id |
路径 |
字符串 |
加密类型的 ID。 |
encryption |
body |
对象 |
加密信息。 |
key_size (可选) |
body |
整数 |
加密密钥的大小(以位为单位)。通常为 256。默认值为 None。 |
provider (可选) |
body |
字符串 |
提供加密支持的类。选项包括:
|
control_location (可选) |
body |
字符串 |
执行加密的逻辑服务。有效值为“front-end”或“back-end”。默认值为“front-end”。 |
cipher (可选) |
body |
字符串 |
加密算法或模式。例如,aes-xts-plain64。默认值为 None。 |
请求示例¶
{
"encryption":{
"key_size": 64,
"provider": "luks",
"control_location":"back-end",
"cipher": "aes-xts-plain64"
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
encryption |
body |
对象 |
加密信息。 |
key_size (可选) |
body |
整数 |
加密密钥的大小(以位为单位)。通常为 256。默认值为 None。 |
provider (可选) |
body |
字符串 |
提供加密支持的类。 |
control_location (可选) |
body |
字符串 |
执行加密的逻辑服务。有效值为“front-end”或“back-end”。默认值为“front-end”。 |
cipher (可选) |
body |
字符串 |
加密算法或模式。例如,aes-xts-plain64。默认值为 None。 |
响应示例¶
{
"encryption":{
"key_size": 64,
"provider": "luks",
"control_location":"back-end",
"cipher": "aes-xts-plain64"
}
}
卷类型访问 (types, action) (types, os-volume-type-access)¶
私有卷类型对项目的访问。
默认情况下,卷类型是公共的。要创建私有卷类型,在创建卷类型时将 `is_public` 布尔字段设置为 `false`。要控制对私有卷类型的访问,用户需要向卷类型添加项目或从中移除项目。没有项目的私有卷类型只能由具有管理员角色和上下文的用户访问。
将私有卷类型访问权限添加到项目。
响应码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_type |
路径 |
字符串 |
现有卷类型的 UUID。 |
addProjectAccess |
body |
对象 |
向项目添加卷类型访问。 |
project |
body |
字符串 |
项目 ID。要添加到此项目 ID 的卷类型访问。 |
请求示例¶
{
"addProjectAccess": {
"project": "6f70656e737461636b20342065766572"
}
}
从项目中移除私有卷类型访问。
响应码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_type |
路径 |
字符串 |
现有卷类型的 UUID。 |
removeProjectAccess |
body |
对象 |
从项目中移除卷类型访问。 |
project |
body |
字符串 |
项目 ID。要添加到此项目 ID 的卷类型访问。 |
请求示例¶
{
"removeProjectAccess": {
"project": "f270b245cb11498ca4031deb7e141cfa"
}
}
列出具有对私有卷类型访问权限的项目 ID。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_type |
路径 |
字符串 |
现有卷类型的 UUID。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
volume_type_access |
body |
数组 |
包含卷类型列表,供项目访问。 |
project_id |
body |
字符串 |
项目的 UUID。 |
volume_type_id |
body |
字符串 |
卷类型的 UUID。 |
响应示例¶
{
"volume_type_access": [
{
"project_id": "6f70656e737461636b20342065766572",
"volume_type_id": "a5082c24-2a27-43a4-b48e-fcec1240e36b"
}
]
}
默认卷类型 (default-types)¶
为各个项目管理默认卷类型。
默认情况下,不指定卷类型的卷创建请求会将已配置的系统默认卷类型分配给卷。您可以为任何项目设置不同的默认卷类型来覆盖此行为。
微版本 3.62 或更高版本可用。
注意:列表 API 的默认策略是系统管理员,因此您需要系统范围的令牌才能访问它。要获取系统范围的令牌,您需要运行以下命令:
openstack –os-system-scope all –os-project-name=’’ token issue
创建或更新项目的默认卷类型。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
404 - Not Found |
找不到请求的资源。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_type |
路径 |
字符串 |
现有卷类型的名称或 UUID。 |
请求示例¶
{
"default_type": {
"volume_type": "lvm_backend"
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
body |
字符串 |
项目的 UUID。 |
volume_type_id |
路径 |
字符串 |
现有卷类型的 UUID。 |
响应示例¶
{
"default_type": {
"project_id": "6685584b-1eac-4da6-b5c3-555430cf68ff",
"volume_type_id": "40ec6e5e-c9bd-4170-8740-c1cd42d7eabb"
}
}
显示项目的默认卷类型。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
404 - Not Found |
找不到请求的资源。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
body |
字符串 |
项目的 UUID。 |
volume_type_id |
路径 |
字符串 |
现有卷类型的 UUID。 |
响应示例¶
{
"default_type": {
"project_id": "6685584b-1eac-4da6-b5c3-555430cf68ff",
"volume_type_id": "40ec6e5e-c9bd-4170-8740-c1cd42d7eabb"
}
}
获取所有默认卷类型的列表。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
404 - Not Found |
找不到请求的资源。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
body |
字符串 |
项目的 UUID。 |
volume_type_id |
路径 |
字符串 |
现有卷类型的 UUID。 |
响应示例¶
{
"default_types": [
{
"project_id": "6685584b-1eac-4da6-b5c3-555430cf68ff",
"volume_type_id": "40ec6e5e-c9bd-4170-8740-c1cd42d7eabb"
},
{
"project_id": "dd46ea3e-6f3f-4e50-85fa-40c182e25d12",
"volume_type_id": "9fb51b63-3cd4-493f-9380-53d8f0a04bd4"
}
]
}
取消设置项目的默认卷类型。
此操作不会影响卷类型本身。它只是将卷类型从指定项目的默认卷类型中移除。
响应码¶
成功¶
代码 |
原因 |
|---|---|
204 - No Content |
请求已满足,但服务未返回任何内容。 |
错误¶
代码 |
原因 |
|---|---|
404 - Not Found |
找不到请求的资源。 |
请求参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
卷 (volumes)¶
卷是可分离的块存储设备,类似于 USB 硬盘驱动器。您可以将卷附加到实例,如果卷是适当的卷类型,则可以将一个卷附加到多个实例。
`snapshot_id` 和 `source_volid` 参数指定此卷源自的快照或卷的 ID。如果卷不是从快照或源卷创建的,则这些值为 null。
当您创建、列出、更新或删除卷时,可能的状态值为:
卷状态
状态 |
描述 |
creating |
卷正在创建中。 |
available |
卷已准备好附加到实例。 |
reserved |
卷已预留用于附加或已放入库中。 |
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 |
卷正在扩展中。 |
列出项目可以访问的所有块存储卷(含详细信息),自 v3.31 起,如果非管理员用户在 URL 中指定无效的过滤器,API 将返回错误请求。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
all_tenants (可选) |
查询 |
字符串 |
显示所有项目的详细信息。仅限管理员。 |
sort (可选) |
查询 |
字符串 |
逗号分隔的排序键和可选的排序方向列表,格式为 ` |
sort_key (可选) |
查询 |
字符串 |
按属性排序。有效值为 `name`、`status`、`container_format`、`disk_format`、`size`、`id`、`created_at` 或 `updated_at`。默认为 `created_at`。API 使用 `sort_key` 属性值的自然排序方向。已弃用,推荐使用组合的 `sort` 参数。 |
sort_dir (可选) |
查询 |
字符串 |
按一个或多个属性和排序方向的组合进行排序。如果省略组合中的排序方向,则默认为 `desc`。已弃用,推荐使用组合的 `sort` 参数。 |
limit (可选) |
查询 |
整数 |
请求项目页面大小。返回最多限制值数量的项目。使用 |
offset (可选) |
查询 |
整数 |
与 |
marker (可选) |
查询 |
字符串 |
最后一个已查看项目的 ID。使用 |
metadata (可选) |
查询 |
对象 |
一个或多个元数据键值对,作为 URL 编码的字符串字典。 |
with_count (可选) |
查询 |
布尔值 |
是否在 API 响应中显示 `count`,默认为 `False`。 版本 3.45 新增 |
created_at (可选) |
查询 |
字符串 |
按资源创建时间过滤结果,并带时间比较运算符:gt/gte/eq/neq/lt/lte。日期时间戳格式为 ISO 8601:CCYY-MM-DDThh:mm:ss±hh:mm。如果包含 ±hh:mm 值,则返回时区作为 UTC 的偏移量。 版本 3.60 新增 |
updated_at (可选) |
查询 |
字符串 |
按资源更新时间过滤结果,并带时间比较运算符:gt/gte/eq/neq/lt/lte。日期时间戳格式为 ISO 8601:CCYY-MM-DDThh:mm:ss±hh:mm。如果包含 ±hh:mm 值,则返回时区作为 UTC 的偏移量。 版本 3.60 新增 |
consumes_quota (可选) |
查询 |
布尔值 |
按 `consumes_quota` 字段过滤结果。不使用配额的资源通常是用于执行操作的临时内部资源。默认不进行过滤。过滤此选项可能并非总能在云中实现,请参阅 资源过滤器 以确定此过滤器在您的云中是否可用。 版本 3.65 新增 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
migration_status (可选) |
body |
字符串 |
卷迁移状态。仅限管理员。 |
attachments |
body |
数组 |
实例附加信息。如果此卷已附加到服务器实例,则 `attachments` 列表将包括已附加服务器的 UUID、附件 UUID、已附加主机的名称(如果存在)、卷 UUID、设备以及设备 UUID。否则,此列表为空。例如: [
{
'server_id': '6c8cf6e0-4c8f-442f-9196-9679737feec6',
'attachment_id': '3dafcac4-1cb9-4b60-a227-d729baa10cf6',
'attached_at': '2019-09-30T19:30:34.000000',
'host_name': null,
'volume_id': '5d95d5ee-4bdd-4452-b9d7-d44ca10d3d53',
'device': '/dev/vda',
'id': '5d95d5ee-4bdd-4452-b9d7-d44ca10d3d53'
}
]
|
links |
body |
数组 |
卷链接。 |
availability_zone (可选) |
body |
字符串 |
可用区的名称。 |
os-vol-host-attr:host (可选) |
body |
字符串 |
卷的当前后端。主机格式为 `host@backend#pool`。 |
encrypted |
body |
布尔值 |
如果为 true,则此卷已加密。 |
encryption_key_id (可选) |
body |
字符串 |
加密密钥的 UUID。仅对加密卷包含。 版本 3.64 新增 |
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 |
对象 |
一个 `metadata` 对象。包含一个或多个与卷关联的元数据键值对。 |
status |
body |
字符串 |
卷状态。 |
volume_image_metadata (可选) |
body |
对象 |
镜像元数据条目列表。仅对从镜像创建的卷,或从最初从镜像创建的卷的快照创建的卷包含。 |
description |
body |
字符串 |
卷描述。 |
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` 对象的列表。 |
volume_type |
body |
字符串 |
卷关联的卷类型名称。 |
volume_type_id |
body |
对象 |
卷关联的卷类型 ID。 版本 3.63 新增 |
group_id (可选) |
body |
字符串 |
组的 ID。 版本 3.13 新增 |
volumes_links (可选) |
body |
数组 |
卷链接。 |
provider_id (可选) |
body |
字符串 |
卷的提供商 ID。值要么是驱动程序设置的字符串,要么是 `null`(如果驱动程序不使用该字段或尚未创建它)。仅返回给管理员。 版本 3.21 新增 |
service_uuid |
body |
字符串 |
一个唯一的标识符,用于指示特定卷的卷服务是由哪个节点提供的。 版本 3.48 新增 |
shared_targets |
body |
布尔值 |
一个指示符,表示托管该卷的后端是否使用 `shared_targets`。默认值=True。 版本 3.48 新增 可用至版本 3.68 |
shared_targets |
body |
布尔值 |
一个指示符,表示连接该卷的主机是否应该在整个附加/分离过程中进行锁定。 `true` 表示仅当主机上的 iSCSI 启动器不支持手动扫描时,`false` 表示从不使用锁定,而 `null` 表示始终使用锁定。请查看 os-brick 的 `guard_connection` 上下文管理器。默认值=True。 版本 3.69 新增 |
cluster_name (可选) |
body |
字符串 |
卷后端的集群名称。 版本 3.61 新增 |
consumes_quota (可选) |
body |
布尔值 |
此资源是否消耗配额。不计入配额使用的资源通常是为执行操作而创建的临时内部资源。 版本 3.65 新增 |
count (可选) |
body |
整数 |
应用分页之前的请求资源的 মোট 数量。 版本 3.45 新增 |
响应示例 (v3.65)¶
{
"volumes": [
{
"attachments": [],
"availability_zone": "nova",
"bootable": "false",
"consistencygroup_id": null,
"created_at": "2018-11-28T06:25:15.288987",
"description": null,
"encrypted": false,
"id": "cb49b381-9012-40cb-b8ee-80c19a4801b5",
"links": [
{
"href": "http://127.0.0.1:43543/v3/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/cb49b381-9012-40cb-b8ee-80c19a4801b5",
"rel": "self"
},
{
"href": "http://127.0.0.1:43543/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/cb49b381-9012-40cb-b8ee-80c19a4801b5",
"rel": "bookmark"
}
],
"metadata": {},
"migration_status": null,
"multiattach": false,
"name": null,
"os-vol-host-attr:host": null,
"os-vol-mig-status-attr:migstat": null,
"os-vol-mig-status-attr:name_id": null,
"os-vol-tenant-attr:tenant_id": "89afd400-b646-4bbc-b12b-c0a4d63e5bd3",
"replication_status": null,
"size": 10,
"snapshot_id": null,
"source_volid": null,
"status": "creating",
"updated_at": null,
"user_id": "c853ca26-e8ea-4797-8a52-ee124a013d0e",
"volume_type": "__DEFAULT__",
"volume_type_id": "5fed9d7c-401d-46e2-8e80-f30c70cb7e1d",
"provider_id": null,
"group_id": null,
"service_uuid": null,
"shared_targets": true,
"cluster_name": null,
"consumes_quota": true
}
]
}
创建卷。
要创建可启动卷,请在请求正文的 `imageRef` 属性中包含要从中创建卷的镜像的 UUID。
自 Train 版本以来,每个卷都必须有一个卷类型。在 *创建卷* 请求中指定卷类型是 **可选** 的。如果您不指定,将为您提供一个默认卷类型。此类型可能因您所在的项目以及操作员如何配置块存储服务而异。请使用 *显示默认卷类型* 请求来确定您生效的默认卷类型。
先决条件
您必须有足够的卷存储配额来创建请求大小的卷。
异步后置条件
具有正确权限,您可以通过 API 调用将卷状态显示为 `available`。
具有正确访问权限,您可以在 OpenStack 块存储管理的存储系统中看到创建的卷。
故障排除
如果卷状态保持为 `creating` 或显示其他错误状态,则请求失败。确保您满足先决条件,然后调查存储后端。
卷未在 OpenStack 块存储管理的存储系统中创建。
存储节点需要有足够的可用存储空间来匹配卷创建请求的大小。
响应码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume |
body |
对象 |
一个 |
size |
body |
整数 |
卷的大小,以 gibibytes (GiB) 为单位。 |
availability_zone (可选) |
body |
字符串 |
可用区的名称。 |
source_volid (可选) |
body |
字符串 |
源卷的 UUID。API 会创建一个与源卷大小相同的新卷,除非请求了更大的大小。 |
description (可选) |
body |
字符串 |
卷描述。 |
snapshot_id (可选) |
body |
字符串 |
要从现有快照创建卷,请指定卷快照的 UUID。卷将在与快照相同的可用区域中以相同大小创建。 |
backup_id (可选) |
body |
字符串 |
备份的 UUID。 版本 3.47 新增 |
name (可选) |
body |
字符串 |
卷名称。 |
imageRef (可选) |
body |
字符串 |
您要从中创建卷的镜像的 UUID。创建可启动卷所必需。 **版本 3.46 新增**:块存储服务将不再直接使用计算服务在请求实例快照时创建的零字节镜像,而是使用 `block_device_mapping` 镜像属性中包含的 `snapshot_id` 来查找卷快照,并使用该快照来创建卷。 |
volume_type (可选) |
body |
字符串 |
卷类型(名称或 ID)。要创建一个具有多个存储后端的环境,您必须指定一个卷类型。块存储卷后端作为 `cinder-volume` 的子进程生成,并按唯一队列进行键控。它们命名为 `cinder-volume.HOST.BACKEND`。例如,`cinder-volume.ubuntu.lvmdriver`。在创建卷时,调度器会根据卷类型选择一个合适的后端来处理请求。默认为 `None`。有关如何使用卷类型创建多个存储后端的信息,请参阅 配置多个存储后端。 |
metadata (可选) |
body |
对象 |
要与新卷关联的一个或多个元数据键值对。 |
consistencygroup_id |
body |
字符串 |
一致性组的 UUID。 |
OS-SCH-HNT:scheduler_hints (可选) |
body |
对象 |
发送到调度器的字典数据。 |
请求示例¶
{
"volume": {
"size": 10,
"availability_zone": null,
"source_volid": null,
"description": null,
"multiattach": false,
"snapshot_id": null,
"backup_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。否则,此列表为空。例如: [
{
'server_id': '6c8cf6e0-4c8f-442f-9196-9679737feec6',
'attachment_id': '3dafcac4-1cb9-4b60-a227-d729baa10cf6',
'attached_at': '2019-09-30T19:30:34.000000',
'host_name': null,
'volume_id': '5d95d5ee-4bdd-4452-b9d7-d44ca10d3d53',
'device': '/dev/vda',
'id': '5d95d5ee-4bdd-4452-b9d7-d44ca10d3d53'
}
]
|
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 |
对象 |
一个 `metadata` 对象。包含一个或多个与卷关联的元数据键值对。 |
status |
body |
字符串 |
卷状态。 |
description |
body |
字符串 |
卷描述。 |
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 |
body |
字符串 |
卷关联的卷类型名称。 |
volume_type_id |
body |
对象 |
卷关联的卷类型 ID。 版本 3.63 新增 |
group_id (可选) |
body |
字符串 |
组的 ID。 版本 3.13 新增 |
provider_id (可选) |
body |
字符串 |
卷的提供商 ID。值要么是驱动程序设置的字符串,要么是 `null`(如果驱动程序不使用该字段或尚未创建它)。仅返回给管理员。 版本 3.21 新增 |
service_uuid |
body |
字符串 |
一个唯一的标识符,用于指示特定卷的卷服务是由哪个节点提供的。 版本 3.48 新增 |
shared_targets |
body |
布尔值 |
一个指示符,表示托管该卷的后端是否使用 `shared_targets`。默认值=True。 版本 3.48 新增 可用至版本 3.68 |
shared_targets |
body |
布尔值 |
一个指示符,表示连接该卷的主机是否应该在整个附加/分离过程中进行锁定。 `true` 表示仅当主机上的 iSCSI 启动器不支持手动扫描时,`false` 表示从不使用锁定,而 `null` 表示始终使用锁定。请查看 os-brick 的 `guard_connection` 上下文管理器。默认值=True。 版本 3.69 新增 |
cluster_name (可选) |
body |
字符串 |
卷后端的集群名称。 版本 3.61 新增 |
consumes_quota (可选) |
body |
布尔值 |
此资源是否消耗配额。不计入配额使用的资源通常是为执行操作而创建的临时内部资源。 版本 3.65 新增 |
响应示例 (v3.65)¶
{
"volume": {
"attachments": [],
"availability_zone": "nova",
"bootable": "false",
"consistencygroup_id": null,
"created_at": "2018-11-28T06:21:12.715987",
"description": null,
"encrypted": false,
"id": "2b955850-f177-45f7-9f49-ecb2c256d161",
"links": [
{
"href": "http://127.0.0.1:33951/v3/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/2b955850-f177-45f7-9f49-ecb2c256d161",
"rel": "self"
},
{
"href": "http://127.0.0.1:33951/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/2b955850-f177-45f7-9f49-ecb2c256d161",
"rel": "bookmark"
}
],
"metadata": {},
"migration_status": null,
"multiattach": false,
"name": null,
"replication_status": null,
"size": 10,
"snapshot_id": null,
"source_volid": null,
"status": "creating",
"updated_at": null,
"user_id": "c853ca26-e8ea-4797-8a52-ee124a013d0e",
"volume_type": "__DEFAULT__",
"group_id": null,
"provider_id": null,
"service_uuid": null,
"shared_targets": true,
"cluster_name": null,
"volume_type_id": "5fed9d7c-401d-46e2-8e80-f30c70cb7e1d",
"consumes_quota": true
}
}
列出项目可以访问的所有块存储卷的摘要信息,自 v3.31 起,如果非管理员用户在 URL 中指定无效的过滤器,API 将返回错误请求。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
all_tenants (可选) |
查询 |
字符串 |
显示所有项目的详细信息。仅限管理员。 |
sort (可选) |
查询 |
字符串 |
逗号分隔的排序键和可选的排序方向列表,格式为 ` |
sort_key (可选) |
查询 |
字符串 |
按属性排序。有效值为 `name`、`status`、`container_format`、`disk_format`、`size`、`id`、`created_at` 或 `updated_at`。默认为 `created_at`。API 使用 `sort_key` 属性值的自然排序方向。已弃用,推荐使用组合的 `sort` 参数。 |
sort_dir (可选) |
查询 |
字符串 |
按一个或多个属性和排序方向的组合进行排序。如果省略组合中的排序方向,则默认为 `desc`。已弃用,推荐使用组合的 `sort` 参数。 |
limit (可选) |
查询 |
整数 |
请求项目页面大小。返回最多限制值数量的项目。使用 |
offset (可选) |
查询 |
整数 |
与 |
marker (可选) |
查询 |
字符串 |
最后一个已查看项目的 ID。使用 |
metadata (可选) |
查询 |
对象 |
一个或多个元数据键值对,作为 URL 编码的字符串字典。 |
with_count (可选) |
查询 |
布尔值 |
是否在 API 响应中显示 `count`,默认为 `False`。 版本 3.45 新增 |
created_at (可选) |
查询 |
字符串 |
按资源创建时间过滤结果,并带时间比较运算符:gt/gte/eq/neq/lt/lte。日期时间戳格式为 ISO 8601:CCYY-MM-DDThh:mm:ss±hh:mm。如果包含 ±hh:mm 值,则返回时区作为 UTC 的偏移量。 版本 3.60 新增 |
consumes_quota (可选) |
查询 |
布尔值 |
按 `consumes_quota` 字段过滤结果。不使用配额的资源通常是用于执行操作的临时内部资源。默认不进行过滤。过滤此选项可能并非总能在云中实现,请参阅 资源过滤器 以确定此过滤器在您的云中是否可用。 版本 3.65 新增 |
updated_at (可选) |
查询 |
字符串 |
按资源更新时间过滤结果,并带时间比较运算符:gt/gte/eq/neq/lt/lte。日期时间戳格式为 ISO 8601:CCYY-MM-DDThh:mm:ss±hh:mm。如果包含 ±hh:mm 值,则返回时区作为 UTC 的偏移量。 版本 3.60 新增 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
volumes |
body |
数组 |
一个 `volume` 对象的列表。 |
id |
body |
字符串 |
卷的 UUID。 |
links |
body |
数组 |
卷链接。 |
name |
body |
字符串 |
卷名称。 |
volumes_links (可选) |
body |
数组 |
卷链接。 |
count (可选) |
body |
整数 |
应用分页之前的请求资源的 মোট 数量。 版本 3.45 新增 |
响应示例¶
{
"volumes": [
{
"id": "efa54464-8fab-47cd-a05a-be3e6b396188",
"links": [
{
"href": "http://127.0.0.1:37097/v3/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/efa54464-8fab-47cd-a05a-be3e6b396188",
"rel": "self"
},
{
"href": "http://127.0.0.1:37097/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/efa54464-8fab-47cd-a05a-be3e6b396188",
"rel": "bookmark"
}
],
"name": null
}
]
}
显示卷的详细信息。
先决条件
卷必须存在。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_id |
路径 |
字符串 |
卷的 UUID。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
migration_status (可选) |
body |
字符串 |
卷迁移状态。仅限管理员。 |
attachments |
body |
数组 |
实例附加信息。如果此卷已附加到服务器实例,则 `attachments` 列表将包括已附加服务器的 UUID、附件 UUID、已附加主机的名称(如果存在)、卷 UUID、设备以及设备 UUID。否则,此列表为空。例如: [
{
'server_id': '6c8cf6e0-4c8f-442f-9196-9679737feec6',
'attachment_id': '3dafcac4-1cb9-4b60-a227-d729baa10cf6',
'attached_at': '2019-09-30T19:30:34.000000',
'host_name': null,
'volume_id': '5d95d5ee-4bdd-4452-b9d7-d44ca10d3d53',
'device': '/dev/vda',
'id': '5d95d5ee-4bdd-4452-b9d7-d44ca10d3d53'
}
]
|
links |
body |
数组 |
卷链接。 |
availability_zone (可选) |
body |
字符串 |
可用区的名称。 |
os-vol-host-attr:host (可选) |
body |
字符串 |
卷的当前后端。主机格式为 `host@backend#pool`。 |
encrypted |
body |
布尔值 |
如果为 true,则此卷已加密。 |
encryption_key_id (可选) |
body |
字符串 |
加密密钥的 UUID。仅对加密卷包含。 版本 3.64 新增 |
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 |
对象 |
一个 `metadata` 对象。包含一个或多个与卷关联的元数据键值对。 |
status |
body |
字符串 |
卷状态。 |
volume_image_metadata (可选) |
body |
对象 |
镜像元数据条目列表。仅对从镜像创建的卷,或从最初从镜像创建的卷的快照创建的卷包含。 |
description |
body |
字符串 |
卷描述。 |
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 |
body |
字符串 |
卷关联的卷类型名称。 |
volume_type_id |
body |
对象 |
卷关联的卷类型 ID。 版本 3.63 新增 |
service_uuid |
body |
字符串 |
一个唯一的标识符,用于指示特定卷的卷服务是由哪个节点提供的。 版本 3.48 新增 |
shared_targets |
body |
布尔值 |
一个指示符,表示托管该卷的后端是否使用 `shared_targets`。默认值=True。 版本 3.48 新增 可用至版本 3.68 |
shared_targets |
body |
布尔值 |
一个指示符,表示连接该卷的主机是否应该在整个附加/分离过程中进行锁定。 `true` 表示仅当主机上的 iSCSI 启动器不支持手动扫描时,`false` 表示从不使用锁定,而 `null` 表示始终使用锁定。请查看 os-brick 的 `guard_connection` 上下文管理器。默认值=True。 版本 3.69 新增 |
cluster_name (可选) |
body |
字符串 |
卷后端的集群名称。 版本 3.61 新增 |
provider_id (可选) |
body |
字符串 |
卷的提供商 ID。值要么是驱动程序设置的字符串,要么是 `null`(如果驱动程序不使用该字段或尚未创建它)。仅返回给管理员。 版本 3.21 新增 |
group_id (可选) |
body |
字符串 |
组的 ID。 版本 3.13 新增 |
consumes_quota (可选) |
body |
布尔值 |
此资源是否消耗配额。不计入配额使用的资源通常是为执行操作而创建的临时内部资源。 版本 3.65 新增 |
响应示例 (v3.65)¶
{
"volume": {
"attachments": [],
"availability_zone": "nova",
"bootable": "false",
"consistencygroup_id": null,
"created_at": "2018-11-29T06:50:07.770785",
"description": null,
"encrypted": false,
"id": "f7223234-1afc-4d19-bfa3-d19deb6235ef",
"links": [
{
"href": "http://127.0.0.1:45839/v3/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/f7223234-1afc-4d19-bfa3-d19deb6235ef",
"rel": "self"
},
{
"href": "http://127.0.0.1:45839/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/f7223234-1afc-4d19-bfa3-d19deb6235ef",
"rel": "bookmark"
}
],
"metadata": {},
"migration_status": null,
"multiattach": false,
"name": null,
"os-vol-host-attr:host": null,
"os-vol-mig-status-attr:migstat": null,
"os-vol-mig-status-attr:name_id": null,
"os-vol-tenant-attr:tenant_id": "89afd400-b646-4bbc-b12b-c0a4d63e5bd3",
"replication_status": null,
"size": 10,
"snapshot_id": null,
"source_volid": null,
"status": "creating",
"updated_at": null,
"user_id": "c853ca26-e8ea-4797-8a52-ee124a013d0e",
"volume_type": "__DEFAULT__",
"provider_id": null,
"group_id": null,
"service_uuid": null,
"shared_targets": true,
"cluster_name": null,
"volume_type_id": "5fed9d7c-401d-46e2-8e80-f30c70cb7e1d",
"consumes_quota": true
}
}
更新卷。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_id |
路径 |
字符串 |
卷的 UUID。 |
volume |
body |
对象 |
一个 |
description (可选) |
body |
字符串 |
卷描述。 |
name (可选) |
body |
字符串 |
卷名称。 |
metadata (可选) |
body |
对象 |
与卷关联的一个或多个元数据键值对。 |
请求示例¶
{
"volume": {
"name": "vol-003",
"description": "This is yet, another volume.",
"metadata": {
"name": "metadata0"
}
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
migration_status (可选) |
body |
字符串 |
卷迁移状态。仅限管理员。 |
attachments |
body |
数组 |
实例附加信息。如果此卷已附加到服务器实例,则 `attachments` 列表将包括已附加服务器的 UUID、附件 UUID、已附加主机的名称(如果存在)、卷 UUID、设备以及设备 UUID。否则,此列表为空。例如: [
{
'server_id': '6c8cf6e0-4c8f-442f-9196-9679737feec6',
'attachment_id': '3dafcac4-1cb9-4b60-a227-d729baa10cf6',
'attached_at': '2019-09-30T19:30:34.000000',
'host_name': null,
'volume_id': '5d95d5ee-4bdd-4452-b9d7-d44ca10d3d53',
'device': '/dev/vda',
'id': '5d95d5ee-4bdd-4452-b9d7-d44ca10d3d53'
}
]
|
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 |
对象 |
一个 `metadata` 对象。包含一个或多个与卷关联的元数据键值对。 |
status |
body |
字符串 |
卷状态。 |
description |
body |
字符串 |
卷描述。 |
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 |
body |
字符串 |
卷关联的卷类型名称。 |
volume_type_id |
body |
对象 |
卷关联的卷类型 ID。 版本 3.63 新增 |
group_id (可选) |
body |
字符串 |
组的 ID。 版本 3.13 新增 |
provider_id (可选) |
body |
字符串 |
卷的提供商 ID。值要么是驱动程序设置的字符串,要么是 `null`(如果驱动程序不使用该字段或尚未创建它)。仅返回给管理员。 版本 3.21 新增 |
service_uuid |
body |
字符串 |
一个唯一的标识符,用于指示特定卷的卷服务是由哪个节点提供的。 版本 3.48 新增 |
shared_targets |
body |
布尔值 |
一个指示符,表示托管该卷的后端是否使用 `shared_targets`。默认值=True。 版本 3.48 新增 可用至版本 3.68 |
shared_targets |
body |
布尔值 |
一个指示符,表示连接该卷的主机是否应该在整个附加/分离过程中进行锁定。 `true` 表示仅当主机上的 iSCSI 启动器不支持手动扫描时,`false` 表示从不使用锁定,而 `null` 表示始终使用锁定。请查看 os-brick 的 `guard_connection` 上下文管理器。默认值=True。 版本 3.69 新增 |
cluster_name (可选) |
body |
字符串 |
卷后端的集群名称。 版本 3.61 新增 |
consumes_quota (可选) |
body |
布尔值 |
此资源是否消耗配额。不计入配额使用的资源通常是为执行操作而创建的临时内部资源。 版本 3.65 新增 |
响应示例 (v3.65)¶
{
"volume": {
"attachments": [],
"availability_zone": "nova",
"bootable": "false",
"consistencygroup_id": null,
"created_at": "2018-11-29T06:59:23.679903",
"description": "This is yet, another volume.",
"encrypted": false,
"id": "8b2459d1-0059-4e14-a89f-dfa73a452af6",
"links": [
{
"href": "http://127.0.0.1:41467/v3/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/8b2459d1-0059-4e14-a89f-dfa73a452af6",
"rel": "self"
},
{
"href": "http://127.0.0.1:41467/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/volumes/8b2459d1-0059-4e14-a89f-dfa73a452af6",
"rel": "bookmark"
}
],
"metadata": {
"name": "metadata0"
},
"migration_status": null,
"multiattach": false,
"name": "vol-003",
"replication_status": null,
"size": 10,
"snapshot_id": null,
"source_volid": null,
"status": "creating",
"updated_at": null,
"user_id": "c853ca26-e8ea-4797-8a52-ee124a013d0e",
"volume_type": "__DEFAULT__",
"group_id": null,
"provider_id": null,
"service_uuid": null,
"shared_targets": true,
"cluster_name": null,
"volume_type_id": "5fed9d7c-401d-46e2-8e80-f30c70cb7e1d",
"consumes_quota": true
}
}
删除卷。
先决条件
卷状态必须是 `available`、`in-use`、`error`、`error_restoring`、`error_extending`、`error_managing`,并且不能是 `migrating`、`attached`、`awaiting-transfer`、属于组、有快照或在卷传输后与快照分离。
如果希望自动删除此卷的所有快照,可以在请求中传递 `cascade` 选项,这应该允许卷删除成功。
您不能删除正在迁移中的卷。
异步后置条件
卷在卷索引中被删除。
OpenStack 块存储管理的卷在存储节点中被删除。
故障排除
如果卷状态保持为 `deleting` 或变为 `error_deleting`,则请求失败。确保您满足先决条件,然后调查存储后端。
OpenStack 块存储管理的卷未从存储系统中删除。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_id |
路径 |
字符串 |
卷的 UUID。 |
cascade (可选) |
查询 |
布尔值 |
删除卷的同时删除所有快照。默认值=False。 |
force (可选) |
查询 |
布尔值 |
指示是否强制删除卷,即使该卷处于 `deleting` 或 `error_deleting` 状态。默认值为 `false`。 版本 3.23 新增 |
创建或替换卷的元数据。不修改请求中未包含的项。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_id |
路径 |
字符串 |
卷的 UUID。 |
metadata |
body |
对象 |
与卷关联的一个或多个元数据键值对。 |
请求示例¶
{
"metadata": {
"name": "metadata0"
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
metadata |
body |
对象 |
与卷关联的一个或多个元数据键值对。 |
响应示例¶
{
"metadata": {
"name": "metadata0"
}
}
显示卷的元数据。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_id |
路径 |
字符串 |
卷的 UUID。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
metadata |
body |
对象 |
与卷关联的一个或多个元数据键值对。 |
响应示例¶
{
"metadata": {}
}
用请求中的键值对替换卷的所有元数据。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_id |
路径 |
字符串 |
卷的 UUID。 |
metadata |
body |
对象 |
与卷关联的一个或多个元数据键值对。 |
请求示例¶
{
"metadata": {
"name": "metadata1"
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
metadata |
body |
对象 |
与卷关联的一个或多个元数据键值对。 |
响应示例¶
{
"metadata": {
"name": "metadata1"
}
}
显示卷的特定键的元数据。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_id |
路径 |
字符串 |
卷的 UUID。 |
key |
路径 |
字符串 |
要查看的元数据的元数据键名。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
meta |
body |
对象 |
卷的元数据键值对。 |
响应示例¶
{
"meta": {
"name": "metadata1"
}
}
删除卷的元数据。
响应码¶
成功¶
代码 |
原因 |
|---|---|
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"
}
}
显示卷摘要,包括卷的总数和总大小(GB)。自 API 微版本 3.12 起可用。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
all_tenants (可选) |
查询 |
字符串 |
显示所有项目的详细信息。仅限管理员。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
volume-summary |
body |
对象 |
`volume-summary` 对象的字典。 |
total_size |
body |
整数 |
卷的总大小(GB)。 |
total_count |
body |
整数 |
卷的总数。 |
metadata |
body |
对象 |
包含所有卷元数据的列表字典,按元数据键分类。 版本 3.36 新增 |
响应示例¶
{
"volume-summary": {
"total_size": 4,
"total_count": 4,
"metadata": {
"key1": ["value1", "value2"],
"key2": ["value2"]
}
}
}
卷操作 (volumes, action)¶
扩展卷大小、重置卷状态、设置或删除卷的镜像元数据。将卷附加到服务器、从服务器分离卷,以及在不实际移除关联的后端存储对象的情况下,将卷从块存储管理中移除。
将卷的大小扩展到请求的大小(以 GiB 为单位)。在请求正文中指定 `os-extend` 操作。
先决条件
在微版本 `3.42` 之前,卷状态必须是 `available`。从微版本 `3.42` 开始,已附加的、状态为 `in-use` 的卷可能可以被扩展,具体取决于云中的策略和后端卷及计算驱动程序的限制。请注意,`reserved` 不是可用于扩展的有效状态。
扩展卷必须有足够的存储空间。
用户配额必须有足够的卷存储。
后置条件
如果请求成功处理,在扩展卷大小时,卷状态将变为 `extending`。
扩展操作成功完成后,卷状态将恢复到其原始值。
从微版本 `3.42` 开始,在扩展已附加卷的大小时,块存储服务会通知计算服务已扩展附加卷。计算服务将异步处理相关服务器实例的卷大小更改。这可以通过计算服务中的 `GET /servers/{server_id}/os-instance-actions` API 进行监控。
故障排除
`error_extending` 卷状态表示请求失败。确保您满足先决条件并重试请求。如果请求再次失败,请调查存储后端。
响应码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_id |
路径 |
字符串 |
卷的 UUID。 |
os-extend |
body |
对象 |
`os-extend` 操作。 |
new_size |
body |
整数 |
卷的新大小(以 GiB 为单位)。 |
请求示例¶
{
"os-extend": {
"new_size": 3
}
}
在请求正文中指定 `os-extend_volume_completion` 操作。
完成已附加卷的扩展,该卷在通知计算代理后仍处于 `extending` 状态。根据 `error` 参数的值,扩展操作将回滚或最终确定。
先决条件
卷的状态必须是 `extending`。
卷的管理员元数据必须包含一组指示 Cinder 正在等待操作成功外部反馈的键。
异步后置条件
如果 `error` 参数为 `false` 或缺失,并且扩展操作已成功完成,则卷状态将为 `in-use`。否则,卷状态将为 `error_extending`。
响应码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
volume_id |
路径 |
字符串 |
卷的 UUID。 |
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
os-extend_volume_completion |
body |
对象 |
`os-extend_volume_completion` 操作。 |
错误 (可选) |
body |
布尔值 |
用于指示扩展操作在 Cinder 外部失败。 |
请求示例¶
{
"os-extend_volume_completion": {
"error": false
}
}
仅限管理员。重置卷的状态、附加状态、回滚到快照状态和迁移状态。在请求正文中指定 `os-reset_status` 操作。
响应码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_id |
路径 |
字符串 |
卷的 UUID。 |
os-reset_status |
body |
对象 |
`os-reset_status` 操作。 |
status |
body |
字符串 |
卷状态。 |
migration_status (可选) |
body |
字符串 |
卷迁移状态。仅限管理员。 |
attach_status (可选) |
body |
字符串 |
卷附加状态。 |
请求示例¶
{
"os-reset_status": {
"status": "available",
"attach_status": "detached",
"migration_status": "migrating"
}
}
将卷恢复到其最新快照,此 API 仅支持恢复已分离的卷,且卷状态必须为 `available`。
自 API 微版本 `3.40` 起可用。
响应码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
409 - Conflict |
此资源有一个正在进行的操作,与此请求冲突。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_id |
路径 |
字符串 |
卷的 UUID。 |
revert |
body |
对象 |
`revert` 操作。 |
snapshot_id |
body |
字符串 |
快照的 UUID。API 将使用此快照恢复卷。 |
请求示例¶
{
"revert": {
"snapshot_id": "5aa119a8-d25b-45a7-8d1b-88e127885635"
}
}
为卷设置镜像元数据。在请求正文中指定 `os-set_image_metadata` 操作。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_id |
路径 |
字符串 |
卷的 UUID。 |
os-set_image_metadata |
body |
对象 |
`os-set_image_metadata` 操作。 |
metadata |
body |
对象 |
要添加到卷的镜像元数据,作为一组元数据键值对。 |
请求示例¶
{
"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 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_id |
路径 |
字符串 |
卷的 UUID。 |
os-unset_image_metadata |
body |
对象 |
`os-unset_image_metadata` 操作。此操作从镜像元数据中移除键值对。 |
key |
body |
字符串 |
要移除的元数据的元数据键名。 |
请求示例¶
{
"os-unset_image_metadata": {
"key": "ramdisk_id"
}
}
显示卷的镜像元数据。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_id |
路径 |
字符串 |
卷的 UUID。 |
os-show_image_metadata (可选) |
body |
对象 |
`os-show_image_metadata` 操作。 |
请求示例¶
{
"os-show_image_metadata": {}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
metadata |
body |
对象 |
要添加到卷的镜像元数据,作为一组元数据键值对。 |
响应示例¶
{
"metadata": {
"key1": "value1",
"key2": "value2"
}
}
将卷附加到服务器。在请求正文中指定 `os-attach` 操作。
先决条件
卷状态必须是 `available`。
您应该设置 `instance_uuid` 或 `host_name`。
响应码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_id |
路径 |
字符串 |
卷的 UUID。 |
os-attach |
body |
对象 |
`os-attach` 操作。 |
instance_uuid (可选) |
body |
字符串 |
附加实例的 UUID。 |
mountpoint |
body |
字符串 |
附加挂载点。 |
host_name (可选) |
body |
字符串 |
附加主机的名称。 |
请求示例¶
{
"os-attach": {
"instance_uuid": "95D9EF50-507D-11E5-B970-0800200C9A66",
"mountpoint": "/dev/vdc"
}
}
将卷从服务器分离。在请求正文中指定 `os-detach` 操作。
先决条件
卷状态必须是 `in-use`。
出于安全原因(请参阅 bug #2004555),无论策略默认值如何,如果完成请求可能构成风险,块存储 API 将以 409 状态码拒绝用户手动发出的 REST API 调用,这会在以下所有情况发生时出现:
请求来自用户
提供的附件或卷的附件中存在实例 UUID
VM 存在于 Nova 中
实例已附加卷
实例中的已附加卷正在使用该附件
来自其他 OpenStack 服务(如计算服务)的调用始终被接受。
响应码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
错误¶
代码 |
原因 |
|---|---|
409 - Conflict |
此资源有一个正在进行的操作,与此请求冲突。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_id |
路径 |
字符串 |
卷的 UUID。 |
os-detach |
body |
对象 |
`os-detach` 操作。 |
attachment_id (可选) |
body |
字符串 |
附件的 ID。 |
请求示例¶
{
"os-detach": {
"attachment_id": "d8777f54-84cf-4809-a679-468ffed56cf1"
}
}
将卷从块存储管理中移除,而不移除与之关联的后端存储对象。在请求正文中指定 `os-unmanage` 操作。
先决条件
卷状态必须是 `available`。
响应码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_id |
路径 |
字符串 |
卷的 UUID。 |
os-unmanage |
body |
对象 |
`os-unmanage` 操作。此操作将指定的卷从 Cinder 管理中移除。 |
请求示例¶
{
"os-unmanage": {}
}
强制分离卷。在请求正文中指定 `os-force_detach` 操作。
回滚不成功的断开连接操作(在断开卷连接后)。
策略默认允许只有管理员角色的用户执行此操作。云提供商可以通过策略配置文件中的 `volume_extension:volume_admin_actions:force_detach` 规则更改这些权限。
出于安全原因(请参阅 bug #2004555),无论策略默认值如何,如果完成请求可能构成风险,块存储 API 将以 409 状态码拒绝用户手动发出的 REST API 调用,这会在以下所有情况发生时出现:
请求来自用户
提供的附件或卷的附件中存在实例 UUID
VM 存在于 Nova 中
实例已附加卷
实例中的已附加卷正在使用该附件
来自其他 OpenStack 服务(如计算服务)的调用始终被接受。
响应码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
错误¶
代码 |
原因 |
|---|---|
409 - Conflict |
此资源有一个正在进行的操作,与此请求冲突。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_id |
路径 |
字符串 |
卷的 UUID。 |
os-force_detach |
body |
对象 |
`os-force_detach` 操作。 |
attachment_id (可选) |
body |
字符串 |
附件的 ID。 |
connector (可选) |
body |
对象 |
一个 `connector` 对象。 |
请求示例¶
{
"os-force_detach": {
"attachment_id": "d8777f54-84cf-4809-a679-468ffed56cf1",
"connector": {
"initiator": "iqn.2012-07.org.fake:01"
}
}
}
更改现有卷的类型。在请求正文中指定 `os-retype` 操作。
更改现有卷的卷类型,Cinder 可能会根据新的卷类型将卷迁移到合适的卷主机。
不支持将 `in-use` 的、支持多重附加的卷重新类型化为不支持多重附加的类型,反之亦然。通常不建议重新类型化一个 `in-use` 的多重附加卷,如果该卷具有多个活动的读/写附件。
策略默认允许只有管理员角色的用户或卷的所有者执行此操作。云提供商可以通过策略配置文件更改这些权限。
将未加密的卷重新类型化为相同大小的加密卷很可能会失败。即使卷与源卷的大小相同,加密卷也需要存储额外的加密信息开销。这导致新卷无法容纳所有数据。
响应码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_id |
路径 |
字符串 |
卷的 UUID。 |
os-retype |
body |
对象 |
`os-retype` 操作。 |
new_type |
body |
字符串 |
卷更改为的新卷类型。 |
migration_policy (可选) |
body |
字符串 |
指定卷在重新类型化时是否应进行迁移。可能的值为 `on-demand` 或 `never`。如果未指定,则默认为 `never`。 注意 如果卷已附加到服务器实例且将要迁移,那么默认策略是只有管理员角色的用户才能尝试重新类型化操作。不支持将 `in-use` 的加密卷重新类型化并迁移到新主机。 |
请求示例¶
{
"os-retype": {
"new_type": "dedup-tier-replicaton",
"migration_policy": "never"
}
}
在请求正文中指定 `os-migrate_volume` 操作。
将卷迁移到指定的节点。从 3.16 微版本 开始,可以使用集群代替节点。
通常不建议迁移一个 `in-use` 的多重附加卷,如果该卷具有多个活动的读/写附件。
策略默认允许只有管理员角色的用户执行此操作。云提供商可以通过策略配置文件更改这些权限。
先决条件
卷 `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,迁移一个 |
cluster (可选) |
body |
字符串 |
卷迁移的目标集群。集群格式为 新特性:3.16 |
请求示例¶
{
"os-migrate_volume": {
"host": "node1@lvm"
}
}
在请求体中指定 os-migrate_volume_completion 操作。
完成卷的迁移,更新数据库中的新卷,将新卷的 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 |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_id |
路径 |
字符串 |
卷的 UUID。 |
os-force_delete |
body |
字符串 |
|
请求示例¶
{
"os-force_delete": {}
}
更新卷的可启动状态,将其标记为可启动卷。在请求体中指定 os-set_bootable 操作。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_id |
路径 |
字符串 |
卷的 UUID。 |
os-set_bootable |
body |
对象 |
|
bootable |
body |
布尔值 |
启用或禁用可启动属性。您可以从可启动卷启动实例。请参阅 有效的布尔值 |
请求示例¶
{
"os-set_bootable": {
"bootable": "True"
}
}
将指定卷上传到镜像服务。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_id |
路径 |
字符串 |
卷的 UUID。 |
os-volume_upload_image |
body |
对象 |
|
image_name |
body |
字符串 |
新镜像的名称。 |
force (可选) |
body |
布尔值 |
启用或禁用上传已连接到实例的卷。默认值 = False。请参阅 有效的布尔值 |
disk_format (可选) |
body |
字符串 |
新镜像的磁盘格式。默认为 raw。(注意:加密卷类型的卷只能以 raw 格式上传。) |
container_format (可选) |
body |
字符串 |
新镜像的容器格式。默认为 bare。(注意:加密卷类型的卷必须使用 bare 容器格式。) |
visibility (可选) |
body |
字符串 |
新镜像的可见性属性。默认为 private。 新特性:3.1 |
protected (可选) |
body |
布尔值 |
新镜像是否受保护。默认值 = False。请参阅 有效的布尔值 新特性:3.1 |
请求示例¶
{
"os-volume_upload_image":{
"image_name": "test",
"force": false,
"disk_format": "raw",
"container_format": "bare",
"visibility": "private",
"protected": false
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
os-volume_upload_image |
body |
对象 |
|
status |
body |
字符串 |
卷状态。 |
image_name |
body |
字符串 |
新镜像的名称。 |
disk_format (可选) |
body |
字符串 |
新镜像的磁盘格式。默认为 raw。 |
container_format (可选) |
body |
字符串 |
新镜像的容器格式。默认为 bare。 |
visibility (可选) |
body |
字符串 |
新镜像的可见性属性。默认为 private。 新特性:3.1 |
protected (可选) |
body |
布尔值 |
新镜像是否受保护。默认值 = False。请参阅 有效的布尔值 新特性:3.1 |
updated_at |
body |
字符串 |
更新资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含, 如果未设置 |
image_id |
body |
字符串 |
新镜像的 UUID。 |
display_description |
body |
字符串 |
卷描述。 |
id |
body |
字符串 |
卷的 UUID。 |
size |
body |
整数 |
卷的大小,以 gibibytes (GiB) 为单位。 |
volume_type |
body |
字符串 |
卷关联的卷类型名称。 |
响应示例¶
{
"os-volume_upload_image": {
"container_format": "bare",
"disk_format": "raw",
"display_description": null,
"id": "3a81fdac-e8ae-4e61-b6a2-2e14ff316f19",
"image_id": "de75b74e-7f0d-4b59-a263-bd87bfc313bd",
"image_name": "test",
"protected": false,
"size": 1,
"status": "uploading",
"updated_at": "2017-06-05T08:44:28.000000",
"visibility": "private",
"volume_type": null
}
}
将卷标记为已预留。在请求体中指定 os-reserve 操作。
先决条件
卷状态必须是 `available`。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_id |
路径 |
字符串 |
卷的 UUID。 |
os-reserve |
body |
对象 |
|
请求示例¶
{
"os-reserve": {}
}
取消卷的预留标记。在请求体中指定 os-unreserve 操作。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_id |
路径 |
字符串 |
卷的 UUID。 |
os-unreserve |
body |
对象 |
|
请求示例¶
{
"os-unreserve":{}
}
将卷状态更新为 'detaching'。在请求体中指定 os-begin_detaching 操作。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_id |
路径 |
字符串 |
卷的 UUID。 |
os-begin_detaching |
body |
对象 |
|
请求示例¶
{
"os-begin_detaching": {}
}
将卷状态回滚到 'in-use'。在请求体中指定 os-roll_detaching 操作。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_id |
路径 |
字符串 |
卷的 UUID。 |
os-roll_detaching |
body |
对象 |
|
请求示例¶
{
"os-roll_detaching": {}
}
终止卷连接。在请求体中指定 os-terminate_connection 操作。
先决条件
卷状态必须是 `in-use`。
出于安全原因(请参阅 bug #2004555),无论策略默认值如何,如果完成请求可能构成风险,块存储 API 将以 409 状态码拒绝用户手动发出的 REST API 调用,这会在以下所有情况发生时出现:
请求来自用户
卷的连接中存在实例 UUID
VM 存在于 Nova 中
实例已附加卷
实例中的已附加卷正在使用该附件
来自其他 OpenStack 服务(如计算服务)的调用始终被接受。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
错误¶
代码 |
原因 |
|---|---|
409 - Conflict |
此资源有一个正在进行的操作,与此请求冲突。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_id |
路径 |
字符串 |
卷的 UUID。 |
os-terminate_connection (可选) |
body |
对象 |
|
connector |
body |
对象 |
|
请求示例¶
{
"os-terminate_connection": {
"connector": {
"platform": "x86_64",
"host": "node2",
"do_local_attach": false,
"ip": "192.168.13.101",
"os_type": "linux2",
"multipath": false,
"initiator": "iqn.1994-05.com.redhat:d16cbb5d31e5"
}
}
}
初始化卷连接。在请求体中指定 os-initialize_connection 操作。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_id |
路径 |
字符串 |
卷的 UUID。 |
os-initialize_connection |
body |
对象 |
|
connector |
body |
对象 |
|
请求示例¶
{
"os-initialize_connection": {
"connector": {
"platform":"x86_64",
"host": "node2",
"do_local_attach": false,
"ip": "192.168.13.101",
"os_type": "linux2",
"multipath": false,
"initiator": "iqn.1994-05.com.redhat:d16cbb5d31e5"
}
}
}
启用或禁用将卷更新为只读访问模式。在请求体中指定 os-update_readonly_flag 操作。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_id |
路径 |
字符串 |
卷的 UUID。 |
os-update_readonly_flag |
body |
对象 |
|
readonly |
body |
布尔值 |
启用或禁用只读访问模式。此值可以是 True、true、False、false。 |
请求示例¶
{
"os-update_readonly_flag": {
"readonly": true
}
}
使用特定镜像重新镜像卷。在请求体中指定 os-reimage 操作。
状态为 available 或 error 的卷可以直接重新镜像。要重新镜像状态为 reserved 的卷,您必须包含 reimage_reserved 参数并将其设置为 true。
注意
重新镜像卷时,目前不支持镜像签名验证。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume_id |
路径 |
字符串 |
卷的 UUID。 |
image_id |
body |
字符串 |
新镜像的 UUID。 |
reimage_reserved (可选) |
body |
布尔值 |
通常,要重新镜像的卷的状态为 |
os-reimage |
body |
对象 |
新特性:3.68 |
请求示例¶
{
"os-reimage": {
"image_id": "71543ced-a8af-45b6-a5c4-a46282108a90",
"reimage_reserved": false
}
}
卷管理扩展 (manageable_volumes)¶
通过使用现有存储而不是分配新存储来创建或列出卷。
通过使用现有存储而不是分配新存储来创建块存储卷。
调用者必须在请求的 ref 参数中指定对现有存储卷的引用。尽管每个存储驱动程序可能会以不同的方式解释此引用,但驱动程序应接受一个引用结构,该结构包含 source-id 或 source-name 元素(如果可能)。
API 通过将现有存储卷的大小向上舍入到下一个 GiB 来选择卷的大小。
您不能将卷管理到加密卷类型。
在微版本 3.16 之前,host 字段是必需的,但定义集群的可能性使其不再是必需的,但我们必须有 host 或 cluster 字段,但不能同时拥有具有值的两者。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
volume |
body |
对象 |
一个 |
description (可选) |
body |
字符串 |
卷描述。 |
availability_zone (可选) |
body |
字符串 |
可用区的名称。 |
bootable (可选) |
body |
布尔值 |
启用或禁用可启动属性。您可以从可启动卷启动实例。请参阅 有效的布尔值 |
volume_type (可选) |
body |
字符串 |
卷类型的名称。 |
name (可选) |
body |
字符串 |
卷名称。 |
host (可选) |
body |
字符串 |
现有资源所在的 OpenStack 块存储主机。如果提供了 cluster 字段,则此字段为可选。 |
cluster (可选) |
body |
字符串 |
资源所在的 OpenStack 块存储集群。如果提供了 host 字段,则此字段为可选。 |
ref |
body |
对象 |
对现有卷的引用。此引用的内部结构取决于卷驱动程序的实现。有关结构中所需元素的详细信息,请参阅卷驱动程序的文档。 |
metadata (可选) |
body |
对象 |
要与新卷关联的一个或多个元数据键值对。 |
请求示例¶
{
"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": {
"host": null,
"cluster": "cluster@backend",
"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。否则,此列表为空。例如: [
{
'server_id': '6c8cf6e0-4c8f-442f-9196-9679737feec6',
'attachment_id': '3dafcac4-1cb9-4b60-a227-d729baa10cf6',
'attached_at': '2019-09-30T19:30:34.000000',
'host_name': null,
'volume_id': '5d95d5ee-4bdd-4452-b9d7-d44ca10d3d53',
'device': '/dev/vda',
'id': '5d95d5ee-4bdd-4452-b9d7-d44ca10d3d53'
}
]
|
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 |
body |
对象 |
一个 `volume_type` 对象。 |
name |
body |
字符串 |
卷名称。 |
replication_status |
body |
字符串 |
卷复制状态。 |
consistencygroup_id |
body |
字符串 |
一致性组的 UUID。 |
source_volid (可选) |
body |
字符串 |
源卷的 UUID。API 会创建一个与源卷大小相同的新卷,除非请求了更大的大小。 |
snapshot_id (可选) |
body |
字符串 |
要从现有快照创建卷,请指定卷快照的 UUID。卷将在与快照相同的可用区域中以相同大小创建。 |
multiattach |
body |
布尔值 |
如果为 true,则此卷可以附加到多个实例。 |
metadata |
body |
对象 |
一个 `metadata` 对象。包含一个或多个与卷关联的元数据键值对。 |
id |
body |
字符串 |
卷的 UUID。 |
size |
body |
整数 |
卷的大小,以 gibibytes (GiB) 为单位。 |
响应示例¶
{
"volume": {
"attachments": [],
"availability_zone": "az2",
"bootable": "false",
"created_at": "2014-07-18T00:12:54.000000",
"description": "Volume imported from existingLV",
"encrypted": "false",
"id": "23cf872b-c781-4cd4-847d-5f2ec8cbd91c",
"links": [
{
"href": "http://10.0.2.15:8776/v3/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"
}
],
"metadata": {
"key1": "value1",
"key2": "value2"
},
"name": "New Volume",
"os-vol-tenant-attr:tenant_id": "87c8522052ca4eed98bc672b4c1a3ddb",
"size": 0,
"snapshot_id": "null",
"source_volid": "null",
"status": "creating",
"user_id": "eae1472b5fc5496998a3d06550929e7e",
"volume_type": "null"
}
}
搜索卷后端并列出可管理卷的摘要。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
sort (可选) |
查询 |
字符串 |
逗号分隔的排序键和可选的排序方向列表,格式为 ` |
sort_key (可选) |
查询 |
字符串 |
按属性排序。有效值为 `name`、`status`、`container_format`、`disk_format`、`size`、`id`、`created_at` 或 `updated_at`。默认为 `created_at`。API 使用 `sort_key` 属性值的自然排序方向。已弃用,推荐使用组合的 `sort` 参数。 |
sort_dir (可选) |
查询 |
字符串 |
按一个或多个属性和排序方向的组合进行排序。如果省略组合中的排序方向,则默认为 `desc`。已弃用,推荐使用组合的 `sort` 参数。 |
offset (可选) |
查询 |
整数 |
与 |
limit (可选) |
查询 |
整数 |
请求项目页面大小。返回最多限制值数量的项目。使用 |
marker (可选) |
查询 |
字符串 |
最后一个已查看项目的 ID。使用 |
host |
路径 |
字符串 |
托管存储后端的服务器的主机名称。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
manageable-volumes |
body |
列表 |
可管理卷的列表。 |
safe_to_manage |
body |
布尔值 |
资源是否可以管理。 |
reference |
body |
对象 |
资源的某些信息。 |
source-name |
body |
字符串 |
资源的名称。 |
size |
body |
整数 |
卷的大小,以 gibibytes (GiB) 为单位。 |
响应示例¶
{
"manageable-volumes": [
{
"safe_to_manage": false,
"reference": {
"source-name": "volume-3a81fdac-e8ae-4e61-b6a2-2e14ff316f19"
},
"size": 1
},
{
"safe_to_manage": true,
"reference": {
"source-name": "lvol0"
},
"size": 1
}
]
}
搜索卷后端并列出可管理卷的详细信息。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
sort (可选) |
查询 |
字符串 |
逗号分隔的排序键和可选的排序方向列表,格式为 ` |
sort_key (可选) |
查询 |
字符串 |
按属性排序。有效值为 `name`、`status`、`container_format`、`disk_format`、`size`、`id`、`created_at` 或 `updated_at`。默认为 `created_at`。API 使用 `sort_key` 属性值的自然排序方向。已弃用,推荐使用组合的 `sort` 参数。 |
sort_dir (可选) |
查询 |
字符串 |
按一个或多个属性和排序方向的组合进行排序。如果省略组合中的排序方向,则默认为 `desc`。已弃用,推荐使用组合的 `sort` 参数。 |
offset (可选) |
查询 |
整数 |
与 |
limit (可选) |
查询 |
整数 |
请求项目页面大小。返回最多限制值数量的项目。使用 |
marker (可选) |
查询 |
字符串 |
最后一个已查看项目的 ID。使用 |
host (可选) |
查询 |
字符串 |
按服务主机名过滤服务列表结果。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
manageable-volumes |
body |
列表 |
可管理卷的列表。 |
cinder_id |
body |
字符串 |
Cinder 中资源的 UUID。 |
safe_to_manage |
body |
布尔值 |
资源是否可以管理。 |
reason_not_safe |
body |
字符串 |
资源无法管理的理由。 |
reference |
body |
对象 |
资源的某些信息。 |
source-name |
body |
字符串 |
资源的名称。 |
size |
body |
整数 |
卷的大小,以 gibibytes (GiB) 为单位。 |
extra_info |
body |
字符串 |
有关资源的更多信息。 |
响应示例¶
{
"manageable-volumes": [
{
"cinder_id": "9ba5bb53-4a18-4b38-be06-992999da338d",
"reason_not_safe": "already managed",
"reference": {
"source-name": "volume-9ba5bb53-4a18-4b38-be06-992999da338d"
},
"safe_to_manage": false,
"size": 1,
"extra_info": null
},
{
"cinder_id": null,
"reason_not_safe": null,
"reference": {
"source-name": "lvol0"
},
"safe_to_manage": true,
"size": 1,
"extra_info": null
}
]
}
卷快照 (snapshots)¶
快照是卷所包含数据的某个时间点的完整副本。
创建、列出或删除快照时,可能的状态值如下:
快照状态
状态 |
描述 |
creating |
快照正在创建中。 |
available |
快照已准备好使用。 |
backing-up |
快照正在备份。 |
deleting |
快照正在删除。 |
error |
发生快照创建错误。 |
deleted |
快照已删除。 |
unmanaging |
快照正在取消管理。 |
恢复中 |
快照正在恢复为卷。 |
error_deleting |
发生快照删除错误。 |
列出项目可以访问的所有块存储快照及其详细信息。自 v3.31 起,如果非管理员用户在 URL 中指定了无效的过滤器,API 将返回 bad request。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
all_tenants (可选) |
查询 |
字符串 |
显示所有项目的详细信息。仅限管理员。 |
sort (可选) |
查询 |
字符串 |
逗号分隔的排序键和可选的排序方向列表,格式为 ` |
sort_key (可选) |
查询 |
字符串 |
按属性排序。有效值为 `name`、`status`、`container_format`、`disk_format`、`size`、`id`、`created_at` 或 `updated_at`。默认为 `created_at`。API 使用 `sort_key` 属性值的自然排序方向。已弃用,推荐使用组合的 `sort` 参数。 |
sort_dir (可选) |
查询 |
字符串 |
按一个或多个属性和排序方向的组合进行排序。如果省略组合中的排序方向,则默认为 `desc`。已弃用,推荐使用组合的 `sort` 参数。 |
limit (可选) |
查询 |
整数 |
请求项目页面大小。返回最多限制值数量的项目。使用 |
offset (可选) |
查询 |
整数 |
与 |
marker (可选) |
查询 |
字符串 |
最后一个已查看项目的 ID。使用 |
with_count (可选) |
查询 |
布尔值 |
是否在 API 响应中显示 `count`,默认为 `False`。 版本 3.45 新增 |
consumes_quota (可选) |
查询 |
布尔值 |
按 `consumes_quota` 字段过滤结果。不使用配额的资源通常是用于执行操作的临时内部资源。默认不进行过滤。过滤此选项可能并非总能在云中实现,请参阅 资源过滤器 以确定此过滤器在您的云中是否可用。 版本 3.65 新增 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
status |
body |
字符串 |
快照的状态。 |
os-extended-snapshot-attributes:progress |
body |
字符串 |
构建进度的百分比值。 |
description |
body |
字符串 |
快照的描述。 |
created_at |
body |
字符串 |
创建资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
name (可选) |
body |
字符串 |
对象名称。 |
user_id |
body |
字符串 |
用户的 UUID。 新特性:3.41 |
volume_id |
body |
字符串 |
如果快照是从卷创建的,则为卷 ID。 |
os-extended-snapshot-attributes:project_id |
body |
字符串 |
所属项目的 UUID。 |
size |
body |
整数 |
卷的大小,以 gibibytes (GiB) 为单位。 |
id |
body |
字符串 |
快照 UUID。 |
metadata |
body |
对象 |
快照的一个或多个元数据键值对(如果有)。 |
count (可选) |
body |
整数 |
应用分页之前的请求资源的 মোট 数量。 版本 3.45 新增 |
updated_at |
body |
字符串 |
更新资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含, 如果未设置 |
snapshots_links (可选) |
body |
数组 |
快照的链接。 |
group_snapshot_id |
body |
字符串 |
组快照的 ID。 新特性:3.14 |
consumes_quota (可选) |
body |
布尔值 |
此资源是否消耗配额。不计入配额使用的资源通常是为执行操作而创建的临时内部资源。 版本 3.65 新增 |
响应示例 (v3.65)¶
{
"snapshots": [
{
"created_at": "2019-03-11T16:24:36.464445",
"description": "Daily backup",
"id": "d0083dc5-8795-4c1a-bc9c-74f70006c205",
"metadata": {
"key": "v3"
},
"name": "snap-001",
"os-extended-snapshot-attributes:progress": "0%",
"os-extended-snapshot-attributes:project_id": "89afd400-b646-4bbc-b12b-c0a4d63e5bd3",
"size": 10,
"status": "creating",
"updated_at": null,
"volume_id": "7acd675e-4e06-4653-af9f-2ecd546342d6",
"group_snapshot_id": null,
"user_id": "c853ca26-e8ea-4797-8a52-ee124a013d0e",
"consumes_quota": true
}
]
}
创建卷快照,这是卷的一个时间点完整副本。您可以从快照创建卷。
在 API 版本 3.66 之前,需要 'force' 标志来创建正在使用的卷的快照,但现在不再是这样。从 API 版本 3.66 开始,当在卷快照请求中传递时,'force' 标志无效。(为保持向后兼容,评估为 True 的 'force' 标志将被静默忽略。)
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
snapshot |
body |
对象 |
一个 |
volume_id |
body |
字符串 |
卷的 UUID。 |
name |
body |
字符串 |
快照的名称。 |
description (可选) |
body |
字符串 |
快照的描述。默认为 |
force (可选) |
body |
布尔值 |
指示是否拍摄快照,即使卷已连接。默认为 |
metadata (可选) |
body |
对象 |
快照的一个或多个元数据键值对。 |
请求示例¶
{
"snapshot": {
"name": "snap-001",
"description": "Daily backup",
"volume_id": "5aa119a8-d25b-45a7-8d1b-88e127885635",
"force": true,
"metadata": {
"key": "v3"
}
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
status |
body |
字符串 |
快照的状态。 |
description |
body |
字符串 |
快照的描述。 |
created_at |
body |
字符串 |
创建资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
name |
body |
字符串 |
快照的名称。 |
snapshot |
body |
对象 |
一个 |
user_id |
body |
字符串 |
用户的 UUID。 新特性:3.41 |
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
例如, 如果包含, 如果未设置 |
group_snapshot_id |
body |
字符串 |
组快照的 ID。 新特性:3.14 |
consumes_quota (可选) |
body |
布尔值 |
此资源是否消耗配额。不计入配额使用的资源通常是为执行操作而创建的临时内部资源。 版本 3.65 新增 |
响应示例 (v3.65)¶
{
"snapshot": {
"created_at": "2019-03-11T16:24:34.469003",
"description": "Daily backup",
"id": "b36476e5-d18b-47f9-ac69-4818cb43ee21",
"metadata": {
"key": "v3"
},
"name": "snap-001",
"size": 10,
"status": "creating",
"updated_at": null,
"volume_id": "d291b81c-6e40-4525-8231-90aa1588121e",
"group_snapshot_id": null,
"user_id": "c853ca26-e8ea-4797-8a52-ee124a013d0e",
"consumes_quota": true
}
}
列出项目可以访问的所有块存储快照及其摘要信息。自 v3.31 起,如果非管理员用户在 URL 中指定了无效的过滤器,API 将返回 bad request。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
all_tenants (可选) |
查询 |
字符串 |
显示所有项目的详细信息。仅限管理员。 |
sort (可选) |
查询 |
字符串 |
逗号分隔的排序键和可选的排序方向列表,格式为 ` |
sort_key (可选) |
查询 |
字符串 |
按属性排序。有效值为 `name`、`status`、`container_format`、`disk_format`、`size`、`id`、`created_at` 或 `updated_at`。默认为 `created_at`。API 使用 `sort_key` 属性值的自然排序方向。已弃用,推荐使用组合的 `sort` 参数。 |
sort_dir (可选) |
查询 |
字符串 |
按一个或多个属性和排序方向的组合进行排序。如果省略组合中的排序方向,则默认为 `desc`。已弃用,推荐使用组合的 `sort` 参数。 |
limit (可选) |
查询 |
整数 |
请求项目页面大小。返回最多限制值数量的项目。使用 |
offset (可选) |
查询 |
整数 |
与 |
marker (可选) |
查询 |
字符串 |
最后一个已查看项目的 ID。使用 |
consumes_quota (可选) |
查询 |
布尔值 |
按 `consumes_quota` 字段过滤结果。不使用配额的资源通常是用于执行操作的临时内部资源。默认不进行过滤。过滤此选项可能并非总能在云中实现,请参阅 资源过滤器 以确定此过滤器在您的云中是否可用。 版本 3.65 新增 |
with_count (可选) |
查询 |
布尔值 |
是否在 API 响应中显示 `count`,默认为 `False`。 版本 3.45 新增 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
status |
body |
字符串 |
快照的状态。 |
description |
body |
字符串 |
快照的描述。 |
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) 为单位。 |
count (可选) |
body |
整数 |
应用分页之前的请求资源的 মোট 数量。 版本 3.45 新增 |
updated_at |
body |
字符串 |
更新资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含, 如果未设置 |
snapshots_links (可选) |
body |
数组 |
快照的链接。 |
响应示例¶
{
"snapshots": [
{
"created_at": "2019-03-11T16:29:08.973832",
"description": "Daily backup",
"id": "2c228773-50eb-422d-be7e-b5c6ced0c7a9",
"metadata": {
"key": "v3"
},
"name": "snap-001",
"size": 10,
"status": "creating",
"updated_at": null,
"volume_id": "428ec041-b999-40d8-8a54-9e98b19406cc"
}
]
}
显示快照的元数据。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
snapshot_id |
路径 |
字符串 |
快照的 UUID。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
metadata |
body |
对象 |
快照的一个或多个元数据键值对(如果有)。 |
响应示例¶
{
"metadata": {
"key": "v3"
}
}
更新快照的元数据。
创建或替换匹配键的元数据项。不修改请求中未包含的项。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
snapshot_id |
路径 |
字符串 |
快照的 UUID。 |
metadata |
body |
对象 |
快照的一个或多个元数据键值对(如果有)。 |
请求示例¶
{
"metadata": {
"key": "v3"
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
metadata |
body |
对象 |
快照的一个或多个元数据键值对(如果有)。 |
响应示例¶
{
"metadata": {
"key": "value"
}
}
用请求中的键值对替换快照的所有元数据。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
snapshot_id |
路径 |
字符串 |
快照的 UUID。 |
metadata |
body |
对象 |
快照的一个或多个元数据键值对(如果有)。 |
请求示例¶
{
"metadata": {
"new_key": "new_value"
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
metadata |
body |
对象 |
快照的一个或多个元数据键值对(如果有)。 |
响应示例¶
{
"metadata": {
"new_key": "new_value"
}
}
显示快照的详情。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
snapshot_id |
路径 |
字符串 |
快照的 UUID。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
status |
body |
字符串 |
快照的状态。 |
os-extended-snapshot-attributes:progress |
body |
字符串 |
构建进度的百分比值。 |
description |
body |
字符串 |
快照的描述。 |
created_at |
body |
字符串 |
创建资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
name (可选) |
body |
字符串 |
对象名称。 |
snapshot |
body |
对象 |
一个 |
user_id |
body |
字符串 |
用户的 UUID。 新特性:3.41 |
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
例如, 如果包含, 如果未设置 |
group_snapshot_id |
body |
字符串 |
组快照的 ID。 新特性:3.14 |
consumes_quota (可选) |
body |
布尔值 |
此资源是否消耗配额。不计入配额使用的资源通常是为执行操作而创建的临时内部资源。 版本 3.65 新增 |
响应示例 (v3.65)¶
{
"snapshot": {
"created_at": "2019-03-12T04:42:00.809352",
"description": "Daily backup",
"id": "4a584cae-e4ce-429b-9154-d4c9eb8fda4c",
"metadata": {
"key": "v3"
},
"name": "snap-001",
"os-extended-snapshot-attributes:progress": "0%",
"os-extended-snapshot-attributes:project_id": "89afd400-b646-4bbc-b12b-c0a4d63e5bd3",
"size": 10,
"status": "creating",
"updated_at": null,
"volume_id": "b72c48f1-64b7-4cd8-9745-b12e0be82d37",
"group_snapshot_id": null,
"user_id": "c853ca26-e8ea-4797-8a52-ee124a013d0e",
"consumes_quota": true
}
}
更新快照。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
snapshot_id |
路径 |
字符串 |
快照的 UUID。 |
snapshot |
body |
对象 |
一个 |
description (可选) |
body |
字符串 |
快照的描述。默认为 |
name (可选) |
body |
字符串 |
快照的名称。 |
请求示例¶
{
"snapshot": {
"name": "snap-002",
"description": "This is yet, another snapshot."
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
status |
body |
字符串 |
快照的状态。 |
description |
body |
字符串 |
快照的描述。 |
created_at |
body |
字符串 |
创建资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
name (可选) |
body |
字符串 |
对象名称。 |
snapshot |
body |
对象 |
一个 |
id |
body |
字符串 |
快照 UUID。 |
size |
body |
整数 |
卷的大小,以 gibibytes (GiB) 为单位。 |
volume_id |
body |
字符串 |
如果快照是从卷创建的,则为卷 ID。 |
user_id |
body |
字符串 |
用户的 UUID。 新特性:3.41 |
metadata |
body |
对象 |
快照的一个或多个元数据键值对(如果有)。 |
group_snapshot_id |
body |
字符串 |
组快照的 ID。 新特性:3.14 |
consumes_quota (可选) |
body |
布尔值 |
此资源是否消耗配额。不计入配额使用的资源通常是为执行操作而创建的临时内部资源。 版本 3.65 新增 |
响应示例 (v3.65)¶
{
"snapshot": {
"created_at": "2019-03-12T04:53:53.426591",
"description": "This is yet, another snapshot.",
"id": "43666194-8e72-451a-b7bb-54fef763b2b8",
"metadata": {
"key": "v3"
},
"name": "snap-002",
"size": 10,
"status": "creating",
"updated_at": null,
"volume_id": "070c942d-9909-42e9-a467-7a781f150c58",
"group_snapshot_id": null,
"user_id": "c853ca26-e8ea-4797-8a52-ee124a013d0e",
"consumes_quota": true
}
}
删除快照。
先决条件
快照状态必须为
available或error
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
snapshot_id |
路径 |
字符串 |
快照的 UUID。 |
显示特定键的快照元数据。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
snapshot_id |
路径 |
字符串 |
快照的 UUID。 |
key |
路径 |
字符串 |
要查看的元数据的元数据键名。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
meta |
body |
对象 |
快照的元数据键值对。 |
响应示例¶
{
"meta": {
"key": "v3"
}
}
删除快照的元数据。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
snapshot_id |
路径 |
字符串 |
快照的 UUID。 |
key |
路径 |
字符串 |
要移除的元数据的元数据键名。 |
更新特定键的快照元数据。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
snapshot_id |
路径 |
字符串 |
快照的 UUID。 |
key |
路径 |
字符串 |
要更新的元数据的元数据键名。 |
meta |
body |
对象 |
快照的元数据键值对。 |
请求示例¶
{
"meta": {
"key": "new_value"
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
meta |
body |
对象 |
快照的元数据键值对。 |
响应示例¶
{
"meta": {
"key": "new_value"
}
}
快照操作 (snapshots, action)¶
仅限管理员,取决于策略设置。重置、更新快照的状态。
重置状态。在请求体中指定 os-reset_status 操作。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
snapshot_id |
路径 |
字符串 |
快照的 UUID。 |
os-reset_status |
body |
对象 |
`os-reset_status` 操作。 |
status |
body |
字符串 |
快照的状态。 |
请求示例¶
{
"os-reset_status": {
"status": "available"
}
}
更新与快照状态相关的字段。在请求体中指定 os-update_snapshot_status 操作。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
snapshot_id |
路径 |
字符串 |
快照的 UUID。 |
os-update_snapshot_status |
body |
对象 |
|
status |
body |
字符串 |
快照的状态。 |
progress (可选) |
body |
字符串 |
快照构建进度的百分比值。 |
请求示例¶
{
"os-update_snapshot_status": {
"status": "creating",
"progress": "80%"
}
}
尝试强制删除快照,无论其状态如何。在请求体中指定 os-force_delete 操作。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
snapshot_id |
路径 |
字符串 |
快照的 UUID。 |
os-force_delete |
body |
字符串 |
|
请求示例¶
{
"os-force_delete": {}
}
快照管理扩展 (manageable_snapshots)¶
通过使用现有存储而不是分配新存储来创建或列出快照。
通过使用现有存储而不是分配新存储来创建快照。
调用者必须在请求的 ref 参数中指定对现有存储卷的引用。尽管每个存储驱动程序可能会以不同的方式解释此引用,但驱动程序应接受一个引用结构,该结构包含 source-id 或 source-name 元素(如果可能)。
API 通过将现有快照的大小向上舍入到下一个 GiB 来选择快照的大小。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
snapshot |
body |
对象 |
一个 |
description (可选) |
body |
字符串 |
快照的描述。默认为 |
metadata (可选) |
body |
对象 |
快照的一个或多个元数据键值对。 |
name (可选) |
body |
字符串 |
快照的名称。默认为 |
ref |
body |
对象 |
对现有卷的引用。此引用的内部结构取决于卷驱动程序的实现。有关结构中所需元素的详细信息,请参阅卷驱动程序的文档。 |
volume_id |
body |
字符串 |
卷的 UUID。 |
请求示例¶
{
"snapshot": {
"description": null,
"metadata": null,
"ref": {
"source-name": "lvol0"
},
"name": null,
"volume_id": "1df34919-aba7-4a1b-a614-3b409d71ac03"
}
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
snapshot |
body |
对象 |
一个 |
status |
body |
字符串 |
快照的状态。 |
size |
body |
整数 |
卷的大小,以 gibibytes (GiB) 为单位。 |
metadata (可选) |
body |
对象 |
快照的一个或多个元数据键值对。 |
name (可选) |
body |
字符串 |
快照的名称。默认为 |
volume_id |
body |
字符串 |
卷的 UUID。 |
created_at |
body |
字符串 |
创建资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
description |
body |
字符串 |
快照的描述。 |
id |
body |
字符串 |
对象的 UUID。 |
updated_at |
body |
字符串 |
更新资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含, 如果未设置 |
响应示例¶
{
"snapshot": {
"created_at": "2018-09-26T03:45:03.893592",
"description": "this is a new snapshot",
"id": "b6314a71-9d3d-439a-861d-b790def0d693",
"metadata": {
"manage-snap-meta1": "value1",
"manage-snap-meta2": "value2",
"manage-snap-meta3": "value3"
},
"name": "new_snapshot",
"size": 1,
"status": "creating",
"updated_at": "null",
"volume_id": "1df34919-aba7-4a1b-a614-3b409d71ac03"
}
}
搜索卷后端并列出可管理快照的摘要。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
sort (可选) |
查询 |
字符串 |
逗号分隔的排序键和可选的排序方向列表,格式为 ` |
sort_key (可选) |
查询 |
字符串 |
按属性排序。有效值为 `name`、`status`、`container_format`、`disk_format`、`size`、`id`、`created_at` 或 `updated_at`。默认为 `created_at`。API 使用 `sort_key` 属性值的自然排序方向。已弃用,推荐使用组合的 `sort` 参数。 |
sort_dir (可选) |
查询 |
字符串 |
按一个或多个属性和排序方向的组合进行排序。如果省略组合中的排序方向,则默认为 `desc`。已弃用,推荐使用组合的 `sort` 参数。 |
offset (可选) |
查询 |
整数 |
与 |
limit (可选) |
查询 |
整数 |
请求项目页面大小。返回最多限制值数量的项目。使用 |
marker (可选) |
查询 |
字符串 |
最后一个已查看项目的 ID。使用 |
host (可选) |
查询 |
字符串 |
按服务主机名过滤服务列表结果。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
manageable-snapshots |
body |
列表 |
可管理快照的列表。 |
source_reference |
body |
对象 |
快照的原始卷信息。 |
safe_to_manage |
body |
布尔值 |
资源是否可以管理。 |
reference |
body |
对象 |
资源的某些信息。 |
source-name |
body |
字符串 |
资源的名称。 |
size |
body |
整数 |
卷的大小,以 gibibytes (GiB) 为单位。 |
响应示例¶
{
"manageable-snapshots": [
{
"source_reference": {
"source-name": "volume-7c064b34-1e4b-40bd-93ca-4ac5a973661b"
},
"safe_to_manage": true,
"reference": {
"source-name": "lvol0"
},
"size": 1
},
{
"source_reference": {
"source-name": "volume-7c064b34-1e4b-40bd-93ca-4ac5a973661b"
},
"safe_to_manage": false,
"reference": {
"source-name": "_snapshot-d0c84570-a01f-4579-9789-5e9f266587cd"
},
"size": 1
}
]
}
搜索卷后端并列出可管理快照的详细信息。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
sort (可选) |
查询 |
字符串 |
逗号分隔的排序键和可选的排序方向列表,格式为 ` |
sort_key (可选) |
查询 |
字符串 |
按属性排序。有效值为 `name`、`status`、`container_format`、`disk_format`、`size`、`id`、`created_at` 或 `updated_at`。默认为 `created_at`。API 使用 `sort_key` 属性值的自然排序方向。已弃用,推荐使用组合的 `sort` 参数。 |
sort_dir (可选) |
查询 |
字符串 |
按一个或多个属性和排序方向的组合进行排序。如果省略组合中的排序方向,则默认为 `desc`。已弃用,推荐使用组合的 `sort` 参数。 |
offset (可选) |
查询 |
整数 |
与 |
limit (可选) |
查询 |
整数 |
请求项目页面大小。返回最多限制值数量的项目。使用 |
marker (可选) |
查询 |
字符串 |
最后一个已查看项目的 ID。使用 |
host (可选) |
查询 |
字符串 |
按服务主机名过滤服务列表结果。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
manageable-snapshots |
body |
列表 |
可管理快照的列表。 |
cinder_id |
body |
字符串 |
Cinder 中资源的 UUID。 |
source_reference |
body |
对象 |
快照的原始卷信息。 |
safe_to_manage |
body |
布尔值 |
资源是否可以管理。 |
reason_not_safe |
body |
字符串 |
资源无法管理的理由。 |
reference |
body |
对象 |
资源的某些信息。 |
source-name |
body |
字符串 |
资源的名称。 |
size |
body |
整数 |
卷的大小,以 gibibytes (GiB) 为单位。 |
extra_info |
body |
字符串 |
有关资源的更多信息。 |
响应示例¶
{
"manageable-snapshots": [
{
"cinder_id": null,
"reason_not_safe": null,
"reference": {
"source-name": "lvol0"
},
"source_reference": {
"source-name": "volume-7c064b34-1e4b-40bd-93ca-4ac5a973661b"
},
"safe_to_manage": true,
"size": 1,
"extra_info": null
},
{
"cinder_id": "d0c84570-a01f-4579-9789-5e9f266587cd",
"reason_not_safe": "already managed",
"reference": {
"source-name":"_snapshot-d0c84570-a01f-4579-9789-5e9f266587cd"
},
"source_reference": {
"source-name": "volume-7c064b34-1e4b-40bd-93ca-4ac5a973661b"
},
"safe_to_manage": false,
"size": 1,
"extra_info": null
}
]
}
卷转移¶
将卷从一个用户转移到另一个用户。
接受卷传输。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
transfer_id |
路径 |
字符串 |
卷转移的唯一标识符。 |
auth_key |
body |
字符串 |
卷转移的身份验证密钥。 |
请求示例¶
{
"accept": {
"auth_key": "9266c59563c84664"
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
transfer |
body |
对象 |
卷转移对象。 |
volume_id |
body |
字符串 |
卷的 UUID。 |
id |
body |
字符串 |
卷转移的 UUID。 |
links |
body |
数组 |
卷迁移的链接。 |
name (可选) |
body |
字符串 |
对象名称。 |
响应示例¶
{
"transfer": {
"id": "0a840aa1-8f8f-4042-86d7-09d8ca755272",
"links": [
{
"href": "http://127.0.0.1:46057/v3/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/os-volume-transfer/0a840aa1-8f8f-4042-86d7-09d8ca755272",
"rel": "self"
},
{
"href": "http://127.0.0.1:46057/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/os-volume-transfer/0a840aa1-8f8f-4042-86d7-09d8ca755272",
"rel": "bookmark"
}
],
"name": "first volume",
"volume_id": "e56dee53-e565-40f4-9c6b-b983f74a2aa5"
}
}
创建卷传输。
先决条件
卷
status必须为available不支持转移加密卷
如果卷有快照,则这些快照必须是
available状态
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
transfer |
body |
对象 |
卷转移对象。 |
name (可选) |
body |
字符串 |
对象名称。 |
volume_id |
body |
字符串 |
卷的 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": {
"auth_key": "dbccabcdbad19e07",
"created_at": "2019-03-20T09:29:46.743632",
"id": "3d26db0c-69cd-42e4-ae42-7552759ab361",
"links": [
{
"href": "http://127.0.0.1:40345/v3/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/os-volume-transfer/3d26db0c-69cd-42e4-ae42-7552759ab361",
"rel": "self"
},
{
"href": "http://127.0.0.1:40345/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/os-volume-transfer/3d26db0c-69cd-42e4-ae42-7552759ab361",
"rel": "bookmark"
}
],
"name": "first volume",
"volume_id": "59fe2097-931b-4ceb-b74b-f862ff3b6277"
}
}
列出卷转移。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
all_tenants (可选) |
查询 |
字符串 |
显示所有项目的详细信息。仅限管理员。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
volume_id |
body |
字符串 |
卷的 UUID。 |
id |
body |
字符串 |
卷转移的 UUID。 |
links |
body |
数组 |
卷迁移的链接。 |
name (可选) |
body |
字符串 |
对象名称。 |
响应示例¶
{
"transfers": [
{
"id": "a0f13fb9-904c-41c8-8c2e-495cac61a78f",
"links": [
{
"href": "http://127.0.0.1:45017/v3/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/os-volume-transfer/a0f13fb9-904c-41c8-8c2e-495cac61a78f",
"rel": "self"
},
{
"href": "http://127.0.0.1:45017/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/os-volume-transfer/a0f13fb9-904c-41c8-8c2e-495cac61a78f",
"rel": "bookmark"
}
],
"name": "first volume",
"volume_id": "e72d7454-0234-4e3e-99e9-560d1ff79a71"
}
]
}
显示卷转移的详细信息。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
transfer_id |
路径 |
字符串 |
卷转移的唯一标识符。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
created_at |
body |
字符串 |
创建资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
volume_id |
body |
字符串 |
卷的 UUID。 |
id |
body |
字符串 |
卷转移的 UUID。 |
links |
body |
数组 |
卷迁移的链接。 |
name (可选) |
body |
字符串 |
对象名称。 |
响应示例¶
{
"transfer": {
"created_at": "2019-03-20T09:29:48.732953",
"id": "5055b9c2-527b-47ef-bdd6-62e1130f511f",
"links": [
{
"href": "http://127.0.0.1:41845/v3/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/os-volume-transfer/5055b9c2-527b-47ef-bdd6-62e1130f511f",
"rel": "self"
},
{
"href": "http://127.0.0.1:41845/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/os-volume-transfer/5055b9c2-527b-47ef-bdd6-62e1130f511f",
"rel": "bookmark"
}
],
"name": "first volume",
"volume_id": "8cdd62be-4bea-4b7c-bb53-c0b5424ee2af"
}
}
删除卷转移。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
transfer_id |
路径 |
字符串 |
卷转移的唯一标识符。 |
列出卷转移及其详细信息。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
all_tenants (可选) |
查询 |
字符串 |
显示所有项目的详细信息。仅限管理员。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
transfers |
body |
数组 |
转移详细信息列表。 |
created_at |
body |
字符串 |
创建资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
volume_id |
body |
字符串 |
卷的 UUID。 |
id |
body |
字符串 |
卷转移的 UUID。 |
links |
body |
数组 |
卷迁移的链接。 |
name (可选) |
body |
字符串 |
对象名称。 |
响应示例¶
{
"transfers": [
{
"created_at": "2019-03-20T09:29:52.758407",
"id": "1b3f7d49-8fd8-41b8-b2a5-859c5fe71a20",
"links": [
{
"href": "http://127.0.0.1:37479/v3/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/os-volume-transfer/1b3f7d49-8fd8-41b8-b2a5-859c5fe71a20",
"rel": "self"
},
{
"href": "http://127.0.0.1:37479/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/os-volume-transfer/1b3f7d49-8fd8-41b8-b2a5-859c5fe71a20",
"rel": "bookmark"
}
],
"name": "first volume",
"volume_id": "acb5a860-3f17-4c35-9484-394a12dd7dfc"
}
]
}
卷转移 (volume-transfers) (3.55 或更高版本)¶
将卷从一个用户转移到另一个用户。这是微版本 3.55 的新转移 API。
接受卷传输。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
413 - 请求实体过大 |
无法完成此操作。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
transfer_id |
路径 |
字符串 |
卷转移的唯一标识符。 |
auth_key |
body |
字符串 |
卷转移的身份验证密钥。 |
请求示例¶
{
"accept": {
"auth_key": "f318375a4400391e"
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
transfer |
body |
对象 |
卷转移对象。 |
volume_id |
body |
字符串 |
卷的 UUID。 |
id |
body |
字符串 |
对象的 UUID。 |
links |
body |
数组 |
卷迁移的链接。 |
name |
body |
字符串 |
卷转移的名称。 |
响应示例¶
{
"transfer": {
"id": "9e395d6d-5138-423c-a63c-7b62c6265fa1",
"links": [
{
"href": "http://127.0.0.1:39369/v3/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/os-volume-transfer/9e395d6d-5138-423c-a63c-7b62c6265fa1",
"rel": "self"
},
{
"href": "http://127.0.0.1:39369/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/os-volume-transfer/9e395d6d-5138-423c-a63c-7b62c6265fa1",
"rel": "bookmark"
}
],
"name": "first volume",
"volume_id": "8d19f929-f1da-4a76-acad-9ed17da0981e"
}
}
创建卷传输。
先决条件
卷
status必须为available不支持转移加密卷
如果卷有快照,则除非
no_snapshots=True,否则这些快照必须是available状态。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
transfer |
body |
对象 |
卷转移对象。 |
name (可选) |
body |
字符串 |
对象名称。 |
volume_id |
body |
字符串 |
卷的 UUID。 |
no_snapshots (可选) |
body |
布尔值 |
不带快照转移卷。如果未指定,则默认为 False。 新特性:3.55 |
请求示例¶
{
"transfer": {
"volume_id": "80d68197-b67e-4c8e-bbb9-030b2581f921",
"name": "first volume",
"no_snapshots": false
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
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 |
字符串 |
对象名称。 |
destination_project_id (可选) |
body |
字符串 |
记录卷转移后的目标项目 ID。 新特性:3.57 |
source_project_id (可选) |
body |
字符串 |
记录卷转移前的源项目 ID。 新特性:3.57 |
accepted (可选) |
body |
布尔值 |
记录此转移是否已被接受。 新特性:3.57 |
no_snapshots (可选) |
body |
布尔值 |
不带快照转移卷。如果未指定,则默认为 False。 新特性:3.55 |
响应示例¶
{
"transfer": {
"accepted": false,
"auth_key": "e2cb02466324813c",
"created_at": "2023-06-12T21:21:38.392033",
"destination_project_id": null,
"id": "94bae1a0-83fb-496c-9cd2-800d8237ab0d",
"links": [
{
"href": "http://127.0.0.1:45193/v3/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/os-volume-transfer/94bae1a0-83fb-496c-9cd2-800d8237ab0d",
"rel": "self"
},
{
"href": "http://127.0.0.1:45193/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/os-volume-transfer/94bae1a0-83fb-496c-9cd2-800d8237ab0d",
"rel": "bookmark"
}
],
"name": "first volume",
"no_snapshots": false,
"source_project_id": "89afd400-b646-4bbc-b12b-c0a4d63e5bd3",
"volume_id": "202eead8-3c82-41e1-914f-83638a063be9"
}
}
列出卷转移。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
all_tenants (可选) |
查询 |
字符串 |
显示所有项目的详细信息。仅限管理员。 |
sort (可选) |
查询 |
字符串 |
逗号分隔的排序键和可选的排序方向列表,格式为 ` 新特性:3.59 |
sort_key (可选) |
查询 |
字符串 |
按属性排序。默认为 新特性:3.59 |
sort_dir (可选) |
查询 |
字符串 |
按一个或多个属性和排序方向的组合进行排序。如果省略组合中的排序方向,则默认为 `desc`。已弃用,推荐使用组合的 `sort` 参数。 新特性:3.59 |
limit (可选) |
查询 |
整数 |
请求项目页面大小。返回最多限制值数量的项目。使用 新特性:3.59 |
offset (可选) |
查询 |
整数 |
与 新特性:3.59 |
marker (可选) |
查询 |
字符串 |
最后一个已查看项目的 ID。使用 新特性:3.59 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
volume_id |
body |
字符串 |
卷的 UUID。 |
id |
body |
字符串 |
对象的 UUID。 |
links |
body |
数组 |
卷迁移的链接。 |
name (可选) |
body |
字符串 |
对象名称。 |
响应示例¶
{
"transfers": [
{
"id": "a0f13fb9-904c-41c8-8c2e-495cac61a78f",
"links": [
{
"href": "http://127.0.0.1:45017/v3/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/os-volume-transfer/a0f13fb9-904c-41c8-8c2e-495cac61a78f",
"rel": "self"
},
{
"href": "http://127.0.0.1:45017/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/os-volume-transfer/a0f13fb9-904c-41c8-8c2e-495cac61a78f",
"rel": "bookmark"
}
],
"name": "first volume",
"volume_id": "e72d7454-0234-4e3e-99e9-560d1ff79a71"
}
]
}
显示卷转移的详细信息。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
transfer_id |
路径 |
字符串 |
卷转移的唯一标识符。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
created_at |
body |
字符串 |
创建资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
volume_id |
body |
字符串 |
卷的 UUID。 |
id |
body |
字符串 |
对象的 UUID。 |
links |
body |
数组 |
卷迁移的链接。 |
name (可选) |
body |
字符串 |
对象名称。 |
destination_project_id (可选) |
body |
字符串 |
记录卷转移后的目标项目 ID。 新特性:3.57 |
source_project_id (可选) |
body |
字符串 |
记录卷转移前的源项目 ID。 新特性:3.57 |
accepted (可选) |
body |
布尔值 |
记录此转移是否已被接受。 新特性:3.57 |
no_snapshots (可选) |
body |
布尔值 |
不带快照转移卷。如果未指定,则默认为 False。 新特性:3.55 |
响应示例¶
{
"transfer": {
"accepted": false,
"created_at": "2023-06-22T08:28:17.647081",
"destination_project_id": null,
"id": "3d79fbda-8d9c-4da3-a016-e5612fcb7f65",
"links": [
{
"href": "http://127.0.0.1:34593/v3/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/os-volume-transfer/3d79fbda-8d9c-4da3-a016-e5612fcb7f65",
"rel": "self"
},
{
"href": "http://127.0.0.1:34593/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/os-volume-transfer/3d79fbda-8d9c-4da3-a016-e5612fcb7f65",
"rel": "bookmark"
}
],
"name": "first volume",
"no_snapshots": false,
"source_project_id": "89afd400-b646-4bbc-b12b-c0a4d63e5bd3",
"volume_id": "7e31e409-2a7a-4ea6-aa0b-bc7be056fc57"
}
}
删除卷转移。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
transfer_id |
路径 |
字符串 |
卷转移的唯一标识符。 |
列出卷转移及其详细信息。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
all_tenants (可选) |
查询 |
字符串 |
显示所有项目的详细信息。仅限管理员。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
transfers |
body |
数组 |
转移详细信息列表。 |
created_at |
body |
字符串 |
创建资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
volume_id |
body |
字符串 |
卷的 UUID。 |
id |
body |
字符串 |
对象的 UUID。 |
links |
body |
数组 |
卷迁移的链接。 |
name (可选) |
body |
字符串 |
对象名称。 |
destination_project_id (可选) |
body |
字符串 |
记录卷转移后的目标项目 ID。 新特性:3.57 |
source_project_id (可选) |
body |
字符串 |
记录卷转移前的源项目 ID。 新特性:3.57 |
accepted (可选) |
body |
布尔值 |
记录此转移是否已被接受。 新特性:3.57 |
响应示例¶
{
"transfers": [
{
"created_at": "2019-03-20T09:29:52.758407",
"id": "1b3f7d49-8fd8-41b8-b2a5-859c5fe71a20",
"links": [
{
"href": "http://127.0.0.1:37479/v3/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/os-volume-transfer/1b3f7d49-8fd8-41b8-b2a5-859c5fe71a20",
"rel": "self"
},
{
"href": "http://127.0.0.1:37479/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/os-volume-transfer/1b3f7d49-8fd8-41b8-b2a5-859c5fe71a20",
"rel": "bookmark"
}
],
"name": "first volume",
"volume_id": "acb5a860-3f17-4c35-9484-394a12dd7dfc"
}
]
}
附件 (attachments)¶
列出所有附件、列出所有附件(含详细信息)、显示附件详细信息、创建附件和删除附件。
注意
除了“完成附件”之外的所有内容在 3.27 微版本中都是新的。“完成附件”在 3.44 微版本中是新的。
创建、列出、更新或删除附件时,可能的状态值如下:
卷附件状态
状态 |
描述 |
attached |
附件的卷已连接。 |
attaching |
附件的卷正在连接。 |
detached |
附件的卷已断开连接。 |
reserved |
附件的卷已预留。 |
error_attaching |
附件的卷正在错误地连接。 |
error_detaching |
附件的卷正在错误地断开连接。 |
deleted |
附件已删除。 |
删除附件。
出于安全原因(请参阅 bug #2004555),块存储 API 会拒绝用户手动发起的 REST API 调用,并返回 409 状态码,如果当前有 Nova 实例正在使用该附件,则会发生这种情况,即满足所有以下条件时:
附件包含实例 UUID
VM 存在于 Nova 中
实例已附加卷
实例中的已附加卷正在使用该附件
来自其他 OpenStack 服务(如计算服务)的调用始终被接受。
从 3.27 微版本开始可用。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
404 - Not Found |
找不到请求的资源。 |
409 - Conflict |
此资源有一个正在进行的操作,与此请求冲突。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
attachment_id |
路径 |
字符串 |
附件的 ID。 |
显示附件的详细信息。
从 3.27 微版本开始可用。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
404 - Not Found |
找不到请求的资源。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
attachment_id |
路径 |
字符串 |
附件的 ID。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
status |
body |
字符串 |
附件的状态。 |
detached_at |
body |
字符串 |
附件断开连接的时间。 |
connection_info |
body |
对象 |
服务器用于连接卷的连接信息。 |
attached_at |
body |
字符串 |
附件连接的时间。 |
attach_mode |
body |
字符串 |
附件的连接模式,只读 ('ro') 或读写 ('rw'),默认为 'rw'。 |
实例 |
body |
字符串 |
附加实例的 UUID。 |
volume_id |
body |
字符串 |
附件所属卷的 UUID。 |
id |
body |
字符串 |
附件 ID。 |
响应示例¶
{
"attachment": {
"status": "attaching",
"detached_at": "2015-09-16T09:28:52.000000",
"connection_info": {},
"attached_at": "2015-09-16T09:28:52.000000",
"attach_mode": "ro",
"instance": "3b8b6631-1cf7-4fd7-9afb-c01e541as345",
"volume_id": "462dcc2d-130d-4654-8db1-da0df2da6a0d",
"id": "3b8b6631-1cf7-4fd7-9afb-c01e541a073c"
}
}
列出所有带详细信息的附件。自 v3.31 起,如果非管理员用户在 URL 中指定了无效的过滤器,API 将返回 bad request。
从 3.27 微版本开始可用。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
all_tenants (可选) |
查询 |
字符串 |
显示所有项目的详细信息。仅限管理员。 |
sort (可选) |
查询 |
字符串 |
逗号分隔的排序键和可选的排序方向列表,格式为 ` |
sort_key (可选) |
查询 |
字符串 |
按属性排序。有效值为 `name`、`status`、`container_format`、`disk_format`、`size`、`id`、`created_at` 或 `updated_at`。默认为 `created_at`。API 使用 `sort_key` 属性值的自然排序方向。已弃用,推荐使用组合的 `sort` 参数。 |
sort_dir (可选) |
查询 |
字符串 |
按一个或多个属性和排序方向的组合进行排序。如果省略组合中的排序方向,则默认为 `desc`。已弃用,推荐使用组合的 `sort` 参数。 |
limit (可选) |
查询 |
整数 |
请求项目页面大小。返回最多限制值数量的项目。使用 |
offset (可选) |
查询 |
整数 |
与 |
marker (可选) |
查询 |
字符串 |
最后一个已查看项目的 ID。使用 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
status |
body |
字符串 |
附件的状态。 |
detached_at |
body |
字符串 |
附件断开连接的时间。 |
connection_info |
body |
对象 |
服务器用于连接卷的连接信息。 |
attached_at |
body |
字符串 |
附件连接的时间。 |
attach_mode |
body |
字符串 |
附件的连接模式,只读 ('ro') 或读写 ('rw'),默认为 'rw'。 |
实例 |
body |
字符串 |
附加实例的 UUID。 |
volume_id |
body |
字符串 |
附件所属卷的 UUID。 |
id |
body |
字符串 |
附件 ID。 |
响应示例¶
{
"attachments": [
{
"status": "attaching",
"detached_at": "2015-09-16T09:28:52.000000",
"connection_info": {},
"attached_at": "2015-09-16T09:28:52.000000",
"attach_mode": "ro",
"instance": "31c79baf-b59e-469c-979f-1df4ecb6eea7",
"volume_id": "462dcc2d-130d-4654-8db1-da0df2da6a0d",
"id": "3b8b6631-1cf7-4fd7-9afb-c01e541a073c"
}
]
}
列出所有附件。自 v3.31 起,如果非管理员用户在 URL 中指定了无效的过滤器,API 将返回 bad request。
从 3.27 微版本开始可用。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
all_tenants (可选) |
查询 |
字符串 |
显示所有项目的详细信息。仅限管理员。 |
instance_id (可选) |
查询 |
字符串 |
附加实例的 UUID。 |
volume_id (可选) |
查询 |
字符串 |
附件所属卷的 UUID。 |
sort (可选) |
查询 |
字符串 |
逗号分隔的排序键和可选的排序方向列表,格式为 ` |
sort_key (可选) |
查询 |
字符串 |
按属性排序。有效值为 `name`、`status`、`container_format`、`disk_format`、`size`、`id`、`created_at` 或 `updated_at`。默认为 `created_at`。API 使用 `sort_key` 属性值的自然排序方向。已弃用,推荐使用组合的 `sort` 参数。 |
sort_dir (可选) |
查询 |
字符串 |
按一个或多个属性和排序方向的组合进行排序。如果省略组合中的排序方向,则默认为 `desc`。已弃用,推荐使用组合的 `sort` 参数。 |
limit (可选) |
查询 |
整数 |
请求项目页面大小。返回最多限制值数量的项目。使用 |
offset (可选) |
查询 |
整数 |
与 |
marker (可选) |
查询 |
字符串 |
最后一个已查看项目的 ID。使用 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
status |
body |
字符串 |
附件的状态。 |
实例 |
body |
字符串 |
附加实例的 UUID。 |
volume_id |
body |
字符串 |
附件所属卷的 UUID。 |
id |
body |
字符串 |
附件 ID。 |
响应示例¶
{
"attachments": [
{
"status": "attaching",
"instance": "31c79baf-b59e-469c-979f-1df4ecb6eea7",
"id": "3b8b6631-1cf7-4fd7-9afb-c01e541a073c",
"volume_id": "462dcc2d-130d-4654-8db1-da0df2da6a0d"
}
]
}
创建附件。
从 3.27 微版本开始可用。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
404 - Not Found |
找不到请求的资源。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
attachment |
body |
对象 |
附件对象。 |
instance_uuid (可选) |
body |
字符串 |
附加实例的 UUID。 |
connector (可选) |
body |
对象 |
一个 `connector` 对象。 |
volume_uuid |
body |
字符串 |
附件所属卷的 UUID。 |
mode (可选) |
body |
字符串 |
附件的连接模式,可接受值为只读 ('ro') 和读写 ('rw')。 新特性:3.54 |
请求示例¶
{
"attachment": {
"instance_uuid": "462dcc2d-130d-4654-8db1-da0df2da6a0d",
"connector": {
"initiator": "iqn.1993-08.org.debian: 01: cad181614cec",
"ip": "192.168.1.20",
"platform": "x86_64",
"host": "tempest-1",
"os_type": "linux2",
"multipath": false,
"mountpoint": "/dev/vdb",
"mode": "ro"
},
"volume_uuid": "462dcc2d-130d-4654-8db1-da0df2da6a0d"
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
attachment |
body |
对象 |
附件对象。 |
status |
body |
字符串 |
附件的状态。 |
detached_at |
body |
字符串 |
附件断开连接的时间。 |
connection_info |
body |
对象 |
服务器用于连接卷的连接信息。 |
attached_at |
body |
字符串 |
附件连接的时间。 |
attach_mode |
body |
字符串 |
附件的连接模式,只读 ('ro') 或读写 ('rw'),默认为 'rw'。 |
实例 |
body |
字符串 |
附加实例的 UUID。 |
volume_id |
body |
字符串 |
附件所属卷的 UUID。 |
id |
body |
字符串 |
附件 ID。 |
响应示例¶
{
"attachment": {
"status": "attaching",
"detached_at": "2015-09-16T09:28:52.000000",
"connection_info": {},
"attached_at": "2015-09-16T09:28:52.000000",
"attach_mode": "ro",
"instance": "3b8b6631-1cf7-4fd7-9afb-c01e541as345",
"volume_id": "462dcc2d-130d-4654-8db1-da0df2da6a0d",
"id": "3b8b6631-1cf7-4fd7-9afb-c01e541a073c"
}
}
使用连接器信息更新已预留的附件记录,并设置驱动程序的相应 connection_info。
从 3.27 微版本开始可用。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
404 - Not Found |
找不到请求的资源。 |
409 - Conflict |
此资源有一个正在进行的操作,与此请求冲突。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
attachment_id |
路径 |
字符串 |
附件的 ID。 |
attachement |
body |
对象 |
附件对象。 |
connector |
body |
对象 |
|
请求示例¶
{
"attachment": {
"connector": {
"initiator": "iqn.1993-08.org.debian: 01: cad181614cec",
"ip": "192.168.1.20",
"platform": "x86_64",
"host": "tempest-1",
"os_type": "linux2",
"multipath": false,
"mountpoint": "/dev/vdb",
"mode": "ro"
}
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
attachment |
body |
对象 |
附件对象。 |
status |
body |
字符串 |
附件的状态。 |
detached_at |
body |
字符串 |
附件断开连接的时间。 |
connection_info |
body |
对象 |
服务器用于连接卷的连接信息。 |
attached_at |
body |
字符串 |
附件连接的时间。 |
attach_mode |
body |
字符串 |
附件的连接模式,只读 ('ro') 或读写 ('rw'),默认为 'rw'。 |
实例 |
body |
字符串 |
附加实例的 UUID。 |
volume_id |
body |
字符串 |
附件所属卷的 UUID。 |
id |
body |
字符串 |
附件 ID。 |
响应示例¶
{
"attachment": {
"status": "attaching",
"detached_at": "2015-09-16T09:28:52.000000",
"connection_info": {},
"attached_at": "2015-09-16T09:28:52.000000",
"attach_mode": "ro",
"instance": "3b8b6631-1cf7-4fd7-9afb-c01e541as345",
"volume_id": "462dcc2d-130d-4654-8db1-da0df2da6a0d",
"id": "3b8b6631-1cf7-4fd7-9afb-c01e541a073c"
}
}
完成 Cinder 卷的附件。
从 3.44 微版本开始可用。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
204 - No Content |
请求已满足,但服务未返回任何内容。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
404 - Not Found |
找不到请求的资源。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
attachment_id |
路径 |
字符串 |
附件的 ID。 |
请求示例¶
{
"os-complete": {}
}
可用区 (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"
}]
}
后端存储池¶
仅限管理员。列出调度程序服务已知的所有后端存储池。
列出所有后端存储池。自 v3.31 起,如果非管理员用户在 URL 中指定了无效的过滤器,API 将返回 bad request。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
detail (可选) |
查询 |
布尔值 |
指示是在响应中显示池的详细信息还是仅显示池名称。设置为 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
pools |
body |
数组 |
存储池列表。 |
updated |
body |
字符串 |
扩展上次更新的日期和时间戳。 |
QoS_support |
body |
布尔值 |
服务质量 (QoS) 支持。 |
name |
body |
字符串 |
后端池的名称。 |
total_capacity_gb |
body |
字符串 |
后端卷的总容量(GB)。有效值为字符串,例如 |
volume_backend_name |
body |
字符串 |
后端卷的名称。 |
capabilities |
body |
对象 |
后端的容量。值为 |
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
}
}
]
}
备份 (backups)¶
备份是存储在外部服务中的卷的完整副本。该服务可以配置。唯一支持的服务是对象存储。之后可以将备份从外部服务恢复到原始备份所在的同一个卷,或恢复到一个新卷。
创建、列出或删除备份时,可能的状态值如下:
备份状态
状态 |
描述 |
creating |
备份正在创建中。 |
available |
备份已准备好恢复为卷。 |
deleting |
备份正在删除。 |
error |
发生备份错误。 |
恢复中 |
备份正在恢复为卷。 |
error_deleting |
删除备份时发生错误。 |
如果发生错误,您可以在备份的 fail_reason 字段中找到有关错误的更多信息。
列出项目可以访问的块存储备份及其详细信息。自 v3.31 起,如果非管理员用户在 URL 中指定了无效的过滤器,API 将返回 bad request。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
all_tenants (可选) |
查询 |
字符串 |
显示所有项目的详细信息。仅限管理员。 |
sort (可选) |
查询 |
字符串 |
逗号分隔的排序键和可选的排序方向列表,格式为 ` |
sort_key (可选) |
查询 |
字符串 |
按属性排序。有效值为 `name`、`status`、`container_format`、`disk_format`、`size`、`id`、`created_at` 或 `updated_at`。默认为 `created_at`。API 使用 `sort_key` 属性值的自然排序方向。已弃用,推荐使用组合的 `sort` 参数。 |
sort_dir (可选) |
查询 |
字符串 |
按一个或多个属性和排序方向的组合进行排序。如果省略组合中的排序方向,则默认为 `desc`。已弃用,推荐使用组合的 `sort` 参数。 |
limit (可选) |
查询 |
整数 |
请求项目页面大小。返回最多限制值数量的项目。使用 |
offset (可选) |
查询 |
整数 |
与 |
marker (可选) |
查询 |
字符串 |
最后一个已查看项目的 ID。使用 |
with_count (可选) |
查询 |
布尔值 |
是否在 API 响应中显示 `count`,默认为 `False`。 版本 3.45 新增 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
backups |
body |
数组 |
一个 |
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。 |
size |
body |
整数 |
卷的大小,以 gibibytes (GiB) 为单位。 |
id |
body |
字符串 |
备份的 UUID。 |
is_incremental (可选) |
body |
布尔值 |
指示备份模式是否为增量。如果此值为 |
data_timestamp |
body |
字符串 |
数据在卷上保存的首次时间。如果是从卷进行的备份,则与备份的 |
snapshot_id (可选) |
body |
字符串 |
源卷快照的 UUID。 |
os-backup-project-attr:project_id |
body |
字符串 |
所属项目的 UUID。 新特性:3.18 |
count (可选) |
body |
整数 |
应用分页之前的请求资源的 মোট 数量。 版本 3.45 新增 |
metadata (可选) |
body |
对象 |
备份元数据键值对。 新特性:3.43 |
user_id |
body |
字符串 |
所有者项目的 UUID。 新特性:3.56 |
encryption_key_id (可选) |
body |
字符串 |
加密密钥的 UUID。仅对加密卷包含。 版本 3.64 新增 |
backup_links (可选) |
body |
数组 |
一个数组,包含一个对象,该对象具有 |
响应示例¶
{
"backups": [
{
"availability_zone": null,
"container": null,
"created_at": "2023-07-10T13:23:21.178739",
"data_timestamp": "2023-07-10T13:23:21.178739",
"description": "Test backup",
"fail_reason": null,
"has_dependent_backups": false,
"id": "7ab823f7-1174-4447-9a76-863ae2dcf372",
"is_incremental": false,
"links": [
{
"href": "http://127.0.0.1:44197/v3/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/backups/7ab823f7-1174-4447-9a76-863ae2dcf372",
"rel": "self"
},
{
"href": "http://127.0.0.1:44197/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/backups/7ab823f7-1174-4447-9a76-863ae2dcf372",
"rel": "bookmark"
}
],
"name": "backup001",
"object_count": 0,
"size": 10,
"snapshot_id": null,
"status": "creating",
"updated_at": "2023-07-10T13:23:21.189552",
"volume_id": "9fc31617-303d-4b52-826e-b598cca40419"
}
]
}
显示备份的详细信息。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
backup_id |
路径 |
字符串 |
备份的 UUID。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
备份中 |
body |
对象 |
一个 |
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。 |
os-backup-project-attr:project_id |
body |
字符串 |
所属项目的 UUID。 新特性:3.18 |
metadata (可选) |
body |
对象 |
备份元数据键值对。 新特性:3.43 |
user_id |
body |
字符串 |
所有者项目的 UUID。 新特性:3.56 |
encryption_key_id (可选) |
body |
字符串 |
加密密钥的 UUID。仅对加密卷包含。 版本 3.64 新增 |
响应示例¶
{
"backup": {
"availability_zone": null,
"container": null,
"created_at": "2023-06-23T11:56:02.509831",
"data_timestamp": "2023-06-23T11:56:02.509831",
"description": "Test backup",
"fail_reason": null,
"has_dependent_backups": false,
"id": "6a122f4b-d2f6-448f-aeb5-68bae5ff8358",
"is_incremental": false,
"links": [
{
"href": "http://127.0.0.1:46627/v3/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/backups/6a122f4b-d2f6-448f-aeb5-68bae5ff8358",
"rel": "self"
},
{
"href": "http://127.0.0.1:46627/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/backups/6a122f4b-d2f6-448f-aeb5-68bae5ff8358",
"rel": "bookmark"
}
],
"name": "backup001",
"object_count": 0,
"size": 10,
"snapshot_id": null,
"status": "creating",
"updated_at": "2023-06-23T11:56:02.512426",
"volume_id": "49a784cf-b759-4594-acdf-5238ee50976b"
}
}
删除备份。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
backup_id |
路径 |
字符串 |
备份的 UUID。 |
将块存储备份恢复到现有或新的块存储卷。
name 参数仅在新卷创建时有效。
如果指定了 UUID,则备份将恢复到指定的卷。指定的卷有以下要求:
指定的卷状态为
available。指定卷的大小必须等于或大于备份的大小。
如果未提供现有的卷 UUID,备份将恢复到一个大小和名称与原始备份卷匹配的新卷。在这种情况下,如果提供了 name 参数,它将用作新卷的名称。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
413 - 请求实体过大 |
无法完成此操作。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
backup_id |
路径 |
字符串 |
备份的 UUID。 |
restore |
body |
对象 |
一个 |
name (可选) |
body |
字符串 |
卷名称。 |
volume_id (可选) |
body |
字符串 |
您要将备份恢复到的卷的 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",
"volume_name": "volume01"
}
}
从卷或快照创建块存储备份。
卷的状态必须为 available,或者如果使用了 force 标志,则也可以创建 in-use 卷的备份。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
备份中 |
body |
对象 |
一个 |
volume_id |
body |
字符串 |
您要备份的卷的 UUID。 |
container (可选) |
body |
字符串 |
容器名称或 null。 |
description (可选) |
body |
字符串 |
备份描述或 null。 |
incremental (可选) |
body |
布尔值 |
备份模式。有效值为增量备份模式的 |
force (可选) |
body |
布尔值 |
指示是否备份,即使卷已连接。默认为 |
name (可选) |
body |
字符串 |
卷备份的名称。 |
snapshot_id (可选) |
body |
字符串 |
您要备份的源快照的 UUID。 |
metadata (可选) |
body |
对象 |
备份元数据键值对。 新特性:3.43 |
availability_zone (可选) |
body |
字符串 |
备份可用性区域键值对。 新特性:3.51 |
请求示例¶
{
"backup": {
"container": null,
"description": "Test backup",
"name": "backup001",
"volume_id": "0aa67a0c-7339-4be6-b5d5-2afe21ca270c",
"incremental": false,
"snapshot_id": null,
"force": false
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
备份中 |
body |
对象 |
一个 |
id |
body |
字符串 |
备份的 UUID。 |
links |
body |
数组 |
备份的链接。 |
name |
body |
字符串 |
备份名称。 |
metadata (可选) |
body |
对象 |
备份元数据键值对。 新特性:3.43 |
响应示例¶
{
"backup": {
"id": "b1f41f9b-741e-4992-a246-b97de7e6e87e",
"links": [
{
"href": "http://127.0.0.1:40797/v3/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/backups/b1f41f9b-741e-4992-a246-b97de7e6e87e",
"rel": "self"
},
{
"href": "http://127.0.0.1:40797/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/backups/b1f41f9b-741e-4992-a246-b97de7e6e87e",
"rel": "bookmark"
}
],
"name": "backup001"
}
}
更新块存储备份。此 API 自 v3.9 起可用。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
backup_id |
路径 |
字符串 |
备份的 UUID。 |
备份中 |
body |
对象 |
一个 |
description (可选) |
body |
字符串 |
备份描述或 null。 |
name (可选) |
body |
字符串 |
卷备份的名称。 |
metadata (可选) |
body |
对象 |
备份元数据键值对。 新特性:3.43 |
请求示例¶
{
"backup":{
"name":"backup001",
"description": "this is a backup"
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
备份中 |
body |
对象 |
一个 |
id |
body |
字符串 |
备份的 UUID。 |
links |
body |
数组 |
备份的链接。 |
name |
body |
字符串 |
备份名称。 |
metadata (可选) |
body |
对象 |
备份元数据键值对。 新特性:3.43 |
响应示例¶
{
"backup": {
"id": "06d5db4f-1f80-4a71-99a6-99368cfb8f8e",
"links": [
{
"href": "http://127.0.0.1:45187/v3/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/backups/06d5db4f-1f80-4a71-99a6-99368cfb8f8e",
"rel": "self"
},
{
"href": "http://127.0.0.1:45187/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/backups/06d5db4f-1f80-4a71-99a6-99368cfb8f8e",
"rel": "bookmark"
}
],
"name": "backup001"
}
}
列出项目可以访问的块存储备份。自 v3.31 起,如果非管理员用户在 URL 中指定了无效的过滤器,API 将返回 bad request。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
all_tenants (可选) |
查询 |
字符串 |
显示所有项目的详细信息。仅限管理员。 |
sort (可选) |
查询 |
字符串 |
逗号分隔的排序键和可选的排序方向列表,格式为 ` |
sort_key (可选) |
查询 |
字符串 |
按属性排序。有效值为 `name`、`status`、`container_format`、`disk_format`、`size`、`id`、`created_at` 或 `updated_at`。默认为 `created_at`。API 使用 `sort_key` 属性值的自然排序方向。已弃用,推荐使用组合的 `sort` 参数。 |
sort_dir (可选) |
查询 |
字符串 |
按一个或多个属性和排序方向的组合进行排序。如果省略组合中的排序方向,则默认为 `desc`。已弃用,推荐使用组合的 `sort` 参数。 |
limit (可选) |
查询 |
整数 |
请求项目页面大小。返回最多限制值数量的项目。使用 |
offset (可选) |
查询 |
整数 |
与 |
marker (可选) |
查询 |
字符串 |
最后一个已查看项目的 ID。使用 |
with_count (可选) |
查询 |
布尔值 |
是否在 API 响应中显示 `count`,默认为 `False`。 版本 3.45 新增 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
backups |
body |
数组 |
一个 |
id |
body |
字符串 |
备份的 UUID。 |
links |
body |
数组 |
备份的链接。 |
name |
body |
字符串 |
备份名称。 |
count (可选) |
body |
整数 |
应用分页之前的请求资源的 মোট 数量。 版本 3.45 新增 |
backup_links (可选) |
body |
数组 |
一个数组,包含一个对象,该对象具有 |
响应示例¶
{
"backups": [
{
"id": "c26d9897-cace-44cc-ad0f-3a0d0b6d1450",
"links": [
{
"href": "http://127.0.0.1:46803/v3/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/backups/c26d9897-cace-44cc-ad0f-3a0d0b6d1450",
"rel": "self"
},
{
"href": "http://127.0.0.1:46803/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/backups/c26d9897-cace-44cc-ad0f-3a0d0b6d1450",
"rel": "bookmark"
}
],
"name": "backup001"
}
]
}
导出备份信息。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
404 - Not Found |
找不到请求的资源。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
backup_id |
路径 |
字符串 |
备份的 UUID。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
backup-record |
body |
对象 |
一个记录卷备份元数据的对象,包括 |
backup_service |
body |
字符串 |
执行备份使用的服务。 |
backup_url |
body |
字符串 |
用于定位备份的标识符字符串。 |
响应示例¶
{
"backup-record": {
"backup_service": "cinder.backup.drivers.swift",
"backup_url": "eyJzdGF0"
}
}
导入备份信息。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
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/v3/c95fc3e4afe248a49a28828f286a7b38/backups/deac8b8c-35c9-4c71-acaa-889c2d5d5c8e",
"rel": "self"
},
{
"href": "https://:8776/c95fc3e4afe248a49a28828f286a7b38/backups/deac8b8c-35c9-4c71-acaa-889c2d5d5c8e",
"rel": "bookmark"
}
],
"name": null
}
}
备份操作 (backups, action)¶
强制删除备份并重置备份的状态。
强制删除备份。在请求体中指定 os-force_delete 操作。
此操作会删除备份及其所有备份数据。
如果备份驱动程序不支持此操作,则返回 405 状态码。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
错误¶
代码 |
原因 |
|---|---|
404 - Not Found |
找不到请求的资源。 |
405 - 方法不允许 |
该方法对于此端点和资源无效。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
backup_id |
路径 |
字符串 |
备份的 UUID。 |
os-force_delete |
body |
字符串 |
|
请求示例¶
{
"os-force_delete": {}
}
重置备份状态。在请求体中指定 os-reset_status 操作。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
404 - Not Found |
找不到请求的资源。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
backup_id |
路径 |
字符串 |
备份的 UUID。 |
os-reset_status |
body |
对象 |
`os-reset_status` 操作。 |
status |
body |
字符串 |
备份的状态。 |
请求示例¶
{
"os-reset_status": {
"status": "available"
}
}
存储后端功能 (capabilities)¶
显示存储后端的功能。
显示主机上存储后端的功能。hostname 的格式为 hostname@volume_backend_name。
响应代码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
hostname |
路径 |
字符串 |
托管存储后端的服务器的主机名称。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
pool_name |
body |
字符串 |
存储池的名称。 |
description |
body |
字符串 |
功能描述。 |
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"
}
}
}
集群 (clusters)¶
仅限管理员。列出所有 Cinder 集群,显示集群详细信息,启用或禁用集群。
每个 Cinder 服务运行在单个*主机*计算机上(可能同一主机上运行多个服务;这取决于您如何部署 Cinder)。为了支持高可用性场景,服务可以分组到*集群*中,其中同一类型的服务(例如,cinder-volume)可以在不同的主机上运行,这样如果一台主机出现故障,服务仍然可以在另一台主机上可用。由于让这些服务闲置等待另一台主机出现故障(也称为主动/被动模式)没有意义,因此将服务分组到集群中也允许 Cinder 支持主动/主动模式,在这种模式下,集群中的所有服务都在持续工作。
注意
目前唯一可以分组到集群的服务是 cinder-volume。
集群由部署配置确定;因此,下面没有列出“创建集群”的 API 调用。但是,一旦您的服务启动并运行,您就可以使用以下 API 请求来获取有关您的集群的信息并更新其状态。
禁用集群。在请求正文中指定集群的名称,并可选择指定二进制名称。
从 3.7 微版本开始可用。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
404 - Not Found |
找不到请求的资源。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
name |
body |
字符串 |
用于标识服务集群的名称。 |
binary (可选) |
body |
字符串 |
集群中服务的二进制名称。 |
disabled_reason (可选) |
body |
字符串 |
禁用资源的理由。 |
请求示例¶
{
"name": "cluster_name",
"binary": "cinder-volume",
"disabled_reason": "for testing"
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
cluster |
body |
对象 |
集群对象。 |
name |
body |
字符串 |
服务集群的名称。 |
binary |
body |
字符串 |
集群中服务的二进制名称。 |
state |
body |
字符串 |
集群的状态。可能是 |
status |
body |
字符串 |
集群的状态。可能是 |
replication_status (可选) |
body |
字符串 |
集群复制状态。仅在配置时包含在响应中。可能的值包括: |
disabled_reason (可选) |
body |
字符串 |
禁用资源的理由。 |
响应示例¶
{
"cluster": {
"binary": "cinder-volume",
"disabled_reason": "for testing",
"name": "cluster_name",
"state": "down",
"status": "disabled"
}
}
启用集群。在请求正文中指定集群的名称,并可选择指定二进制名称。
从 3.7 微版本开始可用。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
404 - Not Found |
找不到请求的资源。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
name |
body |
字符串 |
用于标识服务集群的名称。 |
binary (可选) |
body |
字符串 |
集群中服务的二进制名称。 |
请求示例¶
{
"name": "cluster_name",
"binary": "cinder-volume"
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
cluster |
body |
对象 |
集群对象。 |
name |
body |
字符串 |
服务集群的名称。 |
binary |
body |
字符串 |
集群中服务的二进制名称。 |
state |
body |
字符串 |
集群的状态。可能是 |
status |
body |
字符串 |
集群的状态。可能是 |
replication_status (可选) |
body |
字符串 |
集群复制状态。仅在配置时包含在响应中。可能的值包括: |
disabled_reason (可选) |
body |
字符串 |
禁用资源的理由。 |
响应示例¶
{
"cluster": {
"name": "cluster_name",
"state": "down",
"binary": "cinder-volume",
"status": "enabled",
"disabled_reason": null
}
}
显示集群的详细信息,通过其名称,并可选择指定二进制名称。
从 3.7 微版本开始可用。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
404 - Not Found |
找不到请求的资源。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
cluster_name |
路径 |
字符串 |
集群的名称。 |
binary (可选) |
查询 |
字符串 |
按集群服务的二进制名称过滤集群列表结果。可能的值包括 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
cluster |
body |
对象 |
集群对象。 |
name |
body |
字符串 |
服务集群的名称。 |
binary |
body |
字符串 |
集群中服务的二进制名称。 |
state |
body |
字符串 |
集群的状态。可能是 |
status |
body |
字符串 |
集群的状态。可能是 |
num_hosts |
body |
整数 |
集群中的主机数量。 |
num_down_hosts |
body |
整数 |
集群中处于关闭状态的主机数量。 |
last_heartbeat |
body |
字符串 |
收到的最后一次心跳。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
created_at |
body |
字符串 |
创建资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
updated_at |
body |
字符串 |
更新资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含, 如果未设置 |
disabled_reason (可选) |
body |
字符串 |
禁用资源的理由。 |
replication_status (可选) |
body |
字符串 |
集群复制状态。仅在配置时包含在响应中。可能的值包括: |
frozen (可选) |
body |
布尔值 |
集群是否处于冻结状态。 3.26 版本新增 |
active_backend_id (可选) |
body |
字符串 |
活动存储后端的 ID。仅在 3.26 版本新增 |
响应示例¶
{
"cluster": {
"binary": "cinder-volume",
"created_at": "2016-06-01T02:46:28.000000",
"disabled_reason": null,
"last_heartbeat": "2016-06-01T02:46:28.000000",
"name": "cluster_name",
"num_down_hosts": 0,
"num_hosts": 0,
"state": "down",
"status": "enabled",
"updated_at": "2016-06-01T02:46:28.000000"
}
}
列出所有集群。
从 3.7 微版本开始可用。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
name (可选) |
查询 |
字符串 |
按集群名称过滤集群列表结果。 |
binary (可选) |
查询 |
字符串 |
按集群服务的二进制名称过滤集群列表结果。可能的值包括 |
is_up (可选) |
查询 |
布尔值 |
按状态过滤集群列表结果。 |
disabled (可选) |
查询 |
布尔值 |
按状态过滤集群列表结果。 |
num_hosts (可选) |
查询 |
整数 |
按主机数量过滤集群列表结果。 |
num_down_hosts (可选) |
查询 |
整数 |
按关闭主机数量过滤集群列表结果。 |
replication_status (可选) |
查询 |
字符串 |
按复制状态过滤集群列表结果。可能的值包括: |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
clusters |
body |
数组 |
集群对象列表。 |
name |
body |
字符串 |
服务集群的名称。 |
binary |
body |
字符串 |
集群中服务的二进制名称。 |
state |
body |
字符串 |
集群的状态。可能是 |
status |
body |
字符串 |
集群的状态。可能是 |
replication_status (可选) |
body |
字符串 |
集群复制状态。仅在配置时包含在响应中。可能的值包括: |
响应示例¶
{
"clusters": [
{
"name": "cluster_name",
"binary": "cinder-volume",
"state": "down",
"status": "enabled"
},
{
"name": "cluster2",
"binary": "cinder-volume",
"state": "down",
"status": "disabled"
}
]
}
列出所有带详细信息的集群。
从 3.7 微版本开始可用。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
name (可选) |
查询 |
字符串 |
按集群名称过滤集群列表结果。 |
binary (可选) |
查询 |
字符串 |
按集群服务的二进制名称过滤集群列表结果。可能的值包括 |
is_up (可选) |
查询 |
布尔值 |
按状态过滤集群列表结果。 |
disabled (可选) |
查询 |
布尔值 |
按状态过滤集群列表结果。 |
num_hosts (可选) |
查询 |
整数 |
按主机数量过滤集群列表结果。 |
num_down_hosts (可选) |
查询 |
整数 |
按关闭主机数量过滤集群列表结果。 |
replication_status (可选) |
查询 |
字符串 |
按复制状态过滤集群列表结果。可能的值包括: |
frozen (可选) |
body |
布尔值 |
集群是否处于冻结状态。 3.26 版本新增 |
active_backend_id (可选) |
body |
字符串 |
活动存储后端的 ID。仅在 3.26 版本新增 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
clusters |
body |
数组 |
集群对象列表。 |
name |
body |
字符串 |
服务集群的名称。 |
binary |
body |
字符串 |
集群中服务的二进制名称。 |
state |
body |
字符串 |
集群的状态。可能是 |
status |
body |
字符串 |
集群的状态。可能是 |
num_hosts |
body |
整数 |
集群中的主机数量。 |
num_down_hosts |
body |
整数 |
集群中处于关闭状态的主机数量。 |
last_heartbeat |
body |
字符串 |
收到的最后一次心跳。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
created_at |
body |
字符串 |
创建资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
updated_at |
body |
字符串 |
更新资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含, 如果未设置 |
disabled_reason (可选) |
body |
字符串 |
禁用资源的理由。 |
replication_status (可选) |
body |
字符串 |
集群复制状态。仅在配置时包含在响应中。可能的值包括: |
frozen (可选) |
body |
布尔值 |
集群是否处于冻结状态。 3.26 版本新增 |
active_backend_id (可选) |
body |
字符串 |
活动存储后端的 ID。仅在 3.26 版本新增 |
响应示例¶
{
"clusters": [
{
"binary": "cinder-volume",
"created_at": "2016-06-01T02:46:28.000000",
"disabled_reason": null,
"last_heartbeat": "2016-06-01T02:46:28.000000",
"name": "cluster_name",
"num_down_hosts": 0,
"num_hosts": 0,
"state": "down",
"status": "enabled",
"updated_at": "2016-06-01T02:46:28.000000"
},
{
"binary": "cinder-volume",
"created_at": "2016-06-01T01:46:28.000000",
"disabled_reason": "for testing",
"last_heartbeat": "",
"name": "cluster2",
"num_down_hosts": 1,
"num_hosts": 2,
"state": "down",
"status": "disabled",
"updated_at": "2016-06-01T01:46:28.000000"
}
]
}
一致性组(已弃用)¶
一致性组允许您从多个卷创建同一时间点的快照。例如,一个数据库可能将表、日志和配置放在不同的卷上。要从以前的时间点恢复此数据库,最好从确切的同一时间点一起恢复日志、表和配置。
使用策略配置文件授予这些操作的权限,以限制角色。
列出一致性组。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
all_tenants (可选) |
查询 |
字符串 |
显示所有项目的详细信息。仅限管理员。 |
sort (可选) |
查询 |
字符串 |
逗号分隔的排序键和可选的排序方向列表,格式为 ` |
sort_key (可选) |
查询 |
字符串 |
按属性排序。有效值为 `name`、`status`、`container_format`、`disk_format`、`size`、`id`、`created_at` 或 `updated_at`。默认为 `created_at`。API 使用 `sort_key` 属性值的自然排序方向。已弃用,推荐使用组合的 `sort` 参数。 |
sort_dir (可选) |
查询 |
字符串 |
按一个或多个属性和排序方向的组合进行排序。如果省略组合中的排序方向,则默认为 `desc`。已弃用,推荐使用组合的 `sort` 参数。 |
limit (可选) |
查询 |
整数 |
请求项目页面大小。返回最多限制值数量的项目。使用 |
offset (可选) |
查询 |
整数 |
与 |
marker (可选) |
查询 |
字符串 |
最后一个已查看项目的 ID。使用 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
consistencygroups |
body |
数组 |
一致性组列表。 |
id |
body |
字符串 |
对象的 UUID。 |
name (可选) |
body |
字符串 |
对象名称。 |
响应示例¶
{
"consistencygroups": [
{
"id": "6f519a48-3183-46cf-a32f-41815f813986",
"name": "my-cg1"
},
{
"id": "aed36625-a6d7-4681-ba59-c7ba3d18c148",
"name": "my-cg2"
}
]
}
创建一致性组。
响应码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
consistencygroup |
body |
对象 |
一致性组。 |
description (可选) |
body |
字符串 |
一致性组的描述。 |
availability_zone (可选) |
body |
字符串 |
可用区的名称。 |
volume_types |
body |
字符串 |
用逗号分隔的卷类型列表。在具有多存储后端的环境中,调度程序根据卷类型确定将卷发送到何处。有关如何使用卷类型创建多存储后端的信息,请参阅 配置多存储后端。 |
name (可选) |
body |
字符串 |
一致性组的名称。 |
请求示例¶
{
"consistencygroup": {
"name": "firstcg",
"description": "first consistency group",
"volume_types": "type1,type2",
"availability_zone": "az0"
}
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
consistencygroup |
body |
对象 |
一致性组。 |
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 |
路径 |
字符串 |
一致性组的 ID。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
status |
body |
字符串 |
一致性组的状态。 |
description |
body |
字符串 |
一致性组的描述。 |
availability_zone (可选) |
body |
字符串 |
可用区的名称。 |
created_at |
body |
字符串 |
创建资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
volume_types |
body |
数组 |
卷类型列表。在具有多个存储后端的环境中,调度器会根据卷类型确定将卷发送到哪里。有关如何使用卷类型创建多个存储后端的信息,请参阅 配置多个存储后端。 |
id |
body |
字符串 |
对象的 UUID。 |
name (可选) |
body |
字符串 |
对象名称。 |
响应示例¶
{
"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 |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
consistencygroup-from-src |
body |
对象 |
一致性组从源对象。 |
status |
body |
字符串 |
一致性组的状态。 |
user_id |
body |
字符串 |
用户的 UUID。 |
description (可选) |
body |
字符串 |
一致性组的描述。 |
cgsnapshot_id (可选) |
body |
字符串 |
一致性组快照的 UUID。 |
source_cgid (可选) |
body |
字符串 |
源一致性组的 UUID。 |
project_id |
body |
字符串 |
项目的 UUID。 |
name (可选) |
body |
字符串 |
对象名称。 |
请求示例¶
{
"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 |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
consistencygroup_id |
路径 |
字符串 |
一致性组的 ID。 |
consistencygroup |
body |
对象 |
一致性组。 |
force (可选) |
body |
布尔值 |
指示是否备份,即使卷已连接。默认为 |
请求示例¶
{
"consistencygroup": {
"force": false
}
}
列出一致性组及其详细信息。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
all_tenants (可选) |
查询 |
字符串 |
显示所有项目的详细信息。仅限管理员。 |
sort (可选) |
查询 |
字符串 |
逗号分隔的排序键和可选的排序方向列表,格式为 ` |
sort_key (可选) |
查询 |
字符串 |
按属性排序。有效值为 `name`、`status`、`container_format`、`disk_format`、`size`、`id`、`created_at` 或 `updated_at`。默认为 `created_at`。API 使用 `sort_key` 属性值的自然排序方向。已弃用,推荐使用组合的 `sort` 参数。 |
sort_dir (可选) |
查询 |
字符串 |
按一个或多个属性和排序方向的组合进行排序。如果省略组合中的排序方向,则默认为 `desc`。已弃用,推荐使用组合的 `sort` 参数。 |
limit (可选) |
查询 |
整数 |
请求项目页面大小。返回最多限制值数量的项目。使用 |
offset (可选) |
查询 |
整数 |
与 |
marker (可选) |
查询 |
字符串 |
最后一个已查看项目的 ID。使用 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
consistencygroups |
body |
数组 |
一致性组列表。 |
status |
body |
字符串 |
一致性组的状态。 |
description |
body |
字符串 |
一致性组的描述。 |
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 |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
consistencygroup_id |
路径 |
字符串 |
一致性组的 ID。 |
consistencygroup |
body |
对象 |
一致性组。 |
remove_volumes (可选) |
body |
字符串 |
要从卷组或一致性组中移除的一个或多个卷 UUID,用逗号分隔。 |
description (可选) |
body |
字符串 |
一致性组的描述。 |
add_volumes (可选) |
body |
字符串 |
要添加到卷组或一致性组的一个或多个卷 UUID,用逗号分隔。 |
name (可选) |
body |
字符串 |
对象名称。 |
请求示例¶
{
"consistencygroup": {
"name": "my_cg",
"description": "My consistency group",
"add_volumes": "volume-uuid-1,volume-uuid-2",
"remove_volumes": "volume-uuid-8,volume-uuid-9"
}
}
一致性组快照(已弃用)¶
列出所有、列出所有带详细信息、显示详细信息、创建和删除一致性组快照。
删除一致性组快照。
响应码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
cgsnapshot_id |
路径 |
字符串 |
一致性组快照的 ID。 |
显示一致性组快照的详细信息。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
cgsnapshot_id |
路径 |
字符串 |
一致性组快照的 ID。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
cgsnapshot |
body |
对象 |
一致性组快照对象。 |
status (可选) |
body |
字符串 |
一致性组快照的 |
description |
body |
字符串 |
一致性组快照的描述。 |
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"
}
}
列出所有带详细信息的一致性组快照。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
all_tenants (可选) |
查询 |
字符串 |
显示所有项目的详细信息。仅限管理员。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
cgsnapshots |
body |
对象 |
一组 |
status (可选) |
body |
字符串 |
一致性组快照的 |
description |
body |
字符串 |
一致性组快照的描述。 |
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"
}
]
}
列出所有一致性组快照。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
all_tenants (可选) |
查询 |
字符串 |
显示所有项目的详细信息。仅限管理员。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
cgsnapshots |
body |
对象 |
一组 |
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 |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
cgsnapshot |
body |
对象 |
一致性组快照对象。 |
name (可选) |
body |
字符串 |
快照的名称。默认为 |
consistencygroup_id |
body |
字符串 |
一致性组的 UUID。 |
description (可选) |
body |
字符串 |
一致性组快照的描述。 |
请求示例¶
{
"cgsnapshot": {
"consistencygroup_id": "6f519a48-3183-46cf-a32f-41815f814546",
"name": "firstcg",
"description": "first consistency group",
"status": "creating"
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
status (可选) |
body |
字符串 |
一致性组快照的 |
description |
body |
字符串 |
一致性组快照的描述。 |
created_at |
body |
字符串 |
创建资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
consistencygroup_id |
body |
字符串 |
一致性组的 UUID。 |
id |
body |
字符串 |
对象的 UUID。 |
name |
body |
字符串 |
一致性组快照的名称。 |
服务(os-services)¶
仅限管理员。列出所有 Cinder 服务,启用或禁用 Cinder 服务,冻结或解冻指定的 cinder-volume 主机,故障转移正在复制的 cinder-volume 主机。
列出所有 Cinder 服务。提供有关服务为何被禁用的详细信息。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
host (可选) |
查询 |
字符串 |
按服务主机名过滤服务列表结果。 |
binary (可选) |
查询 |
字符串 |
按服务的二进制名称过滤服务列表结果。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
services |
body |
数组 |
服务对象列表。 |
binary |
body |
字符串 |
服务的二进制名称。 |
disabled_reason |
body |
字符串 |
禁用资源的理由。 |
host |
body |
字符串 |
主机的名称。 |
state |
body |
字符串 |
服务的状态。为 |
status |
body |
字符串 |
服务状态。为 |
frozen (可选) |
body |
布尔值 |
主机是否被冻结。仅在 |
updated_at |
body |
字符串 |
扩展上次更新的日期和时间戳。 |
zone |
body |
字符串 |
可用区名称。 |
cluster (可选) |
body |
字符串 |
集群名称。仅在 3.7 版本新增 |
replication_status (可选) |
body |
字符串 |
卷服务的复制状态。仅在 |
active_backend_id (可选) |
body |
字符串 |
活动存储后端的 ID。仅在 |
backend_state (可选) |
body |
字符串 |
存储后端的当前状态。仅在 |
响应示例¶
{
"services": [{
"status": "enabled",
"binary": "cinder-scheduler",
"zone": "nova",
"state": "up",
"updated_at": "2017-06-29T05:50:35.000000",
"host": "devstack",
"disabled_reason": null
},
{
"status": "enabled",
"binary": "cinder-backup",
"zone": "nova",
"state": "up",
"updated_at": "2017-06-29T05:50:42.000000",
"host": "devstack",
"disabled_reason": null
},
{
"status": "enabled",
"binary": "cinder-volume",
"zone": "nova",
"frozen": false,
"state": "up",
"updated_at": "2017-06-29T05:50:39.000000",
"cluster": null,
"host": "devstack@lvmdriver-1",
"replication_status": "disabled",
"active_backend_id": null,
"disabled_reason": null
}]
}
禁用 Cinder 服务。通过其主机名和二进制名称指定服务。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
host |
body |
字符串 |
主机的名称。 |
binary |
body |
字符串 |
服务的二进制名称。 |
请求示例¶
{
"binary": "cinder-volume",
"host": "devstack@lvmdriver-1"
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
disabled |
body |
布尔值 |
服务是否被禁用。 |
status |
body |
字符串 |
服务状态。为 |
host |
body |
字符串 |
主机的名称。 |
服务 |
body |
字符串 |
服务名称。已弃用。保留 service 键以保持 API 兼容性。 |
binary |
body |
字符串 |
服务的二进制名称。 |
响应示例¶
{
"disabled": true,
"status": "disabled",
"host": "devstack@lvmdriver-1",
"service": "",
"binary": "cinder-volume"
}
将信息记录到 Cinder 服务表中,说明 Cinder 服务被禁用的原因。
通过其主机名和二进制名称指定服务。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
binary |
body |
字符串 |
服务的二进制名称。 |
host |
body |
字符串 |
主机的名称。 |
disabled_reason (可选) |
body |
字符串 |
禁用资源的理由。 |
请求示例¶
{
"binary": "cinder-volume",
"host": "devstack@lvmdriver-1",
"disabled_reason": "test"
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
disabled |
body |
布尔值 |
服务是否被禁用。 |
status |
body |
字符串 |
服务状态。为 |
host |
body |
字符串 |
主机的名称。 |
服务 |
body |
字符串 |
服务名称。已弃用。保留 service 键以保持 API 兼容性。 |
binary |
body |
字符串 |
服务的二进制名称。 |
disabled_reason |
body |
字符串 |
禁用资源的理由。 |
响应示例¶
{
"disabled": true,
"status": "disabled",
"host": "devstack@lvmdriver-1",
"service": "",
"binary": "cinder-volume",
"disabled_reason": "test"
}
启用 Cinder 服务。通过其主机名和二进制名称指定服务。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
binary |
body |
字符串 |
服务的二进制名称。 |
host |
body |
字符串 |
主机的名称。 |
请求示例¶
{
"binary": "cinder-volume",
"host": "devstack@lvmdriver-1"
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
disabled |
body |
布尔值 |
服务是否被禁用。 |
status |
body |
字符串 |
服务状态。为 |
host |
body |
字符串 |
主机的名称。 |
服务 |
body |
字符串 |
服务名称。已弃用。保留 service 键以保持 API 兼容性。 |
binary |
body |
字符串 |
服务的二进制名称。 |
disabled_reason |
body |
字符串 |
禁用资源的理由。 |
响应示例¶
{
"disabled": false,
"status": "enabled",
"host": "devstack@lvmdriver-1",
"service": "",
"binary": "cinder-volume",
"disabled_reason": null
}
获取服务的当前日志级别,自 v3.32 起支持。按二进制、服务器名称和日志路径前缀过滤服务。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
binary (可选) |
body |
字符串 |
服务的二进制名称。 |
server (可选) |
body |
字符串 |
主机的名称。 |
prefix (可选) |
body |
字符串 |
我们要查询的日志路径的前缀,例如 |
请求示例¶
{
"binary": "cinder-volume",
"server": "devstack@lvmdriver-1",
"prefix": "cinder.volume"
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
log_levels |
body |
数组 |
日志级别列表。 |
binary |
body |
字符串 |
服务的二进制名称。 |
host |
body |
字符串 |
主机的名称。 |
levels |
body |
对象 |
当前查询的日志级别。 |
响应示例¶
{
"log_levels": [{
"binary": "cinder-api",
"host": "devstack",
"levels": {
"cinder.volume.api": "DEBUG"
}
},
{
"binary": "cinder-scheduler",
"host": "devstack",
"levels": {
"cinder.volume.api": "DEBUG"
}
},
{
"binary": "cinder-backup",
"host": "devstack",
"levels": {}
},
{
"binary": "cinder-volume",
"host": "devstack@lvmdriver-1",
"levels": {
"cinder.volume.api": "DEBUG"
}
}]
}
动态设置服务日志级别,自 v3.32 起支持。按二进制、服务器名称和日志路径前缀过滤服务。
响应码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
binary (可选) |
body |
字符串 |
服务的二进制名称。 |
server (可选) |
body |
字符串 |
主机的名称。 |
prefix (可选) |
body |
字符串 |
我们要查询的日志路径的前缀,例如 |
levels |
body |
字符串 |
要设置的日志级别,不区分大小写,可接受的值包括 |
请求示例¶
{
"binary": "cinder-volume",
"server": "devstack@lvmdriver-1",
"prefix": "cinder.volume",
"level": "ERROR"
}
冻结并禁用指定的 cinder-volume 主机,并将 Cinder 服务表中的 Disabled Reason 设置为 frozen。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
host |
body |
字符串 |
主机的名称。 |
请求示例¶
{
"host": "devstack@rbd-sas"
}
解冻并启用指定的 cinder-volume 主机,并清除 Cinder 服务表中的 Disabled Reason。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
host |
body |
字符串 |
主机的名称。 |
请求示例¶
{
"host": "devstack@rbd-sas"
}
故障转移正在复制的 cinder-volume 主机。自 Cinder Volume API 版本 3.26 起,您可以在请求 URL 中使用 failover 代替 failover_host,并且支持请求正文中的集群名称。
响应码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
host |
body |
字符串 |
主机的名称。 |
backend_id (可选) |
body |
字符串 |
要故障转移到的后端 ID。默认为 |
cluster (可选) |
body |
字符串 |
集群名称。仅在 3.7 版本新增 |
请求示例¶
{
"host": "devstack@lvmdriver-1",
"backend_id": null
}
通用卷组 (groups)¶
通用卷组允许您创建卷组并一起管理它们。
通用卷组与一致性组有何不同?目前,Cinder 中的一致性组仅支持一致性组快照。它不能轻松扩展以服务于其他目的。项目可能希望将应用程序使用的卷放在一个组中,以便更容易地一起管理它们,而这个卷组可能支持或不支持一致性组快照。通用卷组就是为了解决这个问题而引入的。通过解耦组构造和一致性概念之间的紧密关系,通用卷组将来可以扩展以支持其他功能。
列出组。自 v3.31 起,如果非管理员用户在 URL 中指定了无效的过滤器,API 将返回错误请求。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
all_tenants (可选) |
查询 |
字符串 |
显示所有项目的详细信息。仅限管理员。 |
sort (可选) |
查询 |
字符串 |
逗号分隔的排序键和可选的排序方向列表,格式为 ` |
sort_key (可选) |
查询 |
字符串 |
按属性排序。有效值为 `name`、`status`、`container_format`、`disk_format`、`size`、`id`、`created_at` 或 `updated_at`。默认为 `created_at`。API 使用 `sort_key` 属性值的自然排序方向。已弃用,推荐使用组合的 `sort` 参数。 |
sort_dir (可选) |
查询 |
字符串 |
按一个或多个属性和排序方向的组合进行排序。如果省略组合中的排序方向,则默认为 `desc`。已弃用,推荐使用组合的 `sort` 参数。 |
limit (可选) |
查询 |
整数 |
请求项目页面大小。返回最多限制值数量的项目。使用 |
offset (可选) |
查询 |
整数 |
与 |
marker (可选) |
查询 |
字符串 |
最后一个已查看项目的 ID。使用 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
groups |
body |
数组 |
一组组。 |
id |
body |
字符串 |
对象的 UUID。 |
name |
body |
字符串 |
组的名称。 |
响应示例¶
{
"groups": [
{
"id": "6f519a48-3183-46cf-a32f-41815f813986",
"name": "my_group1"
},
{
"id": "aed36625-a6d7-4681-ba59-c7ba3d18c148",
"name": "my_group2"
}
]
}
创建一个组。
响应码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
404 - Not Found |
找不到请求的资源。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
group |
body |
对象 |
组对象。 |
description (可选) |
body |
字符串 |
组的描述。 |
availability_zone (可选) |
body |
字符串 |
可用区的名称。 |
group_type |
body |
字符串 |
组类型的 ID。 |
volume_types |
body |
数组 |
卷类型列表。在具有多个存储后端的环境中,调度器会根据卷类型确定将卷发送到哪里。有关如何使用卷类型创建多个存储后端的信息,请参阅 配置多个存储后端。 |
name |
body |
字符串 |
组的名称。 |
请求示例¶
{
"group": {
"name": "first_group",
"description": "first group",
"group_type": "29514915-5208-46ab-9ece-1cc4688ad0c1",
"volume_types": [
"4e9e6d23-eed0-426d-b90a-28f87a94b6fe",
"c4daaf47-c530-4901-b28e-f5f0a359c4e6"
],
"availability_zone": "az0"
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
id |
路径 |
字符串 |
组的 ID。 |
name |
body |
字符串 |
组的名称。 |
响应示例¶
{
"group": {
"id": "6f519a48-3183-46cf-a32f-41815f816666",
"name": "first_group"
}
}
显示组的详细信息。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
404 - Not Found |
找不到请求的资源。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
group_id |
路径 |
字符串 |
组的 ID。 |
list_volume (可选) |
路径 |
字符串 |
显示组中的卷 ID。默认为 False。 3.25 版本新增 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
group |
body |
对象 |
组对象。 |
status |
body |
字符串 |
通用组的状态。 |
description |
body |
字符串 |
组的描述。 |
availability_zone (可选) |
body |
字符串 |
可用区的名称。 |
created_at |
body |
字符串 |
创建资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
group_type |
body |
字符串 |
组类型的 ID。 |
group_snapshot_id (可选) |
body |
字符串 |
组快照的 ID。 |
source_group_id (可选) |
body |
字符串 |
源组的 UUID。 |
volume_types |
body |
数组 |
卷类型列表。在具有多个存储后端的环境中,调度器会根据卷类型确定将卷发送到哪里。有关如何使用卷类型创建多个存储后端的信息,请参阅 配置多个存储后端。 |
id |
body |
字符串 |
对象的 UUID。 |
name |
body |
字符串 |
组的名称。 |
volumes (可选) |
body |
数组 |
当 3.25 版本新增 |
replication_status (可选) |
body |
字符串 |
组复制状态。 3.38 版本新增 |
project_id (可选) |
body |
字符串 |
卷组项目 ID。 3.58 版本新增 |
响应示例¶
{
"group": {
"id": "6f519a48-3183-46cf-a32f-41815f813986",
"status": "available",
"availability_zone": "az1",
"created_at": "2015-09-16T09:28:52.000000",
"name": "first_group",
"description": "my first group",
"group_type": "29514915-5208-46ab-9ece-1cc4688ad0c1",
"volume_types": [
"c4daaf47-c530-4901-b28e-f5f0a359c4e6"
],
"volumes": ["a2cdf1ad-5497-4e57-bd7d-f573768f3d03"],
"group_snapshot_id": null,
"source_group_id": null,
"project_id": "7ccf4863071f44aeb8f141f65780c51b"
}
}
从源创建组。
响应码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
404 - Not Found |
找不到请求的资源。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
create-from-src |
body |
对象 |
从源创建操作。 |
description (可选) |
body |
字符串 |
组的描述。 |
group_snapshot_id |
body |
字符串 |
组快照的 ID。 |
source_group_id |
body |
字符串 |
源组的 UUID。 |
name |
body |
字符串 |
组的名称。 |
请求示例¶
{
"create-from-src": {
"name": "first_group",
"description": "first group",
"group_snapshot_id": "6f519a48-3183-46cf-a32f-41815f813986",
"source_group_id": null
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
id |
路径 |
字符串 |
组的 ID。 |
name |
body |
字符串 |
组的名称。 |
响应示例¶
{
"group": {
"id": "6f519a48-3183-46cf-a32f-41815f816666",
"name": "first_group"
}
}
删除组。
响应码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
404 - Not Found |
找不到请求的资源。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
group_id |
路径 |
字符串 |
组的 ID。 |
删除 |
body |
对象 |
删除操作。 |
delete-volumes (可选) |
body |
布尔值 |
如果设置为 |
请求示例¶
{
"delete": {
"delete-volumes": false
}
}
列出带详细信息的组,自 v3.31 起,如果非管理员用户在 URL 中指定了无效的过滤器,API 将返回错误请求。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
all_tenants (可选) |
查询 |
字符串 |
显示所有项目的详细信息。仅限管理员。 |
sort (可选) |
查询 |
字符串 |
逗号分隔的排序键和可选的排序方向列表,格式为 ` |
sort_key (可选) |
查询 |
字符串 |
按属性排序。有效值为 `name`、`status`、`container_format`、`disk_format`、`size`、`id`、`created_at` 或 `updated_at`。默认为 `created_at`。API 使用 `sort_key` 属性值的自然排序方向。已弃用,推荐使用组合的 `sort` 参数。 |
sort_dir (可选) |
查询 |
字符串 |
按一个或多个属性和排序方向的组合进行排序。如果省略组合中的排序方向,则默认为 `desc`。已弃用,推荐使用组合的 `sort` 参数。 |
limit (可选) |
查询 |
整数 |
请求项目页面大小。返回最多限制值数量的项目。使用 |
offset (可选) |
查询 |
整数 |
与 |
marker (可选) |
查询 |
字符串 |
最后一个已查看项目的 ID。使用 |
list_volume (可选) |
路径 |
字符串 |
显示组中的卷 ID。默认为 False。 3.25 版本新增 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
groups |
body |
数组 |
一组组。 |
status |
body |
字符串 |
通用组的状态。 |
description |
body |
字符串 |
组的描述。 |
availability_zone (可选) |
body |
字符串 |
可用区的名称。 |
created_at |
body |
字符串 |
创建资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
group_type |
body |
字符串 |
组类型的 ID。 |
group_snapshot_id (可选) |
body |
字符串 |
组快照的 ID。 |
source_group_id (可选) |
body |
字符串 |
源组的 UUID。 |
volume_types |
body |
数组 |
卷类型列表。在具有多个存储后端的环境中,调度器会根据卷类型确定将卷发送到哪里。有关如何使用卷类型创建多个存储后端的信息,请参阅 配置多个存储后端。 |
id |
路径 |
字符串 |
组的 ID。 |
name (可选) |
body |
字符串 |
对象名称。 |
volumes (可选) |
body |
数组 |
当 3.25 版本新增 |
replication_status (可选) |
body |
字符串 |
组复制状态。 3.38 版本新增 |
project_id (可选) |
body |
字符串 |
卷组项目 ID。 3.58 版本新增 |
响应示例¶
{
"groups": [
{
"id": "6f519a48-3183-46cf-a32f-41815f813986",
"status": "available",
"availability_zone": "az1",
"created_at": "2015-09-16T09:28:52.000000",
"name": "my_group1",
"description": "my first group",
"group_type": "29514915-5208-46ab-9ece-1cc4688ad0c1",
"volume_types": [
"4e9e6d23-eed0-426d-b90a-28f87a94b6fe",
"a3d55d15-eeb1-4816-ada9-bf82decc09b3"
],
"volumes": ["a2cdf1ad-5497-4e57-bd7d-f573768f3d03"],
"project_id": "7ccf4863071f44aeb8f141f65780c51b"
},
{
"id": "aed36625-a6d7-4681-ba59-c7ba3d18c148",
"status": "error",
"availability_zone": "az2",
"created_at": "2015-09-16T09:31:15.000000",
"name": "my_group2",
"description": "Edited description",
"group_type": "f8645498-1323-47a2-9442-5c57724d2e3c",
"volume_types": [
"c4daaf47-c530-4901-b28e-f5f0a359c4e6"
],
"volumes": ["a2cdf1ad-5497-4e57-bd7d-f573768f3d03"],
"project_id": "7ccf4863071f44aeb8f141f65780c51b"
}
]
}
更新组。
响应码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
404 - Not Found |
找不到请求的资源。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
group_id |
路径 |
字符串 |
组的 ID。 |
group |
body |
对象 |
组对象。 |
remove_volumes (可选) |
body |
字符串 |
要从卷组或一致性组中移除的一个或多个卷 UUID,用逗号分隔。 |
description (可选) |
body |
字符串 |
组的描述。 |
add_volumes (可选) |
body |
字符串 |
要添加到卷组或一致性组的一个或多个卷 UUID,用逗号分隔。 |
name |
body |
字符串 |
组的名称。 |
请求示例¶
{
"group": {
"name": "my_group",
"description": "My group",
"add_volumes": "volume-uuid-1,volume-uuid-2",
"remove_volumes": "volume-uuid-8,volume-uuid-9"
}
}
重置组的状态。在请求正文中指定 reset_status 操作。
响应码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
404 - Not Found |
找不到请求的资源。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
group_id |
路径 |
字符串 |
组的 ID。 |
reset_status |
body |
对象 |
重置状态操作。 |
status (可选) |
body |
字符串 |
一致性组快照的 |
请求示例¶
{
"reset_status": {
"status": "available"
}
}
组复制 (groups, action)¶
列出目标、启用、禁用和故障转移组复制。
API 微版本 3.38 起可用。
列出组的复制目标。
响应码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
404 - Not Found |
找不到请求的资源。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
group_id |
路径 |
字符串 |
组的 ID。 |
请求示例¶
{
"list_replication_targets": {}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
backend_id |
body |
字符串 |
故障转移目标后端的 ID。 |
unique_key (可选) |
body |
字符串 |
供应商特定的键值对。仅在管理员时返回。 |
响应示例¶
{
"replication_targets": {
"backend_id": "vendor-id-1",
"unique_key": "value1"
}
}
为组启用复制。
响应码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
404 - Not Found |
找不到请求的资源。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
group_id |
路径 |
字符串 |
组的 ID。 |
请求示例¶
{
"enable_replication": {}
}
为组禁用复制。
响应码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
404 - Not Found |
找不到请求的资源。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
group_id |
路径 |
字符串 |
组的 ID。 |
请求示例¶
{
"disable_replication": {}
}
故障转移复制的组。
响应码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
404 - Not Found |
找不到请求的资源。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
group_id |
路径 |
字符串 |
组的 ID。 |
allow_attached_volume |
body |
布尔值 |
是否允许在任何卷处于“使用中”状态时进行故障转移。请参阅 有效的布尔值 |
secondary_backend_id |
body |
字符串 |
故障转移目标后端的 ID。 |
请求示例¶
{
"failover_replication": {
"allow_attached_volume": true,
"secondary_backend_id": "vendor-id-1"
}
}
组快照 (group_snapshots)¶
列出所有、列出所有带详细信息、显示详细信息、创建和删除组快照。
删除组快照。
响应码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
404 - Not Found |
找不到请求的资源。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
group_snapshot_id |
路径 |
字符串 |
组快照的 ID。 |
显示组快照的详细信息。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
404 - Not Found |
找不到请求的资源。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
group_snapshot_id |
路径 |
字符串 |
组快照的 ID。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
group_snapshot |
body |
对象 |
组快照。 |
created_at |
body |
字符串 |
创建资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
group_id |
body |
字符串 |
源组的 UUID。 |
id |
body |
字符串 |
组快照的 ID。 |
name |
body |
字符串 |
组快照的名称。 |
status |
body |
字符串 |
通用组快照的 |
description |
body |
字符串 |
组快照的描述。 |
group_type_id |
body |
字符串 |
组类型的 ID。 |
project_id (可选) |
body |
字符串 |
卷组快照项目 ID。 3.58 版本新增 |
响应示例¶
{
"group_snapshot": {
"id": "6f519a48-3183-46cf-a32f-41815f813986",
"group_id": "6f519a48-3183-46cf-a32f-41815f814444",
"status": "available",
"created_at": "2015-09-16T09:28:52.000000",
"name": "my_group_snapshot1",
"description": "my first group snapshot",
"group_type_id": "7270c56e-6354-4528-8e8b-f54dee2232c8",
"project_id": "7ccf4863071f44aeb8f141f65780c51b"
}
}
列出所有带详细信息的组快照。自 v3.31 起,如果非管理员用户在 URL 中指定了无效的过滤器,API 将返回错误请求。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
all_tenants (可选) |
查询 |
字符串 |
显示所有项目的详细信息。仅限管理员。 |
sort (可选) |
查询 |
字符串 |
逗号分隔的排序键和可选的排序方向列表,格式为 ` 3.29 版本新增 |
sort_key (可选) |
查询 |
字符串 |
按属性排序。有效值为 3.29 版本新增 |
sort_dir (可选) |
查询 |
字符串 |
按一个或多个属性和排序方向的组合进行排序。如果省略组合中的排序方向,则默认为 `desc`。已弃用,推荐使用组合的 `sort` 参数。 3.29 版本新增 |
limit (可选) |
查询 |
整数 |
请求项目页面大小。返回最多限制值数量的项目。使用 3.29 版本新增 |
offset (可选) |
查询 |
整数 |
与 3.29 版本新增 |
marker (可选) |
查询 |
字符串 |
最后一个已查看项目的 ID。使用 3.29 版本新增 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
group_snapshots |
body |
数组 |
一组组快照。 |
id |
body |
字符串 |
组快照的 ID。 |
name |
body |
字符串 |
组快照的名称。 |
status |
body |
字符串 |
通用组快照的 |
description |
body |
字符串 |
组快照的描述。 |
created_at |
body |
字符串 |
创建资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
group_id |
body |
字符串 |
组的 ID。 |
group_type_id |
body |
字符串 |
组类型的 ID。 |
project_id (可选) |
body |
字符串 |
卷组快照项目 ID。 3.58 版本新增 |
响应示例¶
{
"group_snapshots": [
{
"id": "6f519a48-3183-46cf-a32f-41815f813986",
"group_id": "6f519a48-3183-46cf-a32f-41815f814444",
"status": "available",
"created_at": "2015-09-16T09:28:52.000000",
"name": "my_group_snapshot1",
"description": "my first group snapshot",
"group_type_id": "0ef094a2-d9fd-4c79-acfd-ac60a0506b7d",
"project_id": "7ccf4863071f44aeb8f141f65780c51b"
},
{
"id": "aed36625-a6d7-4681-ba59-c7ba3d18c148",
"group_id": "aed36625-a6d7-4681-ba59-c7ba3d18dddd",
"status": "error",
"created_at": "2015-09-16T09:31:15.000000",
"name": "my_group_snapshot2",
"description": "Edited description",
"group_type_id": "7270c56e-6354-4528-8e8b-f54dee2232c8",
"project_id": "7ccf4863071f44aeb8f141f65780c51b"
}
]
}
列出所有组快照,自 v3.31 起,如果非管理员用户在 URL 中指定了无效的过滤器,API 将返回错误请求。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
all_tenants (可选) |
查询 |
字符串 |
显示所有项目的详细信息。仅限管理员。 |
sort (可选) |
查询 |
字符串 |
逗号分隔的排序键和可选的排序方向列表,格式为 ` 3.29 版本新增 |
sort_key (可选) |
查询 |
字符串 |
按属性排序。有效值为 3.29 版本新增 |
sort_dir (可选) |
查询 |
字符串 |
按一个或多个属性和排序方向的组合进行排序。如果省略组合中的排序方向,则默认为 `desc`。已弃用,推荐使用组合的 `sort` 参数。 3.29 版本新增 |
limit (可选) |
查询 |
整数 |
请求项目页面大小。返回最多限制值数量的项目。使用 3.29 版本新增 |
offset (可选) |
查询 |
整数 |
与 3.29 版本新增 |
marker (可选) |
查询 |
字符串 |
最后一个已查看项目的 ID。使用 3.29 版本新增 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
group_snapshots |
body |
数组 |
一组组快照。 |
id |
body |
字符串 |
组快照的 ID。 |
name |
body |
字符串 |
组快照的名称。 |
响应示例¶
{
"group_snapshots": [
{
"id": "6f519a48-3183-46cf-a32f-41815f813986",
"name": "my_group_snapshot1"
},
{
"id": "aed36625-a6d7-4681-ba59-c7ba3d18c148",
"name": "my_group_snapshot2"
}
]
}
创建组快照。
响应码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
404 - Not Found |
找不到请求的资源。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
group_snapshot |
body |
对象 |
组快照。 |
name (可选) |
body |
字符串 |
组快照的名称。 |
description (可选) |
body |
字符串 |
组快照的描述。 |
group_id |
body |
字符串 |
组的 ID。 |
请求示例¶
{
"group_snapshot": {
"group_id": "6f519a48-3183-46cf-a32f-41815f814546",
"name": "first_group_snapshot",
"description": "first group snapshot"
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
group_snapshot |
body |
对象 |
组快照。 |
id |
body |
字符串 |
组快照的 ID。 |
name |
body |
字符串 |
组快照的名称。 |
group_type_id |
body |
字符串 |
组类型的 ID。 |
响应示例¶
{
"group_snapshot": {
"id": "6f519a48-3183-46cf-a32f-41815f816666",
"name": "first_group_snapshot",
"group_type_id": "58737af7-786b-48b7-ab7c-2447e74b0ef4"
}
}
重置组快照的状态。在请求正文中指定 reset_status 操作。
响应码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
404 - Not Found |
找不到请求的资源。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
group_snapshot_id |
路径 |
字符串 |
组快照的 ID。 |
reset_status |
body |
对象 |
重置状态操作。 |
status |
body |
字符串 |
通用组快照的 |
请求示例¶
{
"reset_status": {
"status": "available"
}
}
组类型 (group_types)¶
要创建通用卷组,您必须指定组类型。
更新组类型。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
409 - Conflict |
此资源有一个正在进行的操作,与此请求冲突。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
group_type_id |
路径 |
字符串 |
现有组类型的 UUID。 |
group_type |
body |
对象 |
一个 |
name (可选) |
body |
字符串 |
组的名称。 |
description (可选) |
body |
字符串 |
组类型的描述。 |
is_public (可选) |
body |
布尔值 |
组类型是否公开可见。请参阅 有效的布尔值 |
请求示例¶
{
"group_type": {
"name": "grp-type-001",
"description": "group type 0001",
"is_public": true
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
group_type |
body |
对象 |
一个 |
id |
body |
字符串 |
组类型的 ID。 |
is_public |
body |
布尔值 |
组类型是否公开可见。 |
group_specs (可选) |
body |
对象 |
包含组类型规范的键值对集。 |
description |
body |
字符串 |
组类型的描述。 |
name |
body |
字符串 |
组类型的名称。 |
响应示例¶
{
"group_type": {
"id": "6685584b-1eac-4da6-b5c3-555430cf68ff",
"name": "grp-type-001",
"description": "group type 001",
"is_public": true,
"group_specs": {
"consistent_group_snapshot_enabled": "<is> False"
}
}
}
显示组类型的详细信息。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
404 - Not Found |
找不到请求的资源。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
group_type_id |
路径 |
字符串 |
现有组类型的 UUID。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
group_type |
body |
对象 |
一个 |
id |
body |
字符串 |
组类型的 ID。 |
name |
body |
字符串 |
组类型的名称。 |
is_public |
body |
布尔值 |
组类型是否公开可见。 |
group_specs (可选) |
body |
对象 |
包含组类型规范的键值对集。 |
description |
body |
字符串 |
组类型的描述。 |
响应示例¶
{
"group_type": {
"id": "6685584b-1eac-4da6-b5c3-555430cf68ff",
"name": "grp-type-001",
"description": "group type 001",
"is_public": true,
"group_specs": {
"consistent_group_snapshot_enabled": "<is> False"
}
}
}
显示已配置的默认组类型的详细信息。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
404 - Not Found |
找不到请求的资源。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
group_type |
body |
对象 |
一个 |
id |
body |
字符串 |
组类型的 ID。 |
name |
body |
字符串 |
组类型的名称。 |
is_public |
body |
布尔值 |
组类型是否公开可见。 |
group_specs (可选) |
body |
对象 |
包含组类型规范的键值对集。 |
description |
body |
字符串 |
组类型的描述。 |
响应示例¶
{
"group_type": {
"id": "7270c56e-6354-4528-8e8b-f54dee2232c8",
"name": "group-type-test",
"description": "default group type",
"is_public": true,
"group_specs": {}
}
}
删除组类型。
响应码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
group_type_id |
路径 |
字符串 |
现有组类型的 UUID。 |
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
列出组类型。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
sort (可选) |
查询 |
字符串 |
逗号分隔的排序键和可选的排序方向列表,格式为 ` |
sort_key (可选) |
查询 |
字符串 |
按属性排序。有效值为 `name`、`status`、`container_format`、`disk_format`、`size`、`id`、`created_at` 或 `updated_at`。默认为 `created_at`。API 使用 `sort_key` 属性值的自然排序方向。已弃用,推荐使用组合的 `sort` 参数。 |
sort_dir (可选) |
查询 |
字符串 |
按一个或多个属性和排序方向的组合进行排序。如果省略组合中的排序方向,则默认为 `desc`。已弃用,推荐使用组合的 `sort` 参数。 |
limit (可选) |
查询 |
整数 |
请求项目页面大小。返回最多限制值数量的项目。使用 |
offset (可选) |
查询 |
整数 |
与 |
marker (可选) |
查询 |
字符串 |
最后一个已查看项目的 ID。使用 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
group_types |
body |
数组 |
组类型列表。 |
id |
body |
字符串 |
组类型的 ID。 |
group_specs (可选) |
body |
对象 |
包含组类型规范的键值对集。 |
name |
body |
字符串 |
组类型的名称。 |
is_public |
body |
布尔值 |
组类型是否公开可见。 |
description |
body |
字符串 |
组类型的描述。 |
响应示例¶
{
"group_types": [
{
"is_public": true,
"group_specs": {
"consistent_group_snapshot_enabled": "<is> False"
},
"id": "6685584b-1eac-4da6-b5c3-555430cf68ff",
"name": "group_type1",
"description": "tempest-group-type-description-1261576824"
},
{
"is_public": true,
"group_specs": {},
"id": "8eb69a46-df97-4e41-9586-9a40a7533803",
"name": "group_type2",
"description": "tempest-group-type-description-3927295731"
}
]
}
创建组类型。
响应码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
409 - Conflict |
此资源有一个正在进行的操作,与此请求冲突。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
group_type |
body |
对象 |
一个 |
name |
body |
字符串 |
组类型的名称。 |
description (可选) |
body |
字符串 |
组类型的描述。 |
is_public (可选) |
body |
布尔值 |
组类型是否公开可见。请参阅 有效的布尔值 |
group_specs (可选) |
body |
对象 |
包含组类型规范的键值对集。 |
请求示例¶
{
"group_type": {
"name": "grp-type-001",
"description": "group type 0001",
"is_public": true,
"group_specs": {
"consistent_group_snapshot_enabled": "<is> False"
}
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
group_type |
body |
对象 |
一个 |
id |
body |
字符串 |
组类型的 ID。 |
is_public |
body |
布尔值 |
组类型是否公开可见。 |
group_specs (可选) |
body |
对象 |
包含组类型规范的键值对集。 |
description |
body |
字符串 |
组类型的描述。 |
name |
body |
字符串 |
组类型的名称。 |
响应示例¶
{
"group_type": {
"id": "6685584b-1eac-4da6-b5c3-555430cf68ff",
"name": "grp-type-001",
"description": "group type 001",
"is_public": true,
"group_specs": {
"consistent_group_snapshot_enabled": "<is> False"
}
}
}
组类型规格 (group_types, group_specs)¶
为组类型创建组规格,如果规格键已存在于组规格中,此 API 将更新该规格。
响应码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
group_type_id |
路径 |
字符串 |
现有组类型的 UUID。 |
group_specs |
body |
对象 |
包含组类型规范的键值对集。 |
请求示例¶
{
"group_specs": {
"key1": "value1",
"key2": "value2"
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
group_specs |
body |
对象 |
包含组类型规范的键值对集。 |
响应示例¶
{
"group_specs": {
"key1": "value1",
"key2": "value2"
}
}
列出组类型的全部组规格。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
group_type_id |
路径 |
字符串 |
现有组类型的 UUID。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
group_specs |
body |
对象 |
包含组类型规范的键值对集。 |
响应示例¶
{
"group_specs": {
"key1": "value1",
"key2": "value2"
}
}
显示组类型的组规格。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
group_type_id |
路径 |
字符串 |
现有组类型的 UUID。 |
spec_id |
路径 |
字符串 |
组规格的 ID(键)。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
spec |
body |
字符串 |
与指定键对应的组规格的值。 |
响应示例¶
{
"key1": "value1"
}
更新组类型的组规格。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
group_type_id |
路径 |
字符串 |
现有组类型的 UUID。 |
spec_id |
路径 |
字符串 |
组规格的 ID(键)。 |
spec |
body |
字符串 |
与指定键对应的组规格的值。 |
请求示例¶
{
"key1": "value1"
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
spec |
body |
字符串 |
与指定键对应的组规格的值。 |
响应示例¶
{
"key1": "value1"
}
删除组类型的组规格。
响应码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
错误¶
代码 |
原因 |
|---|---|
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
group_type_id |
路径 |
字符串 |
现有组类型的 UUID。 |
spec_id |
路径 |
字符串 |
组规格的 ID(键)。 |
主机扩展 (os-hosts)¶
仅限管理员,取决于策略设置。
列出、显示主机。
列出所有未被禁用的主机摘要信息。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
admin_project_id |
路径 |
字符串 |
管理员项目的 UUID。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
hosts |
body |
对象 |
OpenStack 块存储主机。 |
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 |
路径 |
字符串 |
托管存储后端的服务器的主机名称。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
host |
body |
对象 |
现有卷所在的 OpenStack 块存储主机。 |
volume_count |
body |
字符串 |
卷的总数。 |
total_volume_gb |
body |
字符串 |
已使用的 GiB(千兆字节)总量。 |
total_snapshot_gb |
body |
字符串 |
快照使用的总 GiB。 |
project |
body |
字符串 |
主机资源所属的项目 ID。在摘要资源中,值为 |
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。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
限制 |
body |
对象 |
限制对象列表。 |
rate |
body |
数组 |
卷复制带宽速率限制,用于缓解实例数据访问速度变慢的问题。 |
absolute |
body |
对象 |
绝对限制对象。 |
totalSnapshotsUsed |
body |
整数 |
已使用的快照总数。 |
maxTotalBackups |
body |
整数 |
最大备份数量。 |
maxTotalVolumeGigabytes |
body |
整数 |
最大卷总量,以 GiB(千兆字节)为单位。 |
maxTotalSnapshots |
body |
整数 |
最大快照数量。 |
maxTotalBackupGigabytes |
body |
整数 |
备份总量的最大值,以 GiB(千兆字节)为单位。 |
totalBackupGigabytesUsed |
body |
整数 |
已使用的备份 GiB(千兆字节)总量。 |
maxTotalVolumes |
body |
整数 |
最大卷数量。 |
totalVolumesUsed |
body |
整数 |
已使用的卷总数。 |
totalBackupsUsed |
body |
整数 |
已使用的备份总数。 |
totalGigabytesUsed |
body |
整数 |
已使用的 GiB(千兆字节)总量。 |
响应示例¶
{
"limits": {
"rate": [],
"absolute": {
"totalSnapshotsUsed": 0,
"maxTotalBackups": 10,
"maxTotalVolumeGigabytes": 1000,
"maxTotalSnapshots": 10,
"maxTotalBackupGigabytes": 1000,
"totalBackupGigabytesUsed": 0,
"maxTotalVolumes": 10,
"totalVolumesUsed": 0,
"totalBackupsUsed": 0,
"totalGigabytesUsed": 0
}
}
}
消息 (messages)¶
列出所有、显示和删除消息。这些是由于操作失败而生成的错误消息,用于了解异步操作失败的原因。
删除消息。
响应码¶
成功¶
代码 |
原因 |
|---|---|
204 - No Content |
请求已满足,但服务未返回任何内容。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
404 - Not Found |
找不到请求的资源。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
message_id |
路径 |
字符串 |
消息的 UUID。 |
显示消息的详细信息。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
404 - Not Found |
找不到请求的资源。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
message_id |
路径 |
字符串 |
消息的 UUID。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
message |
body |
字符串 |
对应于 |
request_id |
body |
字符串 |
消息创建期间请求的 ID。 |
links (可选) |
body |
数组 |
消息的链接。 |
message_level |
body |
字符串 |
消息级别,可能的值目前仅为“ERROR”。 |
event_id |
body |
字符串 |
此消息的事件 ID,此 ID 最终可以转换为 |
created_at |
body |
字符串 |
创建资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
guaranteed_until (可选) |
body |
字符串 |
消息的过期时间,此消息可能在此时间后被删除。 |
resource_uuid (可选) |
body |
字符串 |
消息创建时操作的资源的 UUID。 |
id |
body |
字符串 |
消息的 UUID。 |
resource_type (可选) |
body |
字符串 |
与 |
user_message |
body |
字符串 |
对应于 |
响应示例¶
{
"message": {
"request_id": "req-c1216709-afba-4703-a1a3-22eda88f2f5a",
"links": [
{
"href": "https://:8776/v3/cd609134301246f0a3faa9c3da22082e/messages/c506cd4b-9048-43bc-97ef-0d7dec369b42",
"rel": "self"
},
{
"href": "https://:8776/cd609134301246f0a3faa9c3da22082e/messages/c506cd4b-9048-43bc-97ef-0d7dec369b42",
"rel": "bookmark"
}
],
"message_level": "ERROR",
"event_id": "VOLUME_000002",
"created_at": "2014-10-28T00:00:00-00:00",
"guaranteed_until": "2014-10-28T00:00:00-00:00",
"resource_uuid": "d5f6c517-c3e8-45fe-b994-b11118e4cacf",
"id": "c506cd4b-9048-43bc-97ef-0d7dec369b42",
"resource_type": "VOLUME",
"user_message": "No storage could be allocated for this volume request."
}
}
列出所有消息。自 v3.31 起,如果非管理员用户在 URL 中指定了无效的过滤器,API 将返回错误请求。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
sort (可选) |
查询 |
字符串 |
逗号分隔的排序键和可选的排序方向列表,格式为 ` |
sort_key (可选) |
查询 |
字符串 |
按属性排序。有效值为 `name`、`status`、`container_format`、`disk_format`、`size`、`id`、`created_at` 或 `updated_at`。默认为 `created_at`。API 使用 `sort_key` 属性值的自然排序方向。已弃用,推荐使用组合的 `sort` 参数。 |
sort_dir (可选) |
查询 |
字符串 |
按一个或多个属性和排序方向的组合进行排序。如果省略组合中的排序方向,则默认为 `desc`。已弃用,推荐使用组合的 `sort` 参数。 |
limit (可选) |
查询 |
整数 |
请求项目页面大小。返回最多限制值数量的项目。使用 |
offset (可选) |
查询 |
整数 |
与 |
marker (可选) |
查询 |
字符串 |
最后一个已查看项目的 ID。使用 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
messages |
body |
字符串 |
用户消息集合。 |
request_id |
body |
字符串 |
消息创建期间请求的 ID。 |
links (可选) |
body |
数组 |
消息的链接。 |
message_level |
body |
字符串 |
消息级别,可能的值目前仅为“ERROR”。 |
event_id |
body |
字符串 |
此消息的事件 ID,此 ID 最终可以转换为 |
created_at |
body |
字符串 |
创建资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含 |
guaranteed_until (可选) |
body |
字符串 |
消息的过期时间,此消息可能在此时间后被删除。 |
resource_uuid (可选) |
body |
字符串 |
消息创建时操作的资源的 UUID。 |
id |
body |
字符串 |
消息的 UUID。 |
resource_type (可选) |
body |
字符串 |
与 |
user_message |
body |
字符串 |
对应于 |
响应示例¶
{
"messages": [{
"request_id": "req-c1216709-afba-4703-a1a3-22eda88f2f5a",
"links": [
{
"href": "https://:8776/v3/cd609134301246f0a3faa9c3da22082e/messages/c506cd4b-9048-43bc-97ef-0d7dec369b42",
"rel": "self"
},
{
"href": "https://:8776/cd609134301246f0a3faa9c3da22082e/messages/c506cd4b-9048-43bc-97ef-0d7dec369b42",
"rel": "bookmark"
}
],
"message_level": "ERROR",
"event_id": "VOLUME_000002",
"created_at": "2014-10-28T00:00:00-00:00",
"guaranteed_until": "2014-10-28T00:00:00-00:00",
"resource_uuid": "d5f6c517-c3e8-45fe-b994-b11118e4cacf",
"id": "c506cd4b-9048-43bc-97ef-0d7dec369b42",
"resource_type": "VOLUME",
"user_message": "No storage could be allocated for this volume request."
},{
"request_id": "req-c1216709-afba-4703-a1a3-22eda88f2f5a",
"links": [
{
"href": "https://:8776/v3/cd609134301246f0a3faa9c3da22082e/messages/c506cd4b-9048-43bc-97ef-0d7dec369b42",
"rel": "self"
},
{
"href": "https://:8776/cd609134301246f0a3faa9c3da22082e/messages/c506cd4b-9048-43bc-97ef-0d7dec369b42",
"rel": "bookmark"
}
],
"message_level": "ERROR",
"event_id": "VOLUME_000002",
"created_at": "2014-10-28T00:00:00-00:00",
"guaranteed_until": "2014-10-28T00:00:00-00:00",
"resource_uuid": "d5f6c517-c3e8-45fe-b994-b11118e4df4e",
"id": "c506cd4b-9048-43bc-97ef-0d7dec36d5gt",
"resource_type": "VOLUME",
"user_message": "No storage could be allocated for this volume request."
}]
}
资源过滤器 (resource_filters)¶
列出所有资源过滤器,自微版本 3.33 起可用。
列出过滤器。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
resource (可选) |
查询 |
字符串 |
按资源名称过滤。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
resource_filters |
body |
数组 |
资源过滤器集合。 |
filters |
body |
数组 |
将应用过滤器的资源数组。 |
resource |
body |
字符串 |
将应用过滤器的资源。 |
响应示例¶
{
"resource_filters": [
{
"filters": [
"name",
"status",
"image_metadata", "bootable",
"migration_status"
],
"resource": "volume"
},
{
"filters": [
"name",
"status",
"volume_id"
],
"resource": "snapshot"
}
]
}
服务质量 (QoS) 规格 (qos-specs)¶
仅限管理员,取决于策略设置。
创建、列出、显示详细信息、关联、取消关联、设置键、取消设置键和删除服务质量 (QoS) 规格。
取消 QoS 规格的所有关联。
响应码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
qos_id |
路径 |
字符串 |
QoS 规格的 ID。 |
取消 QoS 规格中的键。
响应码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
qos_id |
路径 |
字符串 |
QoS 规格的 ID。 |
keys |
body |
数组 |
键列表。 |
请求示例¶
{
"keys": [
"key1"
]
}
列出 QoS 规格的所有关联。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
qos_id |
路径 |
字符串 |
QoS 规格的 ID。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
qos_associations |
body |
数组 |
QoS 关联对象集合。 |
type |
body |
字符串 |
QoS 关联类型。 |
id |
body |
字符串 |
QoS 关联 ID。 |
name |
body |
字符串 |
QoS 关联名称。 |
响应示例¶
{
"qos_associations": []
}
将 QoS 规格与卷类型关联。
响应码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
qos_id |
路径 |
字符串 |
QoS 规格的 ID。 |
vol_type_id |
查询 |
字符串 |
卷类型的 ID。 |
从卷类型取消关联 QoS 规格。
响应码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
qos_id |
路径 |
字符串 |
QoS 规格的 ID。 |
vol_type_id |
查询 |
字符串 |
卷类型的 ID。 |
显示 QoS 规格的详细信息。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
用户必须在发出请求之前进行身份验证。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
405 - 方法不允许 |
该方法对于此端点和资源无效。 |
413 - 请求实体过大 |
无法完成此操作。 |
503 - 服务不可用 |
服务现在无法处理请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
qos_id |
路径 |
字符串 |
QoS 规格的 ID。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
qos_specs |
body |
对象 |
一个 |
specs |
body |
对象 |
一个 |
consumer (可选) |
body |
字符串 |
消费者类型。 |
name |
body |
字符串 |
QoS 规格的名称。 |
id |
body |
字符串 |
QoS 规格的生成 ID。 |
links |
body |
数组 |
QoS 规格链接。 |
响应示例¶
{
"qos_specs": {
"specs": {},
"consumer": "back-end",
"name": "reliability-spec",
"id": "0388d6c6-d5d4-42a3-b289-95205c50dd15"
},
"links": [
{
"href": "http://23.253.228.211:8776/v3/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/qos-specs/0388d6c6-d5d4-42a3-b289-95205c50dd15",
"rel": "self"
},
{
"href": "http://23.253.228.211:8776/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/qos-specs/0388d6c6-d5d4-42a3-b289-95205c50dd15",
"rel": "bookmark"
}
]
}
设置 QoS 规格中的键。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
qos_id |
路径 |
字符串 |
QoS 规格的 ID。 |
qos_specs |
body |
对象 |
一个 |
请求示例¶
{
"qos_specs": {
"delay": "1"
}
}
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
qos_specs |
body |
对象 |
一个 |
响应示例¶
{
"qos_specs": {
"delay": "1"
}
}
删除 QoS 规格。
响应码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
qos_id |
路径 |
字符串 |
QoS 规格的 ID。 |
force (可选) |
查询 |
布尔值 |
即使 QoS 规格正在使用,也要将其删除,设置为 |
创建 QoS 规格。
在请求正文中指定一个或多个键值对。
响应码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
qos_specs |
body |
对象 |
一个 |
name |
body |
字符串 |
QoS 规格的名称。 |
请求示例¶
{
"qos_specs": {
"name": "reliability-spec"
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
qos_specs |
body |
对象 |
一个 |
name |
body |
字符串 |
QoS 规格的名称。 |
links |
body |
数组 |
QoS 规格链接。 |
id |
body |
字符串 |
QoS 规格的生成 ID。 |
consumer (可选) |
body |
字符串 |
消费者类型。 |
specs |
body |
对象 |
一个 |
响应示例¶
{
"qos_specs": {
"specs": {},
"consumer": "back-end",
"name": "reliability-spec",
"id": "599ef437-1c99-42ec-9fc6-239d0519fef1"
},
"links": [
{
"href": "http://23.253.248.171:8776/v3/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/qos-specs/599ef437-1c99-42ec-9fc6-239d0519fef1",
"rel": "self"
},
{
"href": "http://23.253.248.171:8776/89afd400-b646-4bbc-b12b-c0a4d63e5bd3/qos-specs/599ef437-1c99-42ec-9fc6-239d0519fef1",
"rel": "bookmark"
}
]
}
列出服务质量 (QoS) 规格。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
300 - 多重选择 |
资源对应于多个表示形式。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
sort (可选) |
查询 |
字符串 |
逗号分隔的排序键和可选的排序方向列表,格式为 ` |
sort_key (可选) |
查询 |
字符串 |
按属性排序。有效值为 `name`、`status`、`container_format`、`disk_format`、`size`、`id`、`created_at` 或 `updated_at`。默认为 `created_at`。API 使用 `sort_key` 属性值的自然排序方向。已弃用,推荐使用组合的 `sort` 参数。 |
sort_dir (可选) |
查询 |
字符串 |
按一个或多个属性和排序方向的组合进行排序。如果省略组合中的排序方向,则默认为 `desc`。已弃用,推荐使用组合的 `sort` 参数。 |
limit (可选) |
查询 |
整数 |
请求项目页面大小。返回最多限制值数量的项目。使用 |
offset (可选) |
查询 |
整数 |
与 |
marker (可选) |
查询 |
字符串 |
最后一个已查看项目的 ID。使用 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
qos_specs |
body |
对象 |
一个 |
specs |
body |
对象 |
一个 |
consumer (可选) |
body |
字符串 |
消费者类型。 |
id |
body |
字符串 |
QoS 规格的生成 ID。 |
name |
body |
字符串 |
QoS 规格的名称。 |
响应示例¶
{
"qos_specs": [
{
"consumer": "back-end",
"id": "62c17294-2e52-4877-a01f-a30388749d9d",
"name": "reliability-spec",
"specs": {}
}
]
}
配额类集扩展 (os-quota-class-sets)¶
仅限管理员,取决于策略设置。
显示和更新项目的配额类。
显示项目的配额类设置。如果配额类资源不存在特定值,则将报告默认值。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
quota_class_name |
路径 |
字符串 |
要设置配额的配额类的名称。 |
admin_project_id |
路径 |
字符串 |
管理员项目的 UUID。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
quota_class_set |
body |
对象 |
一个 |
backup_gigabytes |
body |
整数 |
备份总量的最大值,以 GiB(千兆字节)为单位。 |
backups |
body |
整数 |
最大备份数量。 |
千兆字节 |
body |
整数 |
最大卷总量,以 GiB(千兆字节)为单位。 |
gigabytes_{volume_type} |
body |
整数 |
每个项目和指定卷类型允许的卷和快照的大小(GB)。 |
groups |
body |
整数 |
最大组数。 |
per_volume_gigabytes |
body |
整数 |
每个卷允许的卷大小(GB)。 |
快照 |
body |
整数 |
最大快照数量。 |
snapshots_{volume_type} |
body |
整数 |
每个项目和指定卷类型允许的快照数量。 |
volumes |
body |
整数 |
最大卷数量。 |
volumes_{volume_type} |
body |
整数 |
每个项目和指定卷类型允许的卷数量。 |
id |
body |
字符串 |
配额类集的名称。 |
响应示例¶
{
"quota_class_set": {
"backup_gigabytes": 1000,
"backups": 10,
"gigabytes": 1000,
"gigabytes___DEFAULT__": -1,
"groups": 10,
"id": "test_class",
"per_volume_gigabytes": -1,
"snapshots": 10,
"snapshots___DEFAULT__": -1,
"volumes": 10,
"volumes___DEFAULT__": -1
}
}
更新项目的配额类设置。如果 quota_class_name 键不存在,则 API 将创建一个。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
admin_project_id |
路径 |
字符串 |
管理员项目的 UUID。 |
quota_class_name |
路径 |
字符串 |
要设置配额的配额类的名称。 |
千兆字节 |
body |
整数 |
最大卷总量,以 GiB(千兆字节)为单位。 |
gigabytes_{volume_type} |
body |
整数 |
每个项目和指定卷类型允许的卷和快照的大小(GB)。 |
snapshots (可选) |
body |
整数 |
最大快照数量。 |
snapshots_{volume_type} |
body |
整数 |
每个项目和指定卷类型允许的快照数量。 |
volumes (可选) |
body |
整数 |
最大卷数量。 |
volumes_{volume_type} |
body |
整数 |
每个项目和指定卷类型允许的卷数量。 |
请求示例¶
{
"quota_class_set": {
"volumes": 10,
"gigabytes": 1000,
"snapshots": 10
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
quota_class_set |
body |
对象 |
一个 |
backup_gigabytes |
body |
整数 |
备份总量的最大值,以 GiB(千兆字节)为单位。 |
backups |
body |
整数 |
最大备份数量。 |
千兆字节 |
body |
整数 |
最大卷总量,以 GiB(千兆字节)为单位。 |
gigabytes_{volume_type} |
body |
整数 |
每个项目和指定卷类型允许的卷和快照的大小(GB)。 |
groups |
body |
整数 |
最大组数。 |
per_volume_gigabytes |
body |
整数 |
每个卷允许的卷大小(GB)。 |
快照 |
body |
整数 |
最大快照数量。 |
snapshots_{volume_type} |
body |
整数 |
每个项目和指定卷类型允许的快照数量。 |
volumes |
body |
整数 |
最大卷数量。 |
volumes_{volume_type} |
body |
整数 |
每个项目和指定卷类型允许的卷数量。 |
响应示例¶
{
"quota_class_set": {
"backup_gigabytes": 1000,
"backups": 10,
"gigabytes": 1000,
"gigabytes___DEFAULT__": -1,
"groups": 10,
"per_volume_gigabytes": -1,
"snapshots": 10,
"snapshots___DEFAULT__": -1,
"volumes": 10,
"volumes___DEFAULT__": -1
}
}
配额集扩展 (os-quota-sets)¶
仅限管理员,取决于策略设置。
显示、更新和删除项目的配额。
显示项目的配额。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
admin_project_id |
路径 |
字符串 |
管理员项目的 UUID。 |
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": {
"backup_gigabytes": 1000,
"backups": 10,
"gigabytes": 1000,
"gigabytes___DEFAULT__": -1,
"groups": 10,
"id": "fake_tenant",
"per_volume_gigabytes": -1,
"snapshots": 10,
"snapshots___DEFAULT__": -1,
"volumes": 10,
"volumes___DEFAULT__": -1
}
}
显示项目的配额使用情况。
响应码¶
成功¶
代码 |
原因 |
|---|---|
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": {
"backup_gigabytes": {
"in_use": 0,
"limit": 1000,
"reserved": 0
},
"backups": {
"in_use": 0,
"limit": 10,
"reserved": 0
},
"gigabytes": {
"in_use": 0,
"limit": 1000,
"reserved": 0
},
"gigabytes___DEFAULT__": {
"in_use": 0,
"limit": -1,
"reserved": 0
},
"groups": {
"in_use": 0,
"limit": 10,
"reserved": 0
},
"id": "fake_tenant",
"per_volume_gigabytes": {
"in_use": 0,
"limit": -1,
"reserved": 0
},
"snapshots": {
"in_use": 0,
"limit": 10,
"reserved": 0
},
"snapshots___DEFAULT__": {
"in_use": 0,
"limit": -1,
"reserved": 0
},
"volumes": {
"in_use": 0,
"limit": 10,
"reserved": 0
},
"volumes___DEFAULT__": {
"in_use": 0,
"limit": -1,
"reserved": 0
}
}
}
更新项目的配额。
响应码¶
成功¶
代码 |
原因 |
|---|---|
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":{
"groups": 11,
"volumes": 5,
"backups": 4
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
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": {
"backup_gigabytes": 1000,
"backups": 4,
"gigabytes": 1000,
"gigabytes___DEFAULT__": -1,
"groups": 11,
"per_volume_gigabytes": -1,
"snapshots": 10,
"snapshots___DEFAULT__": -1,
"volumes": 5,
"volumes___DEFAULT__": -1
}
}
删除项目配额,使配额恢复到默认值。
响应码¶
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
admin_project_id |
路径 |
字符串 |
管理员项目的 UUID。 |
获取项目默认配额。
响应码¶
成功¶
代码 |
原因 |
|---|---|
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": {
"backup_gigabytes": 1000,
"backups": 10,
"gigabytes": 1000,
"gigabytes___DEFAULT__": -1,
"groups": 10,
"id": "fake_tenant",
"per_volume_gigabytes": -1,
"snapshots": 10,
"snapshots___DEFAULT__": -1,
"volumes": 10,
"volumes___DEFAULT__": -1
}
}
Workers (workers)¶
请求清理服务,可选择性过滤。此 API 仅在微版本 3.24 或更高版本中可用。
响应码¶
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
多租户云中项目的 UUID。 |
cluster_name (可选) |
body |
字符串 |
资源所在的 OpenStack 块存储集群。如果提供了 host 字段,则此字段为可选。 |
service_id (可选) |
body |
整数 |
清理服务的 UUID。 |
host |
body |
字符串 |
正在主机上运行的服务的名称。 |
binary |
body |
字符串 |
服务的二进制名称。 |
is-up (可选) |
body |
布尔值 |
按 up/down 状态过滤。请参阅 有效布尔值 |
disabled (可选) |
body |
布尔值 |
按禁用状态过滤。请参阅 有效布尔值 |
resource-id (可选) |
body |
字符串 |
待清理资源的 UUID。 |
resource-type (可选) |
body |
字符串 |
与 |
请求示例¶
{
"cluster_name": "test",
"disabled": true,
"host": "host1@lvmdriver",
"service_id": 1,
"is_up": true,
"binary": "cinder-volume",
"resource_id": "b122f668-d15a-40f8-af21-38d218796ab8",
"resource_type": "Volume"
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
host |
body |
字符串 |
正在主机上运行的服务的名称。 |
binary |
body |
字符串 |
服务的二进制名称。 |
id (可选) |
body |
整数 |
清理服务的 UUID。 |
cluster_name (可选) |
body |
字符串 |
资源所在的 OpenStack 块存储集群。如果提供了 host 字段,则此字段为可选。 |
响应示例¶
{
"cleaning": [
{
"id": 1,
"host": "host1@lvmdriver",
"binary": "cinder-volume",
"cluster_name": "test"
}
],
"unavailable": []
}
有效布尔值¶
以下是布尔参数的有效值列表。
[True, ‘True’, ‘TRUE’, ‘true’, ‘1’, ‘ON’, ‘On’, ‘on’, ‘YES’, ‘Yes’, ‘yes’, ‘y’, ‘t’, False, ‘False’, ‘FALSE’, ‘false’, ‘0’, ‘OFF’, ‘Off’, ‘off’, ‘NO’, ‘No’, ‘no’, ‘n’, ‘f’]