无状态集群边缘上的有状态服务制造技术

技术编号:28736337 阅读:22 留言:0更新日期:2021-06-06 11:43
本发明专利技术公开涉及无状态集群边缘上的有状态服务。为了使得能够在边缘处动态缩放网络服务,提供了使得能够添加新节点或去除现有节点,同时保持通过有状态服务的流的紧密度的新颖系统和方法。该方法提供了可以动态调整大小以操纵和处理利用有状态网络服务的网络流量的网络节点集群。流经边缘的现有流量在集群成员资格更改期间和之后继续工作。集群中的所有节点都以活动

【技术实现步骤摘要】
无状态集群边缘上的有状态服务
[0001]本申请是申请日为2014年12月30日、申请号为 201480083356.4、专利技术名称为“无状态集群边缘上的有状态服务”的专利技术专利申请的分案申请。


[0002]本专利技术公开通常涉及无状态集群边缘上的有状态服务。

技术介绍

[0003]诸如防火墙和NAT的有状态网络服务在流量流进和流出的网络边缘处是常见的。它提供基本的安全能力,诸如网络安全网关服务和用于性能和可用性的Web负载平衡。随着网络流量的增加,对边缘服务的需求也增加,从而需要为边缘服务分配附加的资源。

技术实现思路

[0004]为了使得能够在边缘处动态缩放网络服务,一些实施例提供能够添加新节点或去除现有节点,同时保持通过有状态服务的流的紧密度 (affinity)的系统和方法。一些实施例提供了可以动态调整大小以操纵和处理利用有状态网络服务的网络流量的网络节点集群。流经边缘的现有流量在集群成员资格(membership)更改期间和之后继续工作。在一些实施例中,集群中的所有节点都以活动

