近年来,随着公有云的规模逐步扩大,业界各种大数据业务架构日益增多,部分客户对IAAS层的存储性能提出了更高的要求。本地盘凭借着大带宽、低时延、免占母机带宽等天然优势在一些大数据型业务场景下备受客户青睐。
但随着云和数据中心的单个CPU核数越来越大,物理盘又无法单独做拆分,导致单个虚拟机实例的核数也随之增多,每个虚拟机对应均要占用一个PCIe槽位。
基于以上问题,为了更加灵活的为客户提供各种规格的本地盘,腾讯云硬件导入团队对多种方案进行了讨论验证,并决定从业界中找寻出可以支持SR-IOV的NVMe SSD,经过对不同供应商的深度调研与比对,最终选出忆联进行技术方案的测试和验证工作。
最终,经过腾讯云服务器与供应链NPI团队、腾讯云服务器虚拟化团队、忆联公司一起配合努力,在腾讯云的实验室机房进行了长达两个月的全面测试验证工作,验证结果表明SR-IOV特性在公有云场景下可以带来一定的价值。
一、SSD之SR-IOV的简单介绍
1、SR-IOV
先简单介绍一下SR-IOV,SR-IOV(Single-Root I/O Virtualization,单根 I/O虚拟化)是一种基于硬件的虚拟化解决方案,通过利用PF和VF的属性,将一个设备虚拟出多个PCIe设备,利于虚拟机操作,从而大大减轻宿主机的CPU负荷,提高性能和可伸缩性,帮助系统解决虚拟机SSD盘的QoS问题,可支持更多数量的虚拟机业务。
传统虚拟化系统使用Hypervisor(或者VMM)软件对虚拟机进行管理,软件层既消耗CPU资源,又有较深的调用栈,使得PCIe设备的性能优势无法彻底发挥。而SR-IOV可以实现多个虚拟机共享物理资源,且bypass Hypervisor(或者VMM)软件层,使得虚拟机可以使用到NVMe SSD的高性能。
对比传统虚拟化系统,在有SR-IOV技术的云业务虚拟机应用场景下,VM可直接与VF通信,不需要Hypervisor接入IO处理,节约 vCPU资源的同时,又可以实现不同VF之间性能相互隔离,互不影响。
*传统虚拟机与SR-IOV虚拟机对比
可以总结得出SR-IOV优势在于:
1,实现SR-IOV之后,VMM把中断交给虚拟机处理,提高了I/O性能;
2,虚拟机直接和PCIe设备交互,bypass掉中间的Hypervisor/VMM层,减轻物理主机CPU负担,使之有能力承载更多虚拟机;
3,SR-IOV虚拟化技术可以减少客户所需PCIe设备数量,进而节省PCIe插槽;
4,SR-IOV可以与其他的I/O虚拟化技术进行结合,提供一个更加完整的兼具高性能和安全性的解决方案;
比如,当前一块NVMe SSD容量可以达到十几TB,而IOPS可以达到100万以上,延时也降低到了微秒级,SR-IOV可以使NVMe SSD直接被上层多个VM所用,SSD的性能优势也可以直接被上层应用感知到。
如下图,在虚拟化分区方式场景下,通过SR-IOV技术将一片PCIe 4.0 7.68TB SSD(绑定16个CPU核)配置为2个容量为3.84TB VF(绑定8个CPU)。
*虚拟化分区方式场景
二、忆联SSD技术验证
1、性能测试验证
目前,SR-IOV在虚拟化中的应用较为成熟,被广泛应用于网卡以及对网络性能、传输速度要求极高的应用场景中。而基于SR-IOV的SSD许多厂商已做过多种尝试,比如定义namespace后进行上层虚拟机的关联,多家SSD厂商都已支持。但如何做到1块物理SSD硬盘基于SR-IOV虚拟化成几块虚拟SSD硬盘后,依然能保障QoS的性能隔离和性能保障,是其中最大的挑战。
据悉,忆联在早期规划SR-IOV特性时就从控制器层面做了很多优化设计,基于硬件能力规划了QoS的能力,可以做到多块虚拟SSD硬盘之间性能隔离。
为了验证QoS的能力,我们在1分8的场景下,进行了充分的性能测试验证,从以下数据显示:
*1分8场景
在SR-IOV特性上,忆联的QoS能力依然表现不俗,隔离效果明显,基本可以做到在业务使用场景下相互之间并无影响,确保使用SR-IOV以后,也依然可以保障虚拟SSD盘的大带宽、低时延。
2、产品化验证——可靠性验证
满足性能的同时,在产品化过程中SR-IOV是否可以满足高可靠性也同样重要。例如在对命令支持方面,虚拟化SSD盘和物理SSD盘有何区别?在物理盘掉电之后,数据是否会丢失?物理盘掉盘异常之后, SR-IOV配置如何快速保留和恢复?
因此,忆联在设计SR-IOV之初,为了保障产品的高性能与高可靠性,对业务使用流程上的需求也进行了全面的考虑与分析,使得忆联的SR-IOV特性得以在各种业务流程和异常场景中都有应对的方案和措施。
具体测试流程及验证结果如下:
*配置流程
通过以上测试验证,我们可以比较明确忆联的SR-IOV在新盘接入,盘片掉电恢复,异常换盘三种场景下均有比较高的可靠性保障方案。
三、SR-IOV未来可期
未来,随着单台服务器的CPU核数增加,网卡带宽增加到100G,单个SSD硬盘容量越来越大,使用SR-IOV提供各种容量规格的本地盘的必要性也越来越高。
一方面,本地盘场景下使用大容量SSD盘的SR-IOV特性,可以减少小容量NVMe SSD的数量,有效降低单台服务器的TCO;
另一方面,使用SR-IOV技术可以让底层的NVMe SSD盘资源跟随上层碎片化的CPU核数进行更灵活的售卖,提升整体的售卖率,降低单台虚拟机的成本。
未来,忆联会继续在NVMe SSD的SR-IOV特性方面进行更深入的探索和投入,助力用户推进NVMe SSD盘的SR-IOV在更多场景下的应用,并基于用户的实际应用需求场景,持续提供有竞争力的产品和服务,帮助用户创造更多价值。