首先,基于服务器CPU的虚拟交换机以软件形式运行在服务器上,实现虚拟交换功能。在这种方式中,虚拟机的虚拟网卡与虚拟交换机的虚拟端口相连,而服务器的物理网卡则作为上行链路接入物理接入层交换机。虚拟机的报文接收流程是:首先由虚拟交换机接收以太网报文,然后根据虚拟机的MAC地址和VLAN信息,在二层转发表中查找对应的端口,最后进行报文转发。在同一个服务器内部,虚拟机之间的数据交换由本地虚拟交换机完成,而跨服务器的通信则需要经过物理交换机。
以下是基于服务器CPU虚拟交换机的几个特点:
- 服务器内部的通信性能优良,同一服务器上的虚拟机间报文转发性能高,时延低。 - 跨服务器通信性能稍逊于物理交换机,因为需要经过物理交换机进行转发。 - 功能扩展灵活,由于采用纯软件实现,可以快速满足云计算网络需求的扩展。 - 规格容量大,服务器的内存容量远大于物理交换机,因此在L2交换容量、ACL容量等方面具有优势。
其次,基于物理网卡的虚拟交换机则将虚拟交换功能从服务器的CPU转移到物理网卡上。这种设计思想的核心是利用网卡硬件改善虚拟交换机占用CPU资源的问题,并通过物理网卡的直通能力,提升虚拟交换的性能。例如,SR-IOV硬件网卡直通方案中,虚拟机之间的数据交换直接由物理网卡完成。
以下是基于物理网卡虚拟交换机的特点:
- 需要额外配置支持虚拟化功能的物理网卡。 - 减少了CPU占用率,因为交换功能由网卡硬件实现,无需CPU参与。 - 显著降低了报文处理延时,因为虚拟机可以直接访问和操作PCIe设备。 - 功能扩展有限,传统商业网卡功能简单,不支持热迁移和安全隔离等特性。
最后,基于物理交换机的虚拟交换机通过特殊协议感知虚拟机的存在,并在交换机层实现虚拟交换。这种方式可以有效地整合虚拟机和物理网络资源,提高整体网络性能。
总结来说,每种虚拟交换机的实现方式都有其独特的优势和局限性。基于服务器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智能网卡虚拟的虚拟队列直接相连,同时支持热迁移、安全隔离功能。
基于物理交换机:
某些物理交换机可通过特殊协议,感知虚拟机的存在,在交换机层实现虚拟交换。