一、volume type的相关操作
Cinder中的卷类型,是卷的一种标识,各个OpenStack的发行者可根据自身对系统的约束来定义卷类型的使用。G版的Cinder中与卷类型相关的两种资源:type和extra_specs,对应的API操作有:
创建type
查询(单个/批量)type
删除type
创建type的extra_specs
删除type的extra_specs
查询(单个/批量)type的extra_specs
更新type的extra_specs
二、使用命令行
命令行中与上述两种资源对应的操作有,后面有相应的英文解释:
type-create Create a new volume type.
type-delete Delete a specific volume type
type-key Set or unset extra_spec for a volume type.
type-list Print a list of available 'volume types'.
extra-specs-list Print a list of current 'volume types and extra specs'
能否使用相应命令,依赖于系统中对权限的配置。下面是使用举例:
1. 创建卷类型
root@openstack:~# cinder type-create lvm
+--------------------------------------+------+
| ID | Name |
+--------------------------------------+------+
| fb18bbb9-7989-4b5d-b4d6-f61e5d071338 | lvm |
+--------------------------------------+------+
2. 查询卷类型:
root@openstack:~# cinder type-list
+--------------------------------------+------+
| ID | Name |
+--------------------------------------+------+
| fb18bbb9-7989-4b5d-b4d6-f61e5d071338 | lvm |
+--------------------------------------+------+
3. 设置卷类型的extra_spec
在命令行,设置extra_spec操作分为两种:set和unset。set就是传入一个key/value对;unset只需传入一个key值,意思是删除与这个key值匹配的extra_spec。
由于我当前环境的Cinder版本是1.0.2.20,这个功能有点问题,所以这里只贴出命令:
cinder type-key lvm set volume_backend_name=LVM_iSCSI
4. 查询卷类型的extra_spec
root@openstack:~# cinder extra-specs-list
+--------------------------------------+------+----------------------------------------+
| ID | Name | extra_specs |
+--------------------------------------+------+----------------------------------------+
| 390dc489-7290-4b46-a7d5-64ec0ed0ad8b | lvm | {u'volume_backend_name': u'LVM_iSCSI'} |
+--------------------------------------+------+----------------------------------------+
三、使用RestAPI
我使用的工具是chrome下的扩展工具:Postman,一个图形化的Rest消息客户端,当然你也可以直接使用cURL命令行工具。
1. 创建卷类型
2. 创建type的extra_specs
3. 查询卷类型
经过上面的操作,查询卷类型时的返回应该如下:
4. 删除extra_specs
这里需要注意的是URL中最后面部分就是要删除的extra_specs的key。
四、multi-backend
那么卷类型有什么用呢?这里就不得不说G版中新增的cinder的multi-backend支持了。关于multi-backend的支持,建议大家看官方文档,通过看代码理解吧。