卷操作文档:
(my_new_env) likailiang@pubbeta1-nova10:~$ nova |grep volum
[--volume-service-name <volume-service-name>]
update-qos Update Qos metadata on a volume. # 修改卷的iops和带宽范围,全部置为0表示qos不限制
volume-attach Attach a volume to a server.
volume-create Add a new volume.
volume-create-attach
Create a volume and attach it to a server.
volume-delete Remove volume(s).
volume-detach Detach a volume from a server.
volume-list List all the volumes.
volume-live-extend Extend an attached volume.
volume-map Map a volume to a host.
volume-revert Revert a volume to a snapshot.
volume-show Show details about a volume.
volume-snapshot-create
volume-snapshot-delete
volume-snapshot-list
volume-snapshot-show
volume-type-create Create a new volume type.
volume-type-delete Delete a specific flavor
volume-type-list Print a list of available 'volume types'.
volume-unmap Unmap a volume from a host.
volume-update Update volume attachment.
--volume-service-name <volume-service-name>
创建并挂载卷示例说明
(my_new_env) likailiang@pubbeta1-nova10:~$ nova help volume-create-attach
usage: nova volume-create-attach [--snapshot-id <snapshot-id>]
[--display-description <display-description>]
[--force <True|False>]
[--qos_policy <qos_policy>]
[--metadata <key=value>]
<server> <size> <display_name>
Create a volume and attach it to a server.
Positional arguments:
<server> Name or ID of server.
<size> Size of volume in GB
<display_name> Name of the volume to create and attach.
Optional arguments:
--snapshot-id <snapshot-id>
Optional snapshot id to create the volume from.
(Default=None)
--display-description <display-description>
Optional volume description. (Default=None)
--force <True|False> Optional flag to indicate whether ignore `os-server-
status` to attach a volume. (Default=False)
--qos_policy <qos_policy>
Qos policy (Optional, total or rw can be set,
Default=rw)
--metadata <key=value>
Metadata to set on the create volume. (Default=[])
(my_new_env) likailiang@pubbeta1-nova10:~$ nova --debug volume-create-attach 43fb3776-a5c8-4204-8088-157062f3376d 20 create_attach_volum_test
+--------------------+-------------------------------------------------+
| Property | Value |
+--------------------+-------------------------------------------------+
| attachments | [{}] |
| availabilityZone | yiqiao1 |
| createdAt | 2019-06-02T01:43:24.872671 |
| displayDescription | - |
| displayName | create_attach_volum_test |
| id | 206e5ddc-399b-48ff-88f2-2d4dcd605c98 |
| metadata | {"orig_instance_ceph_pool": "switch01_sas_vms"} |
| size | 20 |
| snapshotId | - |
| status | creating |
| volumeType | ceph |
+--------------------+-------------------------------------------------+
挂载卷
(my_new_env) likailiang@pubbeta1-nova10:~$ nova help volume-attach
usage: nova volume-attach [--force <True|False>] <server> <volume> [<device>]
Attach a volume to a server.
Positional arguments:
<server> Name or ID of server.
<volume> ID of the volume to attach.
<device> Name of the device e.g. /dev/vdb. Use "auto" for
autoassign (if supported)
Optional arguments:
--force <True|False> Optional flag to indicate whether ignore `os-server-
status` to attach a volume. (Default=False)
响应示例
{
"volumeAttachment": {
"device": "/dev/vdb", # 【注意】该参数请忽略,卷挂载到云主机上的设备路径请通过cinder描述卷接口进行查询确认
"serverId": "fd783058-0e27-48b0-b102-a6b4d4057cac", #卷被挂载到的云主机的UUID
"id": "ef40e5ca-5e70-44f6-a08b-87c458d4d81d", #卷UUID,不建议使用该参数
"volumeId": "ef40e5ca-5e70-44f6-a08b-87c458d4d81d" #卷UUID,建议使用该参数
}
}
响应状态码说明
200:
接口正常返回并且有body信息。(有无body请参考具体的API响应说明,某些API不符合规范)
202:
接口正常返回并且没有body信息。(有无body请参考具体的api响应说明,某些api不符合规范)
400:
请求参数错误,一般是body非法
401:
授权错误,一般是token非法,或者用户名密码错误。
403:
权限不足
404:
找不到资源,对应资源可能已经被删除或者不存在。
413:
配额不足
500:
内部服务错误,一般是程序的bug。
操作结果确认方法
需要轮询调用 描述卷 接口查询卷状态
- 如果卷描述接口返回的卷状态变为in-use,则表示卷被成功挂载;
- 如果卷描述接口返回的卷状态为attaching,则表示卷处在挂载过程中,需要继续等待;
- 如果卷状态变为error_attaching,则表示卷挂载失败。
- 如果卷状态变为available,则表示卷挂载失败。(挂载卷过程中的某些异常会导致这种情况)