Я установил два двухпортовых 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
...
Здесь дела идут плохо.
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
Обе машины показывают одно и то же: «Состояние: не работает» и «Физическое состояние: отключено». Индикаторы состояния на самих HBA не горят. Я испробовал все комбинации соединений между двумя машинами, включая подключение каждой карты к себе.
Я читал о необходимости opensm
, и я попытался установить его, но, несмотря на кажущуюся правильную конфигурацию, не удалось:
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)
Кроме того, я читал, что некоторые люди говорят, что opensm
не требуется для этого типа конфигурации.
На данный момент я не знаю, означает ли это, что одна или обе карты плохие, кабель плохой, есть какой-то аспект моей конфигурации, который плох, или что-то еще. Я попробовал yum -y groupinstall "Infiniband Support", но это не помогло, и впоследствии я удалил посторонние пакеты.
Чего я не сделал, так это перезагрузки машины, потому что в настоящее время это невозможно, но я подумал, что modprobe -r; modprobe
последовательность будет эквивалентной, и все аспекты конфигурации, связанные с установкой модуля, похоже, работают правильно.
Буду признателен за любые мысли!
Прежде всего, opensm используется только для Infiniband (IB). Вы настроили свои карты для работы в режиме Ethernet, поэтому openm не требуется.
Базовая конфигурация выглядит нормально. Я предполагаю, что когда вы добавили mlx4_core, mlx4_en был вставлен одновременно? lsmod | grep mlx
Однако я подозреваю, что проблема в кабелях. Это кабели FDR или Ethernet марки Mellanox? В противном случае они, вероятно, игнорируются картой как не поддерживаемые в режиме Ethernet. Найдите номер модели каждой детали, чтобы проверить совместимость. Кабели с картами VPI, не работающие в режиме Ethernet, не раз были для меня занозой.
Еще одна быстрая проверка - удалить модули, отменить настройки режима «eth», затем подключить два узла вплотную друг к другу с помощью только кабеля и кабеля IB, а затем снова вставить модули. IB обычно отлично справляется с линковкой в неоптимальных условиях. ibstat покажет физическое состояние, отличное от выключенного - он либо частично (без openm), либо полностью подключится; если кабель не FDR, он все равно будет подключаться к QDR или DDR. Если вы можете хотя бы заставить IB работать, вы знаете, что карты хороши. Вы также можете использовать IPoIB (интерфейсы ib0 и ib1 - используйте «подключенный режим»), хотя и с падением производительности из-за Ethernet. Если вы работаете только с NFS, то можете продолжить и использовать режим IB. Включите NFS через RDMA (не забудьте также изменить крепления клиентов, чтобы использовать его) и пользуйтесь преимуществами NFS со скоростью, близкой к проводной, на канале 56 Гбит / с.