基于Xinnor RAID引擎和Kioxia PCIe 5.0驱动器的高性能虚拟环境存储解决方案
内容提要
本文讨论了使用高性能NVMe驱动器为虚拟机测试软件RAID阵列的情况。考虑了两种创建软件RAID阵列的方法:在Linux内核空间中配置为与NVMe SSDs最佳性能的mdraid,以及在用户空间中运行的商业产品Xinnor(xiRAID Opus)。详细介绍了测试环境和配置,并评估了使用xiRAID Opus的虚拟机的性能和可扩展性。结果显示,xiRAID Opus在性能和效率方面优于mdraid和内核vhost目标。测试了顺序和随机操作,并评估了xiRAID Opus在降级模式下的性能。总体而言,xiRAID Opus展示了卓越的虚拟机存储性能和可扩展性。
延伸解读
测试环境与配置要点
测试基于Supermicro H13DSH主板和双路AMD EPYC 9534处理器,配备10块3.20 TB KIOXIA CM7系列NVMe SSD。为规避NUMA间通信,创建了两个4+1 RAID组,每组使用同一NUMA节点内的驱动器,条带大小64K。每个RAID组划分为8个卷,通过独立的vhost控制器分配给16台虚拟机。虚拟机配置6个vCPU和16GB内存,使用Hugepages并绑定到相同NUMA节点。
xiRAID Opus与mdraid的核心差异
xiRAID Opus运行在用户空间,基于SPDK库,允许用户指定专用核心运行存储应用,从而优化性能并避免与虚拟机争抢CPU资源。而mdraid在内核空间运行,无法进行特定核心分配,所有核心同时用于存储基础设施和虚拟机,导致资源竞争。此外,xiRAID Opus不受Linux内核版本限制,提供更好的CPU控制和可移植性。
性能表现与可扩展性
在随机读操作中,单个虚拟机RAID设置实现低于100微秒的延迟,99.95百分位延迟低于200微秒。每个RAID配置每核心可提供近百万IOps。扩展至16个虚拟机时,由于fio工具消耗所有可用CPU资源,性能下降约30%。随机写操作中,xiRAID效率是mdraid的4倍。顺序操作性能接近理论最大值,即使在降级模式下也保持高效。
降级模式下的可靠性
降级模式下,xiRAID的读取性能比mdraid高20倍,且延迟增加很小。顺序操作在降级模式下仍接近理论最大值,确保数据密集型应用在虚拟化环境中高效运行。而mdraid在降级模式下性能显著落后,不适合性能敏感型应用。这表明xiRAID Opus在驱动器故障或维护场景下仍能提供稳定的存储性能。
Q&A
xiRAID Opus与mdraid的主要区别是什么?
xiRAID Opus允许用户指定核心以优化性能,而mdraid无法进行特定核心分配。
测试中使用了哪些硬件配置?
测试使用了Supermicro H13DSH主板和10个KIOXIA CM7系列NVMe SSD。
在降级模式下,xiRAID的性能如何?
在降级模式下,xiRAID的读取性能比mdraid高20倍,且延迟增加很小。
测试的主要目标是什么?
测试的主要目标是评估高性能NVMe驱动器的软件RAID阵列在虚拟机中的适用性。
xiRAID Opus如何提高虚拟机的存储性能?
xiRAID Opus利用SPDK库,提供更好的CPU控制,允许用户优化性能。
测试中使用了哪些基准工具?
测试中使用了fio工具来测量I/O性能。