Вопрос:
Кто-нибудь знает, как я могу заставить виртуальные машины Windows 2012R2 отключиться при отправке сигнала диспетчером ресурсов кластера?
Задний план:
Я использую серверы Windows 2012R2 как виртуальные машины (ВМ) на KVM, используя corosync / pacemaker для обеспечения высокой доступности. Чтобы перенести виртуальную машину с одного узла на другой, виртуальной машине отправляется сигнал выключения. Выпущенная команда:
crm resource migrate p_virtdom_win2012R2
Я считаю, что это эквивалентно:
virsh shutdown <vmname>
После выключения машины она запускается на другом узле.
Проблема, с которой я столкнулся, заключается в том, что виртуальные машины Windows 2012R2, похоже, не реагируют на команду выключения и продолжают работать до истечения времени ожидания операции.
ACPI включен на виртуальном оборудовании, а acpid установлен на хост-машинах ubuntu 14.04 LTS.
Я могу заставить команду migrate работать, если я подключаюсь к консоли и «сдвигаю» экран вверх, чтобы открыть экран входа в систему, однако это непрактично для системы высокой доступности, поскольку она должна корректно завершаться без вмешательства пользователя.
История:
У меня была такая же проблема с серверами Windows 2008, и я смог обойти ее, используя следующие параметры групповой политики:
Computer Configuration\Windows Settings\Security Settings\Local Policies\Security Options\Interactive logon: Do not require CTRL + ALT + DEL
Computer Configuration\Windows Settings\Security Settings\Local Policies\Security Options\Shutdown: Allow system to be shut down without having to log on
Это сохраняет машину на странице входа, показывая значок «Завершение работы» в углу, и отлично работает при миграции.
К сожалению, этот параметр не удерживает Windows 2012R2 на экране входа в систему. Вместо этого он, кажется, позволяет вам проводить пальцем вверх вместо нажатия CTRL + ALT + DEL для доступа к странице входа.
Я также нашел здесь предложение:
https://hashtips.wordpress.com/2013/03/19/shutdown-windows-kvm-virtual-machine/
виртуально «перемещать мышь», чтобы обеспечить завершение работы, однако вход в консоль и перемещение мыши показывает только экран с указанием времени и даты и, похоже, не решает проблему.
РЕДАКТИРОВАТЬ / ПРИМЕЧАНИЕ. Редактирование реестра, которое позволяет виртуальной машине Windows 2012 R2 завершать работу без входа в систему, не установлено на виртуальной машине Windows 2008 - требуется только параметр групповой политики!
Согласно [1] в ws2012r2 присутствует политика «разрешить завершение работы системы без входа в систему».
Все, что делает KVM (ну, на самом деле qemu) - это отправляет гостю команду выключения ACPI, а после этого гость должен обработать запрос. Как и в случае с настоящим оборудованием, альтернативой является выключение вручную или отключение питания (virsh destroy GUEST
в глаголах libvirt)
[1] https://technet.microsoft.com/en-us/library/jj852274(v=ws.11).aspx
Вот несколько дополнительных инструкций, которые я собрал в Интернете:
Измените следующее, чтобы разрешить завершение работы без входа в систему:
Кроме того, настройки питания могут повлиять на способность машины реагировать на команды ACPI, поэтому изменение следующего также может помочь: