一种数据中心网络及其流量均衡方法和控制器
技术领域
本发明属于通信领域,尤其涉及一种数据中心网络及其流量均衡方法和控制器。
背景技术
数据中心网络为解决日益膨胀的流量问题可以采用无收敛(英文:Non-blocking)的网络架构,典型的是Clos网络架构,即Charles Clos定义的一种多级电路交换网络架构。通过Clos网络架构可以比较简单的构建无收敛的网络,其中,无收敛的网络是指所有端口可以同时以线速(英文:wire speed)互发流量的网络。Clos网络架构的示意图如图1所示。
通常的Clos网络不超过三层,例如在图1中,Clos网络中有三层,即接入层(英文:access layer)、汇聚层(英文:distribution layer)和核心层(英文:core layer)。比较小的网络,可能将汇聚层和核心层合并,将Clos网络的结构构建成包括两层网络。
许多数据中心的Clos网络多应用三层到边缘的模型。即接入层中的交换机(简称为接入交换机)、汇聚层中的交换机(简称为汇聚交换机)和核心层中的交换机(简称为核心交换机)均应用三层转发,在不同的接入交换机下的物理服务器间的报文转发遵循源物理服务器接入的接入交换机到目的物理服务器接入的接入交换机间通过路由协议形成等价多路径路由(英文:equal-costmulti-path routing,缩写:ECMP),使用报文头的部分或全部字段来构建散列因子(英文:hash element)进行hash计算,根据hash计算的结果从ECMP多路径中选择一条转发路径。
由于三层到边缘的网络架构不能够支持虚拟机(英文:Virtual Machine,缩写:VM)的在线热迁移(英文:online hot-migration),多种三层叠加网络虚拟化(英文:Network Virtualization Over L3,缩写:NVO3)技术方案被提出以应用于三层到边缘的网络架构。通常应用NVO3的网络的网络架构的示意图如图2所示。NVO3的网络架构可以很好的实现多租户(英文:multi-tenancy)的网络二层隔离。
租户的VM通过超级管理程序(英文:hypervisor)或者是包含在hypervisor中的虚拟交换机(英文:virtual switch,缩写:vSw)来进行彼此通讯。在计算机领域,hypervisor也可叫做虚拟机管理器(英文:virtual machine monitor,缩写:VMM),是指一种建立并运行VM的计算机软件、固件或硬件。用户的报文被hypervisor按照NVO3格式封装后,在物理设备组成的网络上转发。物理设备包括接入交换机、汇聚交换机、核心交换机和物理服务器等。在NVO3的封装中包含了租户的逻辑二层网络标识信息(英文:logic layer 2 network ID),逻辑二层网络是和物理二层网络相对应的定义,逻辑二层网络标识相同的逻辑二层网络中的VM处于一个类似物理二层网络的环境下通讯。
这样原有的三层到边缘的设备,即接入交换机、汇聚交换机和核心交换机间构建了一个物理网络的互联网协议(英文:Internet Protocol,缩写:IP)网络(英文:fabric),租户报文转发可以透明的由这个IP fabric承载。同时又借助vSw或者hypervisor的转发控制实现了可以隔离不同租户的逻辑二层网络,逻辑二层网络即虚拟二层网络,在虚拟二层网络上能够实现VM的在线热迁移。
一般的NVO3的封装格式如下:
隧道采用通用路由封装(英文:Generic Routing Encapsulation,缩写:GRE)或者采用用户数据报协议(英文:User Datagram Protocol,缩写:UDP)封装。当前比较常见的两种NVO3的技术实例为使用通用路由封装的网络虚拟化(英文:Network Virtualization using Generic Routing Encapsulation,缩写:NVGRE)和虚拟扩展局域网(英文:Virtual eXtensible Local Area Network,缩写:VXLAN)。在使用NVGRE封装的情况下,逻辑二层网络标识是NVGRE中的虚拟子网标识(英文:Virtual Subnet ID,缩写:VSID)。在使用VXLAN封装的情况下,逻辑二层网络标识是VXLAN的VXLAN网络标识(英文:VXLANNetwork Identifier,缩写:VNI)。
各种技术的封装格式如下:
1)NVGRE
NVGRE的封装从外到内依次为外层以太头、外层IP头、GRE头、内层以太头、内层IP头和数据部分。其中:
外层以太头结构:
其中vlan Tag中包括
|
优先权代码点(英文:Priority Code Point,缩写:PCP),PCP也被称为服务等级(英文:Class of Service,缩写:COS)。
NVGRE的外层IP头:
GRE头:
内层以太头结构与外层以太头基本相同,内层IP头结构与外层IP头基本相同。
2)VXLAN
VXLAN的封装从外到内依次为外层以太头、外层IP头、外层UDP头、vxlan头、内层以太头、内层IP头和数据部分。其中:
外层以太头和外层IP头的结构与NVGRE相同,但外层IP头中的protocol取值为17,对应UDP。
外层UDP头:
Vxlan头:
内层以太头,内层IP头和NVGRE相同。
为了保证多租户情况下用户的服务质量(英文:Quality of Service,缩写:Qos),同时又能够充分利用网络带宽发挥设备效率。一般会通过多路径负载均衡来均衡流量,结合通过区分服务(Differentiated Service,Diff-serv)实现高优先级业务的标识和Qos保证。
多路径的负载均衡通常是通过ECMP来进行多路径负载分担。通常根据报文的5元组(英文:quintuple)来作为hash因子,根据hash计算的结果从多路径中选择一条发送报文。举例来说,5元组为包括协议身份(英文:Identity,缩写:ID)、源IP地址、目的IP地址、源端口号和目的端口号的多元组(英文:tuple)。
在网络中应用NVO3技术时,多租户的流量被封装在物理服务器的IP地址中来在网络中传输。为了使得多路径的hash选择计算能够尽可能均衡流量,在hash因子的选择上会有所增加。在NVGRE技术中增加VSID和流标识(英文:FlowID)这两个域的信息,而VXLAN技术中则是通过内层报文信息先hash选择一个外层报文的源UDP端口,这样传统设备的5元组的hash计算中能够有更好的均匀性。或者进一步增加VNI的信息作为hash因子。
由于hash选路的结果是由各设备节点根据报文信息计算得到结果,这种静态计算的结果没有考虑报文的实时路径分布情况,其结果可能造成某些链路拥塞,而另外的空闲链路无法利用的情况。在拥塞的链路,可能高优先级业务也会无法被保证带宽。
发明内容
本发明的目的在于提供一种数据中心网络,旨在解决数据中心网络采用hash静态选路造成的网络中不同链路的利用率不一致,存在拥塞和利用率不足共存的情况的问题。
第一方面,本发明提供了一种数据中心网络,所述数据中心网络包括:控制器和分别与所述控制器连接的物理服务器和网络设备,其中,
所述控制器配置服务等级COS、服务类型TOS和生存时间TTL中的一个或多个作为数据中心网络中的网络设备进行等价多路径路由ECMP选路的散列hash因子;所述控制器收集网络设备的流量和物理服务器中的超级管理程序Hypervisor或者虚拟交换机vSw的流量,所述控制器确定网络设备之间的互连链路故障或所述控制器根据所述控制器收集的网络设备的流量和物理服务器中的Hypervisor或者vSw的流量确定发生拥塞时,向物理服务器中的hypervisor或者vsw发送封装控制策略;
所述物理服务器具有Hypervisor或者vSw,用于完成三层叠加网络虚拟化NVO3的报文封装,接收封装控制策略,根据所述封装控制策略,确定源物理服务器上的NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值;
所述网络设备接受控制器配置,将COS、TOS和TTL中的一个或多个作为所述网络设备进行ECMP选路的hash因子,接收物理服务器发送的NVO3报文,网络设备将接收的NVO3报文中控制器配置的COS、TOS和TTL中的一个或多个作为hash因子进行ECMP选路。
在第一方面的第一种实现方式中,所述控制器还发送初始报文封装规则给物理服务器中的vSw或者hypervisor,对物理服务器中的vSw或者hypervisor初始报文封装规则进行配置;所述初始报文封装规则是根据NVO3的目标物理服务器的互联网协议IP地址来确定NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值。
结合第一方面和第一方面的第一种实现方式,在第一方面的第二种实现方式中,所述网络设备的上行路径的ECMP选路使用报文外层以太头和外层IP头中的COS、TOS和TTL中的一个来构建hash因子进行hash选路;
所述网络设备的下行路径的ECMP选路使用COS、TOS和TTL中的一个进行hash选路;或者,所述网络设备的下行路径的ECMP选路使用外层IP头的源IP地址结合COS、TOS和TTL中的一个进行hash选路;或者,下行路径的ECMP选路使用外层IP头的SIP地址进行hash选路;
所述NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值是通过以下方式获得的:
控制器先确定某条流从源物理服务器上的hypervisor或者vSw到目的物理服务器地址经过的转发路径,然后用以下三个方式中的一个或多个方式找到能得到这条转发路径的COS、TOS和TTL中的一个或多个的值,指示物理服务器进行NVO3报文的外层封装时,对于该流均用此COS、TOS和TTL中的一个或多个值去封装;所述三个方式如下:用不同的COS的值来进行hash计算找到能得到这条转发路径的COS的值,用不同的TOS的值来进行hash计算找到能得到这条转发路径的TOS的值,和用不同的TTL的值来进行hash计算找到能得到这条转发路径的TTL的值;
所述控制器进行hash计算得到转发路径的算法与所述网络设备进行hash选路的算法是一样的。
结合第一方面,第一方面的第一种实现方式和第二种实现方式中的任意一个,在第一方面的第三种实现方式中,所述封装控制策略为下面几种中的一种:
报文的源物理服务器的IP地址和目的物理服务器的IP地址的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL字段中的一个或多个字段的值的对应关系;
报文的源物理服务器的IP地址、目的物理服务器的IP地址、报文源虚拟机VM的IP地址和报文目的VM的IP地址的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL值字段中的一个或多个字段的值的对应关系;
报文的源物理服务器的IP地址、目的物理服务器的IP地址、源VM的IP地址的掩码和目的VM的IP地址的掩码的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL值字段中的一个或多个字段的值的对应关系;以及,
报文的源物理服务器的IP地址的掩码和目的物理服务器的IP地址的掩码的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL值字段中的一个或多个字段的值的对应关系。
结合第一方面,第一方面的第一种实现方式至第三种实现方式中的任意一个,在第一方面的第四种实现方式中,所有的物理服务器的IP地址分配在连续的IP地址;所述封装控制策略采用以下方式:报文的源物理服务器的IP地址的掩码和目的物理服务器的IP地址的掩码的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL字段中的一个或多个字段的值的对应关系。
第二方面,本发明提供了一种数据中心网络的流量均衡方法,所述方法包括:
控制器配置服务等级COS、服务类型TOS和生存时间TTL中的一个或多个作为数据中心网络中的网络设备进行等价多路径路由ECMP选路的散列hash因子;
控制器收集网络设备的流量和物理服务器中的超级管理程序Hypervisor或者虚拟交换机vSw的流量;
控制器确定网络设备之间的互连链路故障或控制器根据所述控制器收集的网络设备的流量和物理服务器中的Hypervisor或者vSw的流量确定发生拥塞时,向物理服务器中的hypervisor或者vsw发送封装控制策略,以由物理服务器中的hypervisor或者vsw根据所述封装控制策略确定源物理服务器上的三层叠加网络虚拟化NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值,再由网络设备根据接收的NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值,和控制器配置的hash因子进行ECMP选路。
在第二方面的第一种实现方式中,所述封装控制策略为下面几种中的一种:
报文的源物理服务器的互联网协议IP地址和目的物理服务器的IP地址的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL字段中的一个或多个字段的值的对应关系;
报文的源物理服务器的IP地址、目的物理服务器的IP地址、报文源虚拟机VM的IP地址和报文目的VM的IP地址的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL值字段中的一个或多个字段的值的对应关系;
报文的源物理服务器的IP地址、目的物理服务器的IP地址、源VM的IP地址的掩码和目的VM的IP地址的掩码的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL值字段中的一个或多个字段的值的对应关系;以及,
报文的源物理服务器的IP地址的掩码和目的物理服务器的IP地址的掩码的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL值字段中的一个或多个字段的值的对应关系。
结合第二方面和第二方面的第一种实现方式,在第二方面的第二种实现方式中,所述网络设备的上行路径的ECMP选路使用报文外层以太头和外层IP头中的COS、TOS和TTL中的一个来构建hash因子进行hash选路;
所述网络设备的下行路径的ECMP选路使用COS、TOS和TTL中的一个进行hash选路;或者,所述网络设备的下行路径的ECMP选路使用外层IP头的源IP地址结合COS、TOS和TTL中的一个进行hash选路;或者,下行路径的ECMP选路使用外层IP头的SIP地址进行hash选路;
所述NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值是通过以下方式获得的:
控制器先确定某条流从源物理服务器上的hypervisor或者vSw到目的物理服务器地址经过的转发路径,然后用以下三个方式中的一个或多个方式找到能得到这条转发路径的COS、TOS和TTL中的一个或多个的值,指示物理服务器进行NVO3报文的外层封装时,对于该流均用此COS、TOS和TTL中的一个或多个值去封装;所述三个方式如下:用不同的COS的值来进行hash计算找到能得到这条转发路径的COS的值,用不同的TOS的值来进行hash计算找到能得到这条转发路径的TOS的值,和用不同的TTL的值来进行hash计算找到能得到这条转发路径的TTL的值;
所述控制器进行hash计算得到转发路径的算法与所述网络设备进行hash选路的算法是一样的。
结合第二方面,第二方面的第一种实现方式和第二种实现方式中的任意一个,在第二方面的第三种实现方式中,所述方法还包括:
发送初始报文封装规则给物理服务器中的vSw或者hypervisor;
对物理服务器中的vSw或者hypervisor初始报文封装规则进行配置;
所述初始报文封装规则是根据NVO3的目标物理服务器的互联网协议IP地址来确定NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值。
第三方面,本发明提供了一种控制器,所述控制器包括:第一配置模块、收集模块和第二发送模块,其中,
所述第一配置模块,用于配置服务等级COS、服务类型TOS和生存时间TTL中的一个或多个作为数据中心网络中的网络设备进行等价多路径路由ECMP选路的散列hash因子;
所述收集模块,用于收集网络设备的流量和物理服务器中的超级管理程序Hypervisor或者虚拟交换机vSw的流量;
所述第二发送模块,用于确定网络设备之间的互连链路故障或根据收集的网络设备的流量和物理服务器中的Hypervisor或者vSw的流量确定发生拥塞时,向物理服务器中的hypervisor或者vsw发送封装控制策略,以由物理服务器中的hypervisor或者vsw根据所述封装控制策略确定源物理服务器上的三层叠加网络虚拟化NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值,再由网络设备根据接收的NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值,和控制器配置的hash因子进行ECMP选路。
在第三方面的第一种实现方式中,所述封装控制策略为下面几种中的一种:
报文的源物理服务器的互联网协议IP地址和目的物理服务器的IP地址的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL字段中的一个或多个字段的值的对应关系;
报文的源物理服务器的IP地址、目的物理服务器的IP地址、报文源虚拟机VM的IP地址和报文目的VM的IP地址的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL值字段中的一个或多个字段的值的对应关系;
报文的源物理服务器的IP地址、目的物理服务器的IP地址、源VM的IP地址的掩码和目的VM的IP地址的掩码的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL值字段中的一个或多个字段的值的对应关系;以及,
报文的源物理服务器的IP地址的掩码和目的物理服务器的IP地址的掩码的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL值字段中的一个或多个字段的值的对应关系。
结合第三方面和第三方面的第一种实现方式,在第三方面的第二种实现方式中,所述网络设备的上行路径的ECMP选路使用报文外层以太头和外层IP头中的COS、TOS和TTL中的一个来构建hash因子进行hash选路;
所述网络设备的下行路径的ECMP选路使用COS、TOS和TTL中的一个进行hash选路;或者,所述网络设备的下行路径的ECMP选路使用外层IP头的源IP地址结合COS、TOS和TTL中的一个进行hash选路;或者,下行路径的ECMP选路使用外层IP头的SIP地址进行hash选路;
所述NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值是通过以下方式获得的:
控制器先确定某条流从源物理服务器上的hypervisor或者vSw到目的物理服务器地址经过的转发路径,然后用以下三个方式中的一个或多个方式找到能得到这条转发路径的COS、TOS和TTL中的一个或多个的值,指示物理服务器进行NVO3报文的外层封装时,对于该流均用此COS、TOS和TTL中的一个或多个值去封装;所述三个方式如下:用不同的COS的值来进行hash计算找到能得到这条转发路径的COS的值,用不同的TOS的值来进行hash计算找到能得到这条转发路径的TOS的值,和用不同的TTL的值来进行hash计算找到能得到这条转发路径的TTL的值;
所述控制器进行hash计算得到转发路径的算法与所述网络设备进行hash选路的算法是一样的。
结合第三方面,第三方面的第一种实现方式和第二种实现方式中的任意一个,在第三方面的第三种实现方式中,所述控制器还包括:
第一发送模块,用于发送初始报文封装规则给物理服务器中的vSw或者hypervisor;和
第三配置模块,用于对物理服务器中的vSw或者hypervisor初始报文封装规则进行配置;
所述初始报文封装规则是根据NVO3的目标物理服务器的互联网协议IP地址来确定NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值。
第四方面,本发明提供了一种数据中心网络的流量均衡方法,所述方法包括:
网络设备接受控制器配置服务等级COS、服务类型TOS和生存时间TTL中的一个或多个作为数据中心网络中的网络设备进行等价多路径路由ECMP选路的散列hash因子;
网络设备接收物理服务器发送的三层叠加网络虚拟化NVO3报文;
网络设备根据接收的NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值,和控制器配置的hash因子进行ECMP选路,所述NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值是根据控制器确定网络设备之间的互连链路故障或控制器根据所述控制器收集的网络设备的流量和物理服务器中的超级管理程序Hypervisor或者虚拟交换机vSw的流量确定发生拥塞时,发送给物理服务器的封装控制策略确定的。
在第四方面的第一种实现方式中,所述网络设备的上行路径的ECMP选路使用报文外层以太头和外层互联网协议IP头中的COS、TOS和TTL中的一个来构建hash因子进行hash选路;
所述网络设备的下行路径的ECMP选路使用COS、TOS和TTL中的一个进行hash选路;或者,所述网络设备的下行路径的ECMP选路使用外层IP头的源IP地址结合COS、TOS和TTL中的一个进行hash选路;或者,下行路径的ECMP选路使用外层IP头的SIP地址进行hash选路;
所述NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值是通过以下方式获得的:
控制器先确定某条流从源物理服务器上的Hypervisor或者vSw到目的物理服务器地址经过的转发路径,然后用以下三个方式中的一个或多个方式找到能得到这条转发路径的COS、TOS和TTL中的一个或多个的值,指示物理服务器进行NVO3报文的外层封装时,对于该流均用此COS、TOS和TTL中的一个或多个值去封装;所述三个方式如下:用不同的COS的值来进行hash计算找到能得到这条转发路径的COS的值,用不同的TOS的值来进行hash计算找到能得到这条转发路径的TOS的值,和用不同的TTL的值来进行hash计算找到能得到这条转发路径的TTL的值;
所述控制器进行hash计算得到转发路径的算法与所述网络设备进行hash选路的算法是一样的。
结合第四方面和第四方面的第一种实现方式,在第四方面的第二种实现方式中,所述封装控制策略为下面几种中的一种:
报文的源物理服务器的IP地址和目的物理服务器的IP地址的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL字段中的一个或多个字段的值的对应关系;
报文的源物理服务器的IP地址、目的物理服务器的IP地址、报文源虚拟机VM的IP地址和报文目的VM的IP地址的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL值字段中的一个或多个字段的值的对应关系;
报文的源物理服务器的IP地址、目的物理服务器的IP地址、源VM的IP地址的掩码和目的VM的IP地址的掩码的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL值字段中的一个或多个字段的值的对应关系;以及,
报文的源物理服务器的IP地址的掩码和目的物理服务器的IP地址的掩码的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL值字段中的一个或多个字段的值的对应关系。
第五方面,本发明提供了一种网络设备,所述网络设备包括:第一接受配置模块、第一接收模块和选路模块,其中,
所述第一接受配置模块,用于接受控制器配置服务等级COS、服务类型TOS和生存时间TTL中的一个或多个作为数据中心网络中的网络设备进行等价多路径路由ECMP选路的散列hash因子;
所述第一接收模块,用于接收物理服务器发送的三层叠加网络虚拟化NVO3报文;
所述选路模块,用于根据接收的NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值,和控制器配置的hash因子进行ECMP选路,所述NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值是根据控制器确定网络设备之间的互连链路故障或控制器根据所述控制器收集的网络设备的流量和物理服务器中的超级管理程序Hypervisor或者虚拟交换机vSw的流量确定发生拥塞时,发送给物理服务器的封装控制策略确定的。
在第五方面的第一种实现方式中,所述网络设备的上行路径的ECMP选路使用报文外层以太头和外层互联网协议IP头中的COS、TOS和TTL中的一个来构建hash因子进行hash选路;
所述网络设备的下行路径的ECMP选路使用COS、TOS和TTL中的一个进行hash选路;或者,所述网络设备的下行路径的ECMP选路使用外层IP头的源IP地址结合COS、TOS和TTL中的一个进行hash选路;或者,下行路径的ECMP选路使用外层IP头的SIP地址进行hash选路;
所述NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值是通过以下方式获得的:
控制器先确定某条流从源物理服务器上的Hypervisor或者vSw到目的物理服务器地址经过的转发路径,然后用以下三个方式中的一个或多个方式找到能得到这条转发路径的COS、TOS和TTL中的一个或多个的值,指示物理服务器进行NVO3报文的外层封装时,对于该流均用此COS、TOS和TTL中的一个或多个值去封装;所述三个方式如下:用不同的COS的值来进行hash计算找到能得到这条转发路径的COS的值,用不同的TOS的值来进行hash计算找到能得到这条转发路径的TOS的值,和用不同的TTL的值来进行hash计算找到能得到这条转发路径的TTL的值;
所述控制器进行hash计算得到转发路径的算法与所述网络设备进行hash选路的算法是一样的。
结合第五方面和第五方面的第一种实现方式,在第五方面的第二种实现方式中,所述封装控制策略为下面几种中的一种:
报文的源物理服务器的IP地址和目的物理服务器的IP地址的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL字段中的一个或多个字段的值的对应关系;
报文的源物理服务器的IP地址、目的物理服务器的IP地址、报文源虚拟机VM的IP地址和报文目的VM的IP地址的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL值字段中的一个或多个字段的值的对应关系;
报文的源物理服务器的IP地址、目的物理服务器的IP地址、源VM的IP地址的掩码和目的VM的IP地址的掩码的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL值字段中的一个或多个字段的值的对应关系;以及,
报文的源物理服务器的IP地址的掩码和目的物理服务器的IP地址的掩码的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL值字段中的一个或多个字段的值的对应关系。
第六方面,本发明提供了一种数据中心网络的流量均衡方法,所述方法包括:
物理服务器接收封装控制策略,所述封装控制策略是由控制器确定网络设备之间的互连链路故障或控制器根据所述控制器收集的网络设备的流量和物理服务器中的超级管理程序Hypervisor或者虚拟交换机vSw的流量确定发生拥塞时,向物理服务器发送的封装控制策略;
物理服务器根据所述封装控制策略确定源物理服务器上的三层叠加网络虚拟化NVO3报文的外层封装中的服务等级COS、服务类型TOS和生存时间TTL字段中的一个或多个字段的值;
物理服务器向网络设备发送NVO3报文,以由网络设备根据接收的NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值,和控制器配置的散列hash因子进行等价多路径路由ECMP选路。
在第六方面的第一种实现方式中,所述封装控制策略为下面几种中的一种:
报文的源物理服务器的互联网协议IP地址和目的物理服务器的IP地址的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL字段中的一个或多个字段的值的对应关系;
报文的源物理服务器的IP地址、目的物理服务器的IP地址、报文源虚拟机VM的IP地址和报文目的VM的IP地址的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL值字段中的一个或多个字段的值的对应关系;
报文的源物理服务器的IP地址、目的物理服务器的IP地址、源VM的IP地址的掩码和目的VM的IP地址的掩码的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL值字段中的一个或多个字段的值的对应关系;以及,
报文的源物理服务器的IP地址的掩码和目的物理服务器的IP地址的掩码的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL值字段中的一个或多个字段的值的对应关系。
结合第六方面和第六方面的第一种实现方式,在第六方面的第二种实现方式中,所述网络设备的上行路径的ECMP选路使用报文外层以太头和外层IP头中的COS、TOS和TTL中的一个来构建hash因子进行hash选路;
所述网络设备的下行路径的ECMP选路使用COS、TOS和TTL中的一个进行hash选路;或者,所述网络设备的下行路径的ECMP选路使用外层IP头的源IP地址结合COS、TOS和TTL中的一个进行hash选路;或者,下行路径的ECMP选路使用外层IP头的SIP地址进行hash选路;
所述NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值是通过以下方式获得的:
控制器先确定某条流从源物理服务器上的Hypervisor或者vSw到目的物理服务器地址经过的转发路径,然后用以下三个方式中的一个或多个方式找到能得到这条转发路径的COS、TOS和TTL中的一个或多个的值,指示物理服务器进行NVO3报文的外层封装时,对于该流均用此COS、TOS和TTL中的一个或多个值去封装;所述三个方式如下:用不同的COS的值来进行hash计算找到能得到这条转发路径的COS的值,用不同的TOS的值来进行hash计算找到能得到这条转发路径的TOS的值,和用不同的TTL的值来进行hash计算找到能得到这条转发路径的TTL的值;
所述控制器进行hash计算得到转发路径的算法与所述网络设备进行hash选路的算法是一样的。
结合第六方面,第六方面的第一种实现方式和第二种实现方式中的任意一个,在第六方面的第三种实现方式中,所有的物理服务器的IP地址分配在连续的IP地址;所述封装控制策略采用以下方式:报文的源物理服务器的IP地址的掩码和目的物理服务器的IP地址的掩码的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL字段中的一个或多个字段的值的对应关系。
结合第六方面,第六方面的第一种实现方式至第三种实现方式中的任意一个,在第六方面的第四种实现方式中,所述方法还包括:
所述物理服务器接收控制器发送给物理服务器中的vSw或者hypervisor的初始报文封装规则;
所述物理服务器接受控制器对物理服务器中的vSw或者hypervisor初始报文封装规则的配置;
所述初始报文封装规则是根据NVO3的目标物理服务器的互联网协议IP地址来确定NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值。
第七方面,本发明提供了一种物理服务器,所述物理服务器包括:第三接收模块、确定模块和第三发送模块,其中,
所述第三接收模块,用于接收封装控制策略,所述封装控制策略是由控制器确定网络设备之间的互连链路故障或控制器根据所述控制器收集的网络设备的流量和物理服务器中的超级管理程序Hypervisor或者虚拟交换机vSw的流量确定发生拥塞时,向物理服务器发送的封装控制策略;
所述确定模块,用于根据所述封装控制策略确定源物理服务器上的三层叠加网络虚拟化NVO3报文的外层封装中的服务等级COS、服务类型TOS和生存时间TTL字段中的一个或多个字段的值;
所述第三发送模块,用于向网络设备发送NVO3报文,以由网络设备根据接收的NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值,和控制器配置的散列hash因子进行等价多路径路由ECMP选路。
在第七方面的第一种实现方式中,所述封装控制策略为下面几种中的一种:
报文的源物理服务器的互联网协议IP地址和目的物理服务器的IP地址的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL字段中的一个或多个字段的值的对应关系;
报文的源物理服务器的IP地址、目的物理服务器的IP地址、报文源虚拟机VM的IP地址和报文目的VM的IP地址的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL值字段中的一个或多个字段的值的对应关系;
报文的源物理服务器的IP地址、目的物理服务器的IP地址、源VM的IP地址的掩码和目的VM的IP地址的掩码的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL值字段中的一个或多个字段的值的对应关系;以及,
报文的源物理服务器的IP地址的掩码和目的物理服务器的IP地址的掩码的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL值字段中的一个或多个字段的值的对应关系。
结合第七方面和第七方面的第一种实现方式,在第七方面的第二种实现方式中,所述网络设备的上行路径的ECMP选路使用报文外层以太头和外层IP头中的COS、TOS和TTL中的一个来构建hash因子进行hash选路;
所述网络设备的下行路径的ECMP选路使用COS、TOS和TTL中的一个进行hash选路;或者,所述网络设备的下行路径的ECMP选路使用外层IP头的源IP地址结合COS、TOS和TTL中的一个进行hash选路;或者,下行路径的ECMP选路使用外层IP头的SIP地址进行hash选路;
所述NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值是通过以下方式获得的:
控制器先确定某条流从源物理服务器上的Hypervisor或者vSw到目的物理服务器地址经过的转发路径,然后用以下三个方式中的一个或多个方式找到能得到这条转发路径的COS、TOS和TTL中的一个或多个的值,指示物理服务器进行NVO3报文的外层封装时,对于该流均用此COS、TOS和TTL中的一个或多个值去封装;所述三个方式如下:用不同的COS的值来进行hash计算找到能得到这条转发路径的COS的值,用不同的TOS的值来进行hash计算找到能得到这条转发路径的TOS的值,和用不同的TTL的值来进行hash计算找到能得到这条转发路径的TTL的值;
所述控制器进行hash计算得到转发路径的算法与所述网络设备进行hash选路的算法是一样的。
结合第七方面,第七方面的第一种实现方式和第二种实现方式中的任意一个,在第七方面的第三种实现方式中,所有的物理服务器的IP地址分配在连续的IP地址;所述封装控制策略采用以下方式:报文的源物理服务器的IP地址的掩码和目的物理服务器的IP地址的掩码的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL字段中的一个或多个字段的值的对应关系。
结合第七方面,第七方面的第一种实现方式至第三种实现方式中的任意一个,在第七方面的第四种实现方式中,所述物理服务器还包括:
第二接收模块,用于接收控制器发送给物理服务器中的vSw或者hypervisor的初始报文封装规则;和
第三接受配置模块,用于接受控制器对物理服务器中的vSw或者hypervisor初始报文封装规则的配置;
所述初始报文封装规则是根据NVO3的目标物理服务器的互联网协议IP地址来确定NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值。
在本发明中,由于控制器收集网络设备的流量和物理服务器中的Hypervisor或者vSw的流量,所述控制器确定网络设备之间的互连链路故障或所述控制器根据所述控制器收集的网络设备的流量和物理服务器中的Hypervisor或者vSw的流量确定发生拥塞时,向物理服务器中的hypervisor或者vsw发送封装控制策略,以确定源物理服务器上的NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值,同时结合网络设备中配置的多路径选择的hash规则,实现从源物理服务器上的hypervisor或者vSw到目的物理服务器地址经过的转发路径上的全局路径的流量均衡。对比传统的ECMP使用5元组来进行hash选路的方式,本方案的选路方式实现和部署比较简单,在控制器的统一协调下可以通过精细化的流量调度,实现物理网络的最佳利用率。本发明实施例一是基于流量统计信息来进行统一的链路负载均衡,能够充分的利用链路带宽。同时调整灵活,只需要由控制器通过封装控制策略通知和控制物理服务器上的hypervisor或者vSW修改特定报文的封装格式就可以了。
附图说明
图1是通常的Clos网络架构的示意图。
图2是通常应用NVO3的网络的网络架构的示意图。
图3是本发明实施例一提供的数据中心网络架构的示意图。
图4是本发明实施例二提供的数据中心网络的流量均衡方法流程图。
图5是本发明实施例三提供的控制器的功能模块框图。
图6是本发明实施例四提供的网络设备的功能模块框图。
图7是本发明实施例五提供的物理服务器的功能模块框图。
图8是本发明实施例六提供的控制器的功能模块框图。
图9是本发明实施例七提供的网络设备的功能模块框图。
图10是本发明实施例八提供的物理服务器的功能模块框图。
具体实施方式
为了使本发明的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
在应用了NVO3的情况下,由于NVO3的报文封装外层IP头是物理服务器的IP地址,和VM无关,所以不同用户的报文通过选取外层IP头去hash仍然不容易均衡。虽然在NVGRE和VXLAN中用租户的逻辑二层网络标识参与计算调整以实现业务均衡,但hash的结果也是有一定偶然性的,调整不一定能够很精确。
实施例一:
请参阅图3,本发明实施例一提供的数据中心网络包括:控制器和分别与控制器连接的物理服务器和网络设备,其中:
控制器,用于实时收集网络设备的流量和物理服务器中的Hypervisor或者vSw的流量,所述控制器确定网络设备之间的互连链路故障或所述控制器根据所述控制器收集的网络设备的流量和物理服务器中的Hypervisor或者vSw的流量确定发生拥塞时,向物理服务器中的hypervisor或者vsw发送封装控制策略,以确定源物理服务器上的NVO3报文的外层封装中的COS、服务类型(英文:Type of Service,缩写:TOS)和生存时间(英文:Time To Live,缩写:TTL)字段中的一个或多个字段的值,同时结合给网络设备配置的hash因子进行ECMP选路,实现从源物理服务器上的hypervisor或者vSw到目的物理服务器地址经过的转发路径上的全局路径的流量均衡。也就是网络设备的配置不变的情况下,结合物理服务器和网络设备间的链路的流量统计,通过调整物理服务器上发出的NVO3报文封装,再结合网络设备配置相应的ECMP选路的hash因子选取NVO3报文的外层封装中的COS、TOS和TTL中的一个或多个来进行hash计算,这样就能够在控制器、网络设备和物理服务器中的Hypervisor或者vSw的协同下实现虚拟机流量在网络上的转发路径的精确控制,并最终实现网络中各物理链路的负载均衡。
举例来说,hash可以是模除操作(英文:modulo operation)。
控制器还配置COS、TOS和TTL中的一个或多个作为数据中心网络中的网络设备进行ECMP选路的hash因子。控制器发送初始报文封装规则给物理服务器中的vSw或者hypervisor,对物理服务器中的vSw或者hypervisor初始报文封装规则进行配置。
初始报文封装规则是根据NVO3的目标物理服务器的IP地址来确定NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值。例如,将NVO3的目标物理服务器的IP地址的低n位(英文:n least significant bit,缩写:n-LSB)的取值作为COS字段的值,将预设值加上目标物理服务器的IP地址的低m位的取值作为TOS或TTL字段的值。其中n和m的取值和系统中可选的ECMP的数目相关。
由于物理服务器根据初始报文封装规则对NVO3报文进行封装后发送给网络设备,网络设备在ECMP选路时使用NVO3报文中的COS、TOS和TTL中的一个或多个来构建hash因子进行hash选路,仍然可能会造成某些链路拥塞,而另外的空闲链路无法利用的情况。又由于网络设备使用NVO3报文中的COS、TOS和TTL字段中的一个或多个字段的值来进行hash计算,得到ECMP多路径中的唯一转发路径,因此控制器通过定义不同流的NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值去控制不同流从源物理服务器上的hypervisor或者vSw到目的物理服务器地址经过的转发路径。所述流是指两VM间互访的报文流或者是在两物理服务器间转发的报文流。
NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值是通过以下方式获得的:
控制器先确定某条流从源物理服务器上的hypervisor或者vSw到目的物理服务器地址经过的转发路径,然后用以下三个方式中的一个或多个方式找到能得到这条转发路径的COS、TOS和TTL中的一个或多个的值,指示物理服务器进行NVO3报文的外层封装时,对于该流均用此COS、TOS和TTL中的一个或多个值去封装。所述三个方式如下:用不同的COS的值来进行hash计算找到能得到这条转发路径的COS的值,用不同的TOS的值来进行hash计算找到能得到这条转发路径的TOS的值,和用不同的TTL的值来进行hash计算找到能得到这条转发路径的TTL的值;所述控制器进行hash计算得到转发路径的算法与所述网络设备进行hash选路的算法是一样的。
上述封装控制策略为下面几种中的一种:
报文的源物理服务器的IP地址和目的物理服务器的IP地址的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL字段中的一个或多个字段的值的对应关系;
报文的源物理服务器的IP地址、目的物理服务器的IP地址、报文源VM的IP地址和报文目的VM的IP地址的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL值字段中的一个或多个字段的值的对应关系;
报文的源物理服务器的IP地址、目的物理服务器的IP地址、源VM的IP地址的掩码和目的VM的IP地址的掩码的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL值字段中的一个或多个字段的值的对应关系;以及,
报文的源物理服务器的IP地址的掩码和目的物理服务器的IP地址的掩码的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL值字段中的一个或多个字段的值的对应关系。
控制器根据流量变化情况确定发生拥塞或确定网络设备之间的互连链路故障时,向物理服务器发送封装控制策略。物理服务器具有Hypervisor或者vSw,用于完成NVO3的报文封装,接收封装控制策略,根据所述封装控制策略,而不是根据初始报文封装规则,确定源物理服务器上的NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值。
在NVO3的封装下,租户的VM网络是叠加在物理服务器的基础网络之上的。租户的VM网络和物理服务器的基础网络可以独立地规划。因此物理服务器的IP地址分配是可以静态规划的,而租户的VM网络根据租户需求进行规划。因此,可选的,可以将所有的物理服务器的IP地址分配连续的IP地址,则封装控制策略可采用以下方式:报文的源物理服务器的IP地址的掩码和目的物理服务器的IP地址的掩码的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL字段中的一个或多个字段的值的对应关系。而不需要发送多个以下方式的封装控制策略:报文的源物理服务器的IP地址和目的物理服务器的IP地址的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL字段中的一个或多个字段的值的对应关系。从而可以减少控制器下发的封装控制策略的数目。如为一个多端口的柜顶(英文:top of rack,缩写:TOR)交换机下的多个物理服务器分配连续的IP地址,同一机架群中的各TOR交换机下的物理服务器分配的IP地址对应的子网掩码连续,即各机架群内的物理服务器地址分布在同一个子网。譬如,假设一个TOR交换机下有48台物理服务器,一个机架群下包含8个TOR,可以规划该机架群的物理服务器的子网掩码为10.1.2.0/23,第一个TOR下的物理服务器的子网掩码为10.1.2.0/26,第二个TOR下的物理服务器的子网掩码为10.1.2.64/26,以此类推。连续的物理服务器地址的规划可以使得物理网络的路由相对简单,同时由于下行路径的多路径hash因子中应用了物理服务器地址,这样的规则应用可以使控制器的策略生成相对简单高效。
网络设备包括接入交换机、汇聚交换机和核心交换机,网络设备接受控制器配置,将COS、TOS和TTL中的一个或多个作为其进行ECMP选路的hash因子,接收物理服务器发送的NVO3报文。网络设备将接收的NVO3报文中控制器配置的COS、TOS和TTL中的一个或多个作为hash因子进行ECMP选路。举例来说,由于接入交换机的下行路径是固定的,只有上行路径需要进行ECMP选路,因此接入交换机接受控制器配置,将COS、TOS和TTL中的一个作为其进行ECMP选路的hash因子;对于汇聚交换机和核心交换机,上行路径和下行路径均需要进行ECMP选路,因此汇聚交换机和核心交换机接受控制器配置,将COS、TOS和TTL中的两个作为其进行ECMP选路的hash因子。
在本发明实施例一中,网络设备支持选择报文的COS、TOS和TTL中的一个或多个来作为hash因子的能力。可选的,网络设备还可以基于源IP(英文:Source IP,缩写:SIP)地址与,COS、TOS和TTL中的一个,构建hash因子。上行路径的ECMP选路使用报文外层以太头和外层IP头中的COS、TOS和TTL中的一个来构建hash因子进行hash选路,下行路径的ECMP选路使用COS、TOS和TTL中的一个进行hash选路。可替换的,下行路径的ECMP选路也可以使用外层IP头的SIP地址结合COS、TOS和TTL中的一个进行hash选路。可替换的,下行路径的ECMP选路也可以使用外层IP头的SIP地址进行hash选路。
其中上行路径是指依次从物理服务器、接入交换机、汇聚交换机到核心交换机的路径,下行路径是指依次从核心交换机、汇聚交换机、接入交换机到物理服务器的路径。
在本发明实施例一中,对于网络规模比较小时,汇聚交换机和核心交换机可以合并为同一设备,这时,可以通过在接入交换机的上行路径的ECMP多路径选路上选取外层封装的TTL来进行ECMP的hash选路。
在选择COS或TOS或TTL作为hash因子时主要考虑如下因素:
(1)COS或TOS或TTL各字段的位宽不一样,通过hash能够计算取得的最大路径选择数目范围不一样,对于COS,路径选择数目最多是8,对于TOS,路径选择数目最多是256,对于TTL,路径选择数目最多是252。具体选择时可以根据各机架群内部的接入交换机和汇聚交换机的数目,以及机架群内部的汇聚交换机和核心交换机的数目来确定。例如,如果一个机架群内部的汇聚交换机小于8,可以在接入交换机使用COS作为接入交换机到汇聚交换机的hash因子,另外在汇聚交换机使用TTL作为汇聚交换机到核心交换机的hash因子;如果一个机架群内部的汇聚交换机比较多而核心交换机较少时,可以在接入交换机使用TTL作为接入交换机到汇聚交换机的hash因子,汇聚交换机使用COS或TOS作为汇聚交换机到核心交换机的hash因子。
(2)选择COS和TOS时,只选用COS和TOS中的其中一个,另外一个作为Qos策略映射。例如,选择COS做路径选择,TOS做Qos策略映射。其中,Qos策略映射是将报文的优先级映射到设备内部的优先级。设备内部的优先级是当设备报文转发内部出现拥塞时进行优先级调度和丢包处理的依据。
(3)上行路径每段只选择一种hash因子,在接入层到汇聚层使用COS或TOS的情况下,汇聚层到核心层使用TTL,当接入层到汇聚层使用TTL时,汇聚层到核心层使用COS或TOS。
因此通过指定外层封装中的TOS、COS和TTL字段中的一个或多个字段的值,结合给网络设备配置的hash因子进行ECMP选路,同时考虑物理服务器地址的IP网段连续规划分配,两个物理服务器间的NVO3报文在设备间的路径是可以用比较简单的规则得到的。利用控制器收集物理服务器和网络设备端口的流量信息,通知发送NVO3报文的源物理服务器针对到特定目标物理服务器的报文进行不同的NVO3外层封装中的TOS、COS和TTL字段中的一个或多个字段的取值,就可以很快方便的调整网络中报文转发的路径。
本发明实施例一中,控制器实时收集网络设备的流量和物理服务器中的Hypervisor或者vSw的流量,根据流量变化情况确定发生拥塞或确定网络设备之间的互连链路故障时,向物理服务器中的hypervisor或者vsw发送封装控制策略,以确定源物理服务器上的NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值,同时结合给网络设备配置的hash因子进行ECMP选路,实现从源物理服务器上的hypervisor或者vSw到目的物理服务器地址经过的转发路径上的全局路径的流量均衡。对比传统的ECMP使用5元组来进行hash选路的方式,本方案的选路方式实现和部署比较简单,在控制器的统一协调下可以通过精细化的流量调度,实现物理网络的最佳利用率。本发明实施例一是基于流量统计信息来进行统一的链路负载均衡,能够充分的利用链路带宽。同时调整灵活,只需要由控制器通过封装控制策略通知和控制物理服务器上的hypervisor或者vSW修改特定报文的封装格式就可以了。
实施例二:
请参阅图4,本发明实施例二提供的数据中心网络的流量均衡方法包括以下步骤:
S101、控制器配置COS、TOS和TTL中的一个或多个作为数据中心网络中的网络设备进行ECMP选路的hash因子;即数据中心网络中的网络设备接受控制器配置COS、TOS和TTL中的一个或多个作为网络设备进行ECMP选路的hash因子。
举例来说,由于接入交换机的下行路径是固定的,只有上行路径需要进行ECMP选路,因此接入交换机接受控制器配置,将COS、TOS和TTL中的一个作为其进行ECMP选路的hash因子;对于汇聚交换机和核心交换机,上行路径和下行路径均需要进行ECMP选路,因此汇聚交换机和核心交换机接受控制器配置,将COS、TOS和TTL中的两个作为其进行ECMP选路的hash因子。
在本发明实施例二中,网络设备支持选择报文的COS、TOS和TTL中的一个或多个来作为hash因子的能力。可选的,网络设备还可以基于源IP(英文:Source IP,缩写:SIP)地址与,COS、TOS和TTL中的一个,构建hash因子。上行路径的ECMP选路使用报文外层以太头和外层IP头中的COS、TOS和TTL中的一个来构建hash因子进行hash选路,下行路径的ECMP选路使用COS、TOS和TTL中的一个进行hash选路。可替换的,下行路径的ECMP选路也可以使用外层IP头的SIP地址结合COS、TOS和TTL中的一个进行hash选路。可替换的,下行路径的ECMP选路也可以使用外层IP头的SIP地址进行hash选路。
其中上行路径是指依次从物理服务器、接入交换机、汇聚交换机到核心交换机的路径,下行路径是指依次从核心交换机、汇聚交换机、接入交换机到物理服务器的路径。
在本发明实施例二中,对于网络规模比较小时,汇聚交换机和核心交换机可以合并为同一设备,这时,可以通过在接入交换机的上行路径的ECMP多路径选路上选取外层封装的TTL来进行ECMP的hash选路。
在选择COS或TOS或TTL作为hash因子时主要考虑如下因素:
(1)COS或TOS或TTL各字段的位宽不一样,通过hash能够计算取得的最大路径选择数目范围不一样,对于COS,路径选择数目最多是8,对于TOS,路径选择数目最多是256,对于TTL,路径选择数目最多是252。具体选择时可以根据各机架群内部的接入交换机和汇聚交换机的数目,以及机架群内部的汇聚交换机和核心交换机的数目来确定。例如,如果一个机架群内部的汇聚交换机小于8,可以在接入交换机使用COS作为接入交换机到汇聚交换机的hash因子,另外在汇聚交换机使用TTL作为汇聚交换机到核心交换机的hash因子;如果一个机架群内部的汇聚交换机比较多而核心交换机较少时,可以在接入交换机使用TTL作为接入交换机到汇聚交换机的hash因子,汇聚交换机使用COS或TOS作为汇聚交换机到核心交换机的hash因子。
(2)选择COS和TOS时,只选用COS和TOS中的其中一个,另外一个作为Qos策略映射。例如,选择COS做路径选择,TOS做Qos策略映射。其中,Qos策略映射是将报文的优先级映射到设备内部的优先级。设备内部的优先级是当设备报文转发内部出现拥塞时进行优先级调度和丢包处理的依据。
(3)上行路径每段只选择一种hash因子,在接入层到汇聚层使用COS或TOS的情况下,汇聚层到核心层使用TTL,当接入层到汇聚层使用TTL时,汇聚层到核心层使用COS或TOS。
因此通过指定外层封装中的TOS、COS和TTL字段中的一个或多个字段的值,结合给网络设备配置的hash因子进行ECMP选路,同时考虑物理服务器地址的IP网段连续规划分配,两个物理服务器间的NVO3报文在设备间的路径是可以用比较简单的规则得到的。利用控制器收集物理服务器和网络设备端口的流量信息,通知发送NVO3报文的源物理服务器针对到特定目标物理服务器的报文进行不同的NVO3外层封装中的TOS、COS和TTL字段中的一个或多个字段的取值,就可以很快方便的调整网络中报文转发的路径。
在本发明实施例二中,步骤S101还可以包括:
控制器配置数据中心网络中的网络设备的上下行路径中的路由;即数据中心网络中的网络设备接受控制器配置其上下行路径中的路由。
所述控制器配置数据中心网络中的网络设备之间的上下行路径中的路由具体可以为:控制器按照物理服务器的IP地址连续分配的原则,配置数据中心网络中的网络设备之间的上下行路径中的路由。
在本发明实施例二中,步骤S101还可以包括:
控制器发送初始报文封装规则给物理服务器中的vSw或者hypervisor,对物理服务器中的vSw或者hypervisor初始报文封装规则进行配置;即物理服务器接收控制器发送给物理服务器中的vSw或者hypervisor的初始报文封装规则,接受控制器对物理服务器中的vSw或者hypervisor初始报文封装规则的配置。
初始报文封装规则是根据NVO3的目标物理服务器的IP地址来确定NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值。例如,将NVO3的目标物理服务器的IP地址的低n位(英文:n least significant bit,缩写:n-LSB)的取值作为COS字段的值,将预设值加上目标物理服务器的IP地址的低m位的取值作为TOS或TTL字段的值。其中n和m的取值和系统中可选的ECMP的数目相关。
由于物理服务器根据初始报文封装规则对NVO3报文进行封装后发送给网络设备,网络设备在ECMP选路时使用NVO3报文中的COS、TOS和TTL中的一个或多个来构建hash因子进行hash选路,仍然可能会造成某些链路拥塞,而另外的空闲链路无法利用的情况。又由于网络设备使用NVO3报文中的COS、TOS和TTL字段中的一个或多个字段的值来进行hash计算,得到ECMP多路径中的唯一转发路径,因此控制器通过定义不同流的NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值去控制不同流从源物理服务器上的hypervisor或者vSw到目的物理服务器地址经过的转发路径。所述流是指两VM间互访的报文流或者是在两物理服务器间转发的报文流。
S102、控制器实时收集网络设备的流量和物理服务器中的Hypervisor或者vSw的流量;
S103、控制器确定网络设备之间的互连链路故障或控制器根据所述控制器收集的网络设备的流量和物理服务器中的Hypervisor或者vSw的流量确定发生拥塞时,向物理服务器中的hypervisor或者vsw发送封装控制策略;
S104、物理服务器中的hypervisor或者vsw接收封装控制策略,所述封装控制策略是由控制器根据流量变化情况确定发生拥塞或确定网络设备之间的互连链路故障时,向物理服务器发送的封装控制策略;
上述封装控制策略为下面几种中的一种:
报文的源物理服务器的IP地址和目的物理服务器的IP地址的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL字段中的一个或多个字段的值的对应关系;
报文的源物理服务器的IP地址、目的物理服务器的IP地址、报文源VM的IP地址和报文目的VM的IP地址的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL值字段中的一个或多个字段的值的对应关系;
报文的源物理服务器的IP地址、目的物理服务器的IP地址、源VM的IP地址的掩码和目的VM的IP地址的掩码的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL值字段中的一个或多个字段的值的对应关系;以及,
报文的源物理服务器的IP地址的掩码和目的物理服务器的IP地址的掩码的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL值字段中的一个或多个字段的值的对应关系。
NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值是通过以下方式获得的:
控制器先确定某条流从源物理服务器上的hypervisor或者vSw到目的物理服务器地址经过的转发路径,然后用以下三个方式中的一个或多个方式找到能得到这条转发路径的COS、TOS和TTL中的一个或多个的值,指示物理服务器进行NVO3报文的外层封装时,对于该流均用此COS、TOS和TTL中的一个或多个值去封装。所述三个方式如下::用不同的COS的值来进行hash计算找到能得到这条转发路径的COS的值,用不同的TOS的值来进行hash计算找到能得到这条转发路径的TOS的值,和用不同的TTL的值来进行hash计算找到能得到这条转发路径的TTL的值;所述控制器进行hash计算得到转发路径的算法与所述网络设备进行hash选路的算法是一样的。
举例来说,hash可以是模除操作。
在NVO3的封装下,租户的VM网络是叠加在物理服务器的基础网络之上的。租户的VM网络和物理服务器的基础网络可以独立地规划。因此物理服务器的IP地址分配是可以静态规划的,而租户的VM网络根据租户需求进行规划。因此,可选的,可以将所有的物理服务器的IP地址分配连续的IP地址,则封装控制策略可采用以下方式:报文的源物理服务器的IP地址的掩码和目的物理服务器的IP地址的掩码的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL字段中的一个或多个字段的值的对应关系。而不需要发送多个以下方式的封装控制策略:报文的源物理服务器的IP地址和目的物理服务器的IP地址的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL字段中的一个或多个字段的值的对应关系。从而可以减少控制器下发的封装控制策略的数目。如为一个多端口的柜顶(英文:top of rack,缩写:TOR)交换机下的多个物理服务器分配连续的IP地址,同一机架群中的各TOR交换机下的物理服务器分配的IP地址对应的子网掩码连续,即各机架群内的物理服务器地址分布在同一个子网。譬如,假设一个TOR交换机下有48台物理服务器,一个机架群下包含8个TOR,可以规划该机架群的物理服务器的子网掩码为10.1.2.0/23,第一个TOR下的物理服务器的子网掩码为10.1.2.0/26,第二个TOR下的物理服务器的子网掩码为10.1.2.64/26,以此类推。连续的物理服务器地址的规划可以使得物理网络的路由相对简单,同时由于下行路径的多路径hash因子中应用了物理服务器地址,这样的规则应用可以使控制器的策略生成相对简单高效。
S105、物理服务器中的hypervisor或者vsw根据所述封装控制策略确定源物理服务器上的NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值;
S106、物理服务器向网络设备发送NVO3报文,所述NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值是根据所述封装控制策略确定的,而不是根据初始报文封装规则;
S107、网络设备接收物理服务器发送的NVO3报文;
S108、网络设备根据接收的NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值,和控制器配置的hash因子进行ECMP选路。
本发明实施例二中,控制器实时收集网络设备的流量和物理服务器中的Hypervisor或者vSw的流量,所述控制器确定网络设备之间的互连链路故障或所述控制器根据所述控制器收集的网络设备的流量和物理服务器中的Hypervisor或者vSw的流量确定发生拥塞时,向物理服务器中的hypervisor或者vsw发送封装控制策略,以确定源物理服务器上的NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值,同时结合给网络设备配置的hash因子进行ECMP选路,实现从源物理服务器上的hypervisor或者vSw到目的物理服务器地址经过的转发路径上的全局路径的流量均衡。对比传统的ECMP使用5元组来进行hash选路的方式,本方案的选路方式实现和部署比较简单,在控制器的统一协调下可以通过精细化的流量调度,实现物理网络的最佳利用率。本发明实施例二是基于流量统计信息来进行统一的链路负载均衡,能够充分的利用链路带宽。同时调整灵活,只需要由控制器通过封装控制策略通知和控制物理服务器上的hypervisor或者vSW修改特定报文的封装格式就可以了。
实施例三:
请参阅图5,本发明实施例三提供的控制器包括:第一配置模块11、收集模块12和第二发送模块13。其中,
第一配置模块11,用于配置COS、TOS和TTL中的一个或多个作为数据中心网络中的网络设备进行ECMP选路的hash因子;
举例来说,由于接入交换机的下行路径是固定的,只有上行路径需要进行ECMP选路,因此第一配置模块11配置COS、TOS和TTL中的一个作为接入交换机进行ECMP选路的hash因子;对于汇聚交换机和核心交换机,上行路径和下行路径均需要进行ECMP选路,因此第一配置模块11配置COS、TOS和TTL中的两个分别作为汇聚交换机和核心交换机进行ECMP选路的hash因子。
在选择COS或TOS或TTL作为hash因子时主要考虑如下因素:
(1)COS或TOS或TTL各字段的位宽不一样,通过hash能够计算取得的最大路径选择数目范围不一样,对于COS,路径选择数目最多是8,对于TOS,路径选择数目最多是256,对于TTL,路径选择数目最多是252。具体选择时可以根据各机架群内部的接入交换机和汇聚交换机的数目,以及机架群内部的汇聚交换机和核心交换机的数目来确定。例如,如果一个机架群内部的汇聚交换机小于8,可以在接入交换机使用COS作为接入交换机到汇聚交换机的hash因子,另外在汇聚交换机使用TTL作为汇聚交换机到核心交换机的hash因子;如果一个机架群内部的汇聚交换机比较多而核心交换机较少时,可以在接入交换机使用TTL作为接入交换机到汇聚交换机的hash因子,汇聚交换机使用COS或TOS作为汇聚交换机到核心交换机的hash因子。
(2)选择COS和TOS时,只选用COS和TOS中的其中一个,另外一个作为Qos策略映射。例如,选择COS做路径选择,TOS做Qos策略映射。其中,Qos策略映射是将报文的优先级映射到设备内部的优先级。设备内部的优先级是当设备报文转发内部出现拥塞时进行优先级调度和丢包处理的依据。
(3)上行路径每段只选择一种hash因子,在接入层到汇聚层使用COS或TOS的情况下,汇聚层到核心层使用TTL,当接入层到汇聚层使用TTL时,汇聚层到核心层使用COS或TOS。
收集模块12,用于实时收集网络设备的流量和物理服务器中的Hypervisor或者vSw的流量;
第二发送模块13,用于确定网络设备之间的互连链路故障或根据收集的网络设备的流量和物理服务器中的Hypervisor或者vSw的流量确定发生拥塞时,向物理服务器中的hypervisor或者vsw发送封装控制策略,以由物理服务器中的hypervisor或者vsw根据所述封装控制策略确定源物理服务器上的NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值,再由网络设备根据接收的NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值,和控制器配置的hash因子进行ECMP选路。
上述封装控制策略为下面几种中的一种:
报文的源物理服务器的IP地址和目的物理服务器的IP地址的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL字段中的一个或多个字段的值的对应关系;
报文的源物理服务器的IP地址、目的物理服务器的IP地址、报文源VM的IP地址和报文目的VM的IP地址的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL值字段中的一个或多个字段的值的对应关系;
报文的源物理服务器的IP地址、目的物理服务器的IP地址、源VM的IP地址的掩码和目的VM的IP地址的掩码的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL值字段中的一个或多个字段的值的对应关系;以及,
报文的源物理服务器的IP地址的掩码和目的物理服务器的IP地址的掩码的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL值字段中的一个或多个字段的值的对应关系。
NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值是通过以下方式获得的:
控制器先确定某条流从源物理服务器上的hypervisor或者vSw到目的物理服务器地址经过的转发路径,然后用以下三个方式中的一个或多个方式找到能得到这条转发路径的COS、TOS和TTL中的一个或多个的值,指示物理服务器进行NVO3报文的外层封装时,对于该流均用此COS、TOS和TTL中的一个或多个值去封装。所述三个方式如下:用不同的COS的值来进行hash计算找到能得到这条转发路径的COS的值,用不同的TOS的值来进行hash计算找到能得到这条转发路径的TOS的值,和用不同的TTL的值来进行hash计算找到能得到这条转发路径的TTL的值;所述控制器进行hash计算得到转发路径的算法与所述网络设备进行hash选路的算法是一样的。
举例来说,hash可以是模除操作。
在本发明实施例三中,控制器还可以包括:
第二配置模块,用于配置数据中心网络中的网络设备的上下行路径中的路由。
所述第二配置模块具体可以用于控制器按照物理服务器的IP地址连续分配的原则,配置数据中心网络中的网络设备之间的上下行路径中的路由。
在本发明实施例三中,控制器还可以包括:
第一发送模块,用于发送初始报文封装规则给物理服务器中的vSw或者hypervisor;和
第三配置模块,用于对物理服务器中的vSw或者hypervisor初始报文封装规则进行配置。
初始报文封装规则是根据NVO3的目标物理服务器的IP地址来确定NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值。例如,将NVO3的目标物理服务器的IP地址的低n位的取值作为COS字段的值,将预设值加上目标物理服务器的IP地址的低m位的取值作为TOS或TTL字段的值。其中n和m的取值和系统中可选的ECMP的数目相关。
由于物理服务器根据初始报文封装规则对NVO3报文进行封装后发送给网络设备,网络设备在ECMP选路时使用NVO3报文中的COS、TOS和TTL中的一个或多个来构建hash因子进行hash选路,仍然可能会造成某些链路拥塞,而另外的空闲链路无法利用的情况。又由于网络设备使用NVO3报文中的COS、TOS和TTL字段中的一个或多个字段的值来进行hash计算,得到ECMP多路径中的唯一转发路径,因此控制器通过定义不同流的NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值去控制不同流从源物理服务器上的hypervisor或者vSw到目的物理服务器地址经过的转发路径。所述流是指两VM间互访的报文流或者是在两物理服务器间转发的报文流。
本发明实施例三中,控制器实时收集网络设备的流量和物理服务器中的Hypervisor或者vSw的流量,所述控制器确定网络设备之间的互连链路故障或控制器根据所述控制器收集的网络设备的流量和物理服务器中的超级管理程序Hypervisor或者虚拟交换机vSw的流量确定发生拥塞时,向物理服务器中的hypervisor或者vsw发送封装控制策略,以确定源物理服务器上的NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值,同时结合给网络设备配置的hash因子进行ECMP选路,实现从源物理服务器上的hypervisor或者vSw到目的物理服务器地址经过的转发路径上的全局路径的流量均衡。对比传统的ECMP使用5元组来进行hash选路的方式,本方案的选路方式实现和部署比较简单,在控制器的统一协调下可以通过精细化的流量调度,实现物理网络的最佳利用率。本发明实施例三是基于流量统计信息来进行统一的链路负载均衡,能够充分的利用链路带宽。同时调整灵活,只需要由控制器通过封装控制策略通知和控制物理服务器上的hypervisor或者vSW修改特定报文的封装格式就可以了。
实施例四:
请参阅图6,本发明实施例四提供的网络设备包括:第一接受配置模块21、第一接收模块22和选路模块23。
第一接受配置模块21,用于接受控制器配置COS、TOS和TTL中的一个或多个作为网络设备进行ECMP选路的hash因子。
举例来说,由于接入交换机的下行路径是固定的,只有上行路径需要进行ECMP选路,因此接入交换机接受控制器配置,将COS、TOS和TTL中的一个作为其进行ECMP选路的hash因子;对于汇聚交换机和核心交换机,上行路径和下行路径均需要进行ECMP选路,因此汇聚交换机和核心交换机接受控制器配置,将COS、TOS和TTL中的两个作为其进行ECMP选路的hash因子。
在本发明实施例四中,网络设备支持选择报文的COS、TOS和TTL中的一个或多个来作为hash因子的能力。可选的,网络设备还可以基于源IP地址与,COS、TOS和TTL中的一个,构建hash因子。上行路径的ECMP选路使用报文外层以太头和外层IP头中的COS、TOS和TTL中的一个来构建hash因子进行hash选路,下行路径的ECMP选路使用COS、TOS和TTL中的一个进行hash选路。可替换的,下行路径的ECMP选路也可以使用外层IP头的SIP地址结合COS、TOS和TTL中的一个进行hash选路。可替换的,下行路径的ECMP选路也可以使用外层IP头的SIP地址进行hash选路。
其中上行路径是指依次从物理服务器、接入交换机、汇聚交换机到核心交换机的路径,下行路径是指依次从核心交换机、汇聚交换机、接入交换机到物理服务器的路径。
在本发明实施例四中,对于网络规模比较小时,汇聚交换机和核心交换机可以合并为同一设备,这时,可以通过在接入交换机的上行路径的ECMP多路径选路上选取外层封装的TTL来进行ECMP的hash选路。
在选择COS或TOS或TTL作为hash因子时主要考虑如下因素:
(1)COS或TOS或TTL各字段的位宽不一样,通过hash能够计算取得的最大路径选择数目范围不一样,对于COS,路径选择数目最多是8,对于TOS,路径选择数目最多是256,对于TTL,路径选择数目最多是252。具体选择时可以根据各机架群内部的接入交换机和汇聚交换机的数目,以及机架群内部的汇聚交换机和核心交换机的数目来确定。例如,如果一个机架群内部的汇聚交换机小于8,可以在接入交换机使用COS作为接入交换机到汇聚交换机的hash因子,另外在汇聚交换机使用TTL作为汇聚交换机到核心交换机的hash因子;如果一个机架群内部的汇聚交换机比较多而核心交换机较少时,可以在接入交换机使用TTL作为接入交换机到汇聚交换机的hash因子,汇聚交换机使用COS或TOS作为汇聚交换机到核心交换机的hash因子。
(2)选择COS和TOS时,只选用COS和TOS中的其中一个,另外一个作为Qos策略映射。例如,选择COS做路径选择,TOS做Qos策略映射。其中,Qos策略映射是将报文的优先级映射到设备内部的优先级。设备内部的优先级是当设备报文转发内部出现拥塞时进行优先级调度和丢包处理的依据。
(3)上行路径每段只选择一种hash因子,在接入层到汇聚层使用COS或TOS的情况下,汇聚层到核心层使用TTL,当接入层到汇聚层使用TTL时,汇聚层到核心层使用COS或TOS。
因此通过指定外层封装中的TOS、COS和TTL字段中的一个或多个字段的值,结合给网络设备配置的hash因子进行ECMP选路,同时考虑物理服务器地址的IP网段连续规划分配,两个物理服务器间的NVO3报文在设备间的路径是可以用比较简单的规则得到的。利用控制器收集物理服务器和网络设备端口的流量信息,通知发送NVO3报文的源物理服务器针对到特定目标物理服务器的报文进行不同的NVO3外层封装中的TOS、COS和TTL字段中的一个或多个字段的取值,就可以很快方便的调整网络中报文转发的路径。
第一接收模块22,用于接收物理服务器发送的NVO3报文;
选路模块23,用于根据接收的NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值,和控制器配置的hash因子进行ECMP选路,所述NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值是根据控制器确定网络设备之间的互连链路故障或控制器根据所述控制器收集的网络设备的流量和物理服务器中的超级管理程序Hypervisor或者虚拟交换机vSw的流量确定发生拥塞时,发送给物理服务器的封装控制策略确定的。
上述封装控制策略为下面几种中的一种:
报文的源物理服务器的IP地址和目的物理服务器的IP地址的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL字段中的一个或多个字段的值的对应关系;
报文的源物理服务器的IP地址、目的物理服务器的IP地址、报文源VM的IP地址和报文目的VM的IP地址的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL值字段中的一个或多个字段的值的对应关系;
报文的源物理服务器的IP地址、目的物理服务器的IP地址、源VM的IP地址的掩码和目的VM的IP地址的掩码的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL值字段中的一个或多个字段的值的对应关系;以及,
报文的源物理服务器的IP地址的掩码和目的物理服务器的IP地址的掩码的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL值字段中的一个或多个字段的值的对应关系。
NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值是通过以下方式获得的:
控制器先确定某条流从源物理服务器上的hypervisor或者vSw到目的物理服务器地址经过的转发路径,然后用以下三个方式中的一个或多个方式找到能得到这条转发路径的COS、TOS和TTL中的一个或多个的值,指示物理服务器进行NVO3报文的外层封装时,对于该流均用此COS、TOS和TTL中的一个或多个值去封装。所述三个方式如下:用不同的COS的值来进行hash计算找到能得到这条转发路径的COS的值,用不同的TOS的值来进行hash计算找到能得到这条转发路径的TOS的值,和用不同的TTL的值来进行hash计算找到能得到这条转发路径的TTL的值;所述控制器进行hash计算得到转发路径的算法与所述网络设备进行hash选路的算法是一样的。
举例来说,hash可以是模除操作。
在本发明实施例四中,网络设备还可以包括:
第二接受配置模块,用于接受控制器配置其上下行路径中的路由。
本发明实施例四中,网络设备接受控制器配置COS、TOS和TTL中的一个或多个作为网络设备进行ECMP选路的hash因子,接收到物理服务器发送的NVO3报文时,根据接收的NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值,和控制器配置的hash因子进行ECMP选路。从而实现从源物理服务器上的hypervisor或者vSw到目的物理服务器地址经过的转发路径上的全局路径的流量均衡。对比传统的ECMP使用5元组来进行hash选路的方式,本方案的选路方式实现和部署比较简单,在控制器的统一协调下可以通过精细化的流量调度,实现物理网络的最佳利用率。本发明实施例四是基于流量统计信息来进行统一的链路负载均衡,能够充分的利用链路带宽。同时调整灵活,只需要由控制器通过封装控制策略通知和控制物理服务器上的hypervisor或者vSW修改特定报文的封装格式就可以了。
实施例五:
请参阅图7,本发明实施例五提供的物理服务器包括:第三接收模块31、确定模块32和第三发送模块33。
第三接收模块31,用于接收封装控制策略,所述封装控制策略是由控制器确定网络设备之间的互连链路故障或控制器根据所述控制器收集的网络设备的流量和物理服务器中的超级管理程序Hypervisor或者虚拟交换机vSw的流量确定发生拥塞时,向物理服务器发送的封装控制策略;
上述封装控制策略为下面几种中的一种:
报文的源物理服务器的IP地址和目的物理服务器的IP地址的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL字段中的一个或多个字段的值的对应关系;
报文的源物理服务器的IP地址、目的物理服务器的IP地址、报文源VM的IP地址和报文目的VM的IP地址的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL值字段中的一个或多个字段的值的对应关系;
报文的源物理服务器的IP地址、目的物理服务器的IP地址、源VM的IP地址的掩码和目的VM的IP地址的掩码的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL值字段中的一个或多个字段的值的对应关系;以及,
报文的源物理服务器的IP地址的掩码和目的物理服务器的IP地址的掩码的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL值字段中的一个或多个字段的值的对应关系。
NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值是通过以下方式获得的:
控制器先确定某条流从源物理服务器上的hypervisor或者vSw到目的物理服务器地址经过的转发路径,然后用以下三个方式中的一个或多个方式找到能得到这条转发路径的COS、TOS和TTL中的一个或多个的值,指示物理服务器进行NVO3报文的外层封装时,对于该流均用此COS、TOS和TTL中的一个或多个值去封装。所述三个方式如下:用不同的COS的值来进行hash计算找到能得到这条转发路径的COS的值,用不同的TOS的值来进行hash计算找到能得到这条转发路径的TOS的值,和用不同的TTL的值来进行hash计算找到能得到这条转发路径的TTL的值;所述控制器进行hash计算得到转发路径的算法与所述网络设备进行hash选路的算法是一样的。
举例来说,hash可以是模除操作。
在NVO3的封装下,租户的VM网络是叠加在物理服务器的基础网络之上的。租户的VM网络和物理服务器的基础网络可以独立地规划。因此物理服务器的IP地址分配是可以静态规划的,而租户的VM网络根据租户需求进行规划。因此,可选的,可以将所有的物理服务器的IP地址分配连续的IP地址,则封装控制策略可采用以下方式:报文的源物理服务器的IP地址的掩码和目的物理服务器的IP地址的掩码的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL字段中的一个或多个字段的值的对应关系。而不需要发送多个以下方式的封装控制策略:报文的源物理服务器的IP地址和目的物理服务器的IP地址的组合,与NVO3报文的外层封装中所采用的COS、TOS和TTL字段中的一个或多个字段的值的对应关系。从而可以减少控制器下发的封装控制策略的数目。如为一个多端口的柜顶交换机下的多个物理服务器分配连续的IP地址,同一机架群中的各TOR交换机下的物理服务器分配的IP地址对应的子网掩码连续,即各机架群内的物理服务器地址分布在同一个子网。譬如,假设一个TOR交换机下有48台物理服务器,一个机架群下包含8个TOR,可以规划该机架群的物理服务器的子网掩码为10.1.2.0/23,第一个TOR下的物理服务器的子网掩码为10.1.2.0/26,第二个TOR下的物理服务器的子网掩码为10.1.2.64/26,以此类推。连续的物理服务器地址的规划可以使得物理网络的路由相对简单,同时由于下行路径的多路径hash因子中应用了物理服务器地址,这样的规则应用可以使控制器的策略生成相对简单高效。
确定模块32,用于根据所述封装控制策略确定源物理服务器上的NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值;
第三发送模块33,用于向网络设备发送NVO3报文,以由网络设备根据接收的NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值,和控制器配置的hash因子进行ECMP选路。
在本发明实施例五中,物理服务器还可以包括:
第二接收模块,用于接收控制器发送给物理服务器中的vSw或者hypervisor的初始报文封装规则;和
第三接受配置模块,用于接受控制器对物理服务器中的vSw或者hypervisor初始报文封装规则的配置。
初始报文封装规则是根据NVO3的目标物理服务器的IP地址来确定NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值。例如,将NVO3的目标物理服务器的IP地址的低n位的取值作为COS字段的值,将预设值加上目标物理服务器的IP地址的低m位的取值作为TOS或TTL字段的值。其中n和m的取值和系统中可选的ECMP的数目相关。
由于物理服务器根据初始报文封装规则对NVO3报文进行封装后发送给网络设备,网络设备在ECMP选路时使用NVO3报文中的COS、TOS和TTL中的一个或多个来构建hash因子进行hash选路,仍然可能会造成某些链路拥塞,而另外的空闲链路无法利用的情况。又由于网络设备使用NVO3报文中的COS、TOS和TTL字段中的一个或多个字段的值来进行hash计算,得到ECMP多路径中的唯一转发路径,因此控制器通过定义不同流的NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值去控制不同流从源物理服务器上的hypervisor或者vSw到目的物理服务器地址经过的转发路径。所述流是指两VM间互访的报文流或者是在两物理服务器间转发的报文流。
本发明实施例五中,由于物理服务器接收封装控制策略,所述封装控制策略是由控制器确定网络设备之间的互连链路故障或控制器根据所述控制器收集的网络设备的流量和物理服务器中的超级管理程序Hypervisor或者虚拟交换机vSw的流量确定发生拥塞时,向物理服务器发送的封装控制策略;根据所述封装控制策略确定源物理服务器上的NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值;向网络设备发送NVO3报文,以由网络设备根据接收的NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值,和控制器配置的hash因子进行ECMP选路。从而实现从源物理服务器上的hypervisor或者vSw到目的物理服务器地址经过的转发路径上的全局路径的流量均衡。对比传统的ECMP使用5元组来进行hash选路的方式,本方案的选路方式实现和部署比较简单,在控制器的统一协调下可以通过精细化的流量调度,实现物理网络的最佳利用率。本发明实施例五是基于流量统计信息来进行统一的链路负载均衡,能够充分的利用链路带宽。同时调整灵活,只需要由控制器通过封装控制策略通知和控制物理服务器上的hypervisor或者vSW修改特定报文的封装格式就可以了。
实施例六:
请参阅图8,本发明实施例六提供的控制器包括:处理器41,存储器42和网络接口43。其中,
处理器41,用于执行程序。
在本发明实施例六中,程序可以包括程序代码,所述程序代码包括计算机操作指令。
处理器41可能是中央处理器CPU,或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器42,用于存储程序。
存储器42可能包含随机存取存储器(英文:Random-access memory,缩写:RAM),也可能还包括非易失性存储器(英文:Non-volatile memory,缩写:NVRAM)。
网络接口43,用于确定网络设备之间的互连链路故障或根据收集的网络设备的流量和物理服务器中的Hypervisor或者vSw的流量确定发生拥塞时,向物理服务器中的hypervisor或者vsw发送封装控制策略,以由物理服务器中的hypervisor或者vsw根据所述封装控制策略确定源物理服务器上的NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值,再由网络设备根据接收的NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值,和控制器配置的hash因子进行ECMP选路。
在本发明实施例六中,网络接口是网卡。
当控制器运行时,所述处理器41用于执行存储器42中存储的程序使得所述控制器执行如下的方法:
处理器41配置COS、TOS和TTL中的一个或多个作为数据中心网络中的网络设备进行ECMP选路的hash因子;
处理器41实时收集网络设备的流量和物理服务器中的Hypervisor或者vSw的流量;根据流量变化情况确定发生拥塞或确定网络设备之间的互连链路故障时,控制网络接口43向物理服务器中的hypervisor或者vsw发送封装控制策略。
在本发明实施例六中,网络接口43还可以用于发送初始报文封装规则给物理服务器中的vSw或者hypervisor。
当控制器运行时,所述处理器41用于执行存储器42中存储的程序使得所述控制器还可以执行如下的方法:
处理器41配置数据中心网络中的网络设备的上下行路径中的路由;
处理器41对物理服务器中的vSw或者hypervisor初始报文封装规则进行配置。本发明实施例六中,控制器实时收集网络设备的流量和物理服务器中的Hypervisor或者vSw的流量,控制器确定网络设备之间的互连链路故障或根据收集的网络设备的流量和物理服务器中的Hypervisor或者vSw的流量确定发生拥塞时,向物理服务器中的hypervisor或者vsw发送封装控制策略,以确定源物理服务器上的NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值,同时结合给网络设备配置的hash因子进行ECMP选路,实现从源物理服务器上的hypervisor或者vSw到目的物理服务器地址经过的转发路径上的全局路径的流量均衡。对比传统的ECMP使用5元组来进行hash选路的方式,本方案的选路方式实现和部署比较简单,在控制器的统一协调下可以通过精细化的流量调度,实现物理网络的最佳利用率。本发明实施例六是基于流量统计信息来进行统一的链路负载均衡,能够充分的利用链路带宽。同时调整灵活,只需要由控制器通过封装控制策略通知和控制物理服务器上的hypervisor或者vSW修改特定报文的封装格式就可以了。
实施例七:
请参阅图9,本发明实施例七提供的网络设备包括:处理器51,存储器52和网络接口53。其中,
处理器51,用于执行程序。
在本发明实施例七中,程序可以包括程序代码,所述程序代码包括计算机操作指令。
处理器51可能是中央处理器CPU,或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器52,用于存储程序。
存储器52可能包含随机存取存储器,也可能还包括非易失性存储器。
网络接口53,用于接收物理服务器发送的NVO3报文。
在本发明实施例七中,网络接口是网卡。
当控制器运行时,所述处理器51用于执行存储器52中存储的程序使得所述控制器执行如下的方法:
处理器51接受控制器配置COS、TOS和TTL中的一个或多个作为网络设备进行ECMP选路的hash因子;
处理器51根据接收的NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值,和控制器配置的hash因子进行ECMP选路,所述NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值是根据控制器确定网络设备之间的互连链路故障或控制器根据所述控制器收集的网络设备的流量和物理服务器中的超级管理程序Hypervisor或者虚拟交换机vSw的流量确定发生拥塞时,发送给物理服务器的封装控制策略确定的。
当控制器运行时,所述处理器51用于执行存储器52中存储的程序使得所述控制器还可以执行如下的方法:
处理器51接受控制器配置其上下行路径中的路由。
本发明实施例七中,网络设备接受控制器配置COS、TOS和TTL中的一个或多个作为网络设备进行ECMP选路的hash因子,接收到物理服务器发送的NVO3报文时,根据接收的NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值,和控制器配置的hash因子进行ECMP选路。从而实现从源物理服务器上的hypervisor或者vSw到目的物理服务器地址经过的转发路径上的全局路径的流量均衡。对比传统的ECMP使用5元组来进行hash选路的方式,本方案的选路方式实现和部署比较简单,在控制器的统一协调下可以通过精细化的流量调度,实现物理网络的最佳利用率。本发明实施例七是基于流量统计信息来进行统一的链路负载均衡,能够充分的利用链路带宽。同时调整灵活,只需要由控制器通过封装控制策略通知和控制物理服务器上的hypervisor或者vSW修改特定报文的封装格式就可以了。
实施例八:
请参阅图10,本发明实施例八提供的物理服务器包括:处理器61,存储器62和网络接口63。其中,
处理器61,用于执行程序。
在本发明实施例八中,程序可以包括程序代码,所述程序代码包括计算机操作指令。
处理器61可能是中央处理器CPU,或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器62,用于存储程序。
存储器62可能包含随机存取存储器,也可能还包括非易失性存储器。
网络接口63,用于接收封装控制策略,所述封装控制策略是由控制器确定网络设备之间的互连链路故障或控制器根据所述控制器收集的网络设备的流量和物理服务器中的超级管理程序Hypervisor或者虚拟交换机vSw的流量确定发生拥塞时,向物理服务器发送的封装控制策略;和用于向网络设备发送NVO3报文,以由网络设备根据接收的NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值,和控制器配置的hash因子进行ECMP选路。
在本发明实施例八中,网络接口是网卡。
当控制器运行时,所述处理器61用于执行存储器62中存储的程序使得所述控制器执行如下的方法:
处理器61根据所述封装控制策略确定源物理服务器上的NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值。
在本发明实施例八中,网络接口63还可以用于接收控制器发送给物理服务器中的vSw或者hypervisor的初始报文封装规则。
当控制器运行时,所述处理器61用于执行存储器62中存储的程序使得所述控制器还可以执行如下的方法:
处理器61接受控制器对物理服务器中的vSw或者hypervisor初始报文封装规则的配置。
本发明实施例八中,由于物理服务器接收封装控制策略,所述封装控制策略是由控制器确定网络设备之间的互连链路故障或控制器根据所述控制器收集的网络设备的流量和物理服务器中的超级管理程序Hypervisor或者虚拟交换机vSw的流量确定发生拥塞时,向物理服务器发送的封装控制策略;根据所述封装控制策略确定源物理服务器上的NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值;向网络设备发送NVO3报文,以由网络设备根据接收的NVO3报文的外层封装中的COS、TOS和TTL字段中的一个或多个字段的值,和控制器配置的hash因子进行ECMP选路。从而实现从源物理服务器上的hypervisor或者vSw到目的物理服务器地址经过的转发路径上的全局路径的流量均衡。对比传统的ECMP使用5元组来进行hash选路的方式,本方案的选路方式实现和部署比较简单,在控制器的统一协调下可以通过精细化的流量调度,实现物理网络的最佳利用率。本发明实施例八是基于流量统计信息来进行统一的链路负载均衡,能够充分的利用链路带宽。同时调整灵活,只需要由控制器通过封装控制策略通知和控制物理服务器上的hypervisor或者vSW修改特定报文的封装格式就可以了。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如ROM/RAM、磁盘、光盘等。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。