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

文档序号:9925585阅读:来源:国知局
服务器之前,无需将全部数据分组发送给控制器231并且然后发送回给交换机211。而是,交换机211可以缓冲数据分组,并且只将指针/标识符发送给控制器231。然后,控制器231可使用指针/标识符来向交换机211指示将发送的数据分组以及应当将它发送到的服务器。因此,交换机211可配置成只将数据分组的一部分(而不是完整的数据分组)和标识符(它稍后可供控制器用于标识将发送出去的分组)发送给控制器231(以便生成流表和/或流服务器映射表信息XOpenflow协议的1.0版可支持这些操作。
[0127]控制器231可利用屏障消息来接收交换机211中的条目修改的指示。在条目修改的指示下,控制器231在发出修改默认流条目的命令之后发出屏障命令。交换机211安装默认流条目的修改,并传送屏障命令响应以便指示安装完成。屏障命令响应指示来自控制器231的所有之前命令均已执行。Openf low 1.0协议可支持屏障消息。
[0128]Openflow协议可允许控制器231在流表217a中安装流条目时传递不透明数据。如果通过交换机211将数据分组发送给控制器231,那么还可与数据分组一起传递不透明数据。这种不透明数据的使用可在利用cookie字段的Openf low 1.3协议中使用。
[0129]根据上文所论述的一些实施例,通过相同实体执行负载均衡和控制器231操作。根据一些其它实施例,可在略作修改的情况下通过独立实体执行负载均衡和控制器231操作。在这种实施例中,控制器231用于修改交换机211中的条目。所有其它逻辑处理可在负载均衡应用中进行。还将数据分组复制到负载均衡应用(而不是控制器231)。
[0130]为了易于理解,一些实施例可提供修改一个默认流条目的细节。但是,也可利用相同操作并行地修改多个默认条目。
[0131 ]根据一些实施例,只将专用流条目(与默认流条目相比)的数据分组发送给专用服务器。因此,对于面向连接的协议(例如,TCP),可能不将指示流结束的分组发送给控制器231。因此,控制器231不知道数据流已经终止。根据一些实施例,可通过以下方法解决这个问题:
I.利用超时。根据Openf low协议,控制器211可对在特定“超时”持续时间没有接收分组的数据流启用从交换机211发送到控制器231的通知。这可通过对流条目设置非活动超时来实现。
[0132]2.将分组复制到控制器211。在这种方法中,还将特定流条目的数据分组复制到控制器231,以使得控制器231可从数据分组检测流结束。
[0133]现在,将根据一些实施例关于图12的流程图论述交换机211的操作。可例如根据框1201和1203的操作执行初始化模式操作。响应于在框1201处通过控制器接口 221从控制器231接收的指令,交换机处理器213可提供包括多个默认流条目的流表(217a)。所述多个默认流条目中的每个默认流条目可包括相应的匹配模式,其中所述多个默认流条目的每个匹配模式不相同,并且所述多个默认流条目的每个匹配模式包括至少一个非受限字符(又称为通配符),以使得相应多个数据流标识满足每个匹配模式。此外,所述多个默认流条目中的每个默认流条目可包括将对具有满足相应匹配模式的数据流标识的数据分组执行的动作。上文关于图3A和图4论述了流服务器映射表的示例。
[0134]在流表217a中安装了默认流条目的情况下,初始化模式操作可在交换机211处结束。只要在框1204处没有安装专用流条目或修改默认流条目的指令,交换机处理器213便可在框1205-1215处继续进行稳态模式操作。当在框1205处通过网络接口 215从客户端装置接收到数据分组(包括数据流标识,例如IP源地址),处理器213便可首先在框1207处确定数据流ID是否与任何高优先级专用流条目匹配。如果在框1207处数据流标识不与任何专用流条目匹配,那么处理器213在框1211处从流表标识具有数据流ID满足的匹配模式的默认流条目。由于所有默认流条目具有不同匹配模式,所以每个数据流ID应当只满足一个匹配模式,并且因此应当只与一个默认流条目匹配。
[0135]当在框1211处标识数据流ID的默认流条目时,在框1215处根据默认流条目处理数据分组。如果动作指示传送给服务器和控制器(S&C),那么便可将数据分组传送给由服务器ID指示的服务器,并且可以将数据分组(或只是数据分组的数据流ID)与服务器ID、默认流条目的标识(例如,匹配模式)和动作的指示(已经或者正在将数据分组传送给服务器)一起传送给控制器231。如果动作指示只传送给控制器(C),那么便可将数据分组(或只是数据分组的数据流ID)与服务器ID、默认流条目的标识(例如,匹配模式)和动作的指示(在缺少进一步指令的情况下,不将数据分组传送给服务器)一起传送给控制器231。
[0136]如果处理器213在框1207处确定数据流ID与来自流表217a的高优先级专用流条目匹配(即,高优先级专用流条目包括由流ID满足的匹配模式),那么根据高优先级专用流条目处理数据分组。如上所述,专用流条目可具有对于单个数据流ID特定的匹配模式以及在不告知控制器231的情况下将匹配数据分组传送给指示的服务器的动作。
[0137]如果要安装指定的流条目或修改默认流条目(响应于来自控制器231的指令),那么处理器213可继续进行框1217-1223的操作。如果在框1217处通过控制器接口 221从控制器231接收安装专用流条目的指令,那么在框1219,处理器213可在流表217a中安装专用流条目。如上所述,可在稳态模式操作期间安装专用流条目以便减少将业务复制到控制器231,或者可在瞬态模式操作期间安装专用流条目以便保持到旧控制器的现存流。
[0138]如果在框1221处通过控制器接口221从控制器231接收修改现有默认流条目的指令,那么处理器213可根据指令修改所指示的默认流条目。在瞬态模式操作期间,可首先修改默认流条目(从S&C修改成C),以便向控制器231报告匹配数据分组(将完整的数据分组或只将数据流ID传送给控制器231),而不将匹配数据分组传送给服务器(除非提供进一步指令),同时保持原始服务器ID。可稍后将默认流条目修改成指向新服务器,并且(从C修改成S&C)向控制器231报告匹配数据分组并将匹配数据分组转发给新服务器。
[0139]现在,将根据一些实施例关于图13A和13B的流程图论述控制器231的操作。可例如根据框1301和1303的操作执行初始化模式操作。当安装负载均衡系统200时,在框1301处,控制器处理器233可启动初始化操作。在框1303,处理器233可传送在交换机211处在流表217a中安装多个默认流条目的指令。如上所述,所述多个默认流条目中的每个默认流条目包括相应的匹配模式,其中所述多个默认流条目的每个匹配模式不相同,并且所述多个默认流条目的每个匹配模式包括至少一个非受限字符(又称为通配符),以使得相应多个数据流标识满足每个匹配模式。此外,所述多个默认流条目中的每个默认流条目包括将对具有满足相应匹配模式的数据流标识的数据分组执行的动作。
[0140]只要在框1305处不存在对默认流条目的修改,那么控制器231便可继续进行框1307-1323的稳态模式操作。如果在框1307处接收到关于数据分组的信息,那么处理器233便可在框1309处确定是否已经将相关联的数据分组传送给相应的服务器,并在框1311或1319处确定数据流是否已经包含在数据流映射表中。如上文关于交换机211所论述,默认流条目的动作规定将数据分组转发给服务器并报告给控制器(S&C)还是只是报告给控制器231。到控制器的报告可包括数据流ID(通过转发完整数据分组或通过转发数据流ID而不是完整数据分组来提供)、是否已经将数据分组转发给服务器的指示(称为版本信息)以及默认流条目的匹配模式(用作默认流条目的标识)。
[0141]如果在框1309处已经将数据分组传送给相应服务器,那么处理器233在框1311处确定是否已经在框1311处将数据流添加到流服务器映射表。如果否,那么在框1313处将数据流添加到流服务器映射表(如上文关于图3B和5所论述)。
[0142]如果在框1309处没有将数据分组传送给相应服务器,那么处理器233在框1319处确定是否已经在框1311处将数据流添加到流服务器映射表。如果否,那么在框1321处将数据流添加到流服务器映射表(如上文关于图3B和5所论述)。如果在框1309处没有将数据分组传送给相应服务器,那么处理器233可在框1323处启动将数据分组传送给为流服务器映射表中的数据流ID所指示的服务器。如果在框1307处在控制器231处接收到数据分组,那么处理器233可在框1323处将数据分组传送给所指示的服务器(绕过交换机211),或者处理器233可通过交换机接口 237和交换机211将数据分组传送给所指示的服务器。如果在框1307处没有将数据分组传送给控制器231,那么处理器233可通过交换机接口 237把将数据分组转发给所指示的服务器的指令传送给交换机211。
[0143]在框1315,处理器233可确定,新指定的流条目对于减少交换机211和控制器231之间的不必要的业务是有用的。如果在框1315处做出这种判定(例如,对于巨量流),那么处理器233可通过交换机接口 237传送使得交换机211在流表217a中安装指定流条目的指令。
[0144]如果在框1305处要修改默认流条目,那么框1325可转移到图13B的操作,以便将默认数据流的映射从较旧的服务器SI变为新服务器S2。在框1349,处理器233可通过交换机接口 237把将默认条目从S&C修改为C的第一指令传送给交换机211,以便将数据分组通知传送给控制器231,而不将默认流条目的数据分组传送给所指示的服务器。在框1351,处理器233可搜索流服务器映射表,以便标识通过修改的默认流条目处理的所有现有数据流,并且处理器233可通过交换机接口 237传送为所有这些之前已有的数据流安装指定的流条目的指令。提供这些指定的流条目以便保持在修改默认流条目之前和之后的之前已有的数据流到较旧服务器的映射。
[0145]因此,可在框1349和/或1351处启动瞬态模式操作,并且可在框1353处保持瞬态模式操作,直到时间‘T’(如上所述的宽限周期)过去。在框1355,处理器233可(通过接口 237)接收关于在交换机211处接收的数据分组的信息(并且该信息可以与上文关于框1307论述的信息相同)。如果在框1357处信息包括交换机211将数据分组传送给服务器的指示S&C并且在框1359处数据流不包含在流服务器映射表中,那么处理器233可在框1361处在流服务器映射表中安装数据流,并且处理器233可在框1363处(通过接口 237)传送在流表217a中为该数据流安装指定流条目的指令。如果在框1361处数据流包含在流服务器映射表中,那么可省略框1361和1363的操作。
[0146]如果在框1357处信息包括交换机211不将数据分组传送给服务器的指示C并且在框1365处数据流不包含在流服务器映射表中,那么处理器233可在框1357处在流服务器映射表中安装数据流,并且处理器233可在框1369处(通过接口 237)传送在流表217a中为该数据流安装指定流条目的指令。如果在框1365处数据流包含在流服务器映射表中,那么可省略框1367和1369的操作。如果在框1357处信息包括交换机211不将数据分组传送给服务器的指示C,那么处理器233可在框1371处启动数据分组的传输。例如,处理器233可绕过交换机211将数据分组传送给服务器,处理器233可通过接口 237和交换机211将数据分组传送给服务器,或者处理器233可通过接口 237将使得交换机211将数据分组传送给服务器的指令传送给交换机211。
[0147]在本发明概念的各种实施例的以上描述中,将了解,本文中所使用的术语只是为了描述特定实施例的目的,而不是要限制发明概念。除非另外定义,否则本文中所使用的所有术语(包括技术和科学术语)具有与本发明概念所属的领域中的技术人员通常理解的含义相同的含义。还将了解,诸如常用字典中定义的术语的术语应当理解为具有与它们在本说明书和相关领域的上下文中的含义一致的含义,并且除非本文中明确定义,否则不应理解为具有理想化或过于正式的意义。
[0148]当提到一个元件与另一个元件“连接”、“親合”、“响应”或其变型时,它可直接连接至1J、親合到或响应于这另一个元件,或者可存在介入元件。反之,当提到一个元件与另一个元件“直接连接”、“直接耦合”、“直接响应”或其变型时,不存在介入元件。通篇中类似数字指类似元件。此外,本文中所使用的“耦合”、“连接”、“响应”或其变型可包括无线耦合、连接或响应。如本文中所使用,除非上下文另外清楚地指示,否则单数形式“一”和“该/所述”旨在同时包括复数形式。为了简洁和/或清楚起见,没有详细描述公知的功能或构造。术语“和/或”包括所列出的相关联项中的一个或多个项的任何和所有组合。
[0149]如本文中所使用,术语“包括”、“包含”、“具有”或其变型是开放式的,并且包括一个或多个所述特征、整数、元件、步骤、组件或功能,但是不排除一个或多个其它特征、整数、元件、步骤、组件、功能或其群组的存在或增加。此外,如本文中所使用,例如可用于引入或指定之前提及的项的一个或多个一般示例,并且不是要限制该项。即可用于从更一般叙述指定特定项。
[0150]将了解,尽管本文中可使用术语“第一”、“第二”、“第三”等来描述各种元件/操作,但是这些元件/操作不应受到这些术语的限制。这些术语只是用于区分一个元件/操作和另一个元件/操作。因此,在不偏离本发明概念的教导的情况下,一些实施例中的第一元件/操作可称作其它实施例中的第二元件/操作。在整篇说明书中,相同参考数字或相同参考指定符表示相同或类似元件。
[0151]本文中参考计算机实现的方法、设备(系统和/或装置)和/或计算机程序产品的框图和/或流程图图示描述了示例实施例。将了解,框图和/或流程图图示的框以及框图和/或流程图图示中的框的组合可通过由一个或多个计算机电路执行的计算机程序指令实现。可将这些计算机程序指令提供给通用计算机电路、专用计算机电路和/或其它可编程数据处理电路的处理器电路以便制作机器,从而使得经由计算机和/或其它可编程数据处理设备的处理器执行的指令变换和控制晶体管、存储在存储器位置中的值以及这种电路内的其它硬件组件,以便实现这个或这些框图和/或流程图框中所指定的功能/动作,并且从而创建用于实现在这个(这些)框图和/或流程图框中所指定的功能/动作的部件(功能性)和/或结构。
[0152]这些计算机程序指令也可存储在有形计算机可读介质中,有形计算机可读介质可引导计算机或其它可编程数据处理设备以特定方式运行,从而使得存储在计算机可读介质中的指令形成包括实现在这个或这些框图和/或流程图框中所指定的功能/动作的指令的制品。
[0153]有形、非暂时性计算机可读介质可包括电子、磁、光、磁电或半导体数据存储系统、设备或装置。计算机可读介质的更特定示例包括如下:便携式计算机盘、随机存取存储器(RAM)电路、只读存储器(ROM)电路、可擦除可编程只读存储器(EPROM或闪速存储器)电路、便携式致密盘只读存储器(⑶-ROM)以及便携式数字视频盘只读存储器(DVD/BlueRay)。
[0154]计算机程序指令还可加载到计算机和/或其它可编程数据处理设备上,以使得在计算机和/或其它可编程设备上执行一系列操作步骤,从而产生计算机实现的过程,以使得在计算机或其它可编程设备上执行的指令提供用于实现在这个或这些框图和/或流程图框中所指定的功能/动作的步骤。因此,本发明概念的实施例可以用硬件和/或用在诸如数字信号处理器的处理器(可统称为“电路”、“模块”或其变型)上运行的软件(包括固件、常驻软件、微代码等)来实施。
[0155]还应注意,在一些备选实施例中,框中所示的功能/动作可以不按照流程图中示出的顺序进行。例如,接连示出的两个框实际上可基本上同步地执行,或者这些框有时可按相反顺序执行,这取决于所涉及的功能/动作。此外,可将流程图和/或框图的给定框的功能性分隔成多个框,和/或流程图和/或框图的两个或两个以上框的功能性可至少部分地集成在一起。最后,可将其它框增加/插入在所示框之间。此外,尽管一些图在通信路径上包括箭头以便示出主要通信方向,但是将了解,通信可以按与所描绘的箭头
当前第5页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1