我确实知道Queens正式支持多附件卷,当然升级很容易,但是在Mitaka中我需要它。这里不是升级选项。
这些是我正在使用的版本,必须待在那里!
$ # NOVA
$ nova --version
out: 3.3.1
$ nova-api --version
out: 13.1.4
$ nova-compute --version
out: 13.1.4
$ nova-cert --version
out: 13.1.4
$ nova-scheduler --version
out: 13.1.4
$ nova-conductor --version
out: 13.1.4
$ nova-consoleauth --version
out: 13.1.4
$ # CINDER
$ cinder --version
out: 1.6.0
$ cinder-api --version
out: 8.1.1
$ cinder-scheduler --version
out: 8.1.1
$ cinder-volume --version
out: 8.1.1
$ # KVM
$ kvm --version
out: QUEMU emulator version 2.5.0
我有两个实例-i1和i2,以及一个带有--allow-multiattach
标志的煤渣卷。我们使用nova volume-attach
将音量调到i1。到目前为止,一切都按预期进行。如果再次尝试使用nova volume-attach
将卷附加到i2,则会收到错误消息(说要附加-卷状态必须为“可用”,而不是“使用中”)。
我做了一个小的代码搜索,并决定从该源文件中注释掉从319到326行(两个if语句):https://github.com/openstack/nova/blob/mitaka-eol/nova/volume/cinder.py->他们强制必须提供该卷才能附加它。
结果:
nova show i1
或nova show i2
,我可以看到两个实例在os-extended-volumes:volumes_attached
列表属性中都有音量指令。cinder list
仅显示该卷已附加到一个实例(第一个附加的实例),并且该卷的状态也停留在attaching
上永远cinder show <volume_id>
在attachments
属性中只有一个实例字典virsh dumpxml <instance_name>
缺少共享标志mount
和umount
毫无问题地进行读写。我只需要再次umount
和mount
就可以看到跨实例更改nova volume-detach
时也会出现问题(找不到错误的卷ID),我认为是因为该卷似乎处于附加状态。但是,通过cinder reset-state <volume_id> --state 'in-use' --attach-state 'attached'
从附加状态更改为使用中状态不会更改错误。nova show i1
将正确显示os-extended-volumes:volumes_attached
为空列表。然后,当尝试从第二个实例(i2)分离卷时,将返回错误,表明该卷已被分离。第一次调用分离(i1)后,attachments
中的cinder show volume
条目将被清空问题:
有人有这样的技巧,并在他/她的努力中取得了成功吗? 是否有人能够枚举必须进行修改的代码的所有方面,才能在Mitaka中进行多连接工作?正确吗?
热烈欢迎任何建议!