angle-left

Установка драйверов ESXi через BMC

Имеется следующая конфигурация:

  • Tioga Pass Server
  • На борту BMC-mgmt интерфейс и сетевая карточка Mellanox ds25gsfp282p
  • На сервер установлен ESXi 6.0

Esxi 6.0 "из коробки" с указанной картой работать не умеет. Доступный сетевой интерфейс всего один - BMC. По ряду причин, использовать его как управляющий интерфейс для ESXi даже временно возможности нет. Таким образом, мы имеем только доступ к чёрно-жёлтой консоли ESXi через BMC сервера и не можем использовать порты Mellanox-а, потому что гипервизор их не видит. Чтобы это исправить необходимо установить драйвер, вопрос как?

Первое, что нужно сделать - попасть в ESXi Shell. Предварительно нужно разрешить доступ в настройках: Troubleshooting Options -> Enable ESXi Shell. После чего переключаемся на виртуальный терминал нажатием Alt+F1 (обратно можно переключиться нажатием Alt+F2) и логинимся.

Теперь, как описано в инструкции по установке драйвера мы можем выполнить команду lspci | grep Mellanox и увидеть какой серии наша карточка, чтобы скачать правильный драйвер:

lspci | grep Mellanox
0000:02:00.0 Network controller: Mellanox Technologies MT27700 Family [ConnectX-4 Lx]
0000:02:00.1 Network controller: Mellanox Technologies MT27700 Family [ConnectX-4 Lx]

Наша карточка принадлежит серии ConnectX-4 Lx. Вооруженные этим знанием идём на страницу с прошивками Mellanox, а с неё перенаправляемся на сайт VMware, чтобы скачать драйвер (здесь придётся залогиниться). Чтоб по пьяне не запутаться куда тыкать, скриншоты:

Скачав zip архив с драйвером, распаковываем его. Внутри лежит еще один архив (в данном случае MLNX-NATIVE-ESX-ConnectX-4-5_4.15.13.2-10EM-600.0.0.2768847-offline_bundle-7920367.zip) - это offline bundle с драйвером, его то и нужно загрузить в ESXi. Делать это мы будем через BMC, но есть одна трудность: BMC данного сервера умеет подключать в качестве виртуального CDROM только iso файлы (или реальный CDROM, но нас это не интересует). Поэтому скачиваем первую попавшуюся утилиту для создания iso из каталога (например, IsoCreator), создаем iso с единственным zip-файлом и подключаем его в BMC.

Возвращаемся в ESXi Shell. Чтобы получить доступ к содержимому виртуального CDROM, нужно его смонтировать. Для этого обращаемся к чудной статье. Вкратце, нам необходимо выполнить три команды:

vmkload_mod iso9660 #загрузит модуль для работы с ISO
esxcfg-mpath -l | grep -i cd-rom #выведет имя устройства (mpx.vmhba33:C0:T0:L0) для следующей команды
vsish -e set /vmkModules/iso9660/mount mpx.vmhba32:C0:T0:L0 #смонтирует виртуальный CDROM

После чего в /vmfs/volumes появится каталог mpx.vmhba32:C0:T0:L0 и символическая ссылка на него, совпадающая с именем тома (в данном случае mellanoxdrv):

ls -1 /vmfs/volumes/
...
mellanoxdrv
mpx.vmhba32:C0:T0:L0
...

Смотрим на содержимое:

ls /vmfs/volumes/mellanoxdrv/
MLNX-NA0

MLNX-NA0 - имя нужного архива, урезанное до восьми символов. Возможность установки драйвера прямо отсюда, к сожалению, не проверена. В любом случае можно скопировать файл в /tmp, попутно переименовав: cp MLNX-NA0 /tmp/mlnx-drv.zip и выполнить установку (путь к zip файлу обязательно указывать полный):

esxcli software vib install -d /tmp/mlnx-drv.zip
Installation Result
   Message: The update completed successfully, but the system needs to be rebooted for the changes to be effective.
   Reboot Required: true
   VIBs Installed: MEL_bootbank_nmlx5-core_4.15.13.2-10EM.600.0.0.2768847
   VIBs Removed:
   VIBs Skipped:

Всё, выполняем reboot. После перезагрузки появляются новые vmnic1 и vmnic2 интерфейсы, их можно лицезреть в настройках: Configure Management Network -> Network Adapters или в выводе команды esxcli network nic list в том же ESXi Shell.