OpenStack Queens 平台于2月28日正式发布,这是该开源云平台的第17版。OpenStack Queens 增加了多项新功能,也优化增强了多项旧功能,包括虚拟 GPU( vGPU )支持和容器集成的改进。几个新项目也在 OpenStack Queens 这一里程碑中露面,包括提供管理硬件和软件加速资源框架的Cyborg 。 Queens 发布了一些强大的面向企业的功能,其中最引人注目的是 Cinder 中的 Multi-Attach 功能。Cinder Multi-Attach 使运维者能够将相同的Cinder 卷加载到多个 VM 中。如果一个节点关闭,另一个节点能够接管并访问该卷。
使用 devstack 安装 openstack (stable/queens),这里不再赘述。
Multi-Attach 功能在 cinder microversion >= 3.50 版本可用,查看 stable/queens 的cinder版本
复制
# cinder --version
3.5.0
# nova version-list
Client supported API versions:
Minimum version 2.1
Maximum version 2.53
Server supported API versions:
+------+-----------+----------------------+-------------+---------+
| Id | Status | Updated | Min Version | Version |
+------+-----------+----------------------+-------------+---------+
| v2.0 | SUPPORTED | 2011-01-21T11:33:21Z | | |
| v2.1 | CURRENT | 2013-07-23T11:33:21Z | 2.1 | 2.60 |
+------+-----------+----------------------+-------------+---------+
支持的驱动
Libvirt KVM (s390x): complete
Libvirt Virtuozzo CT: missing
Libvirt KVM (ppc64): complete
Libvirt KVM (x86): complete
Libvirt KVM (aarch64): unknown
Libvirt LXC: missing
Hyper-V: missing
Libvirt QEMU (x86): complete
XenServer: missing
Libvirt Virtuozzo VM: complete
Libvirt Xen: complete
PowerVM: missing
Ironic: missing
VMware vCenter: missing
# virsh --version
3.2.0
# qemu-img --version
qemu-img version 2.9.0(qemu-kvm-ev-2.9.0-16.el7_4.13.1)
Copyright (c) 2003-2017 Fabrice Bellard and the QEMU Project developers
== 测试中发现 novaclient 版本过低,无法调用 nova api 2.6版本,升级novaclient ==
复制
# pip install -U python-novaclient
综上,本地环境满足上述要求,可以进行 Multi-Attach 测试。
复制
# cinder type-create multiattach
# cinder type-key multiattach set multiattach="<is> True"
复制
# cinder create 10 --name multiattach-volume --volume-type <volume_type_uuid>
复制
# openstack server create --image CentOS-7-x86_64 --flavor ds1G --network private test01
# openstack server create --image CentOS-7-x86_64 --flavor ds1G --network private test02
复制
# nova volume-attach test01 <volume_uuid>
+----------+--------------------------------------+
| Property | Value |
+----------+--------------------------------------+
| device | /dev/vdb |
| id | ad8c6437-d842-40f7-b3d8-ee15d9623370 |
| serverId | 972393a0-346e-419d-8933-2562290829cf |
| volumeId | ad8c6437-d842-40f7-b3d8-ee15d9623370 |
+----------+--------------------------------------+
复制
# nova volume-attach test02 <volume_uuid>
+----------+--------------------------------------+
| Property | Value |
+----------+--------------------------------------+
| device | /dev/vdb |
| id | ad8c6437-d842-40f7-b3d8-ee15d9623370 |
| serverId | 93b82c8e-4155-4ad5-9366-6eb2a9c9d34d |
| volumeId | ad8c6437-d842-40f7-b3d8-ee15d9623370 |
+----------+--------------------------------------+
复制
# cinder show ad8c6437-d842-40f7-b3d8-ee15d9623370
+--------------------------------+----------------------------------------------------------------------------------+
| Property | Value |
+--------------------------------+----------------------------------------------------------------------------------+
| attached_servers | ['93b82c8e-4155-4ad5-9366-6eb2a9c9d34d', '972393a0-346e-419d-8933-2562290829cf'] |
| attachment_ids | ['bb764f56-b3bb-4a32-9859-5a25c8eb1287', 'deddf8b6-8b6c-4bb4-b309-7eb78d135637'] |
| availability_zone | nova |
| bootable | false |
| consistencygroup_id | None |
| created_at | 2018-03-06T05:43:01.000000 |
| description | None |
| encrypted | False |
| id | ad8c6437-d842-40f7-b3d8-ee15d9623370 |
| metadata | attached_mode : rw |
| migration_status | None |
| multiattach | True |
| name | multiattach-volume |
| os-vol-host-attr:host | queens.domian.tld@lvmdriver-1#lvmdriver-1 |
| os-vol-mig-status-attr:migstat | None |
| os-vol-mig-status-attr:name_id | None |
| os-vol-tenant-attr:tenant_id | ce5300160e244953bcfab8b9ebf06705 |
| replication_status | None |
| size | 10 |
| snapshot_id | None |
| source_volid | None |
| status | in-use |
| updated_at | 2018-03-06T06:16:44.000000 |
| user_id | 6b1155688e044f5899a5dd154fa269bd |
| volume_type | multiattach |
+--------------------------------+----------------------------------------------------------------------------------+
如图 test01 和 test02 都能查看到磁盘信息
接下来在 test02 上面创建分区挂载磁盘到 /mnt 并写入文件
接着关闭 test02 模拟出现故障,然后在 test01 上挂载分区,查看文件(可能需要手动刷新下分区表)
RO/RW 警告(第二挂载 RW 权限的问题) 默认情况下第二次挂载的采用 read/write 模式, 会导致一些问题,尤其是卷迁移之类的操作,后期会有一些改进支持自定义第二个挂载的模式。