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


16

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

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

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

Ответы:


5

Да.

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


Это хорошая идея, у меня есть машина Fedora, я попробую перенести ее на CentOS5. Благодарю.
Эндрю Клегг

Я не вижу on_shutdown в документе: libvirt.org/formatdomain.html#elementsLifecycle
Тиаго Фигейро

Хммм. Да, это также подозрительно отсутствует в коде . То, что на самом деле делает libvirt-guestsскрипт - это запуск . (Похоже, что только драйвер UML поддерживает system_powerdown.) Спасибо за подвох! Я обновлю свой ответ и сообщу об ошибке в документации. virsh managedsave
Mattdm


0

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

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


-2

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.