APP下载

虚拟机网络接入层技术进化

2012-11-09康乐

中国教育网络 2012年2期
关键词:网卡交换机报文

文/康乐

虚拟机网络接入层技术进化

文/康乐

IEEE Data Center Bridging任务组正在制定一套新标准——802.1Qbg Edge Virtual Bridging(EVB)。该标准将VEPA作为基本实现方案。VEPA方式不仅借助物理交换机实现虚拟机间流量转发,同时还实现对虚拟机流量监管、访问控制策略部署问题,并且将虚拟机接入层网络纳入传统服务器接入网络管理体系中。另外,EVB标准还定义VEB、 VEPA和Director IO(一种硬件VEB)的混和实现方案,即多通道技术。

VEB两种方案的优劣分析

服务器虚拟化是在物理服务器上借助虚拟化软件(如VMware ESX、Citrix XEN)实现多个虚拟机(Virtual Machine,VM)的虚拟化运行环境。安装在服务器上实现虚拟化环境的软件层被称为VMM(Virtual Machine Monitor)。VMM为每个虚拟机提供虚拟化的CPU、内存、存储、IO设备(如网卡)以及以太网交换机等硬件环境,如图1所示。

在虚拟化服务器中,虚拟以太网交换机是一个比较特殊的设备,具有重要的作用。虚拟机是通过虚拟交换机向外界提供服务的。在虚拟化的服务器中,每个虚拟机都变成一台独立的逻辑服务器,它们之间的通信通过网络进行。每个虚拟机被分配一个虚拟网卡(不同的虚拟机网卡有不同的MAC地址)。为实现虚拟机之间以及虚拟机与外部网络的通信,必须存在一个“虚拟以太网交换机”以实现报文转发功能。在IEEE的802.1标准文档中,“虚拟以太网交换机”正式名称为“Virtual Ethernet Bridge”,简称VEB。VEB可以在VMM中采用纯软件方式实现,也可以借助支持SR-IOV特性的网卡通过全硬件方式实现。

软件VEB的技术特性

软件VEB(或称VSwitch)是目前较为成熟且产品化较好的技术方案。在一个虚拟化的服务器中,VMM为每个虚拟机创建一个虚拟网卡,对于在V M M中运行的VSwitch,每个虚拟机的虚拟网卡对应到VSwitch的一个逻辑端口上,服务器的物理网卡对应到VSwitch与外部物理交换机相连的端口。

虚拟机的报文接收流程如下:VSwitch从物理网卡接收以太网报文,之后根据VMM下发的虚拟机MAC与VSwitch逻辑端口对应关系表(静态MAC表,VSwitch通常不做MAC地址学习)来转发报文。

虚拟机报文发送流程如下:当报文的MAC地址在外部网络时,VSwitch直接将报文从物理网卡发向外部网络;当报文目的MAC地址是连接在相同VSwitch上的虚拟机时, VSwitch通过虚拟机与逻辑网卡的对应关系表来转发报文。如图2所示。

VSwitch方案具有以下优点:

1. 虚拟机间报文转发性能好

VSwitch实现虚拟机之间报文的二层软件转发, VSwitch对报文的转发能力只受限于CPU性能、内存总线带宽,因此虚拟机间报文的转发性能(带宽、延迟)非常好。

2. 节省接入层物理交换机设备

例如,数据中心需要部署Web服务器,且Web服务器网关指向防火墙,这里可将一台服务器虚拟化成多个虚拟机,每个虚拟机作为一个Web服务器,将VSwitch作为Web服务器的网络接入层设备,将服务器物理网卡与防火墙端口互联即可完成组网,无需额外的物理交换机。

3. 与外部网络的兼容性好

VSwitch采用软件实现,对现有网络标准的兼容性好,所以VSwitch与外部网络设备不存在互联兼容性问题。

但VSwitch方案也存在一些缺点:

图1 虚拟化服务器模型

1. 消耗CPU资源

虚拟机产生的网络流量越高,基于软件实现的VSwitch就需要占用越多的CPU资源用于报文的转发处理,从而减弱服务器支持更多虚拟机的能力。特别是在虚拟机到外部网络的流量很大时,CPU的开销会更大。