活动模式操作,即,它们正在接收和处理流量流,从而最大化可用处理能力的利用率。
[0005]为了创建在网络(或网络段)边缘处执行有状态服务的动态可扩展的节点集群,一些实施例将流分发到集群的不同节点,使得集群的所有节点都在主动参与有状态服务。在一些实施例中,流通过一致性散列函数散列到集群的节点中。一致性散列函数是在集群的节点之上(或基于集群的成员资格),使得不同的流将被几乎均匀地分发到集群的不同节点。在这些实施例中的一些实施例中,通过一致性散列函数产生的每个可能的散列值都被映射到集群中的节点,并且每个节点被映射到至少一个可能的散列值。因此,集群的每个节点都在主动处理至少一个流的有状态服务。为了确保为每个流正确执行有状态服务,在流的生命周期期间,将每个流分配给集群中的节点。分配给流的节点管理和维护与流相关的状态信息。在一些实施例中,流的标识符用于将属于该流的分组引导到所分配的节点。
[0006]在从ECMP过程接收到分组之后,在一些实施例中,节点识别流的所有者节点,并将分组转发到识别出的所有者节点。在一些实施例中,边缘集群中的每个节点对分组中的流标识符(例如,源(IP) 地址、源端口、目的地(IP)地址、目的地端口、传输协议的五元组) 执行一致性散列,以便识别流的所有者节点。
[0007]在一些实施例中,由特定流的一致性散列识别出的所有者节点不是对流执行有状态服务最合适的边缘节点。当通过一致性散列识别出的流的所有者节点不具有正确处理流所需的必要状态信息,而是这种状态信息被保持在集群中的另一个节点处时,情况就是这样。该另一个节点可以是流的前所有者节点,或者可以是需要其状态信息来正确处理该流的相关流的所有者节点,为了提供一致性有状态服务,在一些实施例中,通过一致性散列识
别出的所有者节点将分组委派给其中保持状态信息的节点。
[0008]一些实施例允许集群中的异构服务支持。在这些实施例中的一些实施例中,一致性散列函数是基于被调用以服务流的服务的类型。具体而言,在一些实施例中,不同的节点集合用于不同的服务,即,不同的服务基于不同的节点集合具有不同的一致性散列函数。
[0009]在一些实施例中,流委派是基于驻留在边缘集群的节点中的固定流(pinned flow)表和间接表。间接表和固定流表中的每个条目对应于流。每个间接表条目指示其边缘节点根据条目转发或委派属于流的分组。用于流的固定流表中的每个条目指示其边缘节点本地处理流(因此固定或锚定流)并且为流提供有状态服务,而不管节点是否是流的所有者节点。不是所有者节点将分组转发到流的状态信息所保持处的委派节点,而是一些实施例将状态信息转发给所有者节点。
[0010]在一些实施例中,所有者节点的标识符不仅基于所使用的散列函数,而且还基于集群中的边缘节点的成员资格。换句话说,确定哪个边缘节点是给定流的所有者节点部分地基于多少边缘节点在能够提供有状态服务的边缘集群中。因此,边缘集群中的成员资格的任何变化将更改一致性散列的结果。边缘集群的大小可以被改变以添加新节点或去除现有节点。一些实施例允许这种动态地,即,在边缘集群正在主动处理利用有状态网络服务的网络流量的同时,调整边缘集群的大小。流经边缘的现有流量在集群的成员资格改变期间和之后继续被处理。为了通过调整边缘集群的大小不间断地提供有状态服务,一些实施例在其原始所有者节点处为现有流锚定有状态服务,直到这些现有流完成。在一些实施例中,边缘集群中的节点将属于现有流的分组转发到其原始所有者节点,其原始所有者节点仍然维持有状态服务所需的现有流的状态信息。
[0011]在一些实施例中,边缘节点的去除在不中断由边缘集群提供的有状态服务的情况下优雅地完成。对于这些实施例中的一些实施例,现有流的有状态处理在节点去除过程期间被保持在其原始所有者节点上。
[0012]在一些实施例中,当驻留在第一节点上的第一流的状态信息是分配给第二节点的第二流的必要状态信息时,流的委派也是必需的。在一些实施例中,第一流和第二流是通过一致性散列分配给不同所有者节点的相关流。在一些实施例中,当相同过程的控制流和数据流被分配给不同所有者节点时,会发生这种情况,因为它们具有不同的流标识符。为了确保相关流在相同节点上维护的相同状态信息集合中操作,一些实施例使用流委派来强制相关流被同一节点有状态地进行处理,即使这两个相关流通过一致性散列被散列到不同的所有者节点。
[0013]在一些实施例中,根据原始地址的流的所有者节点根据转换的 DNAT地址将间接消息推送到流的所有者节点,以便将流的分组保持在同一节点上。结果,由转换的DNAT地址识别出的所有者节点具有用于将流的分组委派给通过原始地址识别出的所有者节点的间接表条目,其具有固定流表条目,以基于DNAT地址接收和处理具有流标识符的分组。在一些其它实施例中,不是进行流委派,而是执行 DNAT的边缘集群在不使用可以被转换的目的地地址的情况下确定所有者节点。换句话说,集群只对不受DNAT影响的字段(例如,源地址字段、源端口字段、协议字段)应用一致性散列。
[0014]在SNAT的情况下,集群中的边缘节点改变传出南向分组的源地址。分组的SNAT在通过其流的所有者节点路由之后发生。在一些实施例中,边缘集群中的每个节点在执行地
址转换时使用其自己的唯一SNAT地址。返回北向流量基于源地址字段中的那些唯一SNAT 地址被转发到相同的所有者节点。所有者节点然后在维护有状态 SNAT过程的状态的同时应用逆NAT。
[0015]前面的
技术实现思路
旨在用作对本专利技术的一些实施例的简要介绍。它并不意味着是对本文档中公开的所有专利技术性主题的介绍或概述。以下的具体实施方式和在具体实施方式中提及的附图将进一步描述在本
技术实现思路
中描述的实施例以及其它实施例。相应地,为了理解本文档描述的所有实施例,需要对
技术实现思路
、具体实施方式和附图进行全面地审查。此外,所要求保护的主题不受
技术实现思路
、具体实施方式和附图中的说本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于为包括多个主机计算机的网络执行有状态服务的方法,每个主机计算机执行一组虚拟机(VM),其中不同主机上的不同组VM通过不同的逻辑网络连接,所述方法包括:在为逻辑网络指定的边缘服务节点群集的第一边缘服务节点处:执行有状态服务,所述有状态服务需要用于进入或离开逻辑网络的特定流的状态信息,其中基于特定流的标识符的第一散列,从边缘服务节点集群中选择第一边缘服务节点;从第二边缘服务节点接收属于特定流的分组,其中在将至少一个边缘服务节点添加到所述集群或将其从所述集群中去除之后,从所述集群中选择第二边缘服务节点,所述选择基于特定流的标识符的第二散列;和对在第一边缘服务节点处接收到的分组执行有状态服务。2.根据权利要求1所述的方法,其中,所述集群中的特定边缘服务节点在与作为所述特定流的源或目的地的VM相同的主机计算机上执行。3.根据权利要求1所述的方法,其中:在添加或去除至少一个边缘服务节点之前,第一映射将所述第一散列的可能值映射到所述集群中的边缘服务节点;在添加或去除至少一个边缘服务节点之后,第二映射将第二散列的可能值映射到所述集群中的边缘服务节点;和第二映射不同于第一映射。4.根据权利要求1所述的方法,其中,所述第一边缘服务节点维护所述特定流的状态信息,所述状态信息是基于在所述第一边缘服务节点处对所述特定流的先前分组执行有状态服务而为所述特定流维护的。5.根据权利要求1所述的方法,其中,所述边缘服务节点集群在所述特定逻辑网络的南北边界处提供有状态服务。6.根据权利要求1所述的方法,其中:基于第二边缘服务节点的间接表中的条目从第二边缘服务节点接收分组,所述条目将特定流与第一边缘服务节点关联;和第一边缘服务节点具有固定流表,所述固定流表包括与特定流相对应的条目,该条目用于防止第一边缘服务节点将属于特定流的分组转发给所述集群中的其他边缘服务节点。7.根据权利要求7所述的方法,还包括:当特定流的有状态处理完成时,从固定流表中去除所述条目。8.一种用于为包括多个主机计算机的网络执行有状态服务的方法,每个主机计算机执行一组虚拟机(VM),其中不同主机上的不同组VM通过不同的逻辑网络连接,所述方法包括:在边缘服务节点的集群处执行有状态服务,所述有状态服务需要进入或离开特定逻辑网络的流的状态信息,其中特定流的状态由所述集群中的第一边缘服务节点维护;在所述集群为特定流执行有状态服务的同时,向所述集群添加边缘服务节点;在通过在添加边缘服务节点之后经由由集群中的每个节点使用的边缘服务节点的集群的特定流的流标识符的一致性散列函数初始识别第二边缘服务节点以执行有状态服务时,将属于特定流的分组从第二边缘服务节点转发到第一边缘服务节点;和在第一边缘服务节点处对转发的分组执行有状态服务。9.根据权利要求8所述的方法,其中,通过在添加边缘服务节点之前经由由集群中的每
个节点使用的边缘服务节点的集群的特定流的流标识符的不同的一致性散列函数识别第一边缘服务节点以执行有状态服务。10.根据权利要求8所述的方法,其中,向边缘服务节点的集群添加边缘服务节点还包括:向第二边缘服务节点中的间接表添加用于特定流的条目,其中间接表中添加的条目用于指示第二边缘服务节点将属于该特定流的分组转发到第一边缘服务节点;和将用于特定流的条目添加到第一边缘服务节点中的固定流表,其中添加到固定流表的用于特定流的条目用于在第一边缘服务节点处锚定特定流的分组。11.根据权利要求8所述的方法,其中,所述第二边缘服务节点是添加到所述集群的边缘服务节点。12.一种用于在包括第一和第二节点的节点集群中有状态地执行服务的方法,所述方法包括:在第一节点处:基于第一流的第一组流标识符,接收第一流的第一分组;对第一分组执行服务并存储状态信息;从第二节点接收第二流的第二分组,所述第二流是与第一流的一个连接会话的一部分,其中第二节点基于第二流的第二组流标识符初始接收第二分组,然后在第一节点先前处理作为与第二流相同的连接会话的一部分的第一流时转发所述第二分组到第一节点;和通过将在第一节点处存储的状态信息用于该连接会话来对第二分组执行服务。13.根据权利要求12所述的方法,其中,为所述第一流执行的服务是网络地址转换(NAT)处理。14.根据权利要求13所述的方法,其中,所述NAT处理将所述第一流的第一组流标识符转换成所述第二流的第二组流标识符。15.如权利要求12所述的方法,其中,所述第一节点由所述第一组流标识符的散列来标识,而所述第二节点由所述第二组流标识符的散列来标识。16.根据权利要求12所述的方法,其中,所述第二节点存储具有用于将具有所述第二组流标识符的分组从所述第二节点转发到所述第一节点的条目的间接表,所述方法还包括:使用具有用于在第一节点处保持和处理具有第二组流标识符的分组的条目的固定流表。17.根据权利要求12所述的方法,其中,流标识符的散列初始标识所述流的所有者节点,其中根据所述第一组流标识符的散列,所述第一节点是所述...

【专利技术属性】
技术研发人员:M
申请(专利权)人:NICIRA股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1