配置InfiniBand (IB) 和 RDMA over Converged Ethernet (RoCE) 网络
服务器端配置
在服务器端,你需要确保安装了必要的驱动程序和软件包,并且正确配置了网络接口。
安装 OFED
首先,安装 Open Fabrics Enterprise Distribution (OFED),它包含了 InfiniBand 所需的驱动程序和库。
sh
sudo apt-get update
sudo apt-get install openib-tools openib-ucm libibverbs1 ibverbs-utils rdma-core
配置 NIC
确保 NIC 已经正确识别并且启用了 InfiniBand 功能。
sh
# 检查 NIC 是否被识别
ibv_devinfo
配置 MTU
为了获得更好的性能,通常需要增加 MTU(最大传输单元)。
sh
# 设置 MTU
ip link set dev <interface> mtu 9000
启用无损以太网
如果使用的是 RoCE,还需要启用无损以太网特性,这通常涉及到 PFC(Priority-Flow Control)和 DCB(Data Center Bridging)。
sh
# 启用 PFC
echo 1 > /sys/class/net/<interface>/pfc/capable
echo 1 > /sys/class/net/<interface>/pfc/enabled
# 启用 DCB
echo 1 > /sys/class/net/<interface>/dcb/priority_flow_control
测试 IB 连接
使用测试工具验证 IB 连接是否正常工作。
sh
# 使用 ibping 测试连接
ibping -d <device> -a <remote_address> -c 100
# 使用 iperf3 测试带宽
iperf3 -s -T
iperf3 -c <server_ip> -T
华为 IB 交换机配置
华为 IB 交换机通常通过命令行界面(CLI)进行配置。以下是一些基本的配置步骤:
登录交换机
首先,通过 SSH 或串口登录到交换机。
sh
ssh admin@<switch_ip>
配置子网管理器
确保子网管理器(SM)已启动并配置好。
sh
# 启动子网管理器
system-view
subnet-manager enable
subnet-manager start
subnet-manager quit
配置端口
配置交换机端口的速度、模式和其他参数。
sh
# 进入系统视图
system-view
# 配置端口速度
interface <port>
speed 100G
quit
# 配置端口模式
interface <port>
port-type ib
quit
配置 QoS
配置 QoS 策略,以确保不同类型的流量得到合理的优先级处理。
sh
# 配置端口 QoS
traffic-policy <policy_name> inbound
traffic-policy <policy_name> outbound
配置 VLAN
如果使用 VLAN 来隔离不同类型的流量,需要在交换机上配置 VLAN。
sh
# 创建 VLAN
vlan <vlan-id>
# 将端口加入 VLAN
interface <port>
port access vlan <vlan-id>
quit
监控网络状态
使用交换机的监控工具来实时查看网络状态和性能指标。
sh
display interface <port>
display dcb
综合配置和测试
在完成服务器端和交换机端的配置后,需要进行一些综合性的配置和测试,以确保整个网络正常运行:
测试网络连通性
使用 ibping
或 iperf3
等工具测试节点之间的连通性和带宽。
sh
ibping -d <device> -a <remote_address> -c 100
iperf3 -s -T
iperf3 -c <server_ip> -T
性能优化
根据测试结果调整网络参数,如 MTU、队列深度等,以优化性能。
sh
# 调整 NIC 上的队列深度
echo 128 > /sys/class/infiniband/<device>/ports/1/max_qp_depth
故障排查
使用日志和监控工具进行故障排查。
sh
dmesg | grep mlx5
display diagnostic-information
注意事项
- 在配置过程中,确保所有节点的时间同步(如使用 NTP)。
- 监控网络性能和健康状况,及时调整配置以优化性能。
- 根据具体的应用需求,可能还需要配置其他相关的软件和服务,如存储服务、数据库等。