2. 缺乏网络流量的可视性

VSwitch缺少内部流量监管能力,例如端口报文统计、端口流镜像、网络流量分析等特性。上述特性的缺失,一方面导致虚拟机之间的流量无法被网管系统所监管;另一方面也使得网络在发生故障时,难以定位问题原因。

3. 缺乏网络控制策略的实施能力

当前数据中心接入交换机都具有很多实现网络控制策略的特性,例如端口安全,QoS、ACL等。而VSwitch因顾及CPU开销问题,通常不支持上诉特性。因此限制数据中心的端到端的网络控制策略(如端到端的QoS、整网安全部署策略等)的部署能力。

4. 缺乏管理可扩展性

随着数据中心虚拟机数量的增加,VSwitch的数量随之增加,而传统的VSwitch必须被单独的配置管理,由此增加了网络的管理工作量。VMware公司推出的“分布式交换机(DVW)”技术,可以将最多64个VSwitch作为一个统一的设备进行管理。但这种技术只有限地改善管理扩展性问题,并未从根本上解决外部网络管理与VSwitch管理的统一性问题。

硬件VEB的技术特性

硬件VEB标准的设计思想是将VEB功能从VMM移植到服务器物理网卡,通过网卡硬件改善VSwitch占用CPU资源而影响虚拟机性能的问题。这种硬件VEB方案必须采用支持SR-IOV(Single-Root I/O Virtualizaiton)特性的PCIe网卡。

SR-IOV是PCIe(PCI Express)标准的一个延伸,它可以使一个PCIe适配器(如网卡)通过一个共享的PCIe物理接口同时起到多个独立器件(多个独立网卡)的作用。物理服务器上的虚拟机可直接访问PCIe网卡上的寄存器和I/O队列,由于绕过了VMM对虚拟机I/O请求的代理中转过程,可显著减少CPU开销,并且降低虚拟机访问外部网络的时延,这种工作模式也被称为“direct IO”。

采用硬件V E B方案时,V M M只实现SR-IOV网卡驱动程序(资源分配、中断处理等),不再参与虚拟机与外部网络以及虚拟机之间的报文转发流程。对于从虚拟机发往外部网络的报文,由虚拟机操作系统的驱动程序直接操作网卡寄存器进行发送;对于外部网络发往虚拟机的报文,网卡根据目的MAC,将报文放入虚拟机对应的接收队列,虚拟机操作系统的驱动程序再通过DMA或中断方式进行接收处理;对于虚拟机之间的报文转发,网卡芯片通过查MAC表(静态配置,通常不支持MAC学习)进行转发处理。

基于SR-IOV网卡技术的硬件VEB方案的优点如下:

1. 相对于VSwitch(软件VEB)来说,它减少CPU占用率。借助SR-IOV技术将报文转发硬件化,不再需要类似VSwitch软件参与报文处理。

2. 提高虚拟机操作系统访问物理网卡的性能,尤其是当虚拟机与外部网络有大量报文流量时,由于实现了虚拟机对PCIe设备的直接访问和操作,显著降低从虚拟机到物理网卡的报文处理延时。

图2 VSwitch方案架构

3. 支持SR-IOV的网卡,可虚拟化出256个虚拟网卡,提高了物理服务器的网络虚拟化能力。

硬件VEB改进了VSwitch(软件VEB)的性能,但硬件VEB方案仍然存在一些局限性:

1. 缺乏网络可视性

支持SR-IOV的网卡不能解决网络流量监管问题。考虑到网卡成本,通常不会在网卡上添加流量监管处理芯片(如流量镜像、网络流量分析、端口报文统计信息等)。由于硬件实现缺少灵活性,硬件VEB的网络流量监管特性有可能比VSwitch方案还少。

2. 缺乏网络控制策略的实施能力

同样是考虑到网卡成本的问题,很难在网卡上实现基于硬件的网络控制策略(如QoS、ACL等)。

3. 缺乏管理的可扩展性

