Многие администраторы VMware vSphere знают, что иногда в виртуальной инфраструктуре может возникнуть ситуация APD (All Paths Down). Это состояние, когда хост-сервер ESXi не может получить доступа к устройству ни по одному из путей, а также устройство не дает кодов ответа на SCSI-команды. При этом хост не знает, в течение какого времени будет сохраняться такая ситуация.
Типичный пример - отказ FC-коммутаторов в фабрике или выход из строя устройства хранения. В этом случае хост ESXi будет периодически пытаться обратиться к устройству (команды чтения параметров диска) через демон hostd и восстановить пути. В этом случае демон hostd будет постоянно блокироваться, что будет негативно влиять на производительность. Этот статус считается временным, так как устройство хранения или фабрика могут снова начать работать, и работа с устройством возобновится.
При настройке механизма VMware vSphere HA на уровне кластера у вас есть следующие опции реагирования на такую ситуацию:
Disable - ничего не делать с виртуальными машинами
Issue Event - ничего не делать, но сгенерировать событие
Power Off / Restart – Conservative
Power Off / Restart – Aggressive
Последние два варианта - Conservative и Aggressive - не очень ясны. Отличие между ними заключается в том, что в консервативном (Conservative) сценарии механизм VMCP (VM Component Protection) сработает только тогда (выключит ВМ), когда убедится, что виртуальные машины могут быть перезапущены на других хостах кластера. В этом случае ESXi убеждается, что связь с другими хостами есть и у них есть доступ к хранилищу ВМ.
В случае политики Aggressive виртуальные машины будут выключены в любом случае, даже если хост не может убедиться, что они могут быть перезапущены на других хостах кластера. Это может произойти в случае полного распада сети, когда хосты ESXi не видят друг друга по сетям сервисной консоли и сети хранения данных. Но если ESXi точно знает, что машины не перезапустятся на других хостах, то и в случае Aggressive он не будет выключать ВМ. То есть выбор всегда делается в пользу наибольшей доступности виртуальных машин.
Иногда, конечно, лучше убить процесс виртуальной машины, если вы попадаете в ситуацию неопределенности в кластере. Ведь лучше выключить машину, чем иметь от нее подтверждения записи на диск, хотя фактически этой записи не происходит. Если вы хотите минимизировать вероятность поддержания таких ВМ в рабочем состоянии для приложений, когда их хранилище отвалилось полностью, вы можете добавить вот такую настройку vSphere HA для всего кластера: