1. 前置条件
存储与使用存储的节点组成 RDMA 网络
RDMA 设备配置了 IP 地址
如果使用的是 Mellanox 网卡,在安装驱动时需要加上参数
-with-nfsrdma
| |
2. 服务端启动
- 安装依赖
| |
- 加载内核模块
| |
- 将端口加入 portlist
| |
- 挂载目录
| |
| |
- 启动 NFS 服务
| |
- 检测挂载点
| |
3. 客户端挂载
- 安装依赖
| |
- 加载内核模块
| |
- 创建挂载目录
| |
- 普通 NFS 挂载
| |
- NFS Over RDMA 挂载
| |
需要注意,一台主机上不能同时挂载普通 NFS 和 NFS Over RDMA。
4. 性能测试
4.1 网络性能
- 普通网卡
| |
| |
| |
- RDMA 网卡
| |
| |
| |
4.2 4K 随机读写
- 主机磁盘 4K 随机读写
| |
| |
| |
| |
- RDMA 4K 随机读写
| |
| |
| |
| |
- NFS 4K 随机读写
| |
| |
| |
| |
4.3 128K 读写
- 主机磁盘 128K 读写
| |
| |
| |
| |
- RDMA 128K 读写
| |
| |
| |
| |
- NFS 128K 读写
| |
| |
| |
| |
4.4 4M 读写
- 主机磁盘 4M 读写
| |
| |
| |
| |
- RDMA 4M 读写
| |
| |
| |
| |
- NFS 4M 读写
| |
| |
| |
| |
4.5 小结
4K 随机读写性能
| 测试类型 | 传输方向 | 主机磁盘 (MiB/s) | RDMA (MiB/s) | NFS (MiB/s) |
|---|---|---|---|---|
| 随机写 | 写 | 1128 | 525 | 291 |
| 随机读 | 读 | 1441 | 674 | 311 |
128K 读写性能
| 测试类型 | 传输方向 | 主机磁盘 (MiB/s) | RDMA (MiB/s) | NFS (MiB/s) |
|---|---|---|---|---|
| 顺序写 | 写 | 3842 | 2814 | 2249 |
| 顺序读 | 读 | 6503 | 16.5 GiB/s | 2556 |
4M 读写性能
| 测试类型 | 传输方向 | 主机磁盘 (MiB/s) | RDMA (MiB/s) | NFS (MiB/s) |
|---|---|---|---|---|
| 顺序写 | 写 | 3838 | 3840 | 2520 |
| 顺序读 | 读 | 5510 | 42.4 GiB/s | 2754 |
5. 总结
本篇主要是介绍了 NFS Over RDMA 的配置与性能测试,从测试结果来看:
- 无论是大文件还是小文件,NFS Over RDMA 的性能都要优于 NFS
- 文件越大,NFS Over RDMA 的写性能越接近主机磁盘
NFS Over RDMA 的读取大文件性能远超主机上进行的测试,无论是改变持续时间还是并发数都能得到一致的结果,这有点无法解释。但从监控可以看到 RDMA 数据传输带宽与 FIO 测试结果一致,似乎又在说明结果是正确的。

难道是 NFS Over RDMA 的缓存机制所致?
