Copyright © 2016 杭州华三通信技术有限公司 版权所有,保留一切权利。 非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部, 并不得以任何形式传播。本文档中的信息可能变动,恕不另行通知。 |
EVB技术是一种应用于数据中心的网络自动化部署技术,用于简化虚拟服务器的流量转发实现,对虚拟服务器的网络交换、流量管理和策略下发进行集中控制,并能在虚拟迁移时实现网络管理和策略的自动迁移。
支持EVB功能的交换机和服务器分别称为EVB交换机(EVB bridge)和EVB服务器(EVB station),两者配合完成EVB功能,本文档重点描述EVB在交换机侧的实现和原理。
随着数据中心规模和功能的日趋复杂,整合现有资源、降低管理成本成为数据中心建设的重要内容。因此,对数据中心资源进行虚拟化成为数据中心整合的主要趋势之一。虚拟化技术通过将物理资源和服务抽象化,使用户无需关心物理对象的细节,从而降低了资源使用和管理的复杂度。因此,对数据中心进行虚拟化能够提高其资源利用率、降低系统能耗,并减少系统的设计、运行、管理和维护成本,从而实现整合的目标。
数据中心的虚拟化技术主要包括网络虚拟化、存储虚拟化和服务器虚拟化这三方面内容。其中,服务器虚拟化是通过专用的虚拟化软件(如VMware)在一台物理服务器上虚拟出多台虚拟机(Virtual Machine,VM),每台虚拟机都独立运行,拥有自己的操作系统、应用程序和虚拟硬件环境(包括虚拟的CPU、内存、存储设备、网卡、以太网交换机等),如图1所示。
服务器虚拟化中的虚拟以太网交换机主要用于完成虚拟机之间,以及虚拟机与外部网络之间的流量交换,它既可通过软件实现(又称VSwitch),也可通过硬件实现(如借助网卡),但这两种实现方式都存在以下问题:
· 缺乏流量监管能力,如报文统计、流镜像、NetStream等特性。这一方面使虚拟机之间的流量无法监管;另一方面也使网络发生故障时难以定位。
· 缺乏网络控制策略的实施能力,如QoS特性。
· 管理困难,特别是需要将服务器内部网络与外部交换网络统一部署时。
EVB(Edge Virtual Bridging,边缘虚拟桥接)技术是为解决上述问题而出现的,其核心思想是将虚拟机的流量(包括同一服务器上各虚拟机之间的流量)全部交给与服务器直连的交换机进行交换和处理,从而使流量监管和网络控制策略的实施成为可能,也使服务器内部网络与外部交换网络能够统一进行部署和管理。
EVB的优点主要体现如下:
· 简化服务器内部实现。服务器不需要在流量交换和控制上消耗过多资源,而是借助外部网络设备的实现,且功能更全面,实现难度更低。
· 提高服务器交换网络的可管理性,内部、外部网络可以统一部署和管理。
· VM的网络服务策略与VM的位置分离。全网VM的网络服务策略可以由策略服务器集中控制,从而使VM迁移时自动重新部署网络策略成为可能。
下面介绍EVB技术的一些基本概念。
图2 EVB基本概念示意图
ER(Edge Relay,边缘中继)位于服务器一侧,对服务器的流量进行转发,相当于图1中的虚拟以太网交换机。一个ER包含一个上行口和至少一个下行口,上行口和下行口统称为ER端口。上行口与交换机相连,各下行口与各虚拟机一一相连,如图2所示。
ER既可以通过软件实现,也可以使用专门的硬件单元实现,目前主要有VEB和VEPA两种实现模型。
RR(Reflective Relay,反射式转发)模式又称为发卡式转发模式,是一种将报文从其入端口再转发出去的操作模式。交换机利用该模式可以转发同一服务器上各虚拟机之间的流量,如图2中由VM 2发往VM 3的报文。
传统的交换机不支持RR转发模式,即报文的入端口不能作为报文出端口,以防止报文环路。
如果EVB交换机支持RR模式,那么服务器内部的虚拟服务器之间的流量也可以经由边缘交换机转发。实现时既可以在物理端口上支持,也可以在物理端口的S通道上支持。
ER的实现模式之一,要求边缘交换机关闭RR模式。该实现模式下,虚拟以太网交换机自身具备一定的转发能力,同一物理服务器内VM之间的流量直接在VEB内部转发和学习,与外部网络之间的流量由边缘交换机处理。
由于VEB完成流量的桥接功能,因此与本文1.1节所述的服务器内部虚拟交换机的问题相同,需要消耗服务器的硬件或软件资源,缺乏流量监管手段,而且为服务器内部网络与外部网络的统一管理和部署增加了难度。
ER的实现模式之一,需要边缘交换机支持RR模式。该实现模式下,虚拟以太网交换机将全部流量,包括服务器内部的VM之间的流量,都递交到边缘交换机上转发。
对于VEPA而言,接口(或者虚拟接口)实际分为上行口和下行口,上行口与边缘交换机相连,下行口与各VM的虚拟网卡接口相连。从下行口收到的报文不查找转发表直接转发到上行口,而从上行口收到的报文才进行寻址转发。
VEPA中对VM地址的学习机制不在本文讨论范围之内,此处从略。
VM给报文添加C tag后发送给上行口,上行口在转发报文之前,不修改报文格式,直接递交给边缘交换机进行转发。边缘交换机向VEPA转发的下行流量也不必修改格式。
VEPA的机制如图3所示。
图3 VEPA示意图
VEPA实现对服务器要求较低,服务器自身资源消耗小。而且由于流量交换都由边缘交换机处理,因而易于进行流量控制和管理,也便于整网的策略部署和应用。
服务器内部可能需要多个ER,为了在同一物理端口上隔离各ER的上行通道,EVB采用了“端口映射的S-VLAN组件(Port-mapping S-VLAN component)”技术,在服务器与交换机之间通过S-VLAN将物理端口划分为一或多条虚拟通道,这样的通道称为S通道(S-Channel),如图2所示。一条S通道由S-VLAN的编号SVID(S-VLAN Identifier)和S通道的编号SCID(S-Channel Identifier)共同确定,我们称之为<SCID,SVID>对。S通道只存在于EVB服务器和EVB交换机之间,对外部网络不可见。在服务器上,每条S通道都对应一个ER上行口;在交换机上,S通道对应的逻辑接口称为S通道接口。
S通道技术可以由EVB服务器和EVB交换机共同支持,也可以只由EVB交换机支持,实现机制略有差异。
服务器和交换机同时支持S通道的功能结构如图4所示。
图4 服务器支持S通道时EVB S通道结构示意图
如果交换机和服务器均支持S通道技术,那么二者收发的报文格式需要修改,即在报文中添加S-tag。上行流量在进入服务器的S-VLAN组件时插入相应的S-tag,而在交换机向外部网络转发时移除S-tag。下行流量在进入交换机的S-VLAN组件时插入相应的S-tag,而在离开服务器的S-VLAN组件时移除S-tag,如图5所示。
图5 交换机和服务器均支持S通道技术的报文格式
如果服务器只需一个ER完成VM流量的转发,那么服务器可以不支持S-VLAN组件,从而不必创建S通道。当与支持S通道的EVB交换机相连时,交换机将服务器上的流量全部视为来自于缺省S通道,收发的流量不需要修改格式。该结构如图6所示。
图6 服务器不支持S通道时S通道结构示意
边缘交换机和服务器之间通过CDCP协议协商建立S通道,并通过EVB TLV协商RR能力和其它一些参数。
EVB交换机上创建的虚拟接口,每一接口与物理口的一个S通道对应,用于区分和处理来自服务器的不同S通道的流量。
S通道接口为虚拟接口,是使能EVB功能以太网接口的子通道,接口编号形式为X/Y/Z:m,其中X指代接口所在接口板的槽位号,Y为子卡所在子槽位号,Z为物理接口的编号,m为S通道的编号。S通道编号与服务器申请的S通道号一致。而S通道接口对应的S-VLAN ID由交换机分配和设定。例如,服务器发送的CDCP协议中申请的S通道号为5(即TLV中<SCID,SVID>对为<5,0>),边缘交换机上根据当前SVID使用情况,为其分配SVID10,即回复的CDCP TLV中<SCID,SVID>对为<5,10>。
服务器也可以通过CDCP协议申请删除S通道,即在CDCP TLV中移除对应的<SCID,SVID>对。边缘交换机收到协议TLV时,删除对应S通道接口。
用户也可以通过配置直接创建或者删除S通道接口。创建或者删除配置中指定需要操作的S通道编号以及SVID。
边缘交换机会自动为使能EVB功能的接口创建缺省S通道接口,不需要经过与服务器的协商,或者由用户配置指定。以太网接口在使能EVB功能时,缺省S通道接口就随之创建,并且只有在接口关闭EVB功能时才随之删除。根据协议,缺省S通道接口的通道编号固定为1,SVID为1,即<SCID,SVID>对为<1,1>。
VSI(Virtual Station Interface,虚拟服务器接口)相当于虚拟机上虚拟网卡的接口,与ER的下行口直连,如图2所示。VSI对应的逻辑实体称为VSI实例,VSI实例的编号则称为VSIID(VSI Instance Identifier)。
VSI可与交换机的物理端口相关联,关联后的逻辑接口称为VSI接口。每个VSI接口与S通道上一个VSI实例对应,是服务器的VSI在交换机上的映像,用于配置和应用对服务器上VSI的管理和流量策略。
VSI接口是S通道接口的子接口,其接口形式为X/Y/Z:m.n,X/Y/Z:m指代S通道接口编号,而n为VSI接口的ID,该ID由边缘交换机分配和设定。
服务器向边缘交换机发送VDP的关联/预关联请求报文时,边缘交换机将对应的请求、建议的VSI接口ID(即n值)发送到VSI管理服务器。VSI管理服务器通知边缘交换机创建对应的VSI接口,并在该接口上下发对应的管理或者流量控制策略。
服务器发送VDP去关联请求时,边缘交换机删除对应的VSI接口,并通知VSI管理服务器该VM下线。
用以标识VM上VSI的流量特征的信息,EVB支持使用四种格式描述流量的特征:VLAN ID、VLAN ID + MAC、Group ID + VLAN ID和Group ID + VLAN ID + MAC。其中MAC必须为有效的单播MAC地址;VLAN ID的取值范围为1~4094,为有效的C-VLAN ID;Group ID用于为VLAN ID分组,即当VLAN数目超过4095时,由Group ID和VLAN ID共同标识一个VLAN。
对于边缘交换机而言,必须通过VSI过滤信息来识别VM上VSI的流量,从而将管理或者策略应用到VSI接口上。
同一个VSI可以有多条VSI过滤信息,即该VSI接口上会存在多个流量特征,但流量特征之间不能彼此矛盾,例如:同一VSI接口上不允许既存在某一VLAN的过滤信息(VLAN ID格式),又存在相同VLAN下指定MAC的流量(VLAN ID + MAC)的过滤信息。
CDCP(S-Channel Discovery and Configuration Protocol,S通道发现和配置协议)用于服务器与交换机之间协商创建或删除S通道,其报文作为CDCP TLV封装在最近非TPMR(Two-Port MAC Relay,双端口MAC中继)桥代理类型的LLDP(Link Layer Discovery Protocol,链路层发现协议)报文中。当服务器需要创建或删除一个S通道时,会向交换机发送CDCP TLV,交换机为其创建或删除相应的S通道。
CDCP协议交互如图7所示:
(1) 当服务器有创建S通道的请求,或者原有的请求发生变化时,向交换机发出请求报文(消息1)。
(2) 交换机为其分配或者释放SVID,创建或者删除对应的S通道接口。
(3) 交换机回复响应报文,通知服务器分配的SVID(消息2)。
(4) 服务器和交换机都在后续的报文中携带当前存在的S通道的信息作为状态通告。
图7 CDCP协议交互示意图
图8 CDCP协议TLV格式
CDCP协议TLV字段如图8所示,各字段的含义如下:
· CDCP TLV与LLDP中其它dot1q的TLV一样,Type取值为127,Subtype取值0x0E。
· 本设备角色(Role):等于1表示本设备为服务器(station),等于0表示本设备为交换机(bridge)。
· 保留位(Resv):暂不使用,以0填充。
· S组件支持能力(SComp):等于1表示能支持S-VLAN组件,等于0时表示不支持。
· 本设备支持的S通道个数(Chncap):包括已经成功创建和尚未创建的。
· SCID/SVID对:S通道索引和对应的SVID。第一个必须是缺省S通道,即<1,1>。CDCP报文中最多支持167个SCID/SVID对,包括缺省S通道的SCID/SVID。服务器发出的请求中,SVID为0,形式如<a,0>。如果交换机成功为其创建S通道,那么回复报文的形式如<a,b>,b为有效的VLAN ID。如果交换机不能创建,则回复报文中仍然维持<a,0>的形式。如果服务器将某一已经生效的SCID/SVID对从本方报文中删除,表示向交换机申请删除该S通道。
在S通道建立之后,交换机和服务器将进一步协商S通道的能力,包括是否支持RR模式、ECP参数和VDP参数等,这些协商内容均由封装在LLDP报文中的EVB TLV承载。
EVB TLV交互如图9所示:
(1) 服务器和交换机都可以首先将自身的能力参数向对方发布。图中所示为交换机首先发布(消息1),如果服务器先发布消息1,上述过程也类似,此处不重复描述。
(2) 服务器收到消息1后,选取本地实际使用的值,例如ECP最大重传次数,以双方配置的值的最大值为操作值。服务器将本地选取的结果放入回复TLV(消息2)。
(3) 交换机收到后,也据此调整和设置本端运行值,并将本地采用的值放在下一个报文中(消息3)。
(4) 随后双方持续发布该TLV作为维护通道使用(消息4及后续)。
图9 EVB TLV交互示意图
EVB TLV格式如图10所示,各字段的含义如下:
· EVB TLV与LLDP中其它dot1q的TLV一样,Type取值为127,Subtype取值0x0D。
· 桥状态(bridge status)包含3个状态位,各状态含义如表1所示。
标志名称 | 取值 | 含义 |
BGID | 1 | VDP协商中,EVB交换机支持使用Group ID并且控制VLAN ID分配 |
0 | VDP协商中,EVB交换机不支持使用Group ID | |
RRCAP | 1 | 交换机支持RR能力 |
0 | 交换机不支持RR能力 | |
RRCTR | 1 | 该S通道接口目前已使能RR属性 |
0 | 该S通道目前未使能RR属性 |
· 站点状态(station status)包含3个状态位,各状态含义如表2所示。
标志名称 | 取值 | 含义 |
SGID | 1 | VDP协商中,服务器支持使用Group ID |
0 | VDP协商中,服务器不支持使用Group ID | |
RRREQ | 1 | 服务器请求RR能力 |
0 | 服务器不请求RR能力 | |
RRSTAT(2bits) | 11/10 | 该通道RR状态未知(服务器尚未获知交换机的支持能力) |
01 | 该S通道已经使能RR属性 |
· ECP最大重传次数(R):双方使用最大值发送。
· ECP重传定时器指数因子(RTE):重传定时器的计算公式为:10 × 2RTE ms。如果超过重传定时器时间未能收到对方ECP的ACK,则上一消息重传。服务器和交换机使用双方的因子中最大的值。
· 模式(Mode):取值为1时表示本设备是边缘交换机,而取值为2时表示本设备为EVB服务器。
· ROL+RWD:VDP等待应答时间指数因子,在交换机一侧,该因子与应答等待时间的计算关系如下:等待应答时间 = 2RWD×10 μs。ROL表示本设备使用本地还是对端的值,0表示本端,1表示对端。
例如:服务器初始发送的TLV中,ROL=0、RWD=21。交换机初始配置值RWD=20,初识发送的TLV应当为ROL=0、RWD=20。交换机收到服务器的报文后,发送的EVB TLV修改为ROL=1,RWD=21。而服务器发送的TLV的值维持原状。
· ROL+RKA:VDP保活时间指数因子,在交换机一侧,该因子与应答等待时间的计算关系如下:保活时间 = [ 2RKA+(2 ×R + 1)× 2 RTE] ×10 μs。ROL表示本端实际使用本地还是对端的的值,0表示本端,1表示对端。(注:本公式取自draft1.6,draft2.0之后在本公式上乘以1.5系数)
VDP(VSI Discovery and Configuration Protocol,VSI发现和配置协议)用于实现虚拟机VSI与交换机端口之间的关联。服务器在创建、删除或迁移虚拟机时,通过该协议通知交换机创建或删除相应的VSI接口。
VDP协议报文由服务器发起。服务器发送的VDP请求分为预关联、资源预留的预关联、关联和去关联请求四种。交换机只回复对应的响应报文。
· VM创建时,向交换机发送关联或者预关联请求。关联请求处理成功时,VM的流量就可以开始经由交换机转发。预关联请求处理成功时,VM处于一种就绪等待的状态,直到发送关联请求处理成功后,才开始收发流量。
· VM关闭时,向交换机发送去关联请求,边缘交换机将对应的流量转发通道关闭。
一般来说,VM迁移时,新的VM先处于预关联状态下,等待虚拟服务器管理中心(vCenter)指令原有VM发送去关联请求。原有VM发送去关联请求后,新VM发送关联请求,接替原有VM的流量收发工作。
服务器发送关联请求时,与交换机、VSI管理服务器的交互过程如图11所示。
服务器先发送预关联请求再发送关联请求的交互过程如图12所示。
服务器发送去关联请求的交互过程如图13所示。
VDP协议TLV承载于ECP报文中,分为VSI manager ID TLV和VDP关联请求TLV 。VSI Manager ID TLV位于报文前部,可以携带1~n个关联请求TLV。
(1) VSI manager ID TLV
图14 VSI Manager ID TLV
· Type取值为0x05。
· VDP manager ID地址使用IPv6形式表示。如果该值等于全0,则表示服务器不知道VSI管理服务器的地址,需要边缘交换机为其指定。
(2) VDP关联请求TLV
图15 VSI关联请求TLV
· Type:取值为0x01表示预关联请求,0x02表示带资源预留的预关联请求,0x03表示关联请求,0x04表示去关联请求。
· 状态/错误码(reason):状态/错误码字段分为两部分,前4位代表错误码,后4位分别代表一种状态。如表3所示。
表3 状态/错误码描述表
域名称 | 取值 | 含义 |
0Reason-Status Code(bit0~bit3) | 0x00 | 操作成功 |
0x01 | TLV非法 | |
0x02 | 资源不足 | |
0x03 | VSI manager不可达 | |
0x04 | 其它失败 | |
0x05 | VID/MAC/Group ID无效 | |
其它 | 保留值 | |
M Flag(bit4) | 1 | 本VSI所在的服务器正在迁移 |
0 | 本服务器未处于迁移状态 | |
S Flag(bit5) | 1 | 本VSI所在的服务器目前被挂起suspended |
0 | 本服务器未处于挂起状态 | |
Req/Ack Flag(bit6) | 1 | 本协议TLV为服务器发送的请求 |
0 | 本协议TLV为交换机回复的响应 | |
Reserve(bit7) | NA | 保留 |
· VSI类型编号(VSI Type ID):由VSI管理服务器定义该类型所对应的策略,可应用于多个VSI实例。
· VSI Type版本号:VSI类型的版本,可用于VSI数据库的定义和升级。
· VSI实例编号类型(VSI ID format),如表4所示。
域名称 | 取值 | 含义 |
VSI ID format | 0x01 | IPv4 |
0x02 | IPv6 | |
0x03 | MAC | |
0x04 | 本地定义 | |
0x05 | UUID | |
其它 | 未定义 |
· VSI实例编号(VSI ID):VSI实例编号,每一VSI的ID不同。在VM切换时,新的VM可以使用与原VM相同的ID。
· VSI过滤信息格式(VSI filter format),如表5所示。
域名称 | 取值 | 含义 |
VSI filter format | 0x01 | VLAN(C-VLAN) |
0x02 | MAC+VLAN | |
0x03 | Group ID+VLAN | |
0x04 | Group ID+ MAC+ VLAN | |
其它 | 未定义 |
· VSI过滤信息:由具体支持的特征信息类型决定取值。
ECP(Edge Control Protocol,边缘控制协议)被定义为一个承载协议,用于为上层协议报文提供一种带确认机制的可靠传输方式。在EVB技术中,ECP协议用于封装VDP TLV,并通过握手机制保证其在服务器与交换机之间的可靠传输。
交换机与服务器之间ECP交互过程如图16所示:
(1) VDP向ECP递交TLV后,ECP向对端发送封装后的报文(消息1),消息中携带序列号。
(2) 对端收到该报文后,复制报文序列号放入ACK中,向本端回复确认(消息2)。本端如果收不到ACK,将会在定时器超时后重发,直到超过最大重传次数为止。
图中所示为服务器方的ULP先发起报文,交换机也可以发起报文,交互机制相同。
图16 ECP交互过程
图17 ECP报文格式
ECP报文各字段的含义如下:
· 以太网协议类型(Eth Type):取值为0x8940。
· 版本:取值0x01。
· 操作类型(operation type):取值0x00时表示数据报文发送(request),取值0x01时表示ECP的ACK。
· 子类型(subtype):取值为0x0001表示VDP协议。该字段在ACK报文中会被忽略。
· 序列号(sequence number):序列号在发送方初始发送时可以取任意随机值,开始发送后每次加一。
支持EVB的数据中心网络由4个功能单元组成:数据服务器(VM)、EVB边缘交换机、VM管理中心和网络管理服务器(包含VSI管理服务器),如图18所示。
图18 数据中心EVB网络架构示意图
EVB服务器完成ER的处理,并通过服务器接口的LLDP承载CDCP TLV和EVB-TLV,完成S通道创建的协商和EVB功能参数的协商。
服务器还需要支持ECP和VDP协议,在服务器创建、迁移和删除时,通过VDP/ECP协议通知边缘交换机进行相应处理。
对EVB服务器的技术要求请参考802.1Qbg的描述,本文不作详细讨论。
EVB边缘交换机需要与EVB服务器协商EVB功能参数,如ECP重传次数等。
如果需要支持S通道,边缘交换机还需要创建/维护/删除S通道,并实现S通道的RR属性,并且完成对服务器收发的报文进行S-tag的添加或移除。
边缘交换机与服务器通过ECP/VDP交互VM当前的状态,将其通知给VSI管理服务器,并将处理结果作为应答发送给服务器。
VSI管理服务器成功处理VM的上线之后,会通知交换机创建VSI接口,以及在接口上按照VSI过滤信息为特征,设置流量的管理策略等。而在VM删除下线时,交换机需要将对应的策略一一删除,关闭VSI接口。
用以存放VSI策略的管理数据库(如流量策略或者管理策略),在VM接入交换网络时控制策略的下发。VSI管理服务器对VSI策略的统一管理,能够使VM的网络策略配置和生效与VM的网络位置无关。
网络管理员在网络管理服务器上创建VSI管理数据库,数据库包含VSI类型、VSI类型的版本、以及对应于该VSI类型的网络策略。网络策略可能包括下表所示内容:
操作 | 说明 |
QoS | 复杂流分类,分类域包括五元组、以太头信息、报文四层信息等 |
基于VM 流分类的优先级标记 | |
基于VM 流分类的流量线速 | |
ACL | 基于VM的访问控制和流量过滤,支持硬件线速过滤 |
镜像 | 基于VM和流分类进行流量镜像,支持采样 |
统计 | 基于VM的流量分类统计 |
数据中心的系统管理员查询VSI管理数据库中的内容,据此使用VM管理中心配置并生成VM,为VM创建VSI实例,并为VSI实例指定实例ID、指定VSI类型ID,并配置VSI相关的过滤信息。
此外,虚拟服务器迁移过程中,也需要VM管理中心的指令。VM管理中心通知原有VM发送去关联请求,通知新的VM从预关联状态转为关联状态,并指令VM在迁移发生时通知数据中心的网络设备刷新数据报文的MAC地址。
图19 VM上线流程示意图
在EVB数据中心网络中,VM上线和网络策略自动部署过程如图19所示,分为六个阶段:
以太网接口上启动EVB功能后,服务器和边缘交换机通过交互CDCP协议TLV,确认是否支持S通道,以及需要创建哪些S通道:
(2) 如果交换机和服务器均不支持S通道,那么VM与边缘交换机之间的流量不用添加和移除S-tag,后续EVB-TLV和ECP/VDP也都基于以太网接口运行。
(3) 如果服务器不支持S通道,那么交换机将全部流量视为来自于缺省S通道,EVB-TLV和ECP/VDP协议基于缺省S通道接口运行。但VM与边缘交换机之间的流量不用添加和移除S-tag。
(4) 如果交换机和服务器均支持S通道,那么服务器发出的CDCP协议TLV中包含需要创建的S通道编号,交换机为其分配SVID,并创建对应的S通道接口。
如果创建了S通道(包括缺省S通道),则服务器和交换机在S通道上协商EVB的功能参数。如果未创建S通道,那么则在以太网接口上协商。
协商的参数包括服务器是否要求该通道设置RR属性,交换机确认是否使能RR属性。以及ECP最大重传次数、最大重传时间指数因子、VDP的RWD和RKA指数因子。
协商后,边缘交换机根据协商结果,决定是否为S通道设置RR属性。
根据网络策略的规划,网络管理员在网络管理服务器上创建VSI Type数据库(VTDB,VSI Type DataBase),指定VSI Type的版本(VSI Type Version)、VSI Type的编号(VSI Type ID),VSI Type对应的网络流量策略(如QoS策略、安全策略等)。
VM管理员从VTDB上查询VSI Type以及对应的流量策略,决定为新创建的VM选择VSI Type ID,据此创建VM的VSI实例ID。VSI实例实际上就是VSI Type的一个具体对象,其编号(VSI ID)是一个长度为16字节的全局唯一编号。
系统管理员将VTID、VSI Type Version和VSI ID信息配置到VM上,并为VSI绑定相关的VSI过滤信息,然后启动服务器一侧的VDP协议。
VM在首次上线时,向边缘交换机发送关联请求。
(1) VM向边缘交换机发送VDP的关联请求,请求中包含:VSI Type ID、VSI Type Version、VSI ID、VSI ID Format和VSI过滤信息。
(2) 边缘交换机验证报文的基本合法性后,将请求递交给VSI管理服务器。同时在请求中附加交换机对该VSI接口的本地编号(Local ID)。
(3) VSI管理服务器根据报文中的VSI Type ID和Version信息,查询VTDB。然后先使用Local ID,通知边缘交换机创建VSI接口,并为该接口绑定特征信息(VSI过滤信息)。创建VSI接口后,援引VTDB中对该VSI Type的策略,将其下发到交换机的VSI接口上,使其生效。
(4) VSI管理服务器通知边缘交换机,此次VSI上线处理成功。边缘交换机由此回复VM,关联请求处理成功。如果配置策略过程中失败,VSI Manager通知上线失败,交换机回复关联失败报文。
(5) 后续VM定时发送VDP的关联请求报文作为保活报文。
关联请求处理成功后,VM管理中心激活VM,开始处理流量。
图20 VM迁移流程示意图
VM迁移过程如图20所示,分为四个阶段:(VM迁移可能涉及新旧VM之间的服务数据和状态的复制等处理,由于本文重点在于EVB相关的技术过程,因而不描述服务器之间的数据复制过程)
VM管理中心首先确定被替换的VM A,按照A的VSI Type ID和VSI Type Version,使用与A相同的VSI ID,在VM B上创建VSI实例,绑定VSI过滤信息,然后启动VM B所在服务器一侧的VDP协议。
VM B向直连的边缘交换机B发送关联请求。
(1) VM B向交换机B发送VDP的预关联请求,请求中同样包含VSI Type ID、VSI Type Version、VSI ID、VSI ID Format和VSI过滤信息。
(2) 边缘交换机B验证报文的基本合法性后,将请求递交给VSI管理服务器,同时在请求中附加交换机对该VSI接口的本地编号(Local ID)。
(3) 由于迁移可以在不同的交换机上配合完成,因此VM A和VM B的本地编号没有任何联系,可能相同,也可能不同。
(4) VSI管理服务器根据VSI Type ID和Version信息,查询VTDB。然后先使用local ID,通知交换机B创建VSI接口,并为该接口绑定VSI过滤信息。管理服务器会通知边缘交换机该关联接口为预关联状态。
(5) 创建VSI接口后,VSI管理服务器援引VTDB中对该VSI Type的策略,将其下发到交换机的VSI接口上,但策略暂不生效。
(6) VSI管理服务器通知边缘交换机B,此次VSI预上线成功,交换机向VM B发送回复报文,预关联处理成功。
(1) VM管理中心通知原VM A准备停止。VM A向自己的边缘交换机A发送去关联请求。
(2) 边缘交换机A删除VSI关联端口,清除接口的策略配置,向VSI管理服务器发送VM A下线的通知。然后回复VM A,去关联请求处理成功。
(1) VM管理中心通知VM A下线的同时,通知新VM B准备上线工作。VM B向边缘交换机B发送关联请求。
(2) 边缘交换机B将VSI接口转为关联状态,相关的策略开始生效。同时,交换机B通知VM B,关联请求处理成功。
(3) VM A去关联时,VM管理中心指令VM发送MAC地址刷新报文。随后激活VM,开始处理流量。
(4) 后续VM B定时发送VDP的关联请求报文作为保活报文。
EVB的典型组网应用能满足虚拟服务器接入数据中心二层网络的需求,在VM接入时能将其流量纳入网络管理的范围,下发各种相关策略。在VM迁移时能确保网络策略随着VM位置的变化而自动重新部署,极大地降低了网络管理成本。如图21所示。
图21 EVB典型组网
· IEEE P802.1Qbg/D2.0- Virtual Bridged Local Area Networks-Amendment : Edge Virtual Bridging、D1.6、D1.8、D2.0