主要观点总结
本文介绍了在IB/RoCE网络环境中遇到的一些网络配置问题,包括网卡降级、网络拓扑问题、无损网络配置问题、网卡软中断CPU争用问题、网卡时延问题等,并提供了相应的解决方案。
关键观点总结
关键观点1: 网卡降级
网卡降级会导致读写带宽降低,达不到网卡上限。可以通过执行命令lspci查看网卡信息,关注是否有降级的情况。
关键观点2: 网络拓扑问题
网络拓扑配置错误可能导致性能下降。以zStorage为例,典型的3节点网络拓扑结构包含1个计算节点、3个存储节点和两台IB交换机。两个交换机之间需要有两根连线以保证不同网段的IB卡可以正常通信。
关键观点3: 无损网络配置问题
IB网络默认是无损网络,但在RoCE下需要单独配置PFC/ECN功能来实现无损网络。当多个压力节点发送网络负载到同一目标节点时,可能会出现丢包现象,导致性能波动下降。
关键观点4: 网卡软中断CPU争用问题
在zStorage测试融合部署模式下,可能出现网卡软中断与zStorage进程争抢CPU的情况,导致性能波动。可以通过手动(或脚本化)地将网卡产生的中断绑定到其他空闲的CPU核心上解决。
关键观点5: 网卡时延问题
测试Intel IB网卡时可能出现IO时延异常的问题。通过更换Linux内核可解决问题。
正文
网络拓扑
问题
以 zStorage 为例,典型的 3 节点网络拓扑结构
如下:
如图的拓扑图
中,包含 1 个计算节点(HOST),3 个存储节点以及两台 IB 交换机。然后,每个计算节点和存储节点分别安装有两张 IB 卡。这样的组网方式保证了任何一个组件故障,都不会影响集群的可用性。
这里注意看,两个交换机之间有两根连线,这样可以保证不同网段的 IB 卡可以正常通信。在 zStorage 中,所有组件状态正常情况下,不会使用到网段间的交叉连接
。仅当 IB 卡故障,只剩下交叉连接可以通信时,才会用到交叉连接。
当网络配置
错误,例如网络连线插错,可能出现在正常情况下,也使用了交换机中间连线的情况。由于交换机中间连线成为瓶颈,性能测试表现为带宽达不到预期,例如:预期为 22GB/s,实际只能到 17GB/s。
通过
ibstat
可以查看 IB 卡的信息,如图,左边显示的是一个存储节点的信息,右边显示的是另一个存储节点的信息。
然后,通过执行
ibtracert
命令,可以查看两张网卡之间经过了几个交换机。
[root@cell02 ~]# ibtracert 640 592 From ca {0x1070fd0300631480} portnum 1 lid 640-655 "cell02 mlx5_0" [1] -> switch port {0x08c0eb03000e9de0 }[6] lid 1-1 "MF0;switch25:MSB7800/U1"