每个物理网卡就是一个硬件VEB,随着虚拟化服务器数量的增加,网络中会存在很多硬件VEB需要分别进行管理,由此带来管理可扩展性问题。相比VSwitch方案,由于一个VSwitch可包含多个物理网卡(如网卡捆绑上行),而硬件VEB必须是每个物理网卡对应一个VEB,所以硬件VEB的管理可扩展性比VSwitch还差。

4. 缺乏主流操作系统产品的支持

为支持SR-IOV技术,需要虚拟机的操作系统与V M M 采用“准虚拟化(Paravirtualized)”工作模式,这种模式要求虚拟机操作系统内核做必要的修改,以支持Director IO。从目前了解到的情况看,主流操作系统厂商都不支持这种模式。“准虚拟化+Director IO”方式主要用在Linux操作系统及基于Linux内核实现的虚拟化技术上(XEN)。

VEB实现虚拟机之间以及虚拟机与外部网络之间的报文转发。在VEB的两种实现方案中,软件VEB(VSwitch)的通用性好,虚拟机之间的转发性能好;硬件VEB基于网卡SR-IOV技术实现,对CPU资源占用小。但两种VEB方案始终没有解决的问题是虚拟机间流量的监管、网络策略的部署以及管理可扩展性。

802.1Qbg EVB标准

EVB标准的设计思想

正是认识到软件和硬件VEB方案的局限性,IEEE 802.1工作组正着手制定一个新标准802.1Qbg Edge Virtual Bridging(EVB),其核心思想是将虚拟机产生的网络流量全部交给与服务器相连的物理交换机进行处理,即使同一台服务器的虚拟机间流量,也发往外部物理交换机进行转发处理。如图3所示,由VM1发往VM2或VM3的报文,首先被发往外部交换机,查表后,报文沿原路返回服务器。802.1Qbg标准的作者——HP的Paul Condon,将这种工作模式形象地描述为“发卡弯(hairpin turn)”转发。

EVB改变传统的VEB对报文的转发方式,使得大多数报文在外部网络交换机被处理。与VEB相似,EVB可通过软件方式实现(类似在VMM中的VSwitch),也可以在支持SR-IOV技术的网卡上实现。由于将所有流量都引向外部交换机,因此与虚拟机相关的流量监管、控制策略和管理可扩展性问题得以很好地解决。由于流量被从虚拟机上引入到外部网络,EVB技术也带来更多网络带宽开销的问题,如从一个虚拟机到另一个虚拟机的报文,占用的网络带宽是传统的报文转发的两倍,其中一半带宽用于从源虚拟机向外网交换机传输,另一半带宽用于从外部交换机向目的虚拟机传输。EVB的出现并不是去完全替换VEB方案,但是EVB对于流量监管能力、安全策略部署能力要求较高的场景(如数据中心)而言,是一种优选的技术方案。

以太网交换机在处理报文转发时,对于从一个端口上收到的报文,不会再将该报文从该端口发回。因此,当具备EVB特性的服务器接入到一个外网交换机时,该交换机相应端口必须支持上述“发卡弯”转发方式。当前大多数交换机的硬件芯片都能支持这种“发卡弯”转发特性,只要修改驱动程序即可实现,不必为支持“发卡弯”方式而增加新的硬件芯片。

由EVB技术引起的变化还有服务器对从外部网络接收到组播或广播报文的处理方式。由于EVB从物理网卡上收到的报文可能是来自外部交换机的发卡弯报文,也就是说报文源MAC是虚拟化服务器上的虚拟机的MAC,这种报文必须进行过滤处理,以避免发送该报文的虚拟机再次从网络上收到自己发出的组播或广播报文。因此,当前的操作系统或网卡驱动都需要做相应的修改。

EVB标准具有如下的技术特点:

1. 借助发卡弯转发机制将外网交换机上的众多网络控制策略和流量监管特性引入到虚拟机网络接入层,简化网卡的设计,减少虚拟网络转发对CPU的开销。

2. 使用外部交换机上的控制策略特性(ACL、QoS、端口安全等)实现整网端到端的策略统一部署。

