Infiniband настроен и подключен, но индикаторы не светятся на HBA и не работают в ОС
Я установил два двухпортовых адаптера FDR Infiniband VPI, по одному на каждый из двух серверов под управлением CentOS 6.9,
server1>lspci
03:00.0 Network controller: Mellanox Technologies MT27500 Family [ConnectX-3]
server2>lspci
81:00.0 Network controller: Mellanox Technologies MT27500 Family [ConnectX-3]
Я хочу использовать их для высокоскоростного соединения NFSv4 (возможно, через RDMA) между этими двумя машинами, напрямую подключенными друг к другу через Infiniband (2-метровый пропускная способность QSFP+ 56 Гбит / с + пассивный кабель). Я проделал следующее на обоих (замена правильного адреса PCI ниже).
yum -y install rdma infiniband-diags
chkconfig rdma on
service rdma start
printf "0000:XX:00.0 eth eth\n" >> /etc/rdma/mlx4.conf
echo eth > /sys/bus/pci/devices/0000:XX:00.0/mlx4_port1
echo eth > /sys/bus/pci/devices/0000:XX:00.0/mlx4_port2
modprobe -r mlx4_core
modprobe mlx4_core
modprobe ib_umad
cp -f ifcfg-eth4 /etc/sysconfig/network-scripts/ifcfg-eth4
cp -f ifcfg-eth5 /etc/sysconfig/network-scripts/ifcfg-eth5
chmod 644 /etc/sysconfig/network-scripts/ifcfg-*
chcon system_u:object_r:net_conf_t:s0 /etc/sysconfig/network-scripts/ifcfg-*
ifup eth4
ifup eth5
Пример файла конфигурации сети (например, ifcfg-eth4) выглядит таким образом, заменяя соответствующие MAC и IP-адрес для каждого порта:
DEVICE=eth4
HWADDR=XX:XX:XX:XX:XX:XX
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
USERCTL=no
NETWORK=10.72.1.0
NETMASK=255.255.255.0
IPADDR=XXX.XXX.XXX.XXX
Есть три других похожих файла, по два на каждой машине, и ifup и ifdown работают для обоих интерфейсов на обеих машинах. Кроме того, существуют маршруты
server1>ip route show
10.72.1.0/24 dev eth4 proto kernel scope link src 10.72.1.3
10.72.1.0/24 dev eth5 proto kernel scope link src 10.72.1.4
...
This is where things start going badly.
CA 'mlx4_0'
CA type: MT4099
Number of ports: 2
Firmware version: 2.11.500
Hardware version: 0
Node GUID: 0xf45...
System image GUID: 0xf45...
Port 1:
State: Down
Physical state: Disabled
Rate: 10
Base lid: 0
LMC: 0
SM lid: 0
Capability mask: 0x04010000
Port GUID: 0xf6...
Link layer: Ethernet
Port 2:
State: Down
Physical state: Disabled
Rate: 40
Base lid: 0
LMC: 0
SM lid: 0
Capability mask: 0x04010000
Port GUID: 0xf6...
Link layer: Ethernet
Both machines show the same thing, "State: Down" and "Physical state: Disabled". Status lights on the HBAs themselves are dark. I have tried all combinations of connections between the two machines, including connecting each card to itself.
I have read about the need for opensm
, and I tried installing it, but despite what seems like correct configuration, it fails:
May 09 20:18:14 888369 [A8697700] 0x01 -> osm_vendor_bind: ERR 5426: Unable to register class 129 version 1
May 09 20:18:14 888418 [A8697700] 0x01 -> osm_sm_mad_ctrl_bind: ERR 3118: Vendor specific bind failed
May 09 20:18:14 888436 [A8697700] 0x01 -> osm_sm_bind: ERR 2E10: SM MAD Controller bind failed (IB_ERROR)
Further, I have read some people say that opensm
is not needed for this type of configuration.
At this point, I do not know if this suggests that one or both cards are bad, the cable is bad, there is an aspect of my configuration that is bad, or something else. I have tried yum -y groupinstall "Infiniband Support", but this did not help, and I subsequently removed the extraneous packages.
What I have not done is reboot the machine, because that is not presently an option, but I thought that the modprobe -r; modprobe
sequence would be equivalent, and all aspects of the configuration related to module installation seems to be working correctly.
I will appreciate any thoughts!
1 ответ
Прежде всего, opensm используется только для Infiniband (IB). Вы настроили свои карты на работу в режиме Ethernet, так что opensm не требуется.
Базовая конфигурация выглядит хорошо. Я полагаю, когда вы добавили mlx4_core, mlx4_en был вставлен в то же время? lsmod | grep mlx
Тем не менее, я подозреваю, что проблема с кабелями. Это кабели FDR или Ethernet марки Mellanox? Если нет, они, вероятно, игнорируются картой, поскольку не поддерживаются в режиме Ethernet. Найдите номер модели каждой из частей, чтобы проверить совместимость. Кабели с картами VPI, не работающими в режиме Ethernet, были проблемой для меня не раз.
Еще одним быстрым тестом будет удаление модулей, отмена настроек "этического" режима, затем подключение двух узлов друг к другу только с помощью кабеля и кабеля IB, а затем повторная установка модулей. IB обычно хорошо справляется со связыванием в неоптимальных условиях. ibstat покажет физическое состояние, отличное от down- он либо скомпонует частично (без opensm), либо скомпонует полностью; если кабель не является FDR, он все равно будет подключен к QDR или DDR. Если вы можете хотя бы заставить IB работать, вы знаете, что карты хороши. Вы также можете использовать IPoIB (интерфейсы ib0 и ib1 - использовать "подключенный режим"), хотя и при снижении производительности от Ethernet. Если вы используете только NFS, то вы можете использовать режим IB. Включите NFS через RDMA (не забудьте также смонтировать клиентские монтирования, чтобы использовать его) и наслаждайтесь преимуществами NFS со скоростью, близкой к проводной, по каналу 56 Гбит / с.