26.4. 配置 RoCE
通过融合以太网 (RoCE) 的远程直接内存访问(RDMA)是一种通过以太网使用 RDMA 的网络协议。对于配置,RoCE 需要特定的硬件,并且一些硬件供应商是 Mellanox、Broadcom 和 QLogic。
26.4.1. RoCE 协议版本概述 复制链接链接已复制到粘贴板!
以下是不同的 RoCE 版本:
- RoCE v1
-
RoCE 版本 1 协议是一种具有 Ethertype
0x8915
的以太网链路层协议,它允许同一以太网广播域中的任何两个主机间的通信。 - RoCE v2
-
RoCE 版本 2 协议在 IPv4 或 IPv6 协议的 UDP 上存在。对于 RoCE v2,UDP 目标端口号为
4791
。
RDMA_CM 设置客户端和服务器之间用来传输数据的可靠连接。RDMA_CM 为建立连接提供了一个与 RDMA 传输相关的接口。这个通信使用特定的 RDMA 设备和基于消息的数据传输。
使用不同的版本,如客户端上的 RoCE v2 和服务器上的 RoCE v1 不被支持。在这种情况下,将服务器和客户端都配置为通过 RoCE v1 进行通信。
RoCE v1 在 Data Link layer(Layer 2)工作,它只支持同一网络中的两台计算机的通信。默认情况下,RoCE v2 可用。它适用于网络层(Layer 3)。RoCE v2 支持提供与多个以太网连接的数据包路由。
26.4.2. 临时更改默认 RoCE 版本 复制链接链接已复制到粘贴板!
在客户端中使用 RoCE v2 协议,并不支持服务器上的 RoCE v1。如果您的服务器中的硬件只支持 RoCE v1,请为 RoCE v1 配置客户端,来与服务器进行通信。例如,您可以为只支持 RoCE v1 的 Mellanox ConnectX-5 InfiniBand 设备配置使用 mlx5_0
驱动程序的客户端。
此处描述的更改将保持有效,直到您重启主机。
先决条件
- 客户端使用带有 RoCE v2 协议的 InfiniBand 设备。
- 服务器使用只支持 RoCE v1 的 InfiniBand 设备。
流程
创建
/sys/kernel/config/rdma_cm/mlx5_0/
目录:mkdir /sys/kernel/config/rdma_cm/mlx5_0/
# mkdir /sys/kernel/config/rdma_cm/mlx5_0/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 显示默认 RoCE 模式:
cat /sys/kernel/config/rdma_cm/mlx5_0/ports/1/default_roce_mode RoCE v2
# cat /sys/kernel/config/rdma_cm/mlx5_0/ports/1/default_roce_mode RoCE v2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将默认 RoCE 模式改为版本 1:
echo "IB/RoCE v1" > /sys/kernel/config/rdma_cm/mlx5_0/ports/1/default_roce_mode
# echo "IB/RoCE v1" > /sys/kernel/config/rdma_cm/mlx5_0/ports/1/default_roce_mode
Copy to Clipboard Copied! Toggle word wrap Toggle overflow