长期以来,SATA、SAS盘统治着企业级存储,虽然前些年 SSD固态存储介质的出现对 AHCI协议类型的存储访问带来了一定性能提升,但与 CPU 的计算速度相比,只能是杯水车薪,并且 SSD 的性能也不能充分地得到发挥。传统存储技术也由于访问路径长、时延大和吞吐量低而越发不能满足 “大数据” 存储的需求,并且饱受诟病。
近几年推出的 NVMe 技术以 PCIe作为 SSD 的访问接口,极大地缩短了 I/O 的访问路径,同时 NVMe 的软件栈也以精简的调用关系进一步降低了数据访问的时延。可以说,NVMe 技术的出现和快速发展,是对存储技术领域的重大革新。由此 NVMe 存储的应用自然成了业内的发展趋势,各厂商也都积极投入NVMe存储的研发中来。
越来越多的分布式文件系统积极参与全闪阵营,通过横向扩展能力,对外提供块、对象、文件服务接口及一些增值特性服务,可以通过存储节点堆叠,获得容量和性能的同步提升。硬件上使用 RDMA、NVMe、NVDIMM等先进技术,提供高性能的硬件节点;同时采用软硬件一体化的设计达成高可靠性的目标。为了减少存储产品面临的传统共性问题,如频繁的系统调用和上下文切换、多次的数据拷贝、过高的协议栈开销、复杂的并发互斥等痛点问题,在用户态化实现的过程中,引入了 Intel 的 DPDK/SPDK作为关键基础技术来进行集成和开发。基于 DPDK 和 SPDK 的用户态实现前端NVMe-oF、FCP、iSCSI 块服务相关接口。
DPDK/SPDK 技术的引入,通过大页(Huge page)、轮询、分核、无锁化等机制减少了 CPU 上下文切换、并发互斥等带来的系统开销,提高了 I/O 的响应速度,带来了系统性能的提升,有效地解决了前端网络、后端网络和落盘等环节存在的性能瓶颈。同时 SPDK 提供的 BDEV 框架,定义了上层的访问接口,和下层存储设备的注册接口,向上可以支撑多种不同协议的Target,向下可以挂载多种不同的存储设备。BDEV 框架实现了对后端存储设备的统一抽象,可以和后端存储解耦,产品前后端可针对框架开发,减小模块耦合,进行独立的测试验证,提高了产品开发维护的效率。
Intel DPDK/SPDK 技术作为该产品设计的关键一环,与分布式架构融合应用,充分发挥全闪(NVMe)存储设备和 RDMA 传输通道的能力,提供了高性能的系统特性。当前产品开发的先期任务主要完成针对新技术的可行性分析、验证及高性能硬件节点的原型机开发:兼容业界主流厂商的 R