Настройка соединения по SRP (InfiniBand) для Linux
OFED (OpenFabrics Enterprise Distribution) – программное обеспечение с открытым исходным кодом для приложений, работающих по RDMA.
NVIDIA OFED («MLNX_OFED»; иногда встречается вариант «MOFED») – версия OFED от Nvidia, которая поддерживает два типа межсетевого взаимодействия с использованием одних и тех же API RDMA и обхода (bypass) ядра: InfiniBand и Ethernet.
SRP (SCSI RDMA Protocol) – протокол блочного доступа, реализующий преимущества функций RDMA и обхода (bypass) ядра, предоставляемые архитектурой InfiniBand.
Подробная инструкция по настройке соединения по SRP представлена на официальном сайте Nvidia. Пример настройки прямого подключения хоста к DC-системе см. в секции Пример настройки хоста Ubuntu 22.04.
Требования и особенности
- При работе с двухпортовыми адаптерами NVIDIA VPI не используйте конфигурацию, при которой один порт работает в режиме Ethernet, a другой – в режиме InfiniBand.
- Версия семейства (или серии) адаптера, используемого в качестве таргета, должна быть не ниже версии семейства (или серии) адаптера, используемого в качестве инициатора.
- В DC-системе рекомендуем подключать сначала таргет с управляющего узла.
Пример настройки хоста Ubuntu 22.04
Характеристики полигона:
- хост с ОС Ubuntu 22.04 и двухпортовым VPI IB-адаптером MCX456A-ECAT;
- DC-система RAIDIX, на каждом узле по одному двухпортовому VPI IB-адаптеру MCX456A-ECAT;
- прямая коммутация хоста и СХД;
- узел 1 – управляющий для RAID с LUN «rd_lun0».

Чтобы настроить подключение по SRP:
- Убедитесь, что предыдущие шаги настройки блочного подключения из главы Блочный доступ выполнены.
-
Убедитесь, что на хосте установлен MLNX_OFED или установите его:
-
Проверьте наличие MLNX_OFED:
# ofed_info -
Установите MLNX_OFED:
- Скачайте ISO-файл на официальном сайте Nvidia.
-
Смонтируйте ISO-файл:
# mount -o ro,loop MLNX_OFED_LINUX-24.10-3.2.5.0-ubuntu22.04-x86_64.iso /mnt/iso/где
- MLNX_OFED_LINUX-24.10-3.2.5.0-ubuntu22.04-x86_64.iso – путь до ISO-файла;
- /mnt/iso/ – точка монтирования.
-
Запустите установку:
# /mnt/iso/mlnxofedinstallгде
- /mnt/iso/ – точка монтирования.
-
-
Настройте на хосте соединение по SRP:
-
Загрузите SRP-инициатор:
- В файле /etc/infiniband/openib.conf в строке SRP_LOAD установите значение yes.
-
Примените изменение:
# /etc/init.d/openibd restart
-
Проверьте статус драйвера MST (англ. «Mellanox Software Tools»):
# mst statusПри необходимости, запустите драйвер:
# mst start -
Убедитесь, что порты IB-адаптера отображаются:
# lspci | grep MellanoxВывод команды:
02:00.0 Infiniband controller: Mellanox Technologies MT27700 Family [ConnectX-4] 02:00.1 Infiniband controller: Mellanox Technologies MT27700 Family [ConnectX-4] -
Получите имя IB-адаптера (значение поля «PCI Device Name»):
# mlxfwmanagerВывод команды:
Querying Mellanox devices firmware ... Device #1: ---------- Device Type: ConnectX4 Part Number: MCX456A-ECA_Ax Description: ConnectX-4 VPI adapter card; EDR IB (100Gb/s) and 100GbE; dual-port QSFP28; PCIe3.0 x16; ROHS R6 PSID: MT_2190110032 PCI Device Name: /dev/mst/mt4115_pciconf0 Base GUID: 248a0703003e0cb2 Versions: Current Available FW 12.28.2006 N/A PXE 3.6.0102 N/A UEFI 14.21.0017 N/A Status: No matching image found -
Для адаптеров VPI: установите режим работы портов SRP («IB»):
# mlxconfig -d /dev/mst/mt4115_pciconf0 set LINK_TYPE_P1=1 LINK_TYPE_P2=1где
- /dev/mst/mt4115_pciconf0 – имя IB-адаптера (значение поля «PCI Device Name» из предыдущего шага);
- LINK_TYPE_P1=1 – установка режима работы SRP для первого порта IB-адаптера;
- LINK_TYPE_P2=1 – установка режима работы SRP для второго порта IB-адаптера;
Если режим работы портов уже установлен в SRP (значение «IB(1)» в столбце «Next Boot»), введите «n».
Вывод команды:
Device #1: ---------- Device type: ConnectX4 Name: MCX456A-ECA_Ax Description: ConnectX-4 VPI adapter card; EDR IB (100Gb/s) and 100GbE; dual-port QSFP28; PCIe3.0 x16; ROHS R6 Device: /dev/mst/mt4115_pciconf0 Configurations: Next Boot New LINK_TYPE_P1 IB(1) IB(1) LINK_TYPE_P2 IB(1) IB(1) Apply new Configuration? (y/n) [n] : -
Проверьте имена портов и их состояние:
# ibstatВывод команды:
CA 'mlx5_0' CA type: MT4115 Number of ports: 1 Firmware version: 12.28.2006 Hardware version: 0 Node GUID: 0x248a0703003e0cb2 System image GUID: 0x248a0703003e0cb2 Port 1: State: Initializing Physical state: LinkUp Rate: 56 Base lid: 1 LMC: 0 SM lid: 1 Capability mask: 0x2659e84a Port GUID: 0x248a0703003e0cb2 Link layer: InfiniBand CA 'mlx5_1' CA type: MT4115 Number of ports: 1 Firmware version: 12.28.2006 Hardware version: 0 Node GUID: 0x248a0703003e0cb3 System image GUID: 0x248a0703003e0cb2 Port 1: State: Initializing Physical state: LinkUp Rate: 56 Base lid: 1 LMC: 0 SM lid: 1 Capability mask: 0x2659e84a Port GUID: 0x248a0703003e0cb3 Link layer: InfiniBandгде
- mlx5_0 в строке CA 'mlx5_0' – имя первого порта;
- mlx5_1 в строке CA 'mlx5_1' – имя второго порта;
-
Проверьте доступные таргеты на портах mlx5_0 и mlx5_1:
# srp_daemon -o -i mlx5_0Вывод команды:
IO Unit Info: port LID: 0001 port GID: fe80000000000000248a0703003e0cb2 change ID: 0001 max controllers: 0x10 controller[ 1] GUID: 008a0703003e0cb2 vendor ID: 000002 device ID: 001013 IO class : 0100 Maximum size of Send Messages in bytes: 8276 ID: SCST SRP target service entries: 1 service[ 0]: 008a0703003e0cb2 / SRP.T10:008a0703003e0cb2 -
Подключите порты к таргетам:
# srp_daemon -o -e -n -i mlx5_0 # srp_daemon -o -e -n -i mlx5_1 -
Убедитесь, что LUN доступен хосту:
# lsscsiВывод команды:
[1:0:0:0] cd/dvd QEMU QEMU DVD-ROM 2.5+ /dev/sr0 [7:0:0:0] disk ATA QEMU HARDDISK 2.5+ /dev/sda [14:0:0:1] disk Raidix rd_lun0 370 /dev/sdb [15:0:0:1] disk Raidix rd_lun0 370 /dev/sdc
-
- Настройте multipath (подробнее в главе Настройка multipath на Linux).