Eu instalei dois HBAs FFI Infiniband VPI de porta dupla, um em cada um dos dois servidores executando o 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]
Eu quero usá-los para conectividade NFSv4 de alta velocidade (provavelmente via RDMA) entre essas duas máquinas, diretamente conectadas umas às outras via Infiniband (cabo passivo QSFP + de 56 Gbps de 2 metros). Eu fiz o seguinte em ambos (substituindo o endereço PCI correto abaixo).
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
Um exemplo de arquivo de configuração de rede (por exemplo, ifcfg-eth4) parece substituir o endereço MAC e IP apropriado de cada porta:
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
Existem três outros arquivos semelhantes, dois em cada máquina, e ifup e ifdown funcionam em ambas as máquinas. Além disso, existem rotas
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
...
É aqui que as coisas começam a dar errado.
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
Ambas as máquinas mostram a mesma coisa, "State: Down" e "Physical state: Disabled". As luzes de status nos próprios HBAs estão apagadas. Eu tentei todas as combinações de conexões entre as duas máquinas, incluindo conectar cada cartão a si mesmo.
Eu li sobre a necessidade de opensm
e tentei instalá-lo, mas apesar do que parece ser a configuração correta, ele falha:
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)
Além disso, li algumas pessoas que dizem que opensm
não é necessário para esse tipo de configuração.
Neste ponto, eu não sei se isso sugere que um ou ambos os cartões estão ruins, o cabo está ruim, há um aspecto da minha configuração que é ruim ou algo mais. Eu tentei yum -y groupinstall "Infiniband Support", mas isso não ajudou, e eu posteriormente removi os pacotes estranhos.
O que eu não fiz foi reiniciar a máquina, porque isso não é uma opção, mas achei que a sequência modprobe -r; modprobe
seria equivalente, e todos os aspectos da configuração relacionados à instalação do módulo parecem estar funcionando corretamente.
Eu apreciarei qualquer pensamento!
Tags networking infiniband nfs4 mellanox rdma