文/康乐
随着服务器虚拟化技术的成熟,数据中心部署的虚拟化服务器数量越来越多。虚拟机①的出现使数据中心服务器网络接入层出现了一个被称为VEB(Virtual Ethernet Bridge)的网络层。在服务器上采用纯软件方式实现的VEB就是通常所说的“VSwitch”。虽然VSwitch的实现方式简单,技术兼容性好,但也面临着诸多问题,例如VSwitch占用CPU资源导致虚拟机性能下降、虚拟机的流量监管、虚拟机的网络策略实施以及VSwitch管理可扩展性等问题。借助支持SR-IOV特性的网卡可以实现基于硬件的VEB。相比VSwitch,硬件EVB减少了CPU开销,但这种硬件方案与VSwitch类似,仍然不能有效解决虚拟机流量监管、网络策略实施及管理可扩展性问题。
为此,IEEE Data Center Bridging (DCB)任务组(DCB任务组是IEEE 802.1工作组的一个组成部分)正在制定一个新标准——802.1Qbg Edge Virtual Bridging(EVB),该标准将VEPA(Virtual Ethernet Port Aggregator)作为基本实现方案。VEPA的核心思想是,将虚拟机产生的网络流量全部交由与服务器相连的物理交换机进行处理,即使同一台服务器上的虚拟机间流量,也将在物理交换机上查表处理后,再回到目的虚拟机上。VEPA方式不仅借助物理交换机解决了虚拟机间流量转发,同时还实现了对虚拟机流量的监管,并且将虚拟机接入层网络纳入到传统服务器接入网络管理体系中。EVB标准同时还定义了VEB、VEPA和Director IO的混和实现方案,即多通道技术(Multichannel Technology)。
一、 VEB(Virtual Ethernet Bridge)
1. 虚拟化服务器与VEB
虚拟化服务器①是使用虚拟化软件(如VMWare ESX、Citrix XEN)在一台物理服务器上虚拟出一台或多台虚拟机(Virtual Machine,VM),安装在服务器上的虚拟化软件被称为VMM(Virtual Machine Monitor)。虚拟机运行在一个隔离环境中,是具有完整硬件功能的逻辑服务器,每个虚拟机具有自己的操作系统和应用程序。一台服务器上的多个虚拟机可以互不影响的同时运行,并复用物理机资源。虚拟化软件为虚拟机提供一套虚拟的硬件环境,包括虚拟的CPU、内存、存储设备、I/O设备(如网卡)以及虚拟交换机等,如图1。
图1虚拟化服务器模型
在虚拟化服务器中,虚拟以太网交换机是一个比较特殊的设备,具有重要的作用。虚拟机是通过虚拟交换机向外界提供服务器的。在虚拟化的服务器中,每个虚拟机都变成了一台独立的逻辑服务器,它们之间的通信通过网络进行。每个虚拟机被分配了一个虚拟网卡(不同的虚拟机网卡有不同MAC地址)。为实现虚拟机之间以及虚拟机与外部网络的通信,必须存在一个“虚拟以太网交换机”以实现报文转发功能。在IEEE的文档中,“虚拟以太网交换机”正式英文名称为“Virtual Ethernet Bridge②”,简称VEB。
VEB可以在VMM中采用纯软件方式实现,也可以借助支持SR-IOV特性的网卡通过全硬件方式实现。
2. 软件VEB的技术特性
软件VEB(或称VSwitch③)是目前较为成熟且产品化较好的技术方案。在一个虚拟化的服务器中,VMM为每个虚拟机创建一个虚拟网卡,对于在VMM中运行的VSwitch,每个虚拟机的虚拟网卡对应到VSwitch的一个逻辑端口上,服务器的物理网卡对应到VSwitch与外部物理交换机相连的上行逻辑端口上。
虚拟机的报文接收流程如下:VSwitch首先从物理网卡接收以太网报文,之后根据VMM下发的虚拟机MAC与VSwitch逻辑端口对应关系表(静态MAC表,VSwitch通常不做MAC地址学习)来转发报文。
虚拟机报文发送流程为:当报文的MAC地址在外部网络时,VSwitch直接将报文从物理网卡发向外部网络;当报文目的MAC地址是连接在相同VSwitch上的虚拟机时,则VSwitch通过虚拟机与逻辑网卡的对应关系表来转发报文。如图2所示。
图2 VSwitch方案架构
VSwitch方案具有以下优点:
· 虚拟机间报文转发性能好。VSwitch实现虚拟机之间报文的二层软件转发, VSwitch对报文的转发能力只受限于CPU性能、内存总线带宽,因此虚拟机间报文的转发性能(带宽、延迟)非常好;<