Loading
close

云硬盘

time 更新时间:2022-07-22 14:22:52

云硬盘

创建云硬盘

功能介绍

创建一个云硬盘。
如果要创建一个可启动盘作为虚机的系统盘,请在请求正文中的imageRef属性中设置镜像的UUID。

前提条件

您必须有足够的云硬盘配额来创建一个请求大小的云硬盘。

异步后置条件

  • 具有正确的权限的情况下,您可以通过API调用查看云硬盘状态为available
  • 具有正确的权限的情况下,您可以看到存储系统中创建的云硬盘。

故障排除

  • 如果云硬盘状态显示为error或长时间处于creating状态,创建云硬盘请求可以已经失败。确保您满足先决条件,然后调查存储后端。

URI

示例:POST /v2/{project_id}/volumes

说明:需使用“行内代码”样式。

参数 是否必选 描述
project_id 项目ID。

请求消息

参数 参数类型 是否必选 描述
size integer 云盘的大小,单位为GiB(GiB)。
description String 云盘的描述信息或为空。
imageRef String 创建可启动云盘所需要的镜像UUID。
volume_type String 创建云硬盘所需要的云盘类型ID。
snapshot_id String 要从现有快照创建云盘,请指定云盘快照的UUID。
name String 云盘的名称。

请求示例

示例一:创建一个空白的云硬盘

{
    "volume": {
        "size": 10,
        "description": "test",
        "name": "test",
        "volume_type": "7cac2d14-5560-413d-bd23-9c4f421b3d6f"
    }
}

示例二:创建一个来源为镜像的云硬盘

{
    "volume": {
        "size": 10,
        "description": "test-create-from-image",
        "name": "test-create-from-image",
        "volume_type": "7cac2d14-5560-413d-bd23-9c4f421b3d6f",
        "imageRef": "38aa00aa-9b11-44c7-9ca9-00caafeb77dd"
    }
}

示例三:创建一个来源为云硬盘快照的云硬盘

{
    "volume": {
        "size": 10,
        "description": "test-create-from-snapshot",
        "name": "test-create-from-snapshot",
        "volume_type": "7cac2d14-5560-413d-bd23-9c4f421b3d6f",
        "snapshot_id": "c73392ad-2195-4501-848f-b955a05c8a11"
    }
}

示例四:创建一个来源为云主机快照的云硬盘。

  • URI示例: POST /v3/{project_id}/volumes
  • volume api version的版本必须大于等于3.46。
  • imageRef 的值为glance中镜像列表所选择云主机快照的id。

说明:创建一个来源为云主机快照的云硬盘,需要在请求headers中增加Openstack-Api-Version=volume 3.46。

{
"volume": {
    "size": 20,
    "description": "test create from vm snapshot",
    "name": "test",
    "volume_type": "d1f6ca3d-64c5-43c3-87d3-9336870031dc",
    "imageRef": "6b772841-e91a-4cbb-993b-60c95a52a677"
    }
}

响应消息

参数 参数类型 描述
attachments array 云盘挂载信息。如果该云盘挂载给了虚机,则列表中包括所挂载虚机的UUID、attachment的UUID、挂载的节点名称、云盘的UUID、挂载设备和设备UUID。否则,此列表为空。
availability_zone String 可用域的名称。
snapshot_id String 如果从快照创建云硬盘,该值为快照UUID。否则为空
id String 云硬盘的id.
size integer 云硬盘的大小,单位为GiB(GiB)。
status String 云硬盘的状态。
multiattach boolean 云硬盘是否为共享盘。
name String 云硬盘的名字。
bootable String 是否为可启动盘
volume_type String 云硬盘类型

正常响应示例

{
    "volume": {
        "id": "e13face6-05b6-4e62-8f0e-4a6fa3026645",
        "status": "creating",
        "size": 10,
        "availability_zone": "default-az",
        "created_at": "2022-03-24T03:45:09.432356",
        "updated_at": null,
        "name": "test-create-from-image",
        "description": "test-create-from-image",
        "volume_type": "hdd",
        "snapshot_id": null,
        "source_volid": null,
        "metadata": {},
        "links": [
            {
                "rel": "self",
                "href": "http://cinder-api.openstack.svc.cluster.local:8776/v2/fcdf65835e7048aba9d3e2ce4170f1d2/volumes/e13face6-05b6-4e62-8f0e-4a6fa3026645"
            },
            {
                "rel": "bookmark",
                "href": "http://cinder-api.openstack.svc.cluster.local:8776/fcdf65835e7048aba9d3e2ce4170f1d2/volumes/e13face6-05b6-4e62-8f0e-4a6fa3026645"
            }
        ],
        "user_id": "8be28e616e534d9697a111c0524a48a4",
        "bootable": "false",
        "encrypted": false,
        "replication_status": null,
        "consistencygroup_id": null,
        "multiattach": false,
        "attachments": [],
        "migration_status": null
    }
}

