CN114500289A - 控制平面恢复方法、装置、控制节点及存储介质 - Google Patents

控制平面恢复方法、装置、控制节点及存储介质 Download PDF

Info

Publication number
CN114500289A
CN114500289A CN202111535618.4A CN202111535618A CN114500289A CN 114500289 A CN114500289 A CN 114500289A CN 202111535618 A CN202111535618 A CN 202111535618A CN 114500289 A CN114500289 A CN 114500289A
Authority
CN
China
Prior art keywords
configuration information
cluster
topology
message
control plane
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202111535618.4A
Other languages
English (en)
Other versions
CN114500289B (zh
Inventor
万达
马涛
何胜元
郭芬
高进军
梅岚翔
王玺霖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sangfor Technologies Co Ltd
Original Assignee
Sangfor Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sangfor Technologies Co Ltd filed Critical Sangfor Technologies Co Ltd
Priority to CN202111535618.4A priority Critical patent/CN114500289B/zh
Publication of CN114500289A publication Critical patent/CN114500289A/zh
Application granted granted Critical
Publication of CN114500289B publication Critical patent/CN114500289B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种控制平面恢复方法、装置、控制节点及存储介质,其中,方法包括:通过调用本地控制平面获取第一消息,第一消息携带有构建第一拓扑相关的配置信息;基于第一消息确定第一配置信息,并将第一配置信息存储至第一数据库;在拉起第一进程的情况下,基于第一数据库中存储的配置信息构建第一拓扑;其中,第一拓扑表征控制节点所处网络的拓扑;第一进程用于在控制节点的内存中运行本地控制平面。以上控制平面恢复方法,控制节点无须消耗大量***资源重新进行拓扑计算,能够快速构建拓扑,从而从错误状态中快速恢复。

Description

控制平面恢复方法、装置、控制节点及存储介质
技术领域
本申请涉及网络技术领域,尤其涉及一种控制平面恢复方法、装置、控制节点及存储介质。
背景技术
随着云计算、大数据、移动网络和物联网(IoT,Internet of Things)等技术的兴起,应用程序日益多样化,对网络功能的要求也越来越高。在这种情况下,软件定义网络(SDN,Software Defined Network)应运而生,这是一种将网络设备的控制平面(CP,Control Plane)与数据平面(DP,Data Plane)分离的技术,实现对网络流量的控制。
为从错误状态中恢复,控制平面需要重新构建拓扑,存在消耗大量***资源、耗时较长的问题。
发明内容
有鉴于此,本申请实施例提供一种控制平面恢复方法、装置、控制节点及存储介质,以至少解决相关技术中控制平面从错误状态中恢复,需要消耗大量***资源、耗时较长的问题。
本申请实施例的技术方案是这样实现的:
本申请实施例提供了一种控制平面恢复方法,应用于控制节点,所述方法包括:
通过调用本地控制平面获取第一消息;所述第一消息携带有构建第一拓扑相关的配置信息;
基于所述第一消息确定第一配置信息,并将所述第一配置信息存储至第一数据库;
在拉起第一进程的情况下,基于所述第一数据库中存储的配置信息构建第一拓扑;其中,
所述第一拓扑表征所述控制节点所处网络的拓扑;所述第一进程用于在所述控制节点的内存中运行本地控制平面。
上述方案中,所述通过调用本地控制平面获取第一消息,包括
通过调用本地控制平面从第一集群获取所述第一消息;所述第一集群表征用于存储配置信息的集群。
上述方案中,所述第一集群表征Kafka集群;在所述将所述第一配置信息存储至第一数据库之后,所述方法还包括:
在将所述第一配置信息下发至数据平面网元之后,通过调用所述本地控制平面向所述第一集群提交第一偏移量;其中,
所述第一偏移量表征在从所述第一集群获取所述第一消息时对所述第一集群消费到的偏移量。
上述方案中,在所述基于所述第一数据库中存储的配置信息构建第一拓扑之后,所述方法还包括:
基于第二配置信息和所述第一拓扑对应的配置信息确定比对结果;其中,
所述第二配置信息通过调用所述本地控制平面从第二集群拉取;所述第二集群表征用于存储配置信息的集群;所述比对结果用于评价所述第一拓扑。
上述方案中,所述方法还包括:
通过调用进程监听组件监听所述控制节点的进程,并在监听到所述第一进程挂掉的情况下拉起所述第一进程。
上述方案中,所述将所述第一配置信息存储至第一数据库,包括:
将所述第一配置信息以至少一条第一记录的方式存储至第一数据库;其中,
每条第一记录用于描述所述控制节点所处网络中至少一个节点和对应的邻接节点。
上述方案中,所述第一数据库通过键值对进行数据存储,每个键值对表征所述控制节点所处网络中的一个节点和对应的邻接节点。
上述方案中,所述基于所述第一消息确定第一配置信息,包括:
在需要从第三集群拉取第三配置信息的情况下,从所述第三集群拉取所述第三配置信息,并基于所述第一消息携带的配置信息和所述第三配置信息确定第一配置信息;其中,
所述第三集群表征用于存储配置信息的集群;所述第三配置信息表征所述所述第一消息携带的配置信息的关联配置信息。
本申请实施例还提供了一种控制平面恢复装置,包括:
获取单元,用于通过调用本地控制平面获取第一消息;所述第一消息携带有构建第一拓扑相关的配置信息;
处理单元,用于基于所述第一消息确定第一配置信息,并将所述第一配置信息存储至第一数据库;
构建单元,用于在拉起第一进程的情况下,基于所述第一数据库中存储的配置信息构建第一拓扑;其中,
所述第一拓扑表征所述控制节点所处网络的拓扑;所述第一进程用于在所述控制节点的内存中运行本地控制平面。
本申请实施例还提供了一种控制节点,其特征在于,包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器,
其中,所述处理器用于运行所述计算机程序时,执行上述任一种控制平面恢复方法的步骤。
本申请实施例还提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一种控制平面恢复方法的步骤。
在本申请实施例中,通过调用本地控制平面获取第一消息,第一消息携带有构建第一拓扑相关的配置信息;基于第一消息确定第一配置信息,并将第一配置信息存储至第一数据库;在拉起第一进程的情况下,基于第一数据库中存储的配置信息构建第一拓扑;其中,第一拓扑表征控制节点所处网络的拓扑;第一进程用于在控制节点的内存中运行本地控制平面。上述方案中,将控制节点的配置信息存储至第一数据库,在拉起在控制节点的内存中运行的本地控制平面的进程的情况下,基于第一数据库存储的配置信息构建控制节点所处网络的拓扑,这样,控制节点无须消耗大量***资源重新进行拓扑计算,能够快速构建拓扑,从而从错误状态中快速恢复。
附图说明
图1为本申请实施例提供的控制平面架构的示意图;
图2为本申请实施例提供的控制平面架构的应用示意图;
图3为本申请实施例提供的控制平面恢复方法的实现流程示意图;
图4为本申请另一实施例提供的控制平面恢复方法的实现流程示意图;
图5为本申请实施例提供的网络拓扑持久化模型的示意图;
图6为本申请应用实施例提供的LCP的示意图;
图7为本申请应用实施例提供的LCP调度算法的流程示意图;
图8为本申请应用实施例提供的配置实体之间的关系示意图;
图9为本申请应用实施例提供的本地控制面持久化缓存的实现流程示意图;
图10为本申请应用实施例提供的本地控制面的拓扑恢复的实现流程示意图;
图11为本申请实施例提供的控制平面恢复装置的结构示意图;
图12为本申请实施例提供的控制节点的结构示意图。
具体实施方式
随着云计算、大数据、移动网络和IoT等技术的兴起,应用程序日益多样化,网络需要承载巨大的流量,对网络功能的要求越来越高,网络结构变得越来越复杂。例如,在云计算场景下,需要网络有很高的可扩展性;在大数据场景下,数据中心的网络容量需求呈现持续较快的增长;在移动网络中,会产生大量的图片和视频等复杂流量,给提供网络服务的企业带来很大负担;在IoT场景下,网络需要承载智能家居、车联网和智慧城市等IoT终端产生的巨大的流量。而且,随着网络带宽的不断提高和网络延迟的不断减小,语音、数据和视频等大量的多媒体数据流量在网络中汇集,使流量模式变得更加难以预测。在面对流量的不断增加的复杂性、动态性以及多样性方面,传统网络结构变得越来越不适用。
在这种情况下,SDN应运而生,这是一种将网络设备的控制平面与数据平面分离的技术,实现对网络流量的控制。SDN通过软件将网络设备的控制和转发分离,转发策略由分离的控制器集中管理和下发,可以灵活的通过控制器来控制下层的数据转发。转控分离后,控制平面居于核心地位,控制平面通过编程来控制转发平面(即数据平面),网络的核心功能是通过控制平面实现的。
为从错误状态中恢复,控制平面需要重新构建拓扑,存在消耗大量***资源、耗时较长的问题。
基于此,在本申请的各种实施例中,通过调用本地控制平面获取第一消息,第一消息携带有构建第一拓扑相关的配置信息;基于第一消息确定第一配置信息,并将第一配置信息存储至第一数据库;在拉起第一进程的情况下,基于第一数据库中存储的配置信息构建第一拓扑;其中,第一拓扑表征控制节点所处网络的拓扑;第一进程用于在控制节点的内存中运行本地控制平面。上述方案中,将控制节点的配置信息存储至第一数据库,在拉起在控制节点的内存中运行的本地控制平面的进程的情况下,基于第一数据库存储的配置信息构建控制节点所处网络的拓扑,这样,控制节点无须消耗大量***资源重新进行拓扑计算,能够快速构建拓扑,从而从错误状态中快速恢复。
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
图1为本申请实施例提供的一种控制平面架构的示意图。控制平面架构包括管理平面(Management Plane,MP)、北向Kafka集群、中心控制平面(CCP,Central ControlPlane)集群、南向Kafka集群和本地控制平面(LCP,Local Control Plane)。
MP:MP管理各种网元(虚拟交换机、虚拟路由器等),并向北提供对用户的接口,例如应用程序接口(API,Application Programming Interface)、用户界面(UI,UserInterface)。向南将各种网元及对应的拓扑结构配置以配置消息的形式通过Kafka消息通道发送到CCP。MP内部可以根据关系数据库MySQL维护用户配置。
北向Kafka集群:北向Kafka集群为MP和CCP之间的消息通道。北向Kafka集群配置仅有一个主题(Topic),主题包括N个分区(Partition),每个分区可由M个副本(Replica)组成。每个租户(Tenant)唯一映射到一个分区,每个分区包含K个租户的配置消息。每个分区中的每个租户消息是有序的。
CCP集群:CCP集群由多个CCP组成,是控制平面中存储完整网络配置信息,并计算网络拓扑结构的部分。CCP通过北向消息中间件Kafka集群和MP进行通信,MP下发网络配置到北向Kafka集群,CCP从北向Kafka集群拉取网络配置。
CCP消费北向Kafka数据规则。所有的CCP在同一个Kafka消费组(Consumer Group)中。每一个北向Kafka的分区唯一映射到一个中心控制器CCP。每个CCP负责处理多个北向Kafka的分区中的消息。因此,每个租户的消息由唯一一个CCP处理;每个CCP处理多个租户的消息。
CCP生产南向Kafka数据规则。每个CCP处理北向Kafka数据,生成数据并写入Redis存储集群后,计算网络配置(生成的数据)应该下发的物理节点主机组,根据消息所属租户和主机之间映射关系找到对应的所有南向Kafka的主题,并将数据广播到这些主题。这里,映射关系主要根据配置所属的网元的物理主机位置及物理主机和主题对应关系确定。例如,向某虚拟路由器vr-a发送一条路由规则,该路由运行在主机A,主机A对应的主题是topic-a,那映射关系就是发送到vr-a的消息需要发送到topic-a上。
Redis存储集群:Redis存储集群由多个Redis节点组成,存储网络配置信息。Redis集群使用哈希槽(Hash Slot)进行数据分片。每个哈希槽唯一映射到一个Redis节点。Redis使用主从方式实现高可用,每个哈希槽对应一个主节点和多个从节点。CCP将网络配置等数据写入Redis中,CCP通过Redis记录***状态和互相之间协调,LCP根据计算需要(例如,配置的引用关系),从Redis拉取所需配置。
南向Kafka集群:南向Kafka集群为CCP和LCP之间的消息通道。南向Kafka集群配置有M个主题,每个主题一个分区,每个分区可由N个副本组成。每个本地控制器LCP映射到一个南向Kafka的消费组(Consumer Group)。每个分区的数据由K个本地控制器LCP读取。
LCP:处理南向Kafka消息队列消息,从南向Kafka集群拉取网络配置,计算调度并访问Redis拉取最新配置,构建虚拟网络拓扑,根据网络拓扑计算配置,并将数据转换成数据平面可识别数据,转发数据平面。LCP是控制平面中安装到每个主机节点上的agent,负责接收处理CCP消息,与数据平面交互并上报主机网络信息。
其中,Kafka是一个开源的消息中间件,是一种高吞吐量的分布式发布订阅消息***,可作为一个集群运行在一个或多个可跨多个数据中心的服务器上。Kafka集群以称为主题的类别存储记录流,并对根据配置对每个主题进行副本的备份。Kafka中每条记录都包含一个键,一个值和一个时间戳。
Redis(Remote Dictionary Server):远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
图2示出了本申请实施例提供的一种控制平面架构的应用示意图,支持以下至少一种网络配置分发方法:
在一种网络配置分发方法中,MP通过北向Kafka集群,将各种网元及对应的拓扑结构配置以配置消息的形式发送到CCP。CCP根据配置的具体内容,判断是否需要读取Redis数据,并且,CCP根据配置消息和已有的网络配置进行计算,更新配置,并将更新的配置写入Redis集群。CCP计算广播域,通过南向Kafka集群向LCP发送配置更新的配置消息,LCP接收到CCP通过南向Kafka集群发送的配置消息,基于配置消息判断是否需要从Redis集群拉取关联配置,如判断需要从Redis集群拉取关联配置,则将拉取到的配置存储到本地缓存,并将配置更新及所有的关联配置下发到数据平面的配置数据库。
在另一种网络配置分发方法中,MP通过北向Kafka集群,将各种网元及对应的拓扑结构配置以配置消息的形式发送到CCP。CCP向Redis集群发送消息,使Redis集群与所有LCP切断连接,由于LCP与Redis集群有心跳,LCP检测到与Redis集群的连接切断,开始检测是否需要拉取配置信息。CCP从北向Kafka集群拉取配置消息进行计算,并向Redis集群写入全量配置信息。CCP向Redis集群写入LCP开始全同步标志。LCP检测到Redis集群中有LCP开始全同步标志,确定需要拉取配置信息,从Redis集群拉取配置数据,并将配置更新及所有的关联配置下发到数据平面的配置数据库。
下面将通过实施例并结合附图具体地对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
图3为本申请实施例提供的控制平面恢复方法的实现流程示意图,本申请实施例提供了一种控制平面恢复方法,应用于控制节点,其中,控制节点包括但不限于服务器、终端等电子设备。在实际应用中,控制节点为图1中任一装载有LCP的节点,换句话说,控制节点可以通过装载LCP实现对应的功能。
如图3所示出的控制平面恢复方法,应用于控制节点,包括:
步骤301:通过调用本地控制平面获取第一消息。
其中,所述第一消息携带有构建第一拓扑相关的配置信息。
控制节点通过LCP获取携带有构建第一拓扑相关的配置信息的第一消息。通过调用LCP,控制节点从控制平面架构中存储有配置信息的集群和/或节点获取第一消息。
控制节点获取第一消息的来源,包括但不限于以下至少之一:从图1中装载有CCP的节点通过Kafka集群获取,从图1中的Redis集群获取。
步骤302:基于所述第一消息确定第一配置信息,并将所述第一配置信息存储至第一数据库。
其中,第一数据库可以为本地数据库,驻留于运行本地控制平面的控制节点的数据库,控制节点可以根据需要从第一数据库读取数据。并且,第一数据库起到了将内存中的瞬时数据保存到存储设备中,对配置信息的存储是持久化的,在LCP的进程关闭时第一数据库仍能够保存其中的配置信息。第一配置信息与构建第一拓扑相关,可以用于构建第一拓扑。
基于第一消息确定第一配置信息时,控制节点可以将第一消息携带的配置信息确定为第一配置信息,也可以根据第一消息携带的配置信息进一步处理得到第一配置信息。优选地,根据第一消息携带的配置信息,判断是否需要拉取第一消息的配置信息存在关联的配置信息,得到对应的判断结果,控制节点根据判断结果拉取对应的配置信息,确定第一配置信息。这里,可以从Redis集群中拉取关联的配置信息,Redis集群中可以存储有虚拟网络的全量配置信息,换句话说,Redis集群中可以存储有虚拟网络的所有的配置信息。
在确定出第一配置信息后,将确定出的第一配置信息存储至第一数据库,并将第一配置信息下发到数据平面。在实际应用中,控制节点可以将确定出的第一配置信息下发到数据平面的配置数据库。
这里,在判断是否需要从Redis集群拉取关联配置信息之前,控制节点可以在接收到第一消息后,可以根据第一消息的字段标识,判断本节点是否是第一消息的目标对象。在确定第一消息是发给本节点的消息之后,再进一步执行后续动作。
步骤303:在拉起第一进程的情况下,基于所述第一数据库中存储的配置信息构建第一拓扑。
其中,所述第一拓扑表征所述控制节点所处网络的拓扑;所述第一进程用于在所述控制节点的内存中运行本地控制平面。
在拉起用于在控制节点的内存中运行LCP的第一进程的情况下,控制节点从第一数据库中获取存储的配置信息,构建控制节点所处网络的第一拓扑。
在构建第一拓扑之后,控制节点继续通过LCP获取携带有构建第一拓扑相关的配置信息的第一消息。
需要说明的是,在步骤303之前,可以重复多次执行步骤301和步骤302的循环,也就是说,每当控制节点获取第一消息,便在第一数据库中存储第一消息对应的第一配置信息,第一数据库中存储有每次获取到的第一消息对应的第一配置信息,直到第一进程被拉起,基于存储有多个第一消息对应的第一配置信息的第一数据库,控制节点构建第一拓扑。因而,第一数据库中能够存储构建第一拓扑相关的所有配置信息。
在一些实施例中,所述方法还包括:
通过调用进程监听组件监听所述控制节点的进程,并在监听到所述第一进程挂掉的情况下拉起所述第一进程。
通过调用进程监听组件可以控制控制节点的进程,在一个进程意外被杀死的情况下,进程监听组件监听到进程死后,重新拉起进程,从而方便地实现进程恢复的功能,无须通过写shell脚本实现进程控制。其中,进程监听组件可以是Supervisor。
通常,本地控制平面在进入错误状态的情况下,运行LCP的进程异常退出(即进程挂掉),重新拉起第一进程,以实现从错误状态的恢复。这里,由于LCP的异常退出,缓存在LCP的拓扑消失,控制平面需要重新拉取消息构建拓扑,存在消耗大量***资源、耗时较长的问题,导致拓扑恢复的效率低。在本实施例中,将控制节点的配置信息存储至第一数据库,在拉起在控制节点的内存中运行的本地控制平面的进程的情况下,基于第一数据库存储的配置信息构建控制节点所处网络的拓扑,这样,控制节点无须消耗大量***资源重新进行拓扑计算,能够快速构建拓扑,从而从错误状态中快速恢复。
前文提及,控制节点根据判断结果拉取对应的配置信息,确定第一配置信息。在一些实施例中,所述基于所述第一消息确定第一配置信息,包括:
在需要从第三集群拉取第三配置信息的情况下,从所述第三集群拉取所述第三配置信息,并基于所述第一消息携带的配置信息和所述第三配置信息确定第一配置信息;其中,
所述第三集群表征用于存储配置信息的集群;所述第三配置信息表征所述所述第一消息携带的配置信息的关联配置信息。
控制节点在判断需要从第三集群拉取关联配置信息的情况下,向第三集群发送请求,接收到第三集群基于请求发送的与第一消息携带的配置信息关联的第三配置信息,控制节点基于第一消息携带的配置信息和第三配置信息确定第一配置信息。
这里,与第一配置消息关联的配置信息至少包括从第三集群中拉取的第三配置信息,也就是说,还可以是其它来源的配置信息,例如在控制节点的缓存中的配置信息。第三集群可以为Redis集群,可以存储有全量配置信息。
在一些实施例中,所述通过调用本地控制平面获取第一消息,包括:
通过调用本地控制平面从第一集群获取所述第一消息;所述第一集群表征用于存储配置信息的集群。
其中,LCP对应的控制平面架构中存在用于存储配置信息的第一集群。图1示出了一种控制平面架构的示意图,在这种控制平面架构中,第一集群可以是Kafka集群和/或Redis集群。
控制节点通过调用LCP,从控制平面架构中存储有配置信息的第一集群获取第一消息。
如图4所示出的控制平面恢复方法,应用于控制节点,包括:
步骤401:通过调用本地控制平面从第一集群获取所述第一消息。
其中,所述第一集群表征用于存储配置信息的集群。
通常,控制节点通过LCP获取第一消息的来源,包括但不限于以下至少之一:通过Kafka集群从装载有CCP的节点获取;从Redis集群获取。
优选地,第一集群为Kafka集群。
步骤402:基于所述第一消息确定第一配置信息,并将所述第一配置信息存储至第一数据库。
其中,步骤402与步骤302相同,实现过程请参照步骤302中的相关描述。
步骤403:在将所述第一配置信息下发至数据平面网元之后,通过调用所述本地控制平面向所述第一集群提交第一偏移量。
其中,所述第一偏移量表征在从所述第一集群获取所述第一消息时对所述第一集群消费到的偏移量。
在将第一配置信息存储至第一数据库之后,控制节点将第一配置信息下发至数据平面网元,控制节点通过调用本地控制平面向第一集群回写第一偏移量。其中,第一偏移量为控制节点本次从第一集群获取第一消息时,对第一集群消费到的偏移量。基于偏移量,控制节点能够确定下次消费获取消息时的起始位置。
这里,控制节点可以将第一配置信息下发至数据平面的配置数据库,数据平面的配置数据库可以是Cfgdb。
步骤404:在拉起第一进程的情况下,基于所述第一数据库中存储的配置信息构建第一拓扑。
其中,步骤404与步骤303相同,实现过程请参照步骤303中的相关描述。
在构建第一拓扑之后,控制节点继续通过LCP获取携带有构建第一拓扑相关的配置信息的第一消息。这里,控制节点基于第一集群的偏移量,确定下次消费获取消息时的起始位置,并基于确定出的起始位置继续消费。
在配置信息发往数据平面的过程中控制节点的LCP进程挂掉,配置信息未能在数据平面生效,但控制节点已经完成持久化,即第一配置信息已经存储至第一数据库,此时,控制节点的拓扑和数据平面的拓扑不一致。
在本实施例中,在将配置信息存储至第一数据库,且配置信息下发数据平面之后,控制节点再对Kafka集群回写消费信息的偏移量。若在配置信息发往数据平面的过程中控制节点的LCP进程挂掉,控制节点不会向Kafka集群回写本次消费信息的偏移量。在LCP进程重新拉起时,控制节点根据前次回写的偏移量从Kafka集群拉取数据,由于在配置信息发往数据平面的过程中LCP进程挂掉,Kafka集群的偏移量还未回写,即还是本次读取数据时的偏移量,控制节点拉取数据,相当于重新消费第一消息的数据、确定配置信息并完成对数据平面的下发,从而确保控制节点的拓扑和数据平面的拓扑一致。
在一些实施例中,在所述基于所述第一数据库中存储的配置信息构建第一拓扑之后,所述方法还包括:
基于第二配置信息和所述第一拓扑对应的配置信息确定比对结果;其中,
所述第二配置信息通过调用所述本地控制平面从第二集群拉取;所述第二集群表征用于存储配置信息的集群;所述比对结果用于评价所述第一拓扑。
在控制节点从第一数据库中获取存储的配置信息,构建控制节点所处网络的第一拓扑之后,进入从错误状态中恢复后的状态检查阶段。这里,基于从第二集群拉取的第二配置信息和构建第一拓扑对应的配置信息进行比对验证,基于比对结果判断构建的第一拓扑是否正确,从而判断拓扑是否正确恢复。
其中,第二集群可以是Redis集群。
在一些实施例中,所述将所述第一配置信息存储至第一数据库,包括:
将所述第一配置信息以至少一条第一记录的方式存储至第一数据库;其中,
每条第一记录用于描述所述控制节点所处网络中至少一个节点和对应的邻接节点。
基于第一配置信息,在第一数据库中写入至少一条第一记录,每条第一记录用于描述控制节点所处网络中至少一个节点的邻接节点。这里,第一数据库至少会记录如下表1中节点类型组成的邻接图。
这样,通过第一记录,将拓扑以邻接表形式保存至第一数据库中。会记录表中节点组成的邻接图。
在一些实施例中,所述第一数据库通过键值对进行数据存储,每个键值对表征所述控制节点所处网络中的一个节点和对应的邻接节点。
这里,第一数据库为Key-value数据库,即KV数据库。每条第一记录为键值对的形式,每个键为控制节点所处网络中的一个节点,与键对应的值为这个节点对应的邻接节点。
如图5示出的网络拓扑持久化模型的示意图,一些常见的网络可以保存成邻接矩阵形式,以无向无属性图的方式存储。在图5中,有3个节点单独构成3个连通图,表示全局配置变量,这3个节点是全局配置,没有和其他节点组成连通图。这3个节点(组件)是ENTITY_TYPE_DNS_TRANSPARENT_PROXY、ENTITY_TYPE_COMMON_GLOBAL、ENTITY_TYPE_VXLAN_CLUSTER。
表1保存节点类型
Figure BDA0003412506710000111
Figure BDA0003412506710000121
结合应用实施例对本申请再作进一步详细的描述。
控制节点的LCP为了快速存取数据,会在内存中缓存拓扑,但是在LCP异常退出并被重新拉起时,之前缓存在LCP的拓扑都将消失,控制平面需要重新构建拓扑,例如,1024节点的配置数据大概在700万条左右,重新构建拓扑需要计算海量的配置数据,存在消耗大量***资源、耗时较长的问题,导致拓扑恢复的效率低。如果LCP频繁启停,会影响整个控制平面***,导致私有云网络不能及时更新网络配置,对配置分发速度、规定时间内集群部署规模等***性能损耗极大。
常见的LCP异常退出场景,包括:因配置信息错误导致数据平面不接受,此时LCP会捕获下发配置异常并退出;因集群环境变化导致服务启停,此时LCP进程可能会被***杀死。
在本应用实施例中,通过使用KV数据库持久化本地控制平面的配置信息,避免上述场景中发生的资源消耗,提高了LCP拓扑恢复速度,实现本地控制平面从错误状态中的快速恢复;并且,在不能直接接触场景,如私有云的客户环境,在定位现场问题时,可以构建拓扑以辅助问题排查。具体的措施为:
1.本地控制平面拉取配置信息,根据配置信息构建拓扑,同时把配置信息存储至本地KV数据库;
2.本地控制平面遭遇错误时退出并重新拉起,并从本地KV数据库读取配置信息,构建拓扑;
3.本地控制平面正常拉取配置数据,进入错误恢复后的状态检查阶段。这里,基于从第二集群拉取的第二配置信息和构建第一拓扑对应的配置信息进行比对验证,判断构建的第一拓扑是否正确,从而判断拓扑是否正确恢复。
这里,KV数据库,指Key-value数据库,是一种以键值对存储数据的一种数据库,具有轻量化、高并发、高性能的特点。以MemcacheDB、Tokyo Tyrant、Redis、LevelDB为代表的key-value分布式存储,在上万并发连接下,支持高速查询。
其中,如图6示出的LCP的示意图,包括:
全同步触发器(Fullsync Trigger)。
Splitter:将Kafka消息或者Redis对象转换成内部的Domain Objects及引用关系。
调度器(Scheduler),根据Splitter输出的结果进行调度计算和拓扑发现,计算过程中会触发拓扑变更及Redis数据读取(从Redis读取的数据会经过Splitter转换成内部Domain Objects和关系)。调度器的输出为所有直接或间接变更的对象集合。
拓扑管理器(Topology Manager),负责与本地配置相关的拓扑结构的更新(包括节点与关系添加和删除),并提供拓扑查询接口。当有节点或者关系变更时,程序会基于该拓扑图运行图遍历算法。
调度策略管理器(Scheduling Policy Manager),被调度器使用,在调度器收到配置时,调用该策略管理器用于决定配置是否属于本地,以及是否需要再拉取与该配置关联的更多配置等。
配置分发器(Config Dispatcher),接收调度器产生的更新对象,并将不同的对象更新发送到不同的Application。
处理器(Handler),根据不同的配置类型,在收到调度触发的相应的配置更新后,进行数据结构转换等再处理(可能包含读取全局拓扑数据及内部缓存等),转发到ConfigDB。
性能收集/导出器(Metrics Collector/Exporter),记录本地的统计信息,以及统计和度量信息的导出。
命令行远程过程调用服务器(CLI RPC Server),支持RPC通信。
公共远程过程调用框架(Common RPC Framework),统一的RPC接口以提供对外数据访问接口。
本地命令行(Local CLI),通过RPC实现对LCP的数据访问(包括修改log level,以及运行时配置)。
管理端接口(Management Agent Interface),通过RPC接口与管理端进行交互。
其中,如图7示出的LCP调度算法的流程示意图,调度消息包括三种:增量更新、全量更新和删除操作,可以根据消息中的字段标识确定配置消息的类型,从而确定调度消息对应的配置信息的配置类型。如图7示出的LCP调度算法的流程示意图,对三种调度信息分别执行不同的判断:
1)增量更新。若配置信息不存在于本地缓存且属于本机,则转为从Redis拉取操作;若存在于本地缓存,则合并增量更新并计算拓扑变化。
2)全量更新。若配置信息不存在于本地缓存且属于本机,则保存到本地缓存,并判断是否拉取更多配置;若已存在于本地缓存,则忽略。
3)删除操作。计算受影响的关联配置并全部加入待删除列表。
LCP根据配置实体之间的引用关系建立拓扑图。有些引用关系的更新CCP会通过南向Kafka通知LCP;有些引用关系CCP只写入Redis,当有更新时,CCP并不会将这些更新通知LCP。据此,区分为显式引用关系及隐式引用关系:
显式引用:在配置消息中显式指定,有变化时MP/CCP会主动推送。
隐式引用:CCP根据显式引用生成,只存在Redis集群中,有变化时CCP不会主动推送。
任何两个配置实体之间的关系,又可以分为两种:
双向显式引用:两个实体之间任意一方都显式引用对方,比如VmPort与VsLink,VsLink与VrLink等。
单向显式引用:两个实体之间只有一方显式引用对方,比如VsLink与Dvs/Evs,VrLink与Dvr/Evr等。
在LCP的拓扑图中,任何两个配置实体建立/解除关系时,需要满足的规则和条件是:
只根据显式引用关系建立拓扑关联;
建立关系时至少有一个显式引用关系存在;
解除关系时不能有任何显式引用关系存在。
图8示出了一种配置实体之间的关系示意图,表示一个简单的拓扑结构的引用关系,实线箭头表示显式引用关系,虚线箭头表示隐式引用关系。
LCP在发生错误时重新恢复,需要能够构建发生错误前的拓扑。重新拉取消息构建拓扑存在耗时长,效率低的问题。在本应用实施例中,在恢复时从磁盘的KV数据库载入持久化的拓扑数据,这样可以快速高效省资源地恢复拓扑;此外在定位现场问题时,持久化的拓扑数据也能够辅助问题排查。
图9示出了本申请应用实施例提供的本地控制面持久化缓存的实现流程示意图,包括以下步骤:
步骤901:LCP从南向消息通道获取消息。
南向消息通道包括南向Kafka集群和/或Redis集群。
步骤902:LCP计算配置信息。
LCP调度处理,计算出拓扑关系,以及需要往数据平面的cfgdb数据库和持久化缓存中写入的数据
步骤903:持久化存储配置信息。
写入持久化缓存,写入KV数据库,落到硬盘。
考虑到将第一配置信息存储至KV数据库的持久化,对磁盘的读写会导致***性能降低,将持久化和消息处理分优先级来进行处理,处理新的Kafka消息优先级高于持久化任务,只有在LCP处于休息状态,即无待处理的新的Kafka消息时,进行持久化处理,可以保证消息快速处理。
并且,将持久化数据转为base64等压缩形式,对配置信息进行一个压缩处理,再进行存储,从而控制持久化占用的硬盘空间。
步骤904:将配置信息下发至数据平面。
步骤905:回写偏移量。
LCP确认成功下发至cfgdb数据库,且各个管理器处理结束后,回写南向Kafka集群的偏移量。
图10示出了本申请应用实施例提供的本地控制面的拓扑恢复的实现流程示意图,包括以下步骤:
步骤1001:监控进程,在挂掉时主动拉起。
Supervisor***监控进程,在发现LCP的进程挂掉,重新拉起LCP进程。
Supervisor,是Linux/Unix***下的一个进程管理工具,它可以很方便的监听、启动、停止、重启一个或多个进程。用Supervisor管理的进程,当一个进程意外被杀死,Supervisor监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本实现进程控制。
步骤1002:发送配置。
LCP从本地拓扑缓存,即KV数据库中获取所有拓扑相关配置信息进行恢复。
步骤1003:重新构造拓扑。
LCP根据持久化缓存重新构造拓扑。
步骤1004:继续消费Kafka集群
LCP重新从最后一次回写的偏移量offset处重新开始消费消息,消费的是LCP挂掉之前未消费的Kafka消息。
这里,LCP通过主动轮询方式从Kafka消费消息。
在本应用实施例中,提出了一种把控制平面分为中央控制平面CCP和本地控制平面LCP的新软件架构,这样,能够支持大规模虚拟网络场景,适用于大规模SDN环境的控制平面设计。并且,使用KV数据库持久化本地控制平面的配置信息,实现本地控制平面从错误状态中的快速恢复。
为实现本申请实施例的方法,本申请实施例还提供了一种控制平面恢复装置,如图11所示,应用于控制节点,该装置包括:
获取单元1101,用于通过调用本地控制平面获取第一消息;所述第一消息携带有构建第一拓扑相关的配置信息;
处理单元1102,用于基于所述第一消息确定第一配置信息,并将所述第一配置信息存储至第一数据库;
构建单元1103,用于在拉起第一进程的情况下,基于所述第一数据库中存储的配置信息构建第一拓扑;其中,
所述第一拓扑表征所述控制节点所处网络的拓扑;所述第一进程用于在所述控制节点的内存中运行本地控制平面。
其中,在一个实施例中,所述获取单元1101,用于:
通过调用本地控制平面从第一集群获取所述第一消息;所述第一集群表征用于存储配置信息的集群。
在一个实施例中,所述第一集群表征Kafka集群;所述装置还包括:
发送单元,用于在处理单元1102将所述第一配置信息存储至第一数据库之后,将所述第一配置信息下发至数据平面网元之后,通过调用所述本地控制平面向所述第一集群提交第一偏移量;其中,所述第一偏移量表征在从所述第一集群获取所述第一消息时对所述第一集群消费到的偏移量。
在一个实施例中,所述装置还包括:
比对单元,用于在构建单元1103基于所述第一数据库中存储的配置信息构建第一拓扑之后,基于第二配置信息和所述第一拓扑对应的配置信息确定比对结果;其中,所述第二配置信息通过调用所述本地控制平面从第二集群拉取;所述第二集群表征用于存储配置信息的集群;所述比对结果用于评价所述第一拓扑。
在一个实施例中,所述装置还包括:
监听单元,用于通过调用进程监听组件监听所述控制节点的进程,并在监听到所述第一进程挂掉的情况下拉起所述第一进程。
在一个实施例中,所述处理单元1102,用于:
将所述第一配置信息以至少一条第一记录的方式存储至第一数据库;其中,
每条第一记录用于描述所述控制节点所处网络中至少一个节点和对应的邻接节点。
在一个实施例中,所述第一数据库通过键值对进行数据存储,每个键值对表征所述控制节点所处网络中的一个节点和对应的邻接节点。
在一个实施例中,所述处理单元1102,用于:
在需要从第三集群拉取第三配置信息的情况下,从所述第三集群拉取所述第三配置信息,并基于所述第一消息携带的配置信息和所述第三配置信息确定第一配置信息;其中,
所述第三集群表征用于存储配置信息的集群;所述第三配置信息表征所述所述第一消息携带的配置信息的关联配置信息。
实际应用时,所述发送单元可由基于控制平面恢复装置中的通信接口实现,所述构建单元1103、所述比对单元、所述监听单元可由基于控制平面恢复装置中的处理器实现,所述获取单元1101、所述处理单元1102可由基于控制平面恢复装置中的处理器结合通信接口实现。
需要说明的是:上述实施例提供的控制平面恢复装置在进行控制平面恢复时,仅以上述各程序模块的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的程序模块完成,即将装置的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分处理。另外,上述实施例提供的控制平面恢复装置与控制平面恢复方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
基于上述程序模块的硬件实现,且为了实现本申请实施例控制平面恢复方法,本申请实施例还提供了一种控制节点。图12为本申请实施例控制节点的硬件组成结构示意图,如图12所示,控制节点包括:
通信接口1,能够与其它设备比如网络设备等进行信息交互;
处理器2,与通信接口1连接,以实现与其它设备进行信息交互,用于运行计算机程序时,执行上述一个或多个技术方案提供的方法。而所述计算机程序存储在存储器3上。
当然,实际应用时,控制节点中的各个组件通过总线***4耦合在一起。可理解,总线***4用于实现这些组件之间的连接通信。总线***4除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图12中将各种总线都标为总线***4。
本发明实施例中的存储器3用于存储各种类型的数据以支持控制节点的操作。这些数据的示例包括:用于在控制节点上操作的任何计算机程序。
可以理解,存储器3可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic random access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random AccessMemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,SynchronousDynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本发明实施例描述的存储器2旨在包括但不限于这些和任意其它适合类型的存储器。
上述本发明实施例揭示的方法可以应用于处理器2中,或者由处理器2实现。处理器2可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器2中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器2可以是通用处理器、DSP,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器2可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器3,处理器2读取存储器3中的程序,结合其硬件完成前述方法的步骤。
处理器2执行所述程序时实现本发明实施例的各个方法中的相应流程,为了简洁,在此不再赘述。
在示例性实施例中,本发明实施例还提供了一种存储介质,即计算机存储介质,具体为计算机可读存储介质,例如包括存储计算机程序的存储器3,上述计算机程序可由处理器2执行,以完成前述方法所述步骤。计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、Flash Memory、磁表面存储器、光盘、或CD-ROM等存储器。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置、控制节点和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个***,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,本申请实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。除非另有说明和限定,术语“连接”应做广义理解,例如,可以是电连接,也可以是两个元件内部的连通,可以是直接相连,也可以通过中间媒介间接相连,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
另外,在本申请实例中,“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解“第一\第二\第三”区分的对象在适当情况下可以互换,以使这里描述的本申请的实施例可以除了在这里图示或描述的那些以外的顺序实施。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一个”表示多个中的任意一个或多个中的至少两个的任意组合,例如,包括A、B、C中的至少一个,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
在具体实施方式中所描述的各个实施例中的各个具体技术特征,在不矛盾的情况下,可以进行各种组合,例如通过不同的具体技术特征的组合可以形成不同的实施方式,为了避免不必要的重复,本申请中各个具体技术特征的各种可能的组合方式不再另行说明。

