Memblaze对NVMe over Fabric的研究早已开始,2015年的FMS2015上,Memblaze就已经联合Mellanox演示了一个NVMe over Fabric的解决方案。而不久之前,Memblaze CTO路向峰拟写了《为了部落:NVMe over Fabric诞生记》系列文章,系统的介绍了NVMe over Fabric技术细节、市场前景及RDMA等内容。这篇文章将简述一个NVMe over Fabric方案的环境组成,并列举具体方案的性能测试结果。
简单的说NVMe over Fabric是将NVMe的数据包通过基于RDMA的网络进行传输,NVMe over Fabric把NVMe协议在单系统时代提供的高性能的优势进一步发挥到了NVMe存储系统互连结构中。在这种结构里,基于NVMe over Fabric的主机可以通过互连结构访问到任何一个数据中心的存储节点,可以说NVMe over Fabric是下一代数据中心存储的一个重点发展方向。
有了长时间的理论研究,尤其在NVMe over Fabric1.0规范发布之后,Memblaze已经将NVMe over Fabric落地在解决方案上,关于NVMe over Fabric的部署及实际方案能够达到的性能,Memblaze的最新白皮书《Export Memblaze PBlaze4 NVMe SSD by NVMe Over Fabric Or NVMe Over Fabric in SPDK》给出了一个明确的答案。(点击下载本白皮书。)
本次NVMe over Fabric的环境信息:
Server: 2* PowerEdge R730xd( Intel(R) Xeon(R) CPU E5-2630 v3 @ 2.40GHz, 8 core,128GB DRAM)
Storage: Memblaze 3.2T PBlaze4 U.2 Disk (20W Power Limit)
OS: CentOS 4.7.0-rc2+
DPDK: dpdk-stable-16.07.1
RoCE Modes: RoCE v1
HCA: Mellanox ConnectX-3 Pro (Firmware version:2.36.5150)
NVMe Over Fabric Target of Linux Kernel: nvmet.ko (DEFDD1F71C669E1679530B9)
NVMe Over Fabric Target Driver of Linux Kernel: nvmet-rdma (865E9D5BA7A00E6EC149124)
NVMe Over Fabric Client: nvme-cli (nvme version 0.9.77.gc5e4)
NVMe Over Fabric Client Host Driver: nvme-rdma.ko (1E2A340FDC19F7E5BF87F8C)
fio测试配置(bs/rw/numjobs/iodepth等测试参数根据具体的测试案例进行配置):
ioengine=libaio
random_generator=tausworthe64
direct=1
thread=1
norandommap
randrepeat=0
测试的基本项目及操作:
测试项目 | 测试描述 |
基于Linux内核驱动的本地NVMe SSD测试 | 使用Linux内核的NVMe驱动,使用fio测试NVMe SSD的性能。 |
NVMe over Fabric测试 | 使用nvme-cli连接Linux内核的NVMe over fabric target,使用客户端服务器上的fio进行测试 |
4KB随机读延迟分析
4KB Random Read(1 Outstanding IO) | Linux Kernel Local Test (NVMe Driver) | NVMeOF Test (Target of Linux Kernel) |
Avg. Latency (us) | 98.56 | 109.50 |
99.00% IO Latency Under (us) | 121 | 131 |
在高压力(256 outstanding IO)场景下,NVMe over Fabric对于延迟的影响同样比较小。为了让结果更为精确,这里将这个测试条件下的IOPS数据也加上来。
4KB Random Read (256 Outstanding IO) | Linux Kernel Local Test(NVMe Driver) | NVMeOF Test(Target of Linux Kernel) |
IOPS | 714,643 | 701,184 |
Avg. Latency (us) | 354.18 | 359.75 |
99.00% IO Latency Under (us) | 1,176 | 884 |
最后,看下4KB随机写的测试结果。
4KB Random Write(256 Outstanding IO) | Linux Kernel Local Test(NVMe Driver) | NVMe over Fabric Test(Target of Linux Kernel) |
IOPS | 163,112 IOPS | 163,120 IOPS |
Avg. Latency | 1.56 ms | 1.56 ms |
99.00% IO Latency Under | 10 ms | 10 ms |
99.99% IO Latency Under | 27.26 ms | 27.01 ms |
NVMe over Fabric能够有效的降低网络的延迟,使得NVMe SSD的优势能够充分发挥,避免远程访问时路径过长造成延迟过大。随着NVMe SSD技术的进一步发展,系统的性能将进一步提升,届时100GbE等新的以太网将更为普及,整个数据中心的性能也将跳到一个新的阶段。