我已经安装了2个mellanox FDR双端口ConnectX-3 HCA卡(CX354A),每个卡都安装在一台独立的机器上。 机器彼此直接连接(无开关configuration)。 卡上的两个端口都连接,使得端口1到端口1,端口2到端口2。 每个端口configuration如下:
HCA1 port1: ib0 inet addr:192.168.10.13 Bcast:192.168.10.255 Mask:255.255.255.0 port2: ib1 inet addr:192.168.10.15 Bcast:192.168.10.255 Mask:255.255.255.0 HCA2 port1: ib0 inet addr:192.168.10.24 Bcast:192.168.10.255 Mask:255.255.255.0 port2: ib1 inet addr:192.168.10.26 Bcast:192.168.10.255 Mask:255.255.255.0
在HCA1上运行2个opensm命令,ibstat显示所有4个端口都处于活动状态。
root@HCA1# opensm -g <ib0 GUID> --daemon root@HCA1# opensm -g <ib1 GUID> --daemon
通过上面的configuration,我可以从任何一个IP ping任何其他人从上面。
但是,当我断开端口1的电缆时,ping在连接的端口2对之间不起作用。 断开端口2对和连接只有端口1对,即使断开连接端口2 IP(?)ping工作正常可能是这个原因,我该如何解决这个问题。 请提及我应该发布什么额外的信息。
我想要实现的是为每个端口对build立一个完全隔离的链路,并运行分离的openMPI进程来同时testing和比较两条infiniband电缆的带宽。 任何人都可以build议如何做到这一点?
至于我所学到的,我想我需要为每个端口对创build不同的分区密钥。 (目前他们正在使用默认的pkey 0xffff)。但是这个默认的pkey在引导过程中configuration了infiniband之后就无法更改。 任何build议或build议?
这两台机器都运行CentOS 6.4,我已经安装了Mellanox OFED 1.5.3。
这些是两台机器上ibstat的输出:
[root@HCA1 Desktop]# ifconfig ib0 ib0 Link encap:InfiniBand HWaddr 80:00:00:48:FE:81:00:00:00:00:00:00:00:00:00:00:00:00:00:00 inet addr:192.168.10.13 Bcast:192.168.10.255 Mask:255.255.255.0 inet6 addr: fe80::202:c903:21:8f11/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:65520 Metric:1 RX packets:4144160 errors:0 dropped:0 overruns:0 frame:0 TX packets:4141376 errors:0 dropped:2 overruns:0 carrier:0 collisions:0 txqueuelen:1024 RX bytes:702746349 (670.1 MiB) TX bytes:719570861 (686.2 MiB) [root@HCA1 Desktop]# ifconfig ib1 ib1 Link encap:InfiniBand HWaddr 80:00:00:49:FE:82:00:00:00:00:00:00:00:00:00:00:00:00:00:00 inet addr:192.168.10.15 Bcast:192.168.10.255 Mask:255.255.255.0 inet6 addr: fe80::202:c903:21:8f12/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:65520 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1024 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) [root@HCA2 Desktop]# ifconfig ib0 ib0 Link encap:InfiniBand HWaddr 80:00:00:48:FE:81:00:00:00:00:00:00:00:00:00:00:00:00:00:00 inet addr:192.168.10.24 Bcast:192.168.10.255 Mask:255.255.255.0 inet6 addr: fe80::202:c903:21:8f51/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:65520 Metric:1 RX packets:4141382 errors:0 dropped:0 overruns:0 frame:0 TX packets:4144161 errors:0 dropped:2 overruns:0 carrier:0 collisions:0 txqueuelen:1024 RX bytes:703005597 (670.4 MiB) TX bytes:719323129 (685.9 MiB) [root@HCA2 Desktop]# ifconfig ib1 ib1 Link encap:InfiniBand HWaddr 80:00:00:49:FE:82:00:00:00:00:00:00:00:00:00:00:00:00:00:00 inet addr:192.168.10.26 Bcast:192.168.10.255 Mask:255.255.255.0 inet6 addr: fe80::202:c903:21:8f52/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:65520 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1024 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
加载的模块如下:
[root@HCA1 Desktop]# /etc/init.d/openibd status HCA driver loaded Configured IPoIB devices: ib0 ib1 Currently active IPoIB devices: ib0 ib1 The following OFED modules are loaded: rdma_ucm rdma_cm ib_addr ib_ipoib mlx4_core mlx4_ib mlx4_en ib_mthca ib_uverbs ib_umad ib_ucm ib_sa ib_cm ib_mad ib_core iw_cxgb3 iw_nes
好的,我对CentOS上的设置并不完全熟悉,但我认为正在发生的是这样的。 opensm的一个或两个副本正在ib0链接,但不是其他的。 ib0是OpenSM的默认值。
据我了解,你需要在这个特定的设置运行opensm的两个副本,因为没有交换机绑定所有的HCA在一起它基本上是两个结构,你需要在两个结构上运行子网pipe理器。 你已经正确的select了,但是没有正确的运行(特别是第二个实例)。
因为Linux将ping传递到第二个接口并对两个IP进行响应,所以Ping在两者都连接时似乎工作。 所有这些都在ib0(Pair1)上工作。
在我熟悉的ubuntu下有一个configuration文件/ etc / default / opensm。
这听起来像CentOS上的不同。 Ubuntu上该文件的格式用于运行带有正确端口的opensm,因为在每个端口上需要一个opensm子网pipe理器。
基本上你想做的是不运行
opensm -g – 守护进程
两次,而是
/ usr / sbin / ibstat -p
这将产生如下输出:
0x001a4bffff0c34e5 0x001a4bffff0c34e6
然后运行
opensm -g 0x001a4bffff0c34e5 --daemon opensm -g 0x001a4bffff0c34e6 --daemon
在Ubuntu下,初始化脚本实际上为ports = ALL(从/ etc / default / opensm中读取)自动执行该过程,其中ALL是由init脚本获取的关键字。
在CentOS下可能有一个用于opensm的init脚本。 同时可以使用上述命令,也可以编写自己的启动脚本。
更新:我不知道是否会有所作为,但我也有以下两个内核模块加载,你不。
ib_ipath ib_qib
你还用最新的固件刷新了你的HCA吗? 这其实很重要。 不要以为他们有最新的工厂。
我可以看到两个不同的物理子网configuration了相同的子网地址192.168.10.0。 我想你应该分配不同的子网地址来解决这个问题。