Claims (11)

1.一种控制平面恢复方法,其特征在于,应用于控制节点,所述方法包括:
通过调用本地控制平面获取第一消息;所述第一消息携带有构建第一拓扑相关的配置信息;
基于所述第一消息确定第一配置信息,并将所述第一配置信息存储至第一数据库;
在拉起第一进程的情况下,基于所述第一数据库中存储的配置信息构建第一拓扑;其中,
所述第一拓扑表征所述控制节点所处网络的拓扑;所述第一进程用于在所述控制节点的内存中运行本地控制平面。
2.根据权利要求1所述的方法,其特征在于,所述通过调用本地控制平面获取第一消息,包括:
通过调用本地控制平面从第一集群获取所述第一消息;所述第一集群表征用于存储配置信息的集群。
3.根据权利要求2所述的方法,其特征在于,所述第一集群表征Kafka集群;在所述将所述第一配置信息存储至第一数据库之后,所述方法还包括:
在将所述第一配置信息下发至数据平面网元之后,通过调用所述本地控制平面向所述第一集群提交第一偏移量;其中,
所述第一偏移量表征在从所述第一集群获取所述第一消息时对所述第一集群消费到的偏移量。
4.根据权利要求1所述的方法,其特征在于,在所述基于所述第一数据库中存储的配置信息构建第一拓扑之后,所述方法还包括:
基于第二配置信息和所述第一拓扑对应的配置信息确定比对结果;其中,
所述第二配置信息通过调用所述本地控制平面从第二集群拉取;所述第二集群表征用于存储配置信息的集群;所述比对结果用于评价所述第一拓扑。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过调用进程监听组件监听所述控制节点的进程,并在监听到所述第一进程挂掉的情况下拉起所述第一进程。
6.根据权利要求1所述的方法,其特征在于,所述将所述第一配置信息存储至第一数据库,包括:
将所述第一配置信息以至少一条第一记录的方式存储至第一数据库;其中,
每条第一记录用于描述所述控制节点所处网络中至少一个节点和对应的邻接节点。
7.根据权利要求6所述的方法,其特征在于,所述第一数据库通过键值对进行数据存储,每个键值对表征所述控制节点所处网络中的一个节点和对应的邻接节点。
8.根据权利要求1所述的方法,其特征在于,所述基于所述第一消息确定第一配置信息,包括:
在需要从第三集群拉取第三配置信息的情况下,从所述第三集群拉取所述第三配置信息,并基于所述第一消息携带的配置信息和所述第三配置信息确定第一配置信息;其中,
所述第三集群表征用于存储配置信息的集群;所述第三配置信息表征所述所述第一消息携带的配置信息的关联配置信息。
9.一种控制平面恢复装置,其特征在于,包括:
获取单元,用于通过调用本地控制平面获取第一消息;所述第一消息携带有构建第一拓扑相关的配置信息;
处理单元,用于基于所述第一消息确定第一配置信息,并将所述第一配置信息存储至第一数据库;
构建单元,用于在拉起第一进程的情况下,基于所述第一数据库中存储的配置信息构建第一拓扑;其中,
所述第一拓扑表征所述控制节点所处网络的拓扑;所述第一进程用于在所述控制节点的内存中运行本地控制平面。
10.一种控制节点,其特征在于,包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器,
其中,所述处理器用于运行所述计算机程序时,执行权利要求1至8任一项所述的控制平面恢复方法的步骤。
11.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8任一项所述的控制平面恢复方法的步骤。
CN202111535618.4A 2021-12-15 2021-12-15 控制平面恢复方法、装置、控制节点及存储介质 Active CN114500289B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111535618.4A CN114500289B (zh) 2021-12-15 2021-12-15 控制平面恢复方法、装置、控制节点及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111535618.4A CN114500289B (zh) 2021-12-15 2021-12-15 控制平面恢复方法、装置、控制节点及存储介质

