В версии 3.5 виртуальной инфраструктуры VMware появилась новая интересная возможность под названием Virtual Machine Failure Monitoring (VMFM). Эта возможность позволяет серверу ESX следить за состоянием виртуальной машины через VMware Tools и перезапускать гостевую систему в случае ее отказа (зависание, синий экран смерти - BSOD).
Традиционным решением по высокой доступности является VMware High Availability (HA), перезапускающее виртуальные машины на других хостах в случае отказа одного из серверов VMware ESX. Возможности VMFM позволяют расширить функциональность HA на индивидуальные виртуальные машины в пределах хоста. По аналогии с HA, виртуальные машины также обмениваются «хартбитами» (heartbeats) с хостом ESX Server через VMware Tools.
Новая функциональность VMFM отключена по умолчанию, поскольку она не поддерживается в производственной среде и имеет статус «experimental». Для того чтобы попробовать ее в деле, вам необходимы следующие начальные условия:
Серверы ESX версии 3.5 и выше.
VirtualCenter версии 2.5 и выше.
В гостевых ОС установлена последняя версия пакета VMware Tools.
ESX серверы находятся в кластере высокой доступности (HA enabled).
Чтобы включить и настроить VMFM, в VI Client откройте свойства кластера, выберите категорию VMware HA и нажмите Advanced Options. Добавьте следующие значения:
das.FailureInterval – 30
Виртуальная машина объявляется зависшей и перезагружается, если в течение 30 секунд не получено хартбитов.
das.minUptime – 120
Это время дается на загрузку виртуальной машины и инициализацию VMware Tools для обмена хартбитами
das.maxFailures – 2
Максимальное число автоматических перезагрузок из-за неполучения хартбитов, допустимое за время, указанное в параметре das.maxFailureWindow. Если значение последнего равно -1, то das.maxFailures означает абсолютное число отказов или зависаний ОС, после которого автоматические перезагрузки виртуальной машины прекращаются и отключается VMFM.
das.maxFailureWindow – 86400
Время, в течение которого рассматривается значение параметра das.maxFailures. В данном случае, за сутки (86400) может произойти 2 перезапуска виртуальной машины по инициативе VMFM. Если перезагрузок будет больше, VMFM отключится. Значение параметра das.maxFailureWindow может быть также равно -1. В этом случае время рассмотрения числа отказов для отключения VMFM – не ограничено.
Теперь для того, чтобы проверить на практике работоспособность этой возможности, делаем следующее:
Устанавливаем два параметра в расширенных настройках кластера: das.vmFailoverEnabled – true das.FailureInterval – 30
Загружаем гостевую ОС Windows на одном из серверов ESX кластера VMware HA. Windows имеет возможность переходить в синий экран смерти (BSOD, Blue Screen of Death) вручную по запросу пользователя (это сделано для целей отладки, более подробно здесь). Чтобы включить эту возможность, открываем редактор реестра и переходим в ветку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters, далее создаем в этом ключе реестра значение типа REG_DWORD с именем CrashOnCtrlScroll и значением 1:
Перезагружаем гостевую систему.
Теперь нам необходимо отключить автоматическую перезагрузку при выходе системы в синий экран. Для этого открываем Свойства компьютера, переходим на вкладку Advanced и нажимаем кнопку Settings в категории Startup and Recovery. В категориии System Failure убираем галку со значения Automatically restart, нажимаем Ok
Теперь можно вывести систему в синий экран: удерживая ПРАВЫЙ Ctrl, два раза нажимаем клавишу Scroll Lock и получаем наш BSOD:
Ждем от 30 секунд до минуты - наша гостевая система должна автоматически перезегрузиться.