среда, 4 ноября 2020 г.

Вариант решения проблемы загрузки ESXi серверов раньше хранилища, подключенного по iSCSI

    Ну или не проблемы, а просто такой вот ситуации. Сам столкнулся с ней недавно, искал сначала физические методы решения типа управляемого распределителя питания с возможностью установки задержки на каждую розетку или установки задержки загрузки серверов в их внутренней системе управления (в моем случае серверы HPE - iLo).

   Для начала краткое описание конфигурации. В наличии два сервера ESXi, объединенных в кластер. К ним подключается SAN по iSCSI. Все файлы, требуемые для загрузки виртуальных машин, расположены на этом SAN

   ПРОБЛЕМА: при пропадании питания и последующим его восстановлением серверы, на которых крутится VMware ESXi, загружаются быстрее, чем SAN. В результате в консоли системы можно видеть виртуальные машины в статусе Invalid, а имена машин будут заменены на числовое значение ObjectID. Если дождаться загрузки SAN и перезагрузить серверы, то они восстановятся успешно и будут отображать машины верно.

    Такая проблема наблюдается только в случае, если ваш SAN подключен по iSCSI. Проблема в том, что при загрузке ESXi начинает процесс определения подключенных iSCSI хранилищ. И если в течение таймаута они не находятся, процесс прекращается, а виртуальные машины помечаются как недоступные. Судя по тому, что удалось найти в сети насчет этого - повторно процесс не запускается, только один раз в начале загрузки.

    Для решения проблемы необходимо повторно просканировать iSCSI адаптеры на предмет наличия подключения к хранилищу и подгрузить LUN. Это можно сделать вручную. Для этого необходимо включить доступ по SSH к ESXi, подключиться к нему, после чего ввести в консоли команду:

/sbin/esxcli storage core adapter rescan --all

   Данная команда запускает процесс сканирования повторно. Однако, конечно же, хочется все это автоматизировать, чтобы не вводить команды вручную каждый раз. Для этого необходимо отредактировать файл local.sh, расположенный в разделе /etc/rc.local.d/. Данный файл предназначен для автоматического выполнения команд во время процесса загрузки ESXi. Подробнее о файле и его назначении можно прочесть здесь.

    Общий вид файла после редактирования будет такой:

#----omited--------- 
# Note: This script will not be run when UEFI secure boot is enabled.

/bin/sleep 300

/sbin/esxcli storage core adapter rescan --all

exit 0

    Перед выполнением основной команды ресканирования выполняется задержка на 300 секунд (5 минут). Это сделано для того, чтобы процесс рескана инициализировался через 5 минут после загрузки ESXi. Этого времени будет достаточно для того, чтобы SAN гарантировано загрузился.

   P.S.: Всё равно вариант с управляемым PDU и задержками на каждую розетку мне нравится больше!

Комментариев нет:

Отправить комментарий