Publications (2)

Publication Number Publication Date
CN114500289A true CN114500289A (zh) 2022-05-13
CN114500289B CN114500289B (zh) 2023-12-29

Family

ID=81493224

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111535618.4A Active CN114500289B (zh) 2021-12-15 2021-12-15 控制平面恢复方法、装置、控制节点及存储介质

Country Status (1)

Country Link
CN (1) CN114500289B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115085767A (zh) * 2022-07-21 2022-09-20 北京智芯微电子科技有限公司 基于hplc通信的恢复组网方法、装置及设备

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014166399A1 (en) * 2013-04-10 2014-10-16 Huawei Technologies Co., Ltd. System and method for a control plane reference model framework
US20150066560A1 (en) * 2013-08-27 2015-03-05 Connectloud, Inc. Method and apparatus for managing multi-vendor infrastructure for software defined clouds through abstracted control planes
KR101600295B1 (ko) * 2015-01-06 2016-03-21 한국인터넷진흥원 개인화된 접속주기 전체 이용행위 패턴분석을 이용한 비정상 행위 탐지시스템
US20180041380A1 (en) * 2015-04-17 2018-02-08 Huawei Technologies Co., Ltd. Failure Recovery Method and Apparatus for Virtual Network
US20180300203A1 (en) * 2017-04-18 2018-10-18 Netapp, Inc. Systems and methods for backup and restore of distributed master-slave database clusters
CN109257235A (zh) * 2018-11-12 2019-01-22 深信服科技股份有限公司 网络异常恢复方法、装置、设备及计算机可读存储介质
CN109905275A (zh) * 2019-01-28 2019-06-18 华南理工大学 一种基于sdn分层架构的控制平面故障检测与处理方法
CN111565113A (zh) * 2019-02-13 2020-08-21 烽火通信科技股份有限公司 用于sdn控制器的灵活以太网网络拓扑抽象方法及***
CN113055203A (zh) * 2019-12-26 2021-06-29 ***通信集团重庆有限公司 Sdn控制平面的异常恢复方法及装置
CN113537937A (zh) * 2021-07-16 2021-10-22 重庆富民银行股份有限公司 基于拓扑排序的任务编排方法、装置、设备及存储介质

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014166399A1 (en) * 2013-04-10 2014-10-16 Huawei Technologies Co., Ltd. System and method for a control plane reference model framework
US20150066560A1 (en) * 2013-08-27 2015-03-05 Connectloud, Inc. Method and apparatus for managing multi-vendor infrastructure for software defined clouds through abstracted control planes
KR101600295B1 (ko) * 2015-01-06 2016-03-21 한국인터넷진흥원 개인화된 접속주기 전체 이용행위 패턴분석을 이용한 비정상 행위 탐지시스템
US20180041380A1 (en) * 2015-04-17 2018-02-08 Huawei Technologies Co., Ltd. Failure Recovery Method and Apparatus for Virtual Network
US20180300203A1 (en) * 2017-04-18 2018-10-18 Netapp, Inc. Systems and methods for backup and restore of distributed master-slave database clusters
CN109257235A (zh) * 2018-11-12 2019-01-22 深信服科技股份有限公司 网络异常恢复方法、装置、设备及计算机可读存储介质
CN109905275A (zh) * 2019-01-28 2019-06-18 华南理工大学 一种基于sdn分层架构的控制平面故障检测与处理方法
CN111565113A (zh) * 2019-02-13 2020-08-21 烽火通信科技股份有限公司 用于sdn控制器的灵活以太网网络拓扑抽象方法及***
CN113055203A (zh) * 2019-12-26 2021-06-29 ***通信集团重庆有限公司 Sdn控制平面的异常恢复方法及装置
CN113537937A (zh) * 2021-07-16 2021-10-22 重庆富民银行股份有限公司 基于拓扑排序的任务编排方法、装置、设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
向波;俞黎阳;: "SDN多控制器容错机制的研究与设计", 计算机工程与应用, no. 23 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115085767A (zh) * 2022-07-21 2022-09-20 北京智芯微电子科技有限公司 基于hplc通信的恢复组网方法、装置及设备

