Привет коллегам!
Хочу получить совет от умных людей на следующий предмет корректного выключения виртуальных машин при выключении хоста:
Дан набор хостов, которые тянут KVM-виртуалки, которые включаются принудительно (по настройке в virt-manager) при запуске операционной системы хоста.
Симптом: при такой настройке KVM не гасит запущенную виртуальлую машину, а сохраняет её статус. А при запуске - восстанавливает работу виртуалки с "точки останова". Вроде оно и правильно, но есть виртуальные машины (например с тем же астериском) которые такого восстановления не любят, теряют регистрацию у VoIP провайдеров и их приходится после такого восстановительного старта перезапускать. Что мне не очень нравится.
Да и время на сохранение этих образов тоже тратится изрядное. Что мне тоже не очень нравится. Так как подобное выключение делается не по воле админа, на профилактические какие работы, а принудительно. По причине исчерпания заряда на батареях UPS'а. Нету у меня дизель-генератора. И не будет. А бесперебойник держит, максимум, полчаса времени. Электрики же вполне могут отключить електричество (для производства своих работ) и на сильно более долгое время. То есть, виртуалки от UPS'а надо погасить принудительно как-то иначе.
Это легко решается настройкой master/slave режима в NUT. Виртуалки гасятся при падении заряда UPS до 20%, сами хосты гасятся при 15%. Вроде всё хорошо, разве что электричество в этот период не появится...
А теперь усложняем задачу - эти хосты объединяем в pacemaker-кластер и виртуалки делаем кластерными ресурсами. А здесь есть монитор, которому на состояние батарей UPS положить глубоко фиолетово. И который, увидев, что какой ресурс отключился, предпримет действия по его запуску. А далее - goto Симптом. Виртуалки, корректно остановленные по UPS, снова запустятся, батарея разрядится до критичесткого уровня, Pacemaker начнет непонятно какую миграцию этих виртуалок, KVM начнет сохранять их статус.... Словом, какая-то каша получается, а не корректное выключение.
Отсюда два вопроса - каков мировой опыт по "тотальному" единовременному выключению хостов pacemaker-кластера, который тянет виртуальные машины?
И второе - как научить KVM не сохранять состояние запущенных виртуальных машин при своем останове, а выключать их? Или выключать их принудительно (например виндовая машина стоит на диалоге, что в ней зарегистрирован юзер, выключиться ей или нет? и пока руками не ответишь....). В virt-manager'е я такой опции не увидел. Разве что в NUT'овские скрипты virsh shutdown интегрировать...

