2019独角兽企业重金招聘Python工程师标准>>>
一个卷是一个可拆卸的块存储设备,类似于USB硬件驱动。你可以为一台云主机实例添加一个卷。创建和管理卷,结合使用nova和cinder客户端命令。
迁移卷
作为管理员,你可以迁移一个卷从一个地方到另一个地方,它的迁移方式是对用户透明的。你只能迁移没有快照且没有附属在云主机实例上的卷。
卷迁移使用cinder migrate命令,如下:
cinder migrate volumeID destinationHost --force-host-copy True|False
--force-host-copy为True时,执行通用的基于主机的迁移机制,绕过任何驱动程序的优化。
备注:如果卷有快照,指定的目标主机不能接受这个卷。如果用户不是管理员,迁移会失败。
创建一个卷
此例子基于一个镜像创建一个叫my-new-volume的卷。
1.列出镜像,记住要使用的卷ID
2.列出可用的空间,记录要使用的ID
3.创建一个8 gibibytes (GiB)空间的卷
cinder create 8 --display-name my-new-volume --image-id 397e713c-b95b-4186-ad46-6126863ea0a9 --availability-zone nova
4.验证创建是否成功
如果创建成功,它是状态是available。如果它的状态是error,有可能是超过了配额。
根据规定的卷类型创建一个卷
Cinder支持三种方式在创建卷时指定卷类型
1.volume_type。通过命令添加--volume-type参数指定
2.cinder_img_volume_type (via glance image metadata)。引用含有cinder_img_volume_type属性的镜像
3.default_volume_type (via cinder.conf)。在配置文件设置默认值。
volume_type
使用创建命令时添加--volume-type参数指定
cinder create --name--volume-type
cinder_img_volume_type
如果glance image有cinder_img_volume_type属性,当在创建卷时,cinder使用这个参数来指定卷类型。
选择一个有cinder_img_volume_type属性镜像,然后引用它来创建卷
glance image-list
glance image-show a8701119-ca8d-4957-846c-9f4d27f251fa
cinder create --name test --image-id a8701119-ca8d-4957-846c-9f4d27f251fa 1
default_volume_type
如果上面情况不满足,在创建卷时Cinder使用cinder.conf里default_volume_type值来定义。
例如cinder.conf文件配置如下
[default]
default_volume_type = lvmdriver-1
为云主机实例添加卷
1.添加卷到云主机上,需要指定云主机ID和卷ID
nova volume-attach 84c6e57d-a6b1-44b6-81eb-fcb36afd31b5 573e024d-5235-49ce-8332-be1576d323f8 /dev/vdb
2.查看卷信息
cinder show 573e024d-5235-49ce-8332-be1576d323f8
输出显示这个卷是被添加到ID为84c6e57d-a6b1-44b6-81eb-fcb36afd31b5云主机上,可用空间是nova,且是可启动的。
调整卷大小
1.要调整卷的大小,首先要从云主机上拆卸下来。拆卸云主机的卷需要传递云主机ID和卷ID
nova volume-detach 84c6e57d-a6b1-44b6-81eb-fcb36afd31b5 573e024d-5235-49ce-8332-be1576d323f8
nova volume-detach这条命令没有输出信息
2.列出卷
cinder list
可看到卷的状态现在是可用的。
3.调整卷的大小需要传递卷ID和调整后的数值(调整后的数据要大于旧的)
cinder extend 573e024d-5235-49ce-8332-be1576d323f8 10
备注:当扩展一个带有快照的LVM卷时,该卷将会失效。除非在lvm.conf定义了auto_activation_volume_list参数,它才会自动地重激活。
删除卷
1.要删除一个卷,必须从云主机实例上拆卸下来。如何拆卸卷看前面步骤
删除卷可传卷名或者ID
cinder delete my-new-volume
2.再次列出卷,可以看到被删除的卷的状态为deleting
cinder list
当卷被删除成功时,执行cinder list时就不会再出现
转让卷
使用cinder transfer命令可以将卷的所有权转给其他人。卷的捐赠者(原拥有人),要创建一个转让请求,然后将转让ID和授权key给接收人。卷接收人需要使用ID和key来实现接收。
备注:卷的转让步骤适用于在同个云内的租户(tenants)
创建一个转让请求
1.以卷的捐赠者身份登陆,列出可用的卷:
2.以卷的捐赠者身份登陆,给想要转让的卷创建转让授权码
cinder transfer-create volumeID
3.要转让的卷的状态必须是available,否则请求会被拒绝。如果转让请求在数据库里是有效的(没有过期或被删除),卷会被定为awaiting-transfer状态
cinder transfer-create a1cdace0-08e4-4dc7-b9dc-457e9bcfe25f
备注:1. 可以通过--display-name displayName参数来指定卷转让的名字。2.auth_key属性只有在执行cinder transfer-create VOLUME_ID时会显示,执行cinder transfer-show TRANSFER_ID命令不会显示
4.将卷转让的ID和授权KEY发给新拥有人(如用邮件发送)
5.查看等侍转让的卷
cinder transfer-list
当卷被接收后,transfer-list就会查不到待转让的卷
接收一个卷转让请求
1.卷接收者,必须要先从卷的转让人那里获取卷转让ID和授权key
2.执行接收请求
cinder transfer-accept transferID authKey
例如:
删除一个卷转让
1.列出可用的卷查看他们的状态
2.查看卷转让ID
3.执行卷删除命令
cinder transfer-delete transferID
例如
4.验证操作结果
卷的管理和去管理
快照是卷的时间版本点。管理员可以进行卷的管理和去管理。
管理快照
使用cinder snapshot-manage命令进行快照管理
cinder snapshot-manage VOLUME_ID IDENTIFIER --id-type ID-TYPE --name NAME --description DESCRIPTION --metadata METADATA
参数解析:
VOLUME_ID:快照的父亲卷的ID,此卷是被块存储服务管理的。
IDENTIFIER:快照的标识符,名字或者ID
--id-type:后端设备提供的标识符类型。通常是source-name 或 source-id。默认是source-name。
--name:快照的名字,默认是空。
--description:快照的描述,默认是空。
--metadata:键值对的元数据,默认是空。
下面的例子将名为my-volume-id的卷创建名为my-snapshot-id快照
cinder snapshot-manage my-volume-id my-snapshot-id
去快照管理
删除快照使用cinder snapshot-unmanage命令
cinder snapshot-umanage SNAPSHOT
SNAPSHOT:快照的名字或者ID
例如
cinder snapshot-unmanage my-snapshot-id