Мы много писали о новых возможностях платформы VMware vSphere 7, но невозможно рассказать обо всех ее нововведениях в одной статье. Сегодня мы расскажем об одной интересной штуке - компоненте Watchdog Timer, который мы упоминали в одном предложении в статье о новых фичах.
Теперь для виртуальных машин доступно специальное устройство virtual watchdog timer (vWDT), которое позволяет администраторам в унифицированном виде узнавать о том, что гостевая операционная система и приложения данной ВМ зависли или вывалились в синий экран. Это особенно важно для кластеризованных приложений в целях поддержания их доступности.
В случае если гостевая ОС и приложения зависли, Watchdog позволяет обнаружить это и среагировать определенным образом, например, перезагрузить машину. Для этого есть механизм таймера обратного отчета, который должен сбрасываться в нормальном режиме функционирования системы.
Это виртуальное устройство пробрасывается в гостевую ОС через механизм BIOS/EFI ACPI и настраивается на уровне гостевой системы или самого BIOS/EFI.
Таблица Watchdog Resource Table (WDRT) имеет несколько регистров, в которые можно записать значения таймера, действия по их истечению и другие параметры. Большинство современных ОС поддерживают интеграцию с таблицей Watchdog Action Table (WDAT), определяющей список доступных действий для таймеров, которые и использует компонент WDRT.
Вот список доступных инструкций WDAT:
WATCHDOG_ACTION_RESET
WATCHDOG_ACTION_QUERY_CURRENT_COUNTDOWN_PERIOD
WATCHDOG_ACTION_QUERY_COUNTDOWN_PERIOD
WATCHDOG_ACTION_SET_COUNTDOWN_PERIOD
WATCHDOG_ACTION_QUERY_RUNNING_STATE
WATCHDOG_ACTION_SET_RUNNING_STATE
WATCHDOG_ACTION_QUERY_STOPPED_STATE
WATCHDOG_ACTION_SET_STOPPED_STATE
WATCHDOG_ACTION_QUERY_REBOOT
WATCHDOG_ACTION_SET_REBOOT
WATCHDOG_ACTION_QUERY_SHUTDOWN
WATCHDOG_ACTION_SET_SHUTDOWN
WATCHDOG_ACTION_QUERY_WATCHDOG_STATUS
WATCHDOG_ACTION_SET_WATCHDOG_STATUS
Для большинства современных серверных ОС Windows и Linux не требуется каких-либо действий для дополнительной настройки таймера, но они могут понадобиться для некоторых старых систем, а FreeBSD или Mac OS X вовсе не поддерживают Watchdog Timer. Вот в целом информация о его поддержке:
Windows 2003 поддерживает Watchdog Resource Table (WDRT)
Windows 2008 и более поздняя поддерживает Watchdog Action Table (WDAT).
Гостевая ОС не требует дополнительной конфигурации.
Linux-дистрибутивы, такие как Ubuntu 18.04 и Red Hat Enterprise Linux 7.6, на базе ядра 4.9 или более позднего поддерживают Watchdog Action Table (WDAT).
Для этого нужен драйвер wdat_wdt.ko.
Для настройки вам понадобится виртуальная машина с VM hardware версии 17 (появилось в vSphere 7). Надо просто добавить устройство Watchdog Timer:
Как вы видите, виртуальный Watchdog Timer можно включить либо на уровне BIOS/EFI (тогда он будет запускаться до старта ОС), либо на уровне гостевой ОС. Помните, что если гостевая ОС не поддерживает это устройство, то машина будет постоянно перезапускаться по команде от устройства Watchdog.
В vSphere Client видна информация о статусе исполнения Watchdog Timer. Не запущен: