在标准 TCP/IP 上运行 iSCSI 的传统云存储架构会产生大量的内核套接字缓冲区复制和中断处理开销,给远程块存储增加 2 到 5 毫秒的延迟。对于高吞吐量关系型数据库和实时分析工作负载,这种网络延迟会造成严重的 I/O 瓶颈。通过将 NVMe over Fabrics (NVMe-oF) 与基于融���以太网的 RDMA (RoCEv2)相结合,企业级 Ceph 存储集群能够在主机内存空间之间直接传输 NVMe 命令,执行时间达到亚毫秒级。
NVMe over Fabrics (NVMe-oF) 架构
NVMe-oF 将 PCIe NVMe 命令集的轻量级 64,000 队列并行性扩展到无损以太网架构中,且无需进行 SCSI 协议转换。当与配置了优先级流量控制 (PFC) 和显式拥塞通知 (ECN) 的 Mellanox/NVIDIA ConnectX 网络适配器配合使用时,存储发起程序可以接近本地 PCIe 的速度与远程 Ceph 对象存储守护进程 (OSD) 进行通信。
远程直接内存访问 (RDMA) 完全绕过了主机操作系统的 TCP/IP 栈。NVMe 提交和完成队列直接映射到网卡硬件队列对 (QP),在 100GbE 脊叶网络中,将 p99 4K 随机块 I/O 延迟降低到 250 微秒以下。
存储协议性能比较
评估不同存储传输协议的 4K 随机读取延迟、单核 IOPS 上限以及主机 CPU 中断开销:
| 存储架构 | 随机 4K 读取延迟 | 单核最大 IOPS | 主机 CPU 开销 |
|---|---|---|---|
| 传统 iSCSI / TCP | 2.4 – 4.8 毫秒 | 80,000 IOPS |
高(内核套接字中断 & sk_buff 复制) |
| Ceph RBD 原生客户端 (msgr v2) | 1.1 – 1.8 毫秒 | 180,000 IOPS |
中等(用户空间 librbd 线程轮询) |
| 基于 RoCEv2 RDMA 的 NVMe-oF | 0.18 – 0.35 ms |
1,200,000+ IOPS |
接近零(硬件 DMA 内存注册) |
配置 Linux NVMe-oF 主机发起端
使用 nvme-cli 和多路径 I/O (ANA),将 Linux 计算节点连接到无损 100GbE RoCEv2 架构上的远程 Ceph NVMe-oF 目标网关:
# Load kernel NVMe RDMA initiator and multipath modules
modprobe nvme-rdma
modprobe nvme-core multipath=Y
# Discover remote NVMe-oF subsystems over RoCEv2 port 4420
nvme discover -t rdma -a 192.168.100.50 -s 4420
# Connect to redundant Ceph NVMe-oF gateway group
nvme connect-all -t rdma -a 192.168.100.50 -s 4420
使用 WinWinHost 部署具有弹性的云基础架构
通过企业级裸金属和云存储加速您的关键任务应用程序。查看我们的关于 Linux eBPF & XDP DDoS 过滤的指南,检查 Linux io_uring 注册文件,或者 联系我们的云架构工程师.