3. 使用外部交换机增强虚拟机流量监管能力,如各种端口流量统计、网络流量分析、端口镜像等。

上文仅描述EVB的设计思路以及实现EVB方案带来的好处。实际上EVB定义了两种报文转发方案:VEPA(Virtual Ethernet Port Aggregator)和多通道(Multichannel Technology)。VEPA是EVB标准定义的基本实现方案,VEPA方案不需要对虚拟机发出的以太网报文做改动即可实现发卡弯转发。多通道技术定义通过标签机制实现VEB、Director IO(硬件VEB)和VEPA混和部署方案。借助多通道技术,管理员可以根据网络安全、性能及可管理性等方面的需求,来选择虚拟机与外部网络的接入方案(VEB、Director IO或VEPA)。

EVB的基本实现方案—VEPA

IEEE 802.1工作组在VEPA技术基础实现IEEE 802.1Qbg EVB标准,是因为VEPA技术对当前网卡、交换机、现有以太网报文格式和标准影响最小。

VEPA的实现是基于现在的IEEE标准,不必为报文增加新的二层标签,只要对V M M软件和交换机的软件升级就可支持VEPA的发卡弯转发。为了评估开发VEPA特性的工作量,HP公司的某新技术实验室开发了一种支持VEPA功能的原型软件和一个支持发卡弯转发的外部以太网交换机原型。VEPA软件原型是在Linux内核的桥模块基础上,只进行很少代码修改即实现发卡弯特性,即使在未对代码做优化的情况下,VEPA方案对报文的转发性能也比传统VSwitch提高12%。

与VEB方案类似,VEPA方案可以采用纯软件方式实现,也能够通过支持SRIOV的网卡实现硬件VEPA。其实,只要是VEB能安装和部署的地方,就都能用VEPA来实现,但VEB与VEPA各有所长,并不存在替代关系。

VEPA的优点:

1. 完全基于IEEE标准,没有专用报文格式。

2. 容易实现,通常只需要对网卡驱动、VMM桥模块和外部交换机的软件做很小的改动,从而实现低成本方案目标。

对VEPA的增强——多通道技术

多通道技术是通过给虚拟机报文增加IEEE标准报文标签,以增强VEPA功能的一种方案,由HP公司提出,最终被IEEE 802.1工作组接纳为EVB标准的一种可选方案。

多通道技术方案将交换机端口或网卡划分为多个逻辑通道,并且各通道间逻辑隔离。每个逻辑通道可由用户根据需要定义成VEB、VEPA或Dircetor IO的任何一种。每个逻辑通道作为一个独立的到外部网络的通道进行处理。多通道技术借用802.1ad S-TAG(Q-IN-Q)标准,通过一个附加的S-TAG和VLAN-ID来区分网卡或交换机端口上划分的不同逻辑通道。如图4所示。

多通道技术可组合出多种方案:

1. 多个VEB或VEPA共享同一个物理网卡。管理员可能需要特定虚拟机使用VEB,以获得较好的交换性能;也可能需要其他的应用使用VEPA,以获得更好的网络控制策略可实施性和流量可视性,并要求上述使用VEB或VEPA的虚拟机同时部署在一个物理服务器上。对于这些情况,管理员通过多通道技术即可解决VEB与VEPA共享一个外部网络(网卡)的需求。

2. 直接将一个虚拟机影射到物理网卡上(Director IO),而其他的虚拟机仍然通过EVB或VEPA共享物理网卡。传统VMM软件都能支持直接将虚拟机映射到物理网卡上,但这个虚拟机将独占这个物理网卡,由此造成网络资源的浪费。多通道技术使外部物理交换机通过报文的S-TAG识别网络流量来自哪个VEPA/VEB或来自哪个直接映射的网卡,反之亦然。

多通道技术需要网卡和外部交换机支持S-TAG和Q-IN-Q操作,所以在某些情况下,可能要求网卡或交换机做硬件升级,而VEPA方案对设备硬件没有要求,几乎在所有的VMM和外部物理交换机都能实现。多通道技术为管理员提供一种选择实现虚拟机与外部网络接入方式的手段。对于一台物理服务器上的多个虚拟机,管理员可根据网络安全、性能及可管理性的需求,采用VEB、Director IO或VEPA中的任何一种方式为虚拟机提供网络接入。

