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

文档序号:9925585阅读:来源:国知局
信息的粒度无需与在交换机211处为利用默认/预指配流条目处理的数据流保存的流信息的粒度相同。例如,默认/预指配流条目可基于源IP地址。但是,可基于TCP/IP分组的标准5元组(源IP地址、目的地IP地址、协议、TCP源端口和TCP目的地端口)利用数据流定义/标识来保存控制器231处的流服务器映射表235a0
[0096]因此,可以为(最初利用默认/预配置流条目处理的)现有数据流提供专用流条目,并将与专用流条目匹配的数据分组发送给与之前的相应数据流相同的相关联服务器。由于新的专用流条目保存了数据流-服务器映射,所以它不会扰乱现有数据流。
[0097]举例来说,参考如上所述的流表217a中的图4的默认流条目和图5的流服务器映射表条目,可在处理器213处(通过网络接口215)接收数据流10.10.10.1的后续数据分组,并根据默认流条目FE-1进行处理,以便将这些后续数据分组传送给控制器231和服务器251-1。在控制器231处接收到这些后续数据分组时,处理器233将不在流服务器映射表235a中为数据流10.10.10.1创建额外条目,因为数据流ID 10.10.10.1已经存在条目。但是,处理器233可跟踪由数据流10.10.10.1和利用默认流条目处理的任何其它数据流生成的业务量。
[0098]如果处理器233确定由数据流10.10.10.1生成的业务量超过阈值(例如,数据流10.10.10.1是巨量/大型流),那么控制器处理器233可在流表217a中为数据流10.10.10.1安装具有匹配模式10.10.10.1的高优先级专用流条目DFE-1,如图6所示。根据一些实施例,可利用不同的子表来区分高优先级专用流条目和低优先级默认流条目,和/或可利用高/低优先级字段来区分不同的流条目类型。根据图6的一些实施例,默认流条目的匹配模式可作为具有至少一个通配符字符的IP源地址提供,并且专用流条目的匹配模式可作为不具有任何通配符字符的IP源地址提供。
[0099]数据流10.10.10.1的默认流条目包括与之前用于处理数据流10.10.10.1的数据分组的默认流条目(FE-1)相同的服务器ID,以便在创建专用流条目之前和之后将数据分组传送给相同服务器(251-1)。但是,当利用专用流条目处理数据流10.10.10.1的数据分组时,不将数据分组和/或与此有关的信息传送给控制器231,因为动作“S”指示只传送给服务器。因此,交换机211和控制器231之间的业务可减少。
[0100]一旦为数据流10.10.10.1创建专用流条目DFE-1,数据分组便将与默认流条目FE-l(X.X.X.l)和专用流条目DFE-l(l0.l0.l0.l)的匹配模式匹配。但是,由于赋予专用流条目更高优先级,所以将根据专用流条目DFE-1处理该数据流的数据分组。与匹配模式X.X.X.1匹配但不与10.10.10.1匹配的其它数据流(例如,10.10.20.1、10.20.10.1等)可继续利用默认流条目FE-1进行处理。
[0101]对于瞬态模式操作,控制器231可修改与默认流条目相关联的服务器,而不影响利用修改后的默认流条目处理的之前已有的数据流,从而允许在服务器中动态地重新分配负载。但是,不可直接修改默认流条目,因为直接修改可能会扰乱一些现有数据流(即,在修改默认流条目之前,继续启动和利用默认流条目处理数据流)。换句话说,在不采取其它预防动作的情况下改变默认流条目的服务器ID可能会导致将之前已有的数据流的新数据分组重新路由给新服务器,从而扰乱数据流。
[0102]例如,最初可安装默认流条目FE-1,以便将匹配数据流的数据分组发送给具有标识SID-1的服务器251-1,如图4和6所示。控制器处理器233可稍后决定应当将该默认流条目变为将数据流发送给具有标识SID-2的服务器251-2。如果在不采取其它动作的情况下将默认流条目FE-1直接修改成将数据分组传送给服务器251-2(通过将相关联的服务器标识从SID-1变为SID-2),那么将把利用默认流条目FE-1处理的现有数据流的数据分组发送给服务器251-1(具有SID-1),然后发送给服务器251-2(具有SID-2),从而对数据流造成扰乱。
[0103]为了减少这种扰乱(例如,提供减少的命中(hit)和/或未命中(hitless)修改),控制器处理器233可在瞬态模式操作期间通过将默认流条目FE-1的动作和/或版本字段从S&C(传送到服务器和控制器231)变为如图7A所示的C(只传送给控制器231)而将默认流条目修改成只将业务发送给控制器231。因此,在默认流条目FE-1的瞬态模式操作期间,在交换机处理器213处(通过网络接口 215)接收具有与匹配模式X.X.X.1匹配(但不与专用流条目DFE-1的10.10.10.1匹配)的报头信息的数据分组,并通过控制器接口221将数据分组或其数据流ID传送给控制器231(但不传送给任何服务器)。
[0104]因此,控制器处理器233可在瞬态模式操作期间(通过交换机接口237)接收这些数据分组或其数据流ID以及指示只将分组(或与此有关的信息)传送给控制器而不将数据分组传送给服务器的信息(例如,版本“C")。如果该数据分组与流服务器映射表235a的条目匹配,那么数据分组属于在修改流条目FE-1之前启动的数据流,并且控制器处理器233启动将数据分组发送给与默认流条目相关联的之前的服务器(例如,具有ID SID-1的服务器251-1)。如果该数据分组不与流服务器映射表235a的条目匹配,那么数据分组属于在修改流条目FE-1之后启动的新数据流,并且控制器处理器233将数据分组发送给与默认流条目相关联的新服务器(例如,具有ID SID-2的服务器251-2)。在瞬态模式操作期间,控制器处理器233还为利用修改之前的流条目FE-1处理的所有数据流搜索流服务器映射表235a,并为所有这些数据流安装专用流条目(根据需要)。如果已经为之前利用瞬态默认流条目处理的数据流创建了专用流条目(例如,对于数据流10.10.10.1为DFE-1),那么控制器处理器233无需为该数据流安装/重新安装专用流条目。
[0105]在瞬态模式操作期间,控制器处理器233在交换机流表217a中安装对应于与所修改的默认流条目的之前版本匹配的所有之前已有的流的专用流条目。可利用在稳态模式操作期间生成的流服务器映射表235a标识这些现有数据流,以便规定现有数据流不会因为默认流条目的修改而受影响。对于每个流,无需安装独立的专用流条目。如果多个流可组合,那么可安装对应于这些数据流的一个专用流条目。
[0106]如图7B所示,流服务器映射表235a可包括在修改流条目FE-1之前最初利用流条目FE-1处理的两个数据流。如上所述,因为具有高业务等级,所以可能已经在之前为数据流10.10.10.1生成专用流条目,如图7B的流服务器映射表235a中该数据流的匹配模式和版本“S”所指示。在修改FE-1之前,可能已经启动与X.X.X.1匹配的另一个数据流10.10.20.1,并且可在瞬态模式操作期间将该数据流标识为需要专用流条目。因此,可在流表217a中安装第二专用流条目DFE-2,如图7C和7E所示。如图7D所示,可将流服务器映射表修改成反映对应于来自已经安装在交换机211处的数据流10.10.20.1的新专用流条目的数据流10.10.20.1的新匹配模式和版本信息。
[0107]在流条目FE-1仍处于瞬态模式操作中并且基于在流服务器映射表中最初标识的流安装新的专用流条目的情况下,瞬态流条目FE-1仍可标识具有标识SID-1的旧服务器,同时动作/版本信息指示将数据分组只传送给控制器231。
[0108]根据一些实施例,对于在安装专用流条目之后以及在更新默认流条目(例如,FE-1)之前的一定宽限时间(例如,T秒),负载均衡系统200可保持处于瞬态模式操作,其中将与默认流条目FE-1匹配的所有数据分组从交换机211只传送给控制器231,并且控制器231将这些数据分组传送给合适的服务器。宽限周期可规定,在交换机211中为在交换机处做出服务器选择决定的所有数据流(即,对于基于FE-1处的初始动作/版本S&C转发给控制器231和服务器SID-1的所有数据分组)安装专用流条目。
[0109]由于在控制器231和交换机211之间的通信中存在潜在显著的等待时间,所以存在从交换机211到控制器231的表示新流的一些动态数据分组,并且可能已经基于瞬态默认流条目的之前版本将这些流的数据分组发送给服务器251-1。宽限周期可允许控制器231为这些流安装专用流条目。
[0110]时间T可以是交换机211(基于具有原始版本/动作S&C的默认流条目)做出将数据分组发送给服务器的决定和流表217a中的后续专用流条目安装(基于来自控制器231的指令)之间的时间滞后。在宽限时间期间,控制器231可接收与具有“控制器”(或“C”)的版本/动作信息的瞬态默认流条目和具有版本/动作信息“SI和控制器”(或S&C)的其它瞬态默认流条目相关联的分组。在该宽限周期期间在控制器231处接收的数据分组的动作取决于版本信息以及数据流是否存在于流服务器映射表中。控制器231基于图8的表确定在宽限周期期间这些数据分组的动作。
[0111]如果在控制器231处接收到具有版本/动作信息“S&C”和旧服务器的标识(例如,月艮务器251-1的服务器标识SID-1)的瞬态默认流条目的数据分组,那么已经通过交换机211将数据分组传送给服务器251-1,并且控制231不将数据分组传送给任何服务器。如果数据流已经包含在流服务器匹配表235a中,那么不需要控制器采取任何进一步动作,因为已经将数据分组传送给服务器251-1并且已经安装了专用流条目。如果数据流没有包含在流服务器匹配表235a中,那么控制器231在流服务器映射表235a中安装数据流,并在流表217a中安装指向旧服务器的专用流条目。
[0112]如果在控制器231处接收到具有版本/动作信息“C”的瞬态默认流条目的数据分组,那么尚未将数据分组传送给服务器,并且控制器231应当将数据分组传送给合适的服务器。如果数据分组的数据流存在于流服务器映射表中,那么控制器231将数据分组传送给由流服务器映射表235a中的数据流条目的服务器ID所指示的服务器。如果数据分组的数据流没有存在于流服务器映射表235a中,那么控制器231在流服务器映射表235a中安装数据流条目,在流表217a中安装具有新服务器的标识(例如,服务器251-2的标识SID-2)的专用流条目,并将数据分组传送给新服务器。
[0113]因此,可执行图8的宽限周期操作,直到时间T到期,然后控制器231可将默认流条目FE-1修改成指向新服务器251-2(通过将FE -1的服务器ID变为SID-2)并提供如图9所示的稳态模式版本/动作指示S&C。
[0114]然后,在控制器231处(在宽限周期到期之后)接收的数据分组可使版本/动作信息为“控制器”以及“控制器和新服务器S2”。控制器231采取的动作将取决于版本/动作信息以及流是否已经存在于流服务器映射表235a中。此时(在宽限周期到期之后),可根据图10的表确定控制器对在控制231处接收的数据分组执行的动作。
[0115]如果在控制器231处接收到具有版本/动作信息“S&C”和新服务器的标识(例如,月艮务器251-2的服务器标识SID-2)的瞬态默认流条目的数据分组,那么交换机211已经将数据分组传送给服务器251-2,并且控制器231不将数据分组传送给任何服务器。如果数据流已经包含在流服务器匹配表235a中,那么控制器不需要采取任何进一步的动作,因为已经将数据分组传送给服务器251-2。如果数据流没有包含在流服务器匹配表235a中,那么控制器231在流服务器映射表235a中安装数据流。
[0116]如果在控制器231处接收到具有版本/动作信息“C”的瞬态默认流条目的数据分组,那么尚未将数据分组传送给服务器,并且控制器231应当将数据分组传送给合适的服务器。如果数据分组的数据流存在于流服务器映射表中,那么控制器231将数据分组传送给由流服务器映射表235a中的数据流条目的服务器ID所指示的服务器。如果数据分组的数据流没有存在于流服务器映射表235a中,那么控制器231在流服务器映射表235a中安装具有新服务器的相关联服务器标识(例如,SID-2)的数据流条目,并将数据分组传送给新服务器(例如,251-2)。
[0117]一旦交换机211指示已经将默认流条目修改成指向新服务器(例如,已经将服务器ID字段更新成新服务器ID SID-2),默认流条目的瞬态模式操作便可结束,并且负载均衡系统200可返回到稳态模式操作。
[0118]根据本文中所公开的一些实施例,控制器231可在交换机流表217a中安装所有流条目,以便提供集中性和/或确定性策略控制。当负载均衡系统200没有经历负载再分配时,可在交换机211处局部处理数据分组,以使得控制器231和交换机211之间的网络等待时间不会显著影响分组处理。此外,一些实施例可在负载均衡系统中提供服务器中的减少的命中和/或未命中负载再分配。对于负载再分配,系统收敛时间(S卩,控制器231涉及切换决定以及返回到将这些决定局部化到交换机211所花费的时间)可能是确定性的,并且与数据流持续时间无关。根据一些实施例,可利用与Openflow 1.3协议兼容的商用交换机来实现负载均衡系统。在负载再分配期间,可在交换机211中安装减少的/最少的流条目。
[0119]图11的流程图示出控制器231处对于稳态和瞬态模式操作的数据分组处理。当修改默认流条目时,现有服务器可称为SI,而新服务器可称为S2。在默认流条目的稳态模式操作中,不修改默认流条目。如果在框1101,与数据分组匹配的默认流条目处于稳态模式操作中(即,不修改默认流条目),那么在框1103,在版本/动作信息为S&C并且服务器ID指示已经将数据流传送给服务器的情况下,交换机211将数据分组转发给由默认流条目的服务器ID字段所指示的服务器,并且交换机211将数据分组转发给控制器231。控制器231利用数据分组和相关联的信息来更新流服务器映射表235a(如果需要的话)。
[0120]如果在框1101,与数据分组匹配的默认流条目处于瞬态模式操作中,并且在框1105,宽限周期时间‘T’尚未过去,那么在框1107,交换机211和/或控制器231利用上文关于图8的表论述的动作处理数据分组。如上所述,时间‘T’是交换机处理器213利用流表217a(基于默认流条目)做出将数据分组发送给服务器的决定和流表217a中的后续流条目安装(基于来自控制器231的命令)之间的时间滞后。如果框1101,与数据分组匹配的默认流条目处于瞬态模式操作中,并且在框1105,宽限周期时间‘T’已经过去,那么在框1109,交换机211和/或控制器231利用上文关于图10的表论述的动作处理数据分组。
[0121 ]根据一些实施例,交换机211可保存它所遇到/处理的数据流的表。然后,交换机211可只将以下分组复制到控制器231:
1.指示新流(在交换机211处通过高速缓存表中的未命中检测)的分组;
2.指示流结束的分组(对于在诸如TCP的分组中发送这种信息的协议);和/或
3.通过例如对于现有连接每个活动间隔传送一个分组(例如,每分钟一个分组)来指示连接活动的分组。
[0122]通过如上所述在交换机211处提供数据流的缓存,可进一步减少从交换机211传送到控制器231的数据分组的数量。
[0123]可通过控制器231配置流定义(S卩,将流标识为IP分组的标准5元组、3元组等)。需要这样做以使得流定义在交换机211和控制器231处相同。
[0124]另外,活动间隔也可通过控制器231进行配置。使用活动间隔可减少复制/传送给控制器231的分组的数量。活动间隔的使用和/或通过控制器231对其进行配置是可选的,但是活动间隔的使用可减少对于每个活动数据流发送给控制器231的分组的数量。
[0125]为了在控制器231处生成流服务器映射表235a,无需将完整/全部分组数据发送给控制器231。而是,可能只需将可从中导出流信息的数据分组的一部分发送给控制器231。
[0126]类似地,当经由交换机211从控制器231发送出数据分组时,在默认流条目的瞬态模式操作期间,在传送给
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1