虚拟交换机可以在三个层次实现
基于服务器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智能网卡虚拟的虚拟队列直接相连,同时支持热迁移、安全隔离功能。
基于物理交换机:
某些物理交换机可通过特殊协议,感知虚拟机的存在,在交换机层实现虚拟交换。