表 VEB方案与EVB方案的综合对比

802.1Qbh Bridge Port Extension标准

端口扩展(PE)设备是一种功能有限的物理交换机,通常作为一个上行物理交换机的线卡使用。端口扩展技术需要为以太网报文增加TAG,而端口扩展设备借助报文TAG中的信息,将端口扩展设备上的物理端口映射成上行物理交换机上的一个虚拟端口,并且使用TAG中的信息来实现报文转发和策略控制。

当前市场上已有端口扩展设备,如Cisco的Nexus 2K就是Nexus 5K的端口扩展器。VN-TAG是Cisco为实现端口扩展而定义的一种私有以太网报文标签格式,这种报文格式不是建立在IEEE已定义各种标准上。VN-TAG为报文定义虚拟机源和目的端口,并且标明报文的广播域。借助支持VN-TAG技术的VSwitch和网卡,也能够实现类似EVB多通道的方案,但是VN-TAG技术有以下一些缺点:

1. VN-TAG是一种新提出的标签格式,没有沿用现有的标准(如IEEE 802.1Q、IEEE 802.1ad、IEEE 802.1X tags )。

2. 必须改变交换机和网卡的硬件,而不能只是简单地对现有的网络设备软件进行升级。也就是说,VN-TAG的使用需要部署支持VN-TAG的新网络产品(网卡、交换机、软件)。

最初IEEE 802.1工作组曾考虑将“端口扩展”特性作为EVB标准的一部分,但是工作组最终决定将端口扩展发展成一个独立的标准,即802.1 Bridge Port Extension。Cisco曾向802.1Q工作组建议,将VN-TAG技术作为实现E V B的一种可选方案,但IEEE 802.1工作组最终没有接纳这个提案。此后,Cisco修改VN-TAG技术草案,修改后的草案称为M-TAG,该方案的主要目标仍是为实现端口扩展设备与上行交换机之间的通信标准化。

802.1Qbg EVB的标准化进程

在本文写作的时候,IEEE 802.1Qbg的授权请求(PAR)已经通过,正式的标准化过程正在进行中。IEEE 802.1选择VEPA技术草案作为EVB标准的基础,因其使用现有的技术标准,并对现有的网络产品和设备产生最小的影响。多通道技术作为一种可选项,也在EVB标准中定义。多通道技术提出一种标准化T A G机制,以实现VEPA、VEB及Director IO的灵活部署。

“方案没有最好的,只有最适合的”。如表所示,VEB的优点是虚拟机之间的报文转发性能高,软件EVB(VSwitch)的兼容性好,易于实现。而EVB的优点在于虚拟机流量的监管能力、网络策略部署能力以及管理可扩展性。EVB与VEB各有所长,并不存在绝对替代关系,也正因为这个原因,EVB标准又定义了“多通道技术”。建议用户在设计虚拟服务器接入层网络时,根据实际需求选择合适的技术方案。

另外,市场上现存的一些与虚拟服务器接入层网络相关的产品,采用的方案并不是802.1工作组承认的标准技术。建议用户在评估设备的过程中,从保护现有设备投资角度出发,充分评估特定厂商产品的技术特性,确认其是否能在将来与当前正在标准化进程中的EVB标准充分兼容。

(作者单位为杭州华三通信技术有限公司)

猜你喜欢

网卡交换机报文
基于J1939 协议多包报文的时序研究及应用
低轨星座短报文通信中的扩频信号二维快捕优化与实现
CTCS-2级报文数据管理需求分析和实现
部署Linux虚拟机出现的网络故障
浅析反驳类报文要点
更换汇聚交换机遇到的问题
基于地铁交换机电源设计思考
Server 2016网卡组合模式
缔造工业级的强悍——评测三旺通信IPS7110-2GC-8PoE工业交换机
挑战Killer网卡Realtek网游专用Dragon网卡