Поддержка мультиприкрепленного тома в открытой стакане митака
Я знаю, что тома с несколькими подключениями официально поддерживаются в Квинсе, конечно, обновление легко, но мне это нужно в 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, и один том cinder с --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
вызывается на экземпляре, который был присоединен вторым (идентификатор тома ОШИБКИ не найден), я полагаю, потому что том, кажется, находится в состоянии подключения. Однако изменение состояния от присоединения к использованию черезcinder reset-state <volume_id> --state 'in-use' --attach-state 'attached'
не меняет ошибку. - если сначала присоединено (i1), то сначала отсоединено - оно правильно отсоединено.
nova show i1
правильно покажетos-extended-volumes:volumes_attached
как пустой список. Затем при попытке отсоединить том от второго экземпляра (i2) возвращается сообщение об ошибке, что том уже отсоединен.attachments
вход вcinder show volume
освобождается после первого вызова отсоединиться (i1)
ВОПРОСЫ:
Кто-нибудь взломал это так и добился успеха в своих усилиях? Может ли кто-нибудь перечислить все аспекты кода, который необходимо изменить, чтобы заставить работать мульти-вложение в Mitaka? Правильно?
Совет любого рода горячо приветствуется!