Завершение работы 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 ответ
Согласно [1], политика "разрешить отключение системы без входа в систему" присутствует в ws2012r2.
Все, что делает KVM (ну, на самом деле, qemu), - это отправка гостевой команды ACPI shutdown, и после этого гость должен обработать запрос. Как и в случае с настоящим оборудованием, альтернативой является ручное отключение или отключение питания (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 (отключите его)