无需交换机即可连接两个 Infiniband 卡

无需交换机即可连接两个 Infiniband 卡

是否可以将两台独立计算机上的两个 Mellanox ConnectX-2 卡相互连接,中间无需使用交换机?我只是想学习使用 verbs 编程,而不必花钱购买昂贵的交换机。

我是否需要特殊的电缆,还是标准电缆就可以了?在标准以太网上,我需要交叉连接电缆。

答案1

是的,您可以直接连接它们。但您必须确保至少在其中一台机器上运行 opensm 子网管理器。

从软件方面,如果您使用的是 Ubuntu 14.04,请安装以下软件包:

sudo apt-get install opensm infiniband-diags librdmacm-dev libibverbs-dev libmlx4-dev

然后将这些添加到 /etc/modules

mlx4_ib
ip_ipoib
rdma_ucm

为卡添加 IP 地址。编辑 /etc/network/interfaces

auto ib0
iface ib0 inet static
  address 10.0.0.1
  netmask 255.255.255.0

重启。

Opensm 将自动启动。对另一台机器重复上述操作,但使用不同的 IP:10.0.0.2。

如果一切顺利,您应该能够从 10.0.0.1 ping 10.0.0.2,反之亦然。

运行一些测试:

sudo ibnodes

哦,ibnodes 和其他几个脚本中有一个错误。您可以通过编辑它们来修复它们。它们大多是指向 /usr/local/sbin 的 shell 脚本,而实际上它们调用的是 /usr/sbin 中的应用程序。

如果找到一个,请直接编辑它并相应地更改 IBPATH。我从来没有为此提交过针对 Ubuntu 的错误报告。希望其他人能这样做。这已经是一个问题很久了。

输出将会类似于:

Ca  : 0x001a4bffff0c9374 ports 2 "HP Lion Cub DDR 128MB"
Ca  : 0x001a4bffff0c446c ports 2 "HP Lion Cub DDR 128MB"
Ca  : 0x001a4bffff0c4438 ports 2 "HP Lion Cub DDR 128MB"
Switch  : 0x000b8cffff006aa8 ports 24 "MT47396 Infiniscale-III Mellanox Technologies" base port 0 lid 2 lmc 0

相关内容