首先,基于服务器CPU的虚拟交换技术,主要通过软件形式运行在服务器上,以实现虚拟交换功能。这种模式中,虚拟机的虚拟网卡相当于连接到虚拟交换机的一个虚拟端口,而服务器的物理网卡则作为与外部物理交换机连接的上行链路。在这种架构下,虚拟机之间的报文转发完全在服务器内部进行,因此通信性能极为出色,时延低,且由于报文不需要离开服务器,转发路径短,性能高。
然而,当虚拟机之间的通信需要跨越不同服务器时,就需要通过物理交换机进行转发。尽管这种方式在性能上略逊于物理交换机直接实现虚拟交换,但由于其采用纯软件实现,功能扩展更为灵活,能够迅速满足云计算环境下的网络需求变化。此外,服务器内存的容量通常远大于物理交换机,因此在二层交换容量、访问控制列表(ACL)容量等方面,服务器CPU实现的虚拟交换具有明显优势。
其次,基于物理网卡的虚拟交换技术,通过支持硬件虚拟化的物理网卡来实现。这种方法将虚拟交换功能从服务器CPU转移到物理网卡上,从而减轻了CPU的负担,并借助网卡硬件加速虚拟交换性能。例如,SR-IOV技术就允许虚拟机直接访问物理网卡,显著降低了报文处理延时。
不过,传统的商业网卡在支持高级特性和功能扩展方面存在限制,而且由于设计缺陷,难以支持虚拟机的热迁移等关键特性。为了解决这些问题,华为研发了iNIC智能网卡,不仅提供了与虚拟机虚拟网卡的直接连接,还支持热迁移和安全隔离等功能。
最后,基于物理交换机的虚拟交换技术,通过特殊的协议让物理交换机感知到虚拟机的存在,从而在交换机层面实现虚拟交换。这种方式的优点在于能够充分利用物理交换机的高性能和可靠性,但功能扩展和灵活性相对较低。
总的来说,虚拟交换机在这三个层次上的实现各有优势和局限。基于服务器CPU的虚拟交换提供了出色的内部通信性能和灵活的功能扩展;基于物理网卡的技术减轻了CPU负担,提高了性能;而基于物理交换机的方法则依赖于成熟的技术和设备,确保了高性能和稳定性。在实际应用中,可以根据具体的网络需求和资源状况,选择最合适的虚拟交换技术。
虚拟交换机可以在三个层次实现
基于服务器CPU:
以软件形式运行在服务器上,实现虚拟交换功能
在服务器的CPU中实现完整的虚拟交换的功能,虚拟机的虚拟网卡对应虚拟交换的一个虚拟端口,服务器的物理网卡作为虚拟交换的上行链路接入物理接入层交换机。
虚拟机的报文接收流程如下:虚拟交换机首先从虚拟端口/物理端口接收以太网报文,之后根据虚拟机MAC、VLAN,查找二层转发表,找到对应的虚拟端口/物理端口,然后按照具体的端口,转发报文如图所示,同一主机中的虚拟机VM1和VM2之间的数据交换由本地虚拟交换机完成,而VM1与VM3通信时,数据交换有两个虚拟交换机及物理交换机共同完成。
特点:
服务器内部的通信性能:
同一服务器上的虚拟机间报文转发性能好,时延低;虚拟交换机实现虚拟机之间报文的二层软件转发;报文不出服务器,转发路径短,性能高。
跨服务器通信性能:
需要经物理交换机进行转发,相比物理交换机实现虚拟交换,由于虚拟交换模块的消耗,性能稍低于物理交换机实现虚拟交换。
扩展灵活:
由于采用纯软件实现,相比采用L3芯片的物理交换机,功能扩展灵活、快速,可以更好的满足云计算的网络需求扩展。
规格容量大:
服务器内存大,相比物理交换机,在L2交换容量、ACL容量等,远大于物理交换机。
基于物理网卡
某些物理网卡支持硬件虚拟化功能,通过硬件本身提供的虚拟化功能实现虚拟交换。设计思想是将虚拟交换功能从服务器的CPU移植到服务器物理网卡,通过网卡硬件改善虚拟交换机占用CPU资源而影响虚拟机性能的问题,同时借助物理网卡的直通的能力,加速虚拟交换的性能。
如图所示SR-IOV硬件网卡直通方案,虚拟机VM1与虚拟机VM2之间的数据交换由物理网卡完成。
传统的SR-IOV商业网卡,可以支持简单的虚拟交换的功能,高级特性较少,并且由于自身设计以及缺乏与Hypervisor的配合存在一些缺陷,如热迁移等。
特点:
①需要额外配置支持虚拟化功能的物理网卡;
②相对于虚拟交换机(软件VEB),减少了CPU占用率,采用网卡实现交换的功能,不再需要CPU参与虚拟交换处理;
③对于物理网卡实现虚拟直通功能时,由于实现了虚拟机对PCIe设备的直接访问和操作,显著降低了从虚拟机到物理网卡的报文处理延时;
④传统商业网卡无法支持热迁移、同时功能简单,无法支持灵活的安全隔离等特性,且功能扩展困难。
华为自研iNIC智能网卡硬件,实现了虚拟机虚拟网卡与iNIC智能网卡虚拟的虚拟队列直接相连,同时支持热迁移、安全隔离功能。
基于物理交换机:
某些物理交换机可通过特殊协议,感知虚拟机的存在,在交换机层实现虚拟交换。