Может ли KVM автоматически приостанавливать или отключать гостей при отключении хоста?

У нас есть хост CentOS 5.5 KVM, который запускает гостей с различными версиями CentOS и, возможно, другими ОС позже.

Мы хотели бы иметь возможность (а) автоматически отправлять завершение ACPI всем гостям или (б) приостанавливать всех гостей на диск при выключении хоста.

Существует ли стандартный метод для выполнения любого из этих случаев, или это ситуация, когда вас самих бросают? Спасибо!

4 ответа

Решение

Да.

virsh 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 с небольшими изменениями.

Теперь это стандартная функция в последних Fedora и RHEL 6.

Насколько я знаю, такого стандартного скрипта для CentOS нет. Можно кодировать, но немного опасно, так как вам нужно обращаться с гостями, которые долго отключаются. Простое их уничтожение после истечения времени ожидания может уничтожить данные, а ожидание их может привести к зависанию вашего выключения.

Вместо этого лучше отключить гостей вручную перед перезагрузкой. Некоторое время у меня был скрипт, который заменял выключение и перезагрузку. Этот скрипт предупредил меня, если были запущенные гости (просто lc в списке виртуальных машин) и заблокировал команду, если были запущенные гости.

Гости KVM - просто процессы пользовательского пространства. у вас должен быть какой-то мониторинг процесса. Наиболее распространенным из них является libvirt (он разработан RedHat, так что я думаю, он должен быть доступен в CentOS).

Другие вопросы по тегам