欢迎user
超融合产品融合了计算、存储、网络和安全,网络作为超融合集群内流量的桥梁,其转发性能对超融合产品至关重要。本文将介绍如何使用智能加速卡来提升网络转发性能。
虚拟交换机和虚拟路由器
电脑要想上网,需要通过无线Wi-Fi或者网线连接交换机才可以。同样地,虚拟机之间通信或者虚拟机访问外部网络也需要连接虚拟交换机。
虚拟交换机连接超融合的多个虚拟机,实现二层交换功能,包括MAC学习、VLAN广播等,同网段的流量可以通过虚拟交换机进行通信。虚拟交换机的另外一端与网卡相连,同一台超融合一体机内的虚拟机之间的流量无需发送给网卡,只有与超融合一体机外面的主机通信才需要发送给网卡。虚拟交换机上也可以下发ACL规则,用于放通或者丢弃指定IP或者MAC的流量。
不同VLAN的虚拟机之间通信需要使用虚拟路由器的三层路由功能,虚拟路由器上的路由表会记录各个网段的路由,将跨网段的流量转发到正确到出端口。
不完美的网络
Linux内核处理网络流量由于使用到读写锁和软中断,性能瓶颈很明显,只能达到1-2MPPS。因此,当用户业务流量较大时,通常使用DPDK或者SR-IOV技术来提升网络性能。
DPDK(数据平面开发套件Data Plane Development Kit)是由一系列用户态的函数库组成,用于快速处理报文,可以显著提升网络性能。DPDK从设计上尽量避免使用读写锁和软中断,将不同线程绑定在特定的CPU上用来减少CPU切换,使用大页内存降低Cache Miss出现的频率,无锁的Ring Buffer(循环缓冲区)和异步机制省去了读写锁的开销。提升性能付出的代价是对CPU资源占用较多,DPDK绑定的CPU核的计算资源都用于流量转发处理。
SR-IOV(Single Root I/O Virtualization)是一种IO虚拟化技术,可以将一块物理网卡虚拟成多个虚拟网卡,每个虚拟网卡即VF都可以供虚拟机使用。SR-IOV的优势在于跳过了虚拟化平台,让虚拟机直接使用物理网卡,因此转发性能上几乎没有损失。但SR-IOV的缺点也很明显,SR-IOV需要在虚拟机内安装网卡驱动,无法使用标准的虚拟化IO,所以会有部分虚拟机会因为其使用的操作系统下没有SR-IOV驱动而无法使用这项技术。其次,目前SR-IOV在虚拟机热迁移的支持上还比较欠缺。
智能加速卡
智能加速卡可以解决DPDK和SR-IOV的缺点,同时达到近似的性能。智能加速卡相当于一台硬件交换机,可以将虚拟交换机的转发表项都下发到智能加速卡的硬件芯片上。使用硬件芯片转发用户报文,可以得到更高的性能,比如虚拟交换机小包性能约为2G左右,而同样的流量采用UIS的智能加速卡可以达到15G。
智能加速卡使用硬件芯片转发报文,通过内存映射技术直接转发给虚拟机,因此相比使用CPU做转发的虚拟交换机,更加节省CPU和内存资源。节约的资源可用于创建更多的虚拟机,从而有效降低用户成本。
智能加速卡相比SR-IOV通用性更好,使用标准的虚拟化IO,因此无需在虚拟机内安装网卡驱动。也正因为使用标准的虚拟化IO,使用智能加速卡的虚拟机可以做热迁移操作。比如在UIS上将虚拟机从一台一体机迁移到另一台一体机的过程中,热迁移的虚拟机业务流量不会中断。
网络性能对实时性要求高的业务至关重要,现有的DPDK和SR-IOV虽然可以一定程度上解决网络性能问题,但依然存在一些缺点。智能加速卡可以完美满足用户对网络性能的需求,使用硬件芯片转发报文实现高带宽低时延的同时,也节省了用户CPU和内存资源。未来在云桌面、金融等领域内,会有越来越多的用户选择智能加速卡。