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

文档序号:9925585阅读:来源:国知局
]流条目FE的匹配模式MP提供各种协议报头元素的值,例如IP(互联网协议)源地址、IP目的地地址、TCP(传输控制协议)源端口号、TCP目的地端口号等。匹配模式还可包括与任何值匹配的一个或多个非受限字符(又称为通配符字符)。匹配模式用于标识具有与匹配模式匹配的报头信息(例如,IP源/目的地地址、TCP源/目的地端口号等)的分组。在匹配模式中使用通配符字符的情况下,对于匹配可只考虑分组报头信息的一部分。如下文将更详细地论述,流表217a的流条目可以是在它的匹配模式中包括至少一个通配符字符的默认/预配置流条目(以使得默认/预配置流条目可与多于一个数据流的数据分组匹配),或是包括在它的匹配模式中不具有任何通配符字符的匹配模式的专用流条目(以使得专用流条目可只与一个数据流的数据分组匹配)。
[0069]流条目的动作A可指示如下之一:(I)将匹配数据分组发送给标识的服务器251和控制器231(由“服务器和控制器”或“S&C”指示);(2)将匹配数据分组只发送给标识的服务器(由“服务器”或“S”指示);或(3)将匹配数据分组只发送给控制器231 (由“控制器”或“C"指示)。
[0070]流条目的版本V可通过控制器231来设置。对于发送给控制器231(如动作A所指示)的所有数据分组,还与数据分组一起发送匹配的流条目的版本V(或有关信息)。根据一些实施例,流条目FE的版本V字段包括关于数据分组将发送到的服务器251和/或控制器231的身份的信息(嵌入式或经由间接)。换句话说,版本V可指示将与流条目匹配的数据分组:(I)发送给相关联的服务器和控制器231(由“服务器和控制器”或“S&C”指示);(2)只发送给控制器231(由“控制器”或“C”指示);或(3)只发送给相关联的服务器(由“服务器”或“S”指示)。如果版本信息指示将数据发送给服务器,那么进一步信息可标识服务器(例如,通过提供服务器ID)。当数据分组到达控制器231时,版本信息(例如,从版本字段、动作字段、服务器ID字段等中的一个或多个字段推导出)规定,交换机211对数据分组做出的(关于服务器选择的)决定对于控制器231已知。这允许交换机211和控制器231—起工作,而在控制器231和交换机211之间没有等待时间要求。
[0071]流条目的优先级P可指示在数据分组的报头信息与多于一个流条目FE的匹配模式MP匹配(例如,一个数据分组与相对较低优先级的默认/预配置流条目和相对较高优先级的专用流条目的匹配模式匹配)的情况下流条目的优先级等级。根据一些实施例,只可使用两个优先级等级。例如,默认/预指配流条目(它们可以是对于多个数据流通用的)可具有低优先级P,而稍后增加的专用流条目(它们可以是只对于一个数据流特定的)可具有相对较高的优先级。因此,只有在没有为包括数据分组的数据流增加较高优先级的专用流条目时才可利用低优先级的默认/预指配流条目处理数据分组。
[0072]尽管将优先级示为是每个流条目的字段,但是优先级也可通过其它方式来指定。例如,流表217a可包括高和低优先级子表,其中先将每个数据分组的分组报头信息与高优先级子表中的专用流条目的匹配模式进行比较,然后再与低优先级子表中的默认/预配置流条目的匹配模式进行比较。如果从高优先级子表中发现数据分组的匹配,那么利用匹配的高优先级专用流条目来处理数据分组,并且可以省略与低优先级默认/预配置流条目的匹配模式的比较。
[0073]交换机处理器213在网络上通过网络接口215从客户端装置接收传入数据分组的业务,并且交换机处理器213将传入数据分组的报头信息与存储在存储器217中的流表217a中的流条目FE的匹配模式MP进行匹配。如果多于一个流条目(例如,高优先级的专用流条目和低优先级的默认/预配置流条目)的匹配模式MP与数据分组的报头信息匹配,那么根据具有较高优先级的匹配的专用流条目(对于数据分组所属的数据流特定)处理数据分组。一旦(基于匹配模式和/或优先级)为特定数据分组标识了流条目,便根据该流条目FE的动作A处理数据分组。取决于流条目的动作,可以将数据分组:(I)利用交换机处理器213通过服务器接口 219发送给标识的服务器并通过控制器接口 221发送给控制器231(例如,如果流条目是稳态模式操作中的默认/预配置流条目);(2)利用交换机处理器213只通过服务器接口219发送给标识的服务器(例如,如果流条目是专用流条目);或(3)利用交换机处理器213只通过控制器接口 221发送给控制器231(如果流条目是瞬态模式操作中的默认/预配置流条目)。
[0074]控制器处理器233通过利用交换机接口237将安装流条目的指令(例如,流条目安装指令)传送给交换机211来在交换机211中安装流条目。交换机处理器213通过控制器接口221接收这些指令,并且响应于来自控制器231的这些指令,交换机处理器213在存储器217的流表217a中安装流条目。由于交换机211和控制器231是独立的(例如,在物理上远离),所以预期在控制器231向交换机211发出流条目安装指令的时间和在交换机211处实际安装流条目(S卩,保存在存储器217的流表217a中)的时间之间可能会有一定的时间滞后。类似地,预期在交换机211将数据分组发送给控制器231的时间和数据分组到达控制器231的时间之间可能会有一定的时间滞后。
[0075]流服务器映射表235a保存在控制器231处的存储器235中,并且图3B中示出流服务器映射表235a的结构。流服务器映射表235a提供交换机211所遇到的各种数据流(由相应的数据流ID标识)和数据流的数据分组转发到的相关联的服务器(由相应的服务器ID标识)之间的映射。流服务器映射表235a还保存关于与数据流/分组匹配的流条目(例如,由流条目的匹配模式标识)和该流条目的版本V的信息。由于交换机211和控制器231是独立的(例如,彼此远离),所以在交换机211遇到的新数据流的启动和在控制器231处在流服务器映射表235a中表示新数据流之间可能会存在一定的时间滞后。由于每个流条目都应当具有唯一的匹配模式,所以可以利用它的匹配模式来标识每个流条目。
[0076]因此,交换机211的流表217a可提供定义由交换机211支持的数据流处理的流条目(包括默认/预配置流条目和专用流条目),并且可响应于从控制器231接收的流安装指令将每个流条目添加到流表217a中。如上所述,可在初始化模式操作期间安装并且在瞬态模式操作期间修改默认/预配置流条目,并且可在稳态模式操作和瞬态模式操作期间安装专用流条目。此外,控制器231的流服务器映射表可提供由交换机211处理的每个数据流的条目。
[0077]如上文所简短地论述,负载均衡系统200的操作可分解成三种模式:(I)初始化模式操作;(2)稳态模式操作;和(3)瞬态模式操作。
[0078]当负载均衡系统200开始操作时,可执行初始化模式操作。在系统初始化时,在交换机211的流表217a中没有任何流表条目,并且在控制器231的流-服务器映射表235a中也没有任何条目。在这种情况下,控制器231可在交换机211的流表217a中安装有限数量的默认/预指配流条目(又称为默认流条目)。这些默认/预指配流条目可具有以下特性:(a)对于任何数据流,一个并且只有一个默认/预指配流条目将匹配;(b)每个默认/预指配流条目只与一个服务器相关联(即,只映射到一个服务器);(C)与每个默认/预指配流条目相关联的初始动作A是将匹配数据分组发送给相关联的服务器(由流条目的服务器标识SID标识)和控制器231; (d)与每个默认/预指配流条目相关联的版本V最初指示传送给相关联的服务器(由流条目的服务器标识SID标识)和控制器231(与动作A—致);以及(e)将低优先级指派给每个默认/预指配流条目。
[0079]因此,在初始化模式操作期间,用有限数量的默认/预指配(S卩,默认)流条目填充流表217a。对于均匀数据业务分配,引导到服务器的数据流的比例取决于指向服务器(如每个流条目的服务器标识所指示)的默认/预指配流条目的数量。
[0080]默认/预指配流条目规定,将来到交换机211的任何/大多数数据分组引导到服务器251之一。取决于交换机211的能力,可利用以太网源报头、IP(互联网协议)源地址、IP目的地地址、TCP源端口号、TCP目的地端口号等来构造默认/预指配流条目。
[0081]举例来说,负载均衡系统可包括具有服务器标识SID-1(对于服务器-1251-1)、SID-2(对于服务器-2 251-2)、SID-3(对于服务器-3 251-3)和SID_4(对于服务器-4 251-4)的四个服务器(服务器-1、服务器_2、服务器-3和服务器-4),并且默认/预指配(或默认)流条目可基于IP源地址使用匹配模式。在该示例中,流表217a可包括如图4所示的默认/预指配流条目FE-1至FE-255,其中IP地址作为点分十进制格式的匹配模式提供,并且符号‘X’表示匹配模式的通配符或‘无所谓’。对于每个默认/预指配(或默认)流条目,优先级较低,并且动作和版本(“S&C")均指示传送给相关联的服务器(由流条目的服务器ID指示)和控制器 231。
[0082]在具有所示默认流条目的图4的示例中,将把在交换机211处从客户端装置接收的具有IP源地址10.10.10.1的数据分组(至少在最初)引导到服务器-1 251-1(具有服务器IDSID-1),将把在交换机211处接收的具有IP源地址10.10.10.2的数据分组(至少在最初)引导到服务器-2 251-2(具有服务器ID SID-2),依此类推。
[0083]在稳态模式操作期间,将与默认/预指配(或默认)流条目匹配(例如,基于流条目匹配模式和数据分组的IP源地址)的数据分组发送给由匹配流条目的服务器ID指示的服务器。根据一些实施例,按照指示传送给服务器和控制器231的默认/预指配流条目动作(S&C)将相同数据分组发送给控制器231和所指示的服务器。通过在与默认/预指配流条目匹配时将数据分组发送给控制器231和所指示的服务器,控制器231可生成/保存流服务器映射表235a,如上文关于图3B所论述,流服务器映射表235a列出交换机211所遇到的所有数据流并将每个数据流映射到相关联的服务器。
[0084]举例来说,客户端可利用IP源地址10.10.10.1生成数据流,以使得数据流的每个数据分组在它的报头信息中包含IP源地址10.10.10.1。当在交换机处理器213处通过网络接口 215接收到该数据流的第一数据分组时,处理器213从存储器217的流表217a中为具有IP源地址的匹配搜索流条目匹配模式。在该示例中,IP源地址10.10.10.1与如图4所示的流条目FE-1的匹配模式X.X.X.1匹配,并且流条目FE-1的动作A(服务器和控制器或“S&C”)指示,应当将数据分组发送给服务器_1(由流条目FE-1的服务器ID SID-1指示)和控制器231。因此,处理器213通过服务器接口 219将数据分组转发给服务器-1并通过控制器接口 221将数据分组转发给控制器231。另外,处理器213将指示将数据分组传送给控制器和服务器-1的流条目FE-1的版本(服务器和控制器或“S&C")或有关信息转发给控制器231。
[0085]一旦在控制器处理器233处通过交换机接口 237接收到数据流的该第一数据分组,处理器233便检查流服务器映射表235a以便确定之前是否已经创建了该数据流的条目。由于这是数据流的第一数据分组,所以没有创建任何条目,并且处理器233可在流服务器映射表23 5a中为新数据流创建条目。这个条目(到图3B的表中)可包括包含IP源地址1.10.10.1的数据流的数据流标识DFID、流条目的标识(例如,流条目匹配模式X.X.X.1)、版本/动作信息S&C和数据分组所传送到的服务器的标识SID-1。当在交换机211处接收到相同数据流的下一个数据分组并将它转发给控制器231时,处理器233将不需要在流服务器映射表235a中为该数据流生成另一个条目。
[0086]因此,将数据分组复制到控制器231允许控制器231利用流服务器映射表235a跟踪交换机211所遇到的数据流,而不会对将数据分组传送到服务器增加显著的等待时间。控制器231可基于数据分组和相关联的信息(例如,版本/动作信息和服务器ID)更新流服务器映射表235a。
[0087]举例来说,控制器231可在初始化模式操作期间在流表217a中安装图4的默认流条目。在网络接口215处从客户端接收第一数据分组之前,控制器231的流服务器映射表235a可能是空的,并且在流表217a中可能不存在任何专用流条目。
[0088]当在网络接口215处接收到具有流ID 10.10.10.1的第一数据流的第一数据分组时,流表217a中没有与10.10.10.1匹配的专用流条目,并且数据分组的唯一匹配是具有匹配模式X.X.X.1的流条目FE-1。基于流条目FE-1的动作S&C,处理器213通过控制器接口 221将数据分组传送到控制器231,并通过服务器接口 219将数据分组传送到对应于服务器IDSID-1的服务器251-1。
[0089]当将第一数据流的第一数据分组传送给控制器231时,交换机处理器213还传送指示将数据分组传送到服务器251-1和控制器的信息(例如,传送版本S&C和服务器ID SID-
1)。因此,控制器处理器233可接收(通过交换机接口 237)数据分组(或只是数据分组的数据流标识)、动作/版本信息和第一数据流的第一数据分组的服务器ID信息,并且控制器处理器233可在流服务器映射表235a中为新数据流创建如图5的数据流10.10.10.1所指示的条目(包括数据流ID、默认流条目匹配模式、服务器ID和版本信息)。一旦响应于该数据流的第一数据分组创建了数据流10.10.10.1的条目,控制器231便可接收该数据流的额外数据分组,而无需在流服务器映射表中为该数据流生成额外条目。
[0090]当在网络接口215处接收到具有流ID 10.10.10.2的第二数据流的第一数据分组时,流表217a中没有与10.10.10.2匹配的专用流条目,并且数据分组的唯一匹配是具有匹配模式X.X.X.2的流条目FE-2。基于流条目FE-2的动作S&C,处理器213通过控制器接口 221将数据分组传送到控制器231,并通过服务器接口 219将数据分组传送到对应于服务器IDSID-2的服务器251-2。
[0091]当将第二数据流的第一数据分组传送给控制器231时,交换机处理器213还传送指示将数据分组传送到服务器251-2和控制器的信息(例如,传送版本S&C和服务器ID SID-
2)。因此,控制器处理器233可接收(通过交换机接口 237)第二数据流的数据分组、动作信息和第二数据流的第一数据分组的服务器ID信息,并且控制器处理器233可在流服务器映射表235a中为第二数据流创建如图5的数据流10.10.10.2所指示的条目(包括数据流ID、默认流条目匹配模式、服务器ID和版本信息)。一旦响应于该数据流的第一数据分组创建了数据流10.10.10.2的条目,控制器231便可接收该数据流的额外数据分组,而无需在流服务器映射表中为该数据流生成额外条目。
[0092]但是,将分组复制到控制器231可导致将大量数据分组发送给控制器231。对于无连接协议(例如,UDP或用户数据报协议),这些数据分组中只有少数数据分组(S卩,指示新数据流的数据分组)对于控制器231有用。对于控制器231已经已知的数据流(S卩,流服务器映射表235a中已经列出的数据流)的后续数据分组可能不会增加显著价值。
[0093]根据一些实施例,控制器231可命令交换机211为一些现有数据流安装专用流条目。可创建专用流条目以便减少将数据分组传送到控制器231,并且这些专用流条目可具有高于默认/预指配(或默认)流条目的优先级。
[0094]与这些专用流条目相关联的动作A是指示将匹配数据分组只发送给与专用流条目相关联的服务器(例如,如专用流条目的服务器ID所指示)的“S”(或服务器)。不同于默认/预指配流条目,根据一些实施例,专用流条目不将匹配数据分组(或与此有关的信息)发送给控制器231。
[0095]可以为已经在控制器231的流服务器映射表235a中标识的现有数据流安装专用流条目。控制器231保存利用专用流条目处理的数据流的
当前第3页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1