9.10. 配置 IPoIB 后测试 RDMA 网络

配置 IPoIB 后,可以使用 IP 地址指定 RDMA 设备。由于普遍使用 IP 地址和主机名指定机器,大多数 RDMA 应用程序也首选使用此方式,只是在某些情况下指定远程机器以及连接到该机器的本地设备时使用 IPoIB。
要测试 IPoIB 层的功能,可使用任意标准 IP 网络测试工具,并提供要测试 IPoIB 设备的 IP 地址。例如:测试 IPoIB 设备 IP 地址是否工作的 ping 命令。
Red Hat Enterprise Linux 中有两种不同的 RDMA 性能测试软件包,即 qperfperftest。这两个软件包均可用来进一步测试 RDMA 网络性能。
但使用 perftest 软件包中的任意程序时,或使用 qperf 应用程序时,需要特别注意地址解析。即使使用 IP 地址或 IPoIB 设备的主机名指定远程主机,也允许测试应用程序通过不同的 RDMA 接口。理由是因为从主机名或 IP 地址转换为 RDMA 地址的过程允许在两台机器中使用的所有有效 RDMA 地址对。如果有多种方式可让客户端连接到服务器,那么该程序会在指定路径出问题时选择使用不同的路径。例如:如果每台机器中均有两个端口连接到同一 InfiniBand 子网,并给出每台机器中第二个端口的 IP 地址,那么该程序就很可能发现每台机器中的第一个端口是有效的,并使用该端口。在这种情况下,可使用 perftest 程序的所有命令行选项告诉它们要捆绑的网卡及端口,如 第 9.5 节 “测试早期 InfiniBand RDMA 操作”ibping 所做的一样,以便保证在要求测试的具体端口中进行测试。qperf 捆绑端口的方式稍有不同。qperf 程序在一台机器中作为服务器使用,侦听所有设备(包括非 RDAM 设备)。客户端可使用服务器的有效 IP 或主机名连接到 qperfQperf 会首先尝试打开数据连接,并使用在客户端命令中给出的 IP 地址或主机名运行要求的测试;但如果使用该地址有任何问题,qperf 就会返回,并尝试着客户端和服务器之间的任意有效路径中运行。因此,要强制 qperf 使用具体链接进行测试,请在 qperf 客户端中使用 -loc_id-rem_id 选项,以便强制使用具体链接进行测试。