26.6. 在 NFS 服务器上启用 NFS over RDMA
远程直接内存访问(RDMA)是一种协议,它使客户端系统将数据直接从存储服务器的内存传到其自己的内存。这提高了存储吞吐量,降低了服务器和客户端之间数据传输的延迟,并减少了两端的 CPU 负载。如果 NFS 服务器和客户端都通过 RDMA 连接在一起,则客户端可以使用 NFSoRDMA 来挂载导出的目录。
先决条件
- NFS 服务正在运行且已配置
- 服务器上安装了 InfiniBand 或 RDMA over Converged Ethernet (RoCE)设备。
- IP over InfiniBand (IPoIB)已在服务器上配置,InfiniBand 设备已分配了一个 IP 地址。
流程
安装
rdma-core
软件包:dnf install rdma-core
# dnf install rdma-core
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果软件包已安装,请验证
/etc/rdma/modules/rdma.conf
文件中的xprtrdma
和svcrdma
模块是否已取消注释:NFS over RDMA client support NFS over RDMA server support
# NFS over RDMA client support xprtrdma # NFS over RDMA server support svcrdma
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:默认情况下,RDMA 上的 NFS 使用端口 20049。如果要使用不同的端口,请在
/etc/nfs.conf
文件的[nfsd]
部分中设置rdma-port
设置:rdma-port=<port>
rdma-port=<port>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
firewalld
中打开 NFSoRDMA 端口:firewall-cmd --permanent --add-port={20049/tcp,20049/udp} firewall-cmd --reload
# firewall-cmd --permanent --add-port={20049/tcp,20049/udp} # firewall-cmd --reload
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您设置了与 20049 不同的端口,请调整端口号。
重启
nfs-server
服务:systemctl restart nfs-server
# systemctl restart nfs-server
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
在带有 InfiniBand 硬件的客户端上执行以下步骤:
安装以下软件包:
dnf install nfs-utils rdma-core
# dnf install nfs-utils rdma-core
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 通过 RDMA 挂载导出的 NFS 共享:
mount -o rdma server.example.com:/nfs/projects/ /mnt/
# mount -o rdma server.example.com:/nfs/projects/ /mnt/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您设置了与默认端口号(20049)不同的端口号,请将 port
= <port_number>
传给命令:mount -o rdma,port=<port_number> server.example.com:/nfs/projects/ /mnt/
# mount -o rdma,port=<port_number> server.example.com:/nfs/projects/ /mnt/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证共享是否已使用
rdma
选项挂载了:mount | grep "/mnt"
# mount | grep "/mnt" server.example.com:/nfs/projects/ on /mnt type nfs (...,proto=rdma,...)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow