Назад | Перейти на главную страницу

Завершите работу Windows Server 2012R2 KVM VM

Вопрос:

Кто-нибудь знает, как я могу заставить виртуальные машины 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

Вот несколько дополнительных инструкций, которые я собрал в Интернете:

Измените следующее, чтобы разрешить завершение работы без входа в систему:

  • HKLM \ Software \ Microsoft \ Windows NT \ CurrentVersion \ winlogon - измените "ShutdownWithoutLogon" на 1

Кроме того, настройки питания могут повлиять на способность машины реагировать на команды ACPI, поэтому изменение следующего также может помочь:

  • HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Power \ PowerSettings \ 7516b95f-f776-4464-8c53-06167f40cc99 \ 8EC4B3A5-6868-48c2-BE75-4F3044BE88A7 установите для параметра «Атрибуты» значение 2
  • «Панель управления»> «Система и безопасность»> «Параметры электропитания»> «Изменить настройки плана» в текущем плане электропитания> «Изменить дополнительные настройки электропитания»> «Дисплей» и установите для параметра «Тайм-аут блокировки экрана консоли» значение 0 (отключите его )