列举云硬盘

功能介绍

查询云硬盘列表。

URI

示例:GET /v2/{project_id}/volumes

说明:需使用“行内代码”样式。

参数 是否必选 描述
project_id 项目ID。

请求消息

参数 参数类型 是否必选 描述
limit integer 查询的最大个数限制
marker String 最后一项的ID。
sort String 排序键和可选排序方向的逗号分隔列表,格式为[:]。有效方向是asc(升序)或desc(降序)。

请求示例

示例一:列举本项目下所有的云硬盘

GET /v2/{project_id}/volumes

示例二:列举所有项目下的云硬盘的详细信息(仅限云管理员)

GET /v2/{project_id}/volumes/detail?all_tenants=1

响应示例

{
    "volumes": [
        {
            "id": "abce1eb3-5647-4026-9659-c29c200fb023",
            "name": "test-create-from-image",
            "links": [
                {
                    "rel": "self",
                    "href": "http://cinder-api.openstack.svc.cluster.local:8776/v2/fcdf65835e7048aba9d3e2ce4170f1d2/volumes/abce1eb3-5647-4026-9659-c29c200fb023"
                },
                {
                    "rel": "bookmark",
                    "href": "http://cinder-api.openstack.svc.cluster.local:8776/fcdf65835e7048aba9d3e2ce4170f1d2/volumes/abce1eb3-5647-4026-9659-c29c200fb023"
                }
            ]
        }]
}

显示云硬盘的详细信息

功能介绍

显示给定云硬盘的详细信息。

前提条件

云硬盘必须存在。

URI

示例:GET/v2/{project_id}/volumes/{volume_id}

说明:需使用“行内代码”样式。

参数 是否必选 描述
project_id 项目ID。
volume_id 云硬盘的id。

响应消息

参数 参数类型 描述
id String 云硬盘id。
status String 云硬盘状态。
size integer 云硬盘大小。
availability_zone String 可用区域的名称。
created_at String 创建时间。
updated_at String 更新时间。
name String 云硬盘名称。
description String 云硬盘描述信息。
volume_type String 云硬盘类型。
snapshot_id(Optional) String 如果从云硬盘快照创建云硬盘,请指定云硬盘快照的UUID。云硬盘和云硬盘快照具有相同的可用性区域和大小。
source_volid(Optional) String 源云盘的UUID。
metadata object 云硬盘的一个或多个元数据键值对。
links array 云硬盘链接。
user_id String 用户的UUID。
bootable boolean 启用或禁用可引导属性。可以从可引导云硬盘创建虚机。
encrypted String 如果为true,则加密此云盘。
replication_status String 云硬盘复制状态。
consistencygroup_id String 一致性组的UUID。
multiattach boolean true代表是共享云硬盘,可挂载到多个云主机。默认值为false。
attachments array 云盘挂载信息。如果该云盘挂载给了虚机,则列表中包括所挂载虚机的UUID、attachment的UUID、挂载的节点名称、云盘的UUID、挂载设备和设备UUID。否则,此列表为空。
migration_status(Optional) String 云硬盘迁移状态。
encrypted boolean 如果为true,则加密此云盘。
os-vol-tenant-attr:tenant_id String 云盘所属的项目ID。
os-vol-mig-status-attr:migstat(Optional) String 此云盘迁移的状态(无表示当前未进行迁移)。
os-vol-mig-status-attr:name_id(Optional) String 此云盘在后端存储上的ID。
os-vol-host-attr:host(Optional) String 云盘的当前后端。

响应示例

{
    "volume": {
        "id": "6bc317ff-523a-4e02-9fbe-3d5df826a61b",
        "status": "available",
        "size": 10,
        "availability_zone": "default-az",
        "created_at": "2022-03-24T03:30:13.000000",
        "updated_at": "2022-03-24T03:30:16.000000",
        "name": "test",
        "description": "test",
        "volume_type": "hdd",
        "snapshot_id": null,
        "source_volid": null,
        "metadata": {},
        "links": [
            {
                "rel": "self",
                "href": "http://cinder-api.openstack.svc.cluster.local:8776/v2/fcdf65835e7048aba9d3e2ce4170f1d2/volumes/6bc317ff-523a-4e02-9fbe-3d5df826a61b"
            },
            {
                "rel": "bookmark",
                "href": "http://cinder-api.openstack.svc.cluster.local:8776/fcdf65835e7048aba9d3e2ce4170f1d2/volumes/6bc317ff-523a-4e02-9fbe-3d5df826a61b"
            }
        ],
        "user_id": "8be28e616e534d9697a111c0524a48a4",
        "bootable": "false",
        "encrypted": false,
        "replication_status": null,
        "consistencygroup_id": null,
        "multiattach": false,
        "attachments": [],
        "migration_status": null,
        "os-vol-tenant-attr:tenant_id": "fcdf65835e7048aba9d3e2ce4170f1d2",
        "os-vol-mig-status-attr:migstat": null,
        "os-vol-mig-status-attr:name_id": null,
        "os-vol-host-attr:host": "cinder-volume-worker@hdd#hdd"
    }
}

