InfiniBand в Windows — это просто
К написанию этой небольшой инструкции меня привела статья на Хабре — Быстрая сеть в домашней лаборатории или как я связался с InfiniBand. Я был очень заинтригован данным вопросом, но каково было моё удивление, когда я не мог найти почти никакой информации по InfiniBand на Windows в домашних условиях, например, в домашней лаборатории или в небольшом офисе. Информация была, конечно. Было описано как использовали InfiniBand, какое оборудование использовали и о полученной производительности сети. Всё точно как у товарища из упомянутой статьи выше. Но не было информации о том, как поднять домашнюю сеть на IB, как настроить её и вообще с чего начать. Проведя время в интернете, я пришёл к выводу, что большинство пользователей, даже тех, кто знаком с сетями и их настройкой, просто просто боятся слова InfiniBand. Для них это что-то сложное, используемое мегакорпорациями для создания суперсетей для суперкомпьютеров. А сочетание слов «InfiniBand дома» приводит их в ужас. А если ещё и коммутатор неуправляемый… Ну, вы поняли.
Из той скудной информации, что мне удалось найти, я вычленил и написал простую инструкцию для новичков по InfiniBand в домашних условиях: какое оборудование нужно, как установить драйвера, как настроить сеть IB между несколькими ПК и неуправляемым коммутатором. Итак, давайте начнем!
Ниже приведены устройства с которыми я настраивал InfiniBand:
Неуправляемый коммутатор Mellanox IS5022, 40Gb/s, InfiniBand.
Два ПК с операционными системами Windows 10 Pro и Windows 11 Pro.
Две сетевые карты Mellanox CX354A HP 544QSFP, 56Gb IB, 40GbE, 2x QSFP. По одной на каждый ПК.
Два кабеля кабеля Mellanox HP 670759-B25, QSFP+ → QSFP+, 56Gb, 3m. По одному на каждый ПК.
Для начала нам нужно установить драйверы и настроить наше оборудование:
Настройка коммутатора: Не требуется, так как он неуправляемый. Просто подключите его к сети и соедините кабелями с сетевыми картами.
Установка драйверов для сетевых карт Mellanox: Для сетевых карт Mellanox требуется установить драйвер актуальной версии в зависимости от используемого адаптера и операционной системы: WinOF для ConnectX-3 и ConnectX-3 Pro, или WinOF-2 для ConnectX-4 и более новых моделей. У нас операционная система Windows 10 (также поддерживается на Windows 11), а сетевая карта — ConnectX-3. Следовательно, мы скачиваем драйвер WinOF версии 5.50.53000 с официального сайта Nvidiaи устанавливаем его на оба компьютера.
Проверка режима работы сетевой карты: Теперь нам нужно убедится, что карта находится в режиме работы InfiniBand. Для это нам понадобятся официальные утилиты MFT. Последняя актуальная версия для нашей карты — MFT 4.22.1–406-LTS. Так же скачиваем с официального сайта Nvidia и устанавливаем на оба компьютера.
Запускаем терминал или командную строку в папке с установленной программой и вводим команду:
mst status
Ищем название нашей карты — mt4099_pciconf0. Смотрим режим работы сетевой карты командой:
mlxconfig -d mt4099_pciconf0 q
В строке LINK_TYPE_P1 (1 порт) и LINK_TYPE_P2 (2 порт) значение ETH (2). Наша карта сейчас работает в режиме Ethernet. Необходимо переключить в режим работы InfiniBand (IB). Для этого воспользуемся командой:
mlxconfig -d /dev/mst/mt4099_pciconf0 set LINK_TYPE_P1=1 LINK_TYPE_P2=1
Где:
1 = InfiniBand — IB (1)2 = Ethernet — ETH (2)
3 = VPI — VPI (3)
Подтверждаем действие и перезагружаем компьютер. Не забываем тоже самое проделать и со вторым компьютером.
Примечание 1: Можно дополнительно проверить режим работы карты в диспетчере устройств:InfiniBand
Ethernet
Примечание 2: Также мы можем настроить режим переключения из InfiniBand в Ethernet и обратно на лету без перезагрузки. Для этого нужно переключить карту в режим VPI:
mlxconfig -d /dev/mst/mt4099_pciconf0 set LINK_TYPE_P1=3 LINK_TYPE_P2=3
Перезагружаемся и пробуем переключить режим работы сетевой карты в драйвере Mellanox. Не в том драйвере, который находится в разделе «Сетевые адаптеры», а тот, который находится в разделе «Системные устройства». Запускаем диспетчер устройств, находим драйвер и переключаем в нужный нам режим работы.
Режим VPI
Проверка коннекта: Теперь проверим коннект сетевых карты с коммутатором. Если мы всё настроили правильно, то индикаторы задействованных портов должны гореть оранжевым цветом.
Поднимаем сеть: Для работы локальной сети InfiniBand требуется диспетчер подсети OpenSM. OpenSM очень полезен, если у вас неуправляемый коммутатор или вы соединяете два или несколько ПК напрямую. Он берет на себя функции коммутатора и управляет вашей сетью. И самое главное, если «серверный» компьютер выйдет из строя, его функции на себя возьмет сосед. И сеть продолжит функционировать без сбоев. Мы уже установили диспетчер сети OpenSM вместе с драйверами WinOF/WinOF2. Осталось запустить OpenSM на первом ПК. Вводим команду в терминале:
opensm.exe
OpenSM запустился и наш ПК перешел в режим мастера (сервера). Диспетчер сети сканирует нашу сеть и автоматически подхватывает подключенные IB-устройства. Проверяем индикаторы на коммутаторе. Если сеть поднялась, то они должны загореться зеленым цветом.
Попробуем пропинговать наш «клиентский» ПК. Оба компьютера у меня получили IP-адреса в одной подсети, поэтому я не стал ничего менять и просто ввел IP, который взял в свойствах адаптера.
Свойства адаптера
Вводим в терминале команду:
ping 169.254.228.137
Ping
Отлично! Пинг есть! Теперь настроим автоматический запуск службы OpenSM. Вводим в терминале команду:
New-Service --Name "OpenSM" --BinaryPathName "`"C:\Program Files\Mellanox\MLNX_VPI\IB\Tools\opensm.exe`" --service -L 128" -DisplayName "OpenSM" --Description "OpenSM for IB subnet" -StartupType Automatic
Сеть InfiniBand настроена и запускается автоматически.
Как видите, ничего сложного в домашней сети на InfiniBand нет. Конечно, это только первый шаг. Далее можно настроить InfiniBand для различных задач, например, настроить Samba Direct для передачи данных между ПК со скоростью 40 Гбит/с. Но сейчас мы не будем углубляться в эту тему. Сегодня я лишь хотел показать, что каждый может легко и недорого настроить сеть для домашней лаборатории или для производственных нужд небольшой компании с десятками гигабит в секунду на технологии InfiniBand.
Автор статьи — Святослав Соколов, системный инженер компании ServerBay