使用具有非受限字符的匹配模式操作负载均衡交换机和控制器的方法_2

文档序号:9925585阅读:来源:国知局
相关联的数据分组传送给服务器的指示、服务器的标识和用于处理数据分组的默认流条目的标识。处理器还可配置成将数据流的条目添加到流服务器映射表,以使得数据流的条目包括数据流标识、服务器的标识和默认流条目的匹配模式。
【附图说明】
[0035]为了进一步理解本公开而包含并且并入在本申请书中并构成本申请书的一部分的附图示出发明概念的某些非限制实施例。图中:
图1是示出利用包括交换机和控制器的负载均衡系统常规处理数据流的第一和后续数据分组的框图;
图2是根据一些实施例包括交换机、控制器和多个服务器的负载均衡系统的框图;
图3A是示出根据一些实施例图2的交换机的流表的图;
图3B是示出根据一些实施例图2的控制器的流服务器映射表的图;
图4是示出根据一些实施例包括默认流条目的交换机的图3A的流表的图;
图5是示出根据一些实施例包括两个数据流的图3B的流服务器映射表的图;
图6是示出根据一些实施例包括默认和专用流条目的子表的图3A的流表的图;
图7A、7C、7E和9是示出根据一些实施例支持流条目的瞬态模式(transient mode)操作的图6的流表的修改的图;
图7B和7D是示出根据一些实施例支持流条目的瞬态模式操作的图5的流服务器映射表的修改的图;
图8和10是示出根据一些实施例支持流条目的瞬态模式操作的控制器操作的表;
图11是示出根据一些实施例的控制器瞬态模式操作的流程图;
图12是示出根据一些实施例的交换机操作的流程图;以及图13A和13B是示出根据一些实施例的控制器操作的流程图。
【具体实施方式】
[0036]现在,将在下文中参考附图更全面地描述本发明概念的实施例,附图中示出发明概念的实施例的示例。但是,发明概念可以用许多不同的形式实施,并且不应理解为局限于本文中所阐述的实施例。还应注意,这些实施例不是互相排斥的。可以默许地假设来自一个实施例的组件可存在于/用于一个或多个其它实施例。根据本文中所公开的实施例,可将刀片式服务器(blade)解释/实现为服务器,和/或可将服务器解释/实现为刀片式服务器。
[0037]随着软件定义网络(SDN)的出现,正在创建利用这种更新方法来设计网络的应用。
[0038]在SDN范例中,控制平面与数据平面分离。控制平面模块/元件称为控制器,而数据平面模块/元件称为交换机。控制器和交换机通常可设置在独立机器中/作为独立机器(例如,彼此远离的机器/装置)提供。因此,控制器和交换机之间的通信可具有不可忽视的等待时间,这不同于其中即使控制平面和数据平面独立、但仍共置在一起的之前的体系结构方法。
[0039]在利用SDN范例的简单服务器负载均衡应用中,控制器在交换机处的流表中安装将各种数据流与相应服务器相关联的条目,并且通过设计将控制器从交换机分离出来,控制器通常在远离交换机的不同机器/装置上。但是,这种设计可造成以下问题:
1)如果对于每个新流,控制器选择应当处理新流的服务器,那么会在流设置期间对选择的服务器引入等待时间,因为控制器可以是独立于交换机的物理实体;以及
2)如果控制器不涉及选择应当处理新流的服务器,那么交换机必须做出这些决定,但是交换机不能在服务器中提供足够粒度的动态负载分配。
[0040]交换机可能不能提供足够粒度的动态负载均衡是因为,交换机可能具有有限的存储,并且交换机可能因此不能保存所有粒度流的状态。需要流状态以便确保动态负载分配不会扰乱现有流。
[0041]此外,在基于OpenFlow的体系结构中,可通过控制器(而不是通过交换机)安装流条目。在这种情况下,交换机可能只能在服务器中进行静态负载分配。
[0042]流的动态负载分配可以是负载均衡器的整体功能。这种再分配可能因变化的外部状况(例如,服务器的增加或移除)而成为必需。在没有控制器的情况下,交换机只可执行基本级别的静态负载分配。例如,在以下文献中论述了负载分配:2013年6月17日申请的美国申请号13/919375;2013年6月17日申请的美国申请号13/919411;以及2013年6月17日申请的美国申请号13/919388。以上引用的所有申请的公开内容由此以引用的方式全文并入到本文。
[0043]因此,如果需要将流动态分配给服务器,那么可能会在流设置期间对选择的服务器引入等待时间。如果要在不引入等待时间的情况下对选择的服务器进行流设置,那么只可执行静态/基本负载均衡。
[0044]负载均衡器通常用于支持服务器负载共享。为了共享负载,负载均衡器将传入的新流引导到负载均衡系统中的服务器之一。
[0045]可利用诸如循环选择、随机选择、加权随机选择等的各种各样的方法来为每个新流选择服务器。
[0046]—旦为新数据流选择了服务器,便将流发送给选择的服务器,以便将数据流的所有后续数据分组发送给选择的相同服务器。为了规定将每个数据流的所有数据分组发送给该数据流的相应服务器,负载均衡器可保存存储在称为流表的表中的数据流-服务器映射。
[0047]因此,负载均衡器功能性可分成两个模块:(I)将每个新传入的流指派给相应服务器的控制器;以及(2)保存具有流-服务器映射的流表的交换机。
[0048]在Openf low协议的情况下,可利用Openf low交换机来构建负载均衡器。Uppal,Hardeep 等人的名称为 “OpenFlow Based Load Balancing”(http://people.cs.umass.edu/?hardeep/cse561_openf1w_project_report.pdf ,2013^6^27 日再版)的参考文献中描述了一个这样的解决方案,该参考文献的公开内容由此以引用的方式全文并入到本文。
[0049]图1中示出处理新流的一个示例,其中实线指示新数据流的第一数据分组的处理,而虚线指示数据流的后续数据分组的处理。如图1所示:(I)当在0?6社10?交换机11处接收到新传入流的第一数据分组时,(2)将新传入数据流的第一数据分组从交换机发送到openflow控制器15,(3) <^6]^10¥控制器15作为(^61^10¥交换机11的流表中的流条目安装数据流细节(包括指派的服务器),以及(4)将新流的第一数据分组发送给如流条目中所述的(通过控制器15)指派给数据流的服务器(服务器-1)。如虚线所指示:(5)当在交换机11处接收到数据流的后续数据分组时,(6)将后续数据分组发送给利用流表(具有安装好的流条目)指派的服务器(服务器-1),而无需控制器15的介入。换句话说,后续数据分组的报头信息(例如,寻址信息)与流条目的匹配模式匹配,从而允许交换机11标识属于流条目的数据流的数据分组并利用相关联的流条目处理这些数据分组。
[0050]利用图1的负载均衡器设计,可能会增加流设置(到服务器)的等待时间,这是因为将数据流的第一数据分组发送给了 OpenFlow控制器15。由于openflow控制器15和openflow交换机11可在独立/远程机器/装置上实现/利用独立/远程机器/装置实现,所以操作(2)处的将第一分组发送给openflow控制器15以及操作(3)处的安装数据流可能会在流设置中引入显著的等待时间。
[0051]根据图2中示出的发明概念的一些实施例,负载均衡系统200可包括交换机211、控制器231和多个服务器251-1、251-2、251-3、…、251η。交换机211可包括耦合到控制器接口221、服务器接口 219、网络接口 215和存储器217的交换机处理器213。网络接口 215可提供通过一个或多个网络(例如,互联网、局域网、广域网等中的一个或多个网络)到客户端装置的通信接口。控制器接口 221可提供到控制器231的通信接口(例如,利用OpenFlow信道),并且服务器接口 219可提供到负载均衡系统200的服务器251的通信接口。控制器231可包括耦合到交换机接口 237和存储器235的控制器处理器233。交换机接口 237可提供与交换机211的通信接口(例如,利用OpenFlow信道)。如虚线所指示,交换机211可驻存在负载均衡系统200的数据平面中,而控制器231可驻存在负载均衡系统200的控制平面中。此外,交换机211和控制器231可设置在物理上彼此远离的独立机器/装置上(例如,设置在不同电路板上、设置在机箱的不同机架上、设置在不同外壳中、设置在不同房间中、设置在不同建筑物中等)。
[0052]如下所述,可利用初始化模式操作、稳态模式操作和瞬态模式操作来减少等待时间。对于初始化模式操作,控制器231在存储在交换机211的存储器217中的流表217a中设置默认流条目。对于稳态模式操作,交换机211在没有控制器231的介入的情况下将数据分组发送给服务器251,就像利用流表217a的流条目的正常操作模式一样。对于瞬态模式操作,交换机211只在控制器231的介入之后才将一些数据分组发送给服务器251。当在服务器251中重新分配负载时,可使用瞬态模式操作。
[0053]对于初始化模式操作,控制器231在交换机211的流表217a中安装有限数量的预配置或默认流条目。这些默认/预配置流条目可具有以下特性:对于任何数据流,一个并且只有一个默认/预配置流条目将匹配;并且每个默认/预配置流条目只与一个服务器251相关联。另外,每个默认/预配置流条目可包括版本字段。当将数据分组发送给控制器231时,也可与数据分组一起发送版本字段(或指示数据分组的处理的类似信息)。根据一些实施例,版本字段可包括关于流条目动作的信息(嵌入式或经由间接),包括服务器身份和/或数据分组将发送到的控制器身份。换句话说,可与数据分组一起将版本字段或有关信息发送给控制器231,以便指示是将数据分组发送给控制器231以及相关联的服务器还是将数据分组只发送给控制器。见图12和13A的操作1201、1203、1301和1303。
[0054]在初始化模式操作期间安装的流条目可称为默认或默认/预指配流条目。引导到特定服务器251的数据流的比例可取决于指向特定服务器的默认/预指配流条目的数量。
[0055]最初,对于默认/预指配流条目,(a)每个默认/预指配流条目的动作是将匹配数据分组发送给相关联的服务器251和控制器231,以及(b)版本字段(或有关信息)可包括关于相关联的服务器251和控制器231的信息(例如,相关联的服务器251的标识和控制器231的标识)。根据一些实施例,传送给控制器231的版本字段和/或版本信息可只包括指定是否已经将数据分组传送给了服务器的信息,并且如果是,那么可包括服务器的标识。控制器将知道它已经接收了分组的信息。
[0056]对于稳态模式操作,将与相应的默认/预指配流条目匹配的数据分组发送给相关联的服务器(除非数据分组与更特定的更高优先级流条目(又称为专用流条目)匹配)。根据一些实施例,对于稳态模式操作,还将只与默认/预指配流条目匹配的数据分组发送给控制器231,以便允许控制器231跟踪由交换机211遇到/处理的数据流,而不会在将分组发送给相关联的服务器251时招致显著的等待时间开销。将数据分组发送给控制器231并没有计时/延迟要求,并且一旦将每个数据分组发送给了相关联的服务器,便可在将该相同数据分组发送给控制器231时允许任意延迟。见图12的操作1211和1215。
[0057]尽管对于稳态模式操作,交换机211可在没有控制器231的介入的情况下将数据业务发送给服务器251,但是交换机211也可将数据业务复制给控制器231。这种数据分组复制可导致同样地将通过交换机211处理的所有业务发送给控制器231。为了减少这种业务,控制器231可在交换机211流表217a中安装一些额外的专用流条目(同时保存基于流服务器映射表的现有数据流-服务器映射)。
[0058]根据发明概念的一些实施例,对于稳态模式操作,控制器231可在交换机211处的流表217a中安装相对少量的额外专用流条目,以便减少给控制器231的数据业务(专用流条目具有高于默认/预配置流条目的优先级)。不将与这些额外专用流条目匹配的传入数据分组复制(传送)给控制器231,从而允许控制器231在安装在交换机211处的流表217a中的流条目的数量和发送给控制器231的数据业务的量之间做一个权衡。需要通过控制器231安装的这些额外专用流条目的特定数量/比例不是强制性的。见图12和13A的操作1217、1219、1315和1317。
[0059]根据一些实施例,可响应于控制器231检测到相对大量的数据流(例如,巨量数据流)而安装额外的专用流条目。换句话说,一旦检测到特定数据流超过阈值数据量,那么控制器231便可在流表217a中安装对于该特定数据流特定的额外专用流条目,并且额外专用流条目可规定,将特定数据流的数据分组转发给相关联的服务器251,但不转发给控制器231。一旦设置了数据流,那么在交换机211中安装额外专用流条目便没有计时/延迟要求,从而允许在交换机211处的流表217a中设置这些额外专用流条目时可以有任意延迟。
[0060]对于瞬态模式操作,控制器231可在不影响现有流的情况下修改与默认/预指配流条目相关联的服务器,从而允许在服务器中动态地重新分配负载。
[0061]对于瞬态模式操作,为了将默认/预指配条目修改成指向新服务器,可按顺序进行以下操作:
1.控制器231可将流表217a中的默认/预指配条目的动作修改成将业务只发送给控制器231(在所示流条目中标为“C")而不是将它直接发送给相关联的服务器251。控制器231还可将默认/预指配流条目的版本更新为“只控制器”(在所示流条目中标为“C”)。对于到达控制器231的版本为“只控制器”或“C”的每个数据分组,控制器231在过渡中将数据分组发送给与默认/预配置流条目相关联的新或旧服务器。该操作可规定,控制器231(保存所有数据流的流服务器映射表235a)在流条目处于过渡中时做出决定(将数据分组发送给与默认/预配置流条目相关联的新还是旧服务器),在此之后将新数据流发送给与默认/预指配流条目相关联的新服务器。确保(切换到新服务器的)决策点和流状态信息共置在一起并受单个实体管理(B卩,受控制器231管理)可使得网络元件之间的同步化不那么复杂。见图13B的操作1349 ο
[0062]2.控制器231对于与默认/预指配流条目的之前版本匹配的所有现有流在交换机流表217a中安装额外专用流条目。可基于由控制器231在稳态模式操作期间生成的控制器存储器235的流服务器映射表235a标识默认/预指配流条目的现有数据流。这些额外专用流条目可规定,现有数据流不会因修改默认/预指配流条目而受影响。见图13B的操作1351。
[0063]3.负载均衡系统200可继续瞬态模式操作一定时间(例如,T秒)。‘T’秒的宽限时间可规定,为在交换机211处(基于与默认/预指配流条目的之前版本相关联的服务器)做出服务器决定的所有流安装额外专用流条目。见图13B的操作1353-1371。
[0064]4.在‘T’秒过去之后,控制器231可将流表217a中的默认/预指配流条目修改成指向新服务器并将数据业务镜射/复制到控制器231(例如,修正动作以便指示传送到控制器231和相关联的服务器,如动作“S&C"所指示)。控制器231还将默认/预指配流条目的版本字段更新成包括关于控制器231和新服务器的信息(例如,如“S&C"指定的控制器231和新服务器251的标识)。见图13B的操作1353和1375。
[0065]5.一旦交换机211指示已经将默认/预指配流条目修改成指向新服务器,瞬态模式操作便可结束,并且负载均衡系统200的操作可返回到稳态模式操作。
[0066]如上文关于图2所论述,交换机211可在交换机存储器217中保存流表217a,并且控制器231可在控制器存储器235中保存流服务器映射表235a。下文将关于图3A和3B更详细地论述流表217a和流服务器映射表235a。
[0067]如上文关于图2所论述,交换机211将流表217a保存在存储器217中。如图3A所示,流表217a包括标为FE-1至FE-m的多个流条目。对于每个流条目FE,流表217a可包括匹配模式MP、动作A、版本V和优先级P。
[0068
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1