删除云硬盘

功能介绍

删除一个云硬盘。

前提条件

  • 云盘状态必须为available,error
  • 您将要删除的云硬盘不能存在云硬盘快照。

异步后置条件

  • 云硬盘在后端存储中已经删除。
  • 云硬盘在云平台中已经删除。

故障排除

  • 如果云盘状态保持在delete或变成error_deleting,请求失败。 请确保满足先决条件,然后调查存储后端。
  • 块存储管理的云盘不会从存储系统中删除。

URI

示例:DELETE /v2/{project_id}/volumes/{volume_id}

说明:需使用“行内代码”样式。

参数 是否必选 描述
project_id 项目ID。
volume_id 云硬盘的id。

云硬盘快照回滚

功能介绍

将云硬盘恢复到最近快照的状态和数据。该命令仅在微版本 3.40 及以上版本中可用。云硬盘可以通过快照回滚的方式,将快照信息还原到原盘。

前提条件

  • 云盘状态必须为availablein-use状态
  • 只支持选择云硬盘最新的快照点进行快照回滚
  • 不支持云硬盘扩容后选择扩容前创建的快照进行快照回滚

异步后置条件

  • 云硬盘中的数据会回滚到选择的快照点时的数据。

URI

示例:POST /v3/{project_id}/volumes/{volume_id}/action

说明:需要在请求headers中增加Openstack-Api-Version=volume 3.40。

参数 是否必选 描述
project_id 项目ID。
volume_id 云硬盘的id。

请求消息

参数 参数类型 描述
revert String 快照回滚的动作
snapshot_id String 云硬盘快照的 UUID。API 使用此快照还原云盘。

请求示例

{
    "revert": {
        "snapshot_id": "5aa119a8-d25b-45a7-8d1b-88e127885635"
    }
}

云硬盘扩容

功能介绍

扩展云硬盘的大小。

前提条件

  • 在使用 microversion3.42之前的版本,云盘状态必须是available才支持扩容接口. 从 microversion3.42 开始,in-use状态的云盘, 可以进行扩容操作。请注意,reserved不是扩展的有效状态。
  • 用户配额必须有足够的云盘存储空间。
  • 必须存在足够的存储量才能扩展云盘。

异步后置条件

  • 如果请求处理成功,则云盘状态将更改为 extending

  • 成功完成扩容操作后,云盘状态将恢复到其原始值。

故障排除

error_extending云盘状态指示请求失败。确保您满足先决条件并重试请求。如果请求再次失败,请调查存储后端。

URI

示例:POST /v3/{project_id}/volumes/{volume_id}/action

说明:如果需要在云硬盘in-use状态下进行扩容操作,需要在请求headers中增加Openstack-Api-Version=volume 3.42。

参数 是否必选 描述
project_id 项目ID。
volume_id 云硬盘的id。

请求消息

参数 参数类型 描述
os-extend object 云硬盘扩容的动作
new_size integer 云硬盘的新大小,以千兆字节 (GiB) 为单位。

请求示例

{
    "os-extend": {
        "new_size": 3
    }
}

云硬盘重置状态

功能介绍

重置云盘的状态、云盘挂载状态。仅限管理员用户使用。

URI

示例:POST /v3/{project_id}/volumes/{volume_id}/action

参数 是否必选 描述
project_id 项目ID。
volume_id 云硬盘的id。

请求消息

参数 参数类型 描述
os-reset_status object 重置状态的动作
attach_status String 云硬盘的状态。
attach_status(可选参数) String 云硬盘挂载状态。
migration_status(可选参数) String 云硬盘迁移状态。

请求示例1

{
    "os-reset_status": {
        "status": "error"
    }
}

请求示例2

{
    "os-reset_status": {
        "status": "available",
        "attach_status": "detached"
    }
}

正常响应代码

200

错误码

400,401

此篇文章对你是否有帮助?
没帮助
locked-file

您暂无权限访问该产品