Может ли KVM автоматически приостанавливать или отключать гостей при завершении работы хоста?
16
У нас есть хост CentOS 5.5 KVM, который запускает гостей с различными версиями CentOS и, возможно, другими ОС позже.
Мы хотели бы иметь возможность (а) автоматически отправлять завершение ACPI всем гостям или (б) приостанавливать всех гостей на диск при выключении хоста.
Есть ли стандартный метод для выполнения любого из них, или это ситуация, в которой вас самих бросают? Благодарность!
Команда virsh shutdown(или другие реализации «shutdown» с использованием libvirt, как в virt-manager) инструктирует гостевую ОС завершить работу корректно. Со страницы руководства:
shutdown domain-id
Gracefully shuts down a domain. This coordinates with the domain
OS to perform graceful shutdown, so there is no guarantee that it
will succeed, and may take a variable length of time depending on
what services must be shutdown in the domain.
The exact behavior of a domain when it shuts down is set by the
on_shutdown parameter in the domain’s XML definition.
С KVM это должно отправить событие ACPI system_powerdown.
В Fedora и RHEL 6 libvirt-guestsиз коробки поставляется скрипт инициализации, настроенный для приостановки всех гостей при завершении работы системы. Это не особенно волшебно, поэтому можно скопировать это в CentOS 5 с небольшими изменениями.
Хммм. Да, это также подозрительно отсутствует в коде . То, что на самом деле делает libvirt-guestsскрипт - это запуск . (Похоже, что только драйвер UML поддерживает system_powerdown.) Спасибо за подвох! Я обновлю свой ответ и сообщу об ошибке в документации. virsh managedsave
Mattdm
4
Теперь это стандартная функция в последних Fedora и RHEL 6.
Насколько я знаю, такого стандартного скрипта для CentOS нет. Можно кодировать, но немного опасно, так как вам нужно обращаться с гостями, которые долго отключаются. Простое их уничтожение после истечения времени ожидания может уничтожить данные, а ожидание их может привести к зависанию вашего выключения.
Вместо этого лучше отключить гостей вручную перед перезагрузкой. Некоторое время у меня был скрипт, который заменял выключение и перезагрузку. Этот скрипт предупредил меня, если были запущенные гости (просто lc в списке виртуальных машин) и заблокировал команду, если были запущенные гости.
Гости KVM - просто процессы пользовательского пространства. у вас должен быть какой-то мониторинг процесса. наиболее распространенным из них является libvirt (он разработан RedHat, поэтому я думаю, он должен быть доступен в CentOS).
libvirt-guests
скрипт - это запуск . (Похоже, что только драйвер UML поддерживает system_powerdown.) Спасибо за подвох! Я обновлю свой ответ и сообщу об ошибке в документации.virsh managedsave
Теперь это стандартная функция в последних Fedora и RHEL 6.
источник
Насколько я знаю, такого стандартного скрипта для CentOS нет. Можно кодировать, но немного опасно, так как вам нужно обращаться с гостями, которые долго отключаются. Простое их уничтожение после истечения времени ожидания может уничтожить данные, а ожидание их может привести к зависанию вашего выключения.
Вместо этого лучше отключить гостей вручную перед перезагрузкой. Некоторое время у меня был скрипт, который заменял выключение и перезагрузку. Этот скрипт предупредил меня, если были запущенные гости (просто lc в списке виртуальных машин) и заблокировал команду, если были запущенные гости.
источник
Гости KVM - просто процессы пользовательского пространства. у вас должен быть какой-то мониторинг процесса. наиболее распространенным из них является libvirt (он разработан RedHat, поэтому я думаю, он должен быть доступен в CentOS).
источник