Как VMware vSphere реагирует на исчезновение устройства хранения — APD и PDL

apd-pdl

Начиная с версии 5.0 U1, vSphere различает два типа потери доступа к хранилищу: APD (All Paths Down) и PDL (Persistant Device Loss).

PDL имеет место, как правило, когда само устройство хранения живо, а вот с его содержимым какие-то проблемы: у LUN сменился уникальный ID, он был внезапно удалён, повреждён, изменён маскинг на устройстве хранения и т.п. В этом случае сама система хранения распознаёт недоступность LUN и посылает хосту определённые SCSI-коды на эту тему. Если хост распознаёт такие коды на всех путях, он регистрирует PDL.

В случае PDL, машина может быть перезапущена посредством HA на другом хосте. Тут есть нюансы — HA перезапустить ВМ только если все её файлы были расположены на том датасторе, что стал недоступен. Если хоть один виртуальный диск или конфигурационный файл расположен на другом (доступном) датасторе, ВМ перезапущена не будет. Поэтому VMware рекомендует размещать все файлы ВМ в одном месте. Другой нюанс — машина будет выключена (и перезапущена) только в случае обнаружения I/O-активности. В противном случае останется включенной.

Advanced Settings for Virtual Machines:

disk.terminateVMonPDLDefault - FALSE/true.

По умолчанию — False. Если True, то в случае PDL машина будет выключена и НЕ перезапущена.

APD имеет место во всех остальных случаях, когда хранилище почему-то стало недоступно — его внезапно выключили, отключили от SAN, внутренние ошибки были настолько критичные, что оно не смогло передать соответствующие коды хосту или изменился зонинг на фабриках.

В отличие от PDL, при котором фиксируется подтверждённая пропажа устройства хранения «насовсем», APD воспринимается как временное явление. Хост продолжает попытки восстановить подключение до пропавшего устройства хранения. Если внутри ВМ истечёт таймаут  операции ввода-вывода, гостевая ОС может впасть в кому или какой-нибудь «экран смерти».

Более того, сам ESXi-хост может от своих усилий отключиться от vCenter.

С целью избежания подобного нежелательного явления, в vSphere, начиная с версии 5.1, появился такой механизм как APD Handling. Заключается он в том, что в момент события APD запускается таймер, и по истечению определённого времени (по умолчанию 140 секунд), если подключение не было восстановлено, хост признаёт хранилище потерянным и останавливает I/O-активность в его сторону.

Advanced Settings for Host:

Misc.APDHandlingEnable - 1/0

По умолчанию — 1. Если 0, то механизм остановки I/O по таймеру использоваться не будет.

Misc.APDTimeout - 140

По умолчанию — 140. Можно указать своё значение в секундах, по истечению которого I/O-активность будет остановлена.

Добавить комментарий

Please log in using one of these methods to post your comment:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s