Also Published As

Publication number Publication date
CN114500289B (zh) 2023-12-29

Similar Documents

Publication Publication Date Title
US11360854B2 (en) Storage cluster configuration change method, storage cluster, and computer system
CN111581284B (zh) 一种数据库高可用性方法、装置、***和存储介质
CN105703940B (zh) 一种面向多级调度分布式并行计算的监控***及监控方法
US8108623B2 (en) Poll based cache event notifications in a distributed cache
CN105493474B (zh) 用于支持用于同步分布式数据网格中的数据的分区级别日志的***及方法
CN112131237B (zh) 数据同步方法、装置、设备及计算机可读介质
US9367261B2 (en) Computer system, data management method and data management program
CN113010565B (zh) 基于服务器集群的服务器实时数据处理方法及***
CN107943618B (zh) 仿真***的数据快速恢复方法及存储介质
CN109639773A (zh) 一种动态构建的分布式数据集群控制***及其方法
CN114064414A (zh) 一种高可用的集群状态监控方法及***
CN114500257B (zh) 网络配置分发方法、装置、控制节点及存储介质
CN114900449B (zh) 一种资源信息管理方法、***及装置
CN115292408A (zh) MySQL数据库的主从同步方法、装置、设备及介质
CN114500289B (zh) 控制平面恢复方法、装置、控制节点及存储介质
CN114422336B (zh) 控制平面调试方法、装置、节点及存储介质
CN112711606A (zh) 数据库访问方法、装置、计算机设备和存储介质
CN116467275A (zh) 共享远程存储方法、装置、***、电子设备及存储介质
CN113609091B (zh) 日志管理方法、装置、设备及存储介质
CN112948377A (zh) 数据的存储方法、装置、电子设备及计算机可读介质
CN114422280B (zh) 网络部署方法、装置、节点及存储介质
CN108614873B (zh) 一种数据处理方法及装置
CN111400271A (zh) 一种在hdfs插件中集成nfs的方法
Eberhardt et al. Smac: State management for geo-distributed containers
CN112100283B (zh) 一种基于Linux平台的安卓虚拟机的分时复用方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant