воскресенье, 23 сентября 2012 г.

Изменения обработки отказов СХД в vSphere 5.1

В vSphere были добавлены два типа отказов СХД, обрабатываемых гипервизором – APD (All Paths Down) в случае выхода временного пропадания всех путей до LUN, и PDL (Permanent Device Lost) – когда LUN считается потерянным безвозвратно.

С версии 5.0 гипервизор научился отличать PDL от APD, так как в первом случае СХД отправляет инициатору соответствующие SCSI команды о том, что LUN удалён и данные с него соотв. недоступны. Таким образом, vmkernel знает, что IO запросы к данному LUN можно сразу отбрасывать, а не ждать ответа (что в конечном итоге могло привести к зависанию корневого процесса hostd).

В vSphere 5.1 представлены новые параметры для управления поведением гипервизора при потере доступа к хранилищу данных. Опция Misc.APDHandlingEnable указывает механизм обработки какой версии 5.0 (0) или 5.1 (1) необходимо использовать, и количество попыток передачи IO к массиву.

В случае использования нового механизма операции ввода-вывода будут отбрасываться со статусом NO_CONNECT через 140 секунд после того как ESXi обнаружит что массив не доступен. Изменять этот таймаут позволяет опция Misc.APDTimeout. Как только один из путей к массиву будет восстановлен – ESXi продолжит передавать данные.

Некоторые массивы используют схему 1 target – 1 LUN. Если на таком массиве удалить LUN, то массив не будет возвращать SCSI команды о том, что LUN не доступен. С версии 5.1 гипервизор способен проанализировать ответ массива и определить, что СХД сбрасывает попытки подключения именно по причине недоступности целевого target, после чего присваивает ему состояние PDL и прекращает попытки подключения.

2 комментария:

  1. "В случае использования нового механизма операции ввода-вывода будут отбрасываться со статусом NO_CONNECT через 140 секунд после того как ESXi обнаружит что массив не доступен."

    т.е. в течении 140 секунд hostd все таки будет пытаться восстановить пути к лунам и следовательно есть вероятность зависания в этот промежуток? на сколько я знаю, чем больше запросов к дискам от виртуалок будет пытаться обработать hostd во время APD, тем скорее он зависнет.

    ОтветитьУдалить
  2. Да, есть вероятность что она зависнет на 140 секунд. Через 140 секунд произойдёт сброс всех зависших IO и hostd вернётся к жизни.

    ОтветитьУдалить