1.本文涉及通信技术领域,尤其涉及一种分布式管控方法及系统。
背景技术:2.目前为实现多地域的网络通信,均采用客户前置设备(cpe,customer premise equipment)、局端的入网点(point-of-presence,pop)以及控制器搭建组网环境,其中cpe或pop设备用于用户终端网络数据的转发,控制器用于对cpe或pop设备进行管控(例如下发配置等)。由于cpe或pop设备分布在多个地域,因此如何部署控制器以及如何通过控制器对不同地域的cpe或pop设备进行管控,从而确保多地域正常的网络通信是本领域密切关注的问题。
3.现有技术中通常有一个控制器对多地域的cpe或pop设备进行管控,当该控制器故障时,所有cpe或pop设备失去管控,接收不到后续控制指令,则只能维持失联前的最后状态,甚至无法正常工作。
4.针对上述问题,部分厂商通过分域控制器来应对该问题。将所有cpe或pop设备按一定维度(如所在地域)划分为多个域,每个域部署一套控制器,即为域控制器。
5.每个域控制器只管控该域内的cpe或pop设备,由于某些业务会涉及到不同域的cpe或pop设备(例如跨域 cpe 之间建立网络隧道连接)之间的协作,所以一般会在各个域控制器之上增加一套超级控制器,由超级控制器协调处理跨域的业务。
6.但分域控制器的方案引入多个控制器,使得某个区域控制器故障时,只影响一部分的cpe或pop设备,这一定程度上降低了区域故障带来的整体影响,但这些受影响的cpe或pop设备 依然失去了管控。该方案整体上是对各控制器的职责做了静态划分,相互之间没有交叉重叠,也即当某个控制器故障后,没有其他控制器能够接管其职责。
7.现在亟需一种分布式管控方法,从而解决现有技术中分域控制器的方案中的某个控制器故障后,没有其他控制器能够接管其职责,导致故障控制器下的cpe或pop设备失去管控,接收不到后续控制指令,则只能维持失联前的最后状态,甚至无法正常工作的问题。
技术实现要素:8.为解决现有技术中分域控制器的方案中的某个控制器故障后,没有其他控制器能够接管其职责,导致故障控制器下的cpe或pop设备失去管控,接收不到后续控制指令,则只能维持失联前的最后状态,甚至无法正常工作的问题,本文实施例提供了一种分布式管控方法及系统,实现了分布式控制器协商对多地域的cpe或pop设备进行管控。
9.为了解决上述技术问题,本文的具体技术方案如下:一方面,本文实施例提供了一种分布式管控方法,包括,多个控制器根据触发机制对每一控制器对应的管控范围按照第一共识算法进行共识验证,得到每一控制器的第一管控范围,所述第一管控范围包括接入所述控制器的多个目标网络设备;
每个控制器根据所述第一管控范围对所述多个目标网络设备进行管控。
10.进一步地,多个控制器对每一控制器对应的管控范围按照第一共识算法进行共识验证进一步包括,所述多个控制器进行选举,得出领导者控制器和跟随者控制器;每一控制器对自身的管控范围生成提案,所述提案包括所述管控范围的数据;所述领导者控制器确认所述提案后,将所述提案存储在自身的存储区内,并将所述提案广播到所述跟随者控制器;所述跟随者控制器将所述提案存储在自身的存储区内。
11.进一步地,触发机制包括定时触发、故障触发和/或增删控制器触发。
12.进一步地,当所述触发机制为故障触发时,所述方法还包括,故障的控制器控制的所述目标网络设备接入未发生故障的多个控制器;未发生故障的多个控制器对每一未发生故障的控制器对应的管控范围按照第一共识算法进行共识验证,得到每一未发生故障的控制器的第二管控范围,所述第二管控范围包括接入未发生故障的控制器的多个目标网络设备;每个未发生故障的控制器根据所述第二管控范围对所述多个目标网络设备进行管控。
13.进一步地,目标网络设备接入控制器的步骤进一步包括,所述目标网络设备按照接入策略接入所述控制器。
14.进一步地,所述接入策略包括,所述目标网络设备以接入控制器的延时是否小于阈值为接入条件,接入所述控制器;和/或,所述目标网络设备按照各控制器的负载均衡情况接入所述控制器;和/或,所述目标网络设备以接入控制器的网络丢包率最小为接入条件,接入所述控制器;和/或,所述目标网络设备按照预定的接入配置,接入所述控制器。
15.进一步地,所述多个目标网络设备被用户部署于多个区域内,所述控制器分布在对应的所述区域内;多个所述控制器根据所述第一管控范围对所述多个目标网络设备进行管控进一步包括,多个所述控制器根据所述用户对目标网络设备的部署情况以及第二共识算法选举出所述用户的主控制器;所述主控制器对所述用户的目标网络设备进行管控,其中包括:所述主控制器对相应的第一管控范围内所述用户部署的目标网络设备进行管控;所述主控制器还通过另一控制器对该另一控制器的第一管控范围内的由所述用户部署的目标网络设备进行管控。
16.进一步地,根据所述用户的组网情况,从多个所述控制器中确定每个所述用户的主控制器进一步包括,分别在所述区域内,确定所述用户部署的所述目标网络设备的数量,以使多个所述控制器根据所述目标网络设备的数量以及所述第二共识算法选举出所述用户的主控制
器;或,根据所述用户的主营业务的总服务器所在的位置确定所述用户的主控制器。
17.进一步地,多个所述控制器根据所述网络设备的数量以及所述第二共识算法选举出所述用户的主控制器进一步包括,所述多个控制器以所述用户在某个区域中的所述目标网络设备的数量进行投票,从多个控制器中选举出所述主控制器。
18.进一步地,在多个所述控制器通过所述第二共识算法选举出所述用户的主控制器的步骤中,所述方法还包括,多个所述控制器通过所述第二共识算法选举出所述用户的备控制器;在所述主控制器对所述用户的目标网络设备进行管控的过程中,所述方法还包括,所述主控制器向所述备控制器同步管控数据,以便于当所述触发机制为故障触发且故障的控制器为所述用户的主控制器时,所述备控制器实现所述主控制器的功能。
19.进一步地,当所述备控制器为多个时,所述备控制器实现所述主控制器的功能进一步包括,未发生故障的多个控制器通过所述第二共识算法在所述备控制器中重新选举出所述用户的主控制器;重新选举的主控制器实现未发生故障前的所述主控制器的功能。
20.进一步地,在未发生故障的多个所述控制器通过所述第二共识算法在所述备控制器中重新选举出所述用户的主控制器的步骤中,所述方法还包括,未发生故障的多个控制器通过所述第二共识算法重新选举出所述用户的备控制器。
21.进一步地,多个控制器根据触发机制对每一控制器对应的管控范围按照第一共识算法进行共识验证,得到每一控制器的第一管控范围之后,所述方法还包括,多个控制器分别存储每个控制器的第一管控范围;每个所述控制器根据所述第一管控范围对所述多个目标网络设备进行管控进一步包括,当所述控制器接收到所述目标网络设备的管控消息后,判断所述目标网络设备是否属于自身的第一管控范围;若否,则所述控制器根据存储的所述每个控制器的第一管控范围,将所述管控消息转发至所述目标网络设备对应的控制器。
22.基于同一发明构思,本文实施例还提供了一种分布式管控系统,包括,多个目标网络设备和多个控制器;所述多个控制器对所述多个目标网络设备进行管控时,执行如上述所述的方法。
23.另一方面,本文实施例还提供了一种计算机设备,包括存储器、处理器、以及存储在存储器上的计算机程序,处理器执行所述计算机程序时实现上述所述的分布式管控方法。
24.最后,本文实施例还提供了一种计算机存储介质,其上存储有计算机程序,计算机程序被计算机设备的处理器运行时,执行上述所述的分布式管控方法。
25.利用本文实施例,目标网络设备可以为cpe或pop设备,多个目标网络设备接入多
个控制器后,每一控制器均将接入自身的目标网络设备作为自身的管控范围,但为了保证目标网络设备不会被多个控制器管控,也不会没有控制器管控该目标网络设备,因此多个控制器根据触发机制对每一控制器对应的管控范围按照第一共识算法进行共识验证,共识通过后,得到每一控制器的第一管控范围,最后每个控制器根据各自的第一管控范围对目标网络设备进行管控,由于每个控制器的第一管控范围是多个控制器经过共识后得到的,从而避免了目标网络设备被多个控制器管控,也不会出现没有控制器管控该目标网络设备的情况。且由于多个控制器根据触发机制对每一控制器对应的管控范围按照第一共识算法进行共识验证,因此,当新的目标网络设备接入控制器或已有的目标网络设备重新选择接入的控制器时,根据触发机制,多个目标网络设备重新对每一控制器当前的管控范围按照第一共识算法进行共识验证,从而实现了当接入控制器的目标网络设备发生变化后,多个控制器仍能够重新对每一控制器对应的管控范围按照第一共识算法进行共识验证,再次得到每一控制器的第一管控范围,从而确保接入发生变化的目标网络设备仍可以被指定的一个控制器管控。与现有技术中分域控制器的方案相比,解决了某个控制器故障后,没有其他控制器能够接管其职责,导致故障控制器下的cpe或pop设备失去管控,接收不到后续控制指令,则只能维持失联前的最后状态,甚至无法正常工作的问题。
附图说明
26.为了更清楚地说明本文实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本文的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
27.图1所示为本文实施例一种分布式管控方法的实施系统示意图;图2所示为本文实施例一种分布式管控方法的流程图;图3所示为本文实施例多个控制器对每一控制器对应的管控范围按照第一共识算法进行共识验证的步骤;图4所示为本文实施例当某个控制器发生故障后,未发生故障的多个控制器确定每一未发生故障的控制器的第二管控范围的过程;图5所示为本文实施例多个所述控制器根据所述第一管控范围对所述多个目标网络设备进行管控的步骤;图6所示为本文实施例当用户的主控制器对应的物理控制器故障后,重新选举该用户的主控制器的过程;图7所示为本文实施例计算机设备的结构示意图。
28.【附图标记说明】:101、目标网络设备群;102、控制器;702、计算机设备;704、处理设备;706、存储资源;708、驱动机构;
710、输入/输出模块;712、输入设备;714、输出设备;716、呈现设备;718、图形用户接口;720、网络接口;722、通信链路;724、通信总线。
具体实施方式
29.下面将结合本文实施例中的附图,对本文实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本文一部分实施例,而不是全部的实施例。基于本文中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本文保护的范围。
30.需要说明的是,本文的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本文的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、装置、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
31.需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
32.如图1所示为本文实施例一种分布式管控方法的实施系统示意图,可以包括:多个目标网络设备群101以及多个控制器102,目标网络设备群101中包括多个用户的目标网络设备,目标网络设备可以为cpe或pop设备,在一个目标网络设备群101所在的区域内,部署一个控制器102,控制器102对目标网络设备群101中的目标网络设备进行管控。目标网络设备群101中的目标网络设备与任意一个控制器102之间均可以通过网络进行通信,此外,多个控制器102之间也可以通过网络进行通信,网络可以包括局域网(local area network,简称为lan)、广域网(wide area network,简称为wan)、因特网或其组合,并连接至网站、用户设备(例如计算设备)和后端系统。
33.目标网络设备群101中的任意一个目标网络设备均可以选择接入的控制器102,当目标网络设备接入控制器102后,形成该控制器102 的管控范围,即管控范围中包括接入该控制器102的目标网络设备,控制器102对自己管控范围内的目标网络设备进行管控。控制器102上部署有目标网络设备的管控系统。可选地,控制器102可以是云计算系统的节点(图中未显示),或者每个服务器可以是单独的云计算系统,包括由网络互连并作为分布式处理系统工作的多台计算机。
34.由于目标网络设备群101中的任意一个目标网络设备可以选择接入的控制器102,
即一个区域内的目标网络设备可以接入到其他区域的控制器102,因此为了避免出现一个目标网络设备被多个控制器102管控的情况想,现有技术中在多个控制器102之上再部署一个中心化的总控制器,通过部署的总控制器对每个控制器102管控的目标网络设备进行分配,若某个控制器102出现故障,则总控制器需要将该出现故障的控制器102所管控的目标网络设备分配给其他未发生故障的控制器102进行管控,但若总控制器也出现故障,则这些目标网络设备将不能被重新分配控制器102,导致目标网络设备失去管控,在一些其他应用场景中,总控制器只做跨域业务到的处理,不能将这些目标网络设备分配到其他的控制器。
35.针对现有的目标网络设备的管控技术中存在的问题,本文实施例提供了一种分布式管控方法,摒弃了通过中心化的总控制器为每个目标网络设备分配控制器的方法。图2所示为本文实施例一种分布式管控方法的流程图。在本图中描述了通过控制器对目标网络设备进行管控的过程,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或装置产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行。具体的如图2所示,所述方法可以包括:步骤201:多个控制器根据触发机制对每一控制器对应的管控范围按照第一共识算法进行共识验证,得到每一控制器的第一管控范围,所述第一管控范围包括接入所述控制器的多个目标网络设备;步骤202:每个控制器根据所述第一管控范围对所述多个目标网络设备进行管控。
36.通过本文实施例的方法,多个目标网络设备接入多个控制器后,每一控制器均将接入自身的目标网络设备作为自身的管控范围,但为了保证目标网络设备不会被多个控制器管控,也不会没有控制器管控该目标网络设备,因此多个控制器根据触发机制对每一控制器对应的管控范围按照第一共识算法进行共识验证,共识通过后,得到每一控制器的第一管控范围,最后每个控制器根据各自的第一管控范围对目标网络设备进行管控,由于每个控制器的第一管控范围是多个控制器经过共识后得到的,从而避免了目标网络设备被多个控制器管控,也不会出现没有控制器管控该目标网络设备的情况。且由于多个控制器根据触发机制对每一控制器对应的管控范围按照第一共识算法进行共识验证,因此,当新的目标网络设备接入控制器或已有的目标网络设备重新选择接入的控制器时,根据触发机制,多个目标网络设备重新对每一控制器当前的管控范围按照第一共识算法进行共识验证,从而实现了当接入控制器的目标网络设备发生变化后,多个控制器仍能够重新对每一控制器对应的管控范围按照第一共识算法进行共识验证,再次得到每一控制器的第一管控范围,从而确保接入发生变化的目标网络设备仍可以被指定的一个控制器管控。与现有技术中分域控制器的方案相比,解决了某个控制器故障后,没有其他控制器能够接管其职责,导致故障控制器下的cpe或pop设备失去管控,接收不到后续控制指令,则只能维持失联前的最后状态,甚至无法正常工作的问题。
37.在本文实施例中,目标网络设备可以为cpe或pop设备。目标网络设备主动接入控制器,目标网络设备接入控制器后,形成该控制器的管控范围,但该管控范围仅仅是基于目标网络设备的接入形成的,可能有些目标网络设备接入的控制器当前的负载较高,则需要将该目标网络设备的分配到其他负载较低的控制器上,因此,多个控制器需要对每一控制器对应的管控范围按照第一共识算法进行共识验证,多个控制器达成一致后,在确定每一
控制器的第一管控范围。需要说明的是,该控制器的管控范围可以包括多个用户的多个目标网络设备,可以理解为,该控制器可以是一台物理控制器,物理控制器对自己的第一管控范围内的多个用户的目标网络设备进行管控,例如,用户a需要对自己的目标网络设备1下发配置,则管控该目标网络设备1的控制器在自己的第一管控范围内确定用户a的目标网络设备1,并向目标网络设备1下发配置。
38.在实际实施时,用户可以在一个web页面上对自己的目标网络设备进行配置,该web页面可以连接到所有的控制器,用户在web页面上登录自己的账号,然后web页面向各控制器获取每一控制器的第一管控范围,然后通过用户信息对第一管控范围内的目标网络设备进行过滤,得到该用户的全部目标网络设备,然后用户选择要下发配置的目标网络设备,然后管控该目标网络设备的控制器向该目标网络设备下发配置。对于用户来说,不需要知道自己的目标网络设备被哪个控制器管控,提升了用户的使用便利性。
39.在本文实施例中,多个控制器可以通过现有的共识算法对每一控制器对应的管控范围按照第一共识算法进行共识验证,优选地,为了提高共识的效率,根据本文的一个实施例,如图3所示,步骤201中多个控制器对每一控制器对应的管控范围按照第一共识算法进行共识验证的步骤进一步包括,步骤301:所述多个控制器进行选举,得出领导者控制器和跟随者控制器;步骤302:每一控制器对自身的管控范围生成提案,所述提案包括所述管控范围的数据;步骤303:所述领导者控制器确认所述提案后,将所述提案存储在自身的存储区内,并将所述提案广播到所述跟随者控制器;步骤304:所述跟随者控制器将所述提案存储在自身的存储区内。
40.在本文实施例中,管控范围的数据可以是管控范围到的哈希值,此外也可以是管控范围的其他数字化表现形式,在本说明书中不做限制。多个控制器可以根据算力进行投票选举,得出领导者控制器和跟随者控制器,然后每一控制器对又接入该控制器的目标网络设备形成的管控范围进行提案,然后由领导者控制器对每一控制器的提案进行确认并将提案存储在自身的存储区内,然后领导者控制器将提案广播给跟随者控制器,跟随者控制器将提案存储在自身的存储区内,完成共识验证。可以理解为,领导者控制器和跟随者控制器均存储了每一控制器的第一管控范围,因此,根据本文的一个实施例,多个控制器根据触发机制对每一控制器对应的管控范围按照第一共识算法进行共识验证,得到每一控制器的第一管控范围之后,所述方法还包括,多个控制器分别存储每个控制器的第一管控范围;每个所述控制器根据所述第一管控范围对所述多个目标网络设备进行管控进一步包括,当所述控制器接收到所述目标网络设备的管控消息后,判断所述目标网络设备是否属于自身的第一管控范围;若否,则所述控制器根据存储的所述每个控制器的第一管控范围,将所述管控消息转发至所述目标网络设备对应的控制器。
41.在本文实施例中,控制器需要存储其他控制器的第一管控范围,当某一控制器接收到其他控制器对应的第一管控范围内的目标网络设备的管控消息后,根据自身存储的每一控制器的第一管控范围,该管控消息转发至相应的控制器。
42.根据本文的一个实施例,步骤201所述的触发机制可以包括定时触发、故障触发和/或增删控制器触发。
43.可以理解为,定时触发可以通过配置定时器的方式实现,当定时时间到达时,多个控制器再次根据当前接入的目标网络设备的情况生成提案,然后多个控制器对每一控制器的管控范围按照第一共识算法进行共识验证,再次得到每一控制器的第一管控范围,从而解决了当新的目标网络设备接入控制器后,无法被管控的问题。
44.进一步地,当新接入的目标网络设备过多时,可能导致目前部署的控制器的负荷过高,因此,可以根据新接入的目标网络设备的数量增加新的控制器,在一些其他应用场景中,还可以主动将某个控制器下线换或删除,因此。当增加新的控制器或删除某个控制器时,多个控制器再次对每一控制器对应的管控范围按照第一共识算法进行共识验证,从而重新得到每一控制器的第一管控范围。每个控制器根据重新得到的第一管控范围对多个目标网络设备进行管控。
45.此外,为了解决现有技术中当某个控制器故障后,该故障的控制器所控制的目标网络设备不能被管控的问题,触发机制还可以包括故障触发,根据本文的一个实施例,如图4所示,当某个控制器发生故障后,本文实施例所述的分布式管控方法还包括:步骤401:故障的控制器控制的所述目标网络设备接入未发生故障的多个控制器;步骤402:未发生故障的多个控制器对每一未发生故障的控制器对应的管控范围按照第一共识算法进行共识验证,得到每一未发生故障的控制器的第二管控范围,所述第二管控范围包括接入未发生故障的控制器的多个目标网络设备;步骤403:每个未发生故障的控制器根据所述第二管控范围对所述多个目标网络设备进行管控。
46.在本文实施例中,当某个控制器发生故障后,该故障的控制器所控制的目标网络设备将接入到其他未发生故障的控制器,然后未发生故障的多个控制器再次对每一控制器对应的管控范围按照第一共识算法进行共识验证,从而得到每一控制器的第二管控范围。每个控制器根据得到的第二管控范围对多个目标网络设备进行管控,从而解决现有技术中当某个控制器故障后,该故障控制器所控制器的目标网络设备不能被管控的问题。
47.根据本文的一个实施例,为了便于目标网络设备选择接入的控制器,目标网络设备接入控制器的步骤进一步包括,所述目标网络设备按照接入策略接入所述控制器。
48.在本发明实施例中,目标网络设备按照接入策略接入控制器,相比于目标网络设备随机地接入控制器的方法,能够好地对目标网络设备进行管控。
49.根据本发明的一个实施例,所述接入策略包括,所述目标网络设备以接入控制器的延时是否小于阈值为接入条件,接入所述控制器;和/或,所述目标网络设备按照各控制器的负载均衡情况接入所述控制器;和/或,所述目标网络设备以接入控制器的网络丢包率最小为接入条件,接入所述控制器;和/或,所述目标网络设备按照预定的接入配置,接入所述控制器。
50.在本文实施例中,目标网络设备可以向多个控制器发送探测链路报文,然后根据
控制器回复的报文的时间,计算接入延时,然后选择延时小于阈值的控制器进行接入。
51.此外,目标网络设备还可以按照各控制器到的负载均衡情况接入控制器,例如,目标网络设备选择当前时刻负载最低的控制器进行接入。目标网络设备还可以计算与各控制器之间进行报文传输的丢包率,选择丢包率最小控制器进行接入,目标网络设备还可以按照预定的接入配置,接入控制器,其中,接入配置可以是用户预先指定的,例如用户指定目标网络设备的接入的控制器范围等。
52.此外,接入策略还可以包括上述接入方式的两种或两种以上的组合,例如通过加权的方式进行组合,此处不再赘述。
53.在本文实施例中,多个目标网络设备可以被多个用户部署在多个区域内,例如,用户1将自己的目标网络设备a1、b1、c1部署在区域a1,将目标网络设备a2、b2、c2部署在区域a2,将目标网络设a3、b3、c3部署在区域a3;用户2将自己的目标网络设备d1、e1、f1部署在区域a1,将目标网络设备d2、e2、f2部署在区域a2,将目标网络设d3、e3、f3部署在区域a3;区域a1部署了控制器m1,区域a2部署了控制器m2,区域a3部署了控制器m3。若同一区域内的目标网络设备接入该区域的控制器的延时最小,则控制器m1的管控范围包括目标网络设备a1、b1、c1、d1、e1、f1,控制器m2的管控范围包括目标网络设备a2、b2、c2、d2、e2、f2,控制器m3的管控范围包括目标网络设备a3、b3、c3、d3、e3、f3。若用户1需要对目标网络设备a1、a2之间建立一条隧道连接,因为目标网络设备a1被控制器m1管控,目标网络设备a2被控制器m2管控,则可能出现控制器m1和控制器m2对目标网络设备a1和目标网络设备a2之间的隧道配置或连接状态不一致的问题。因此,为了解决上述问题,根据本文的一个实施例,如图5所示,多个所述控制器根据所述第一管控范围对所述多个目标网络设备进行管控的步骤进一步包括,步骤501:多个所述控制器根据所述用户对目标网络设备的部署情况以及第二共识算法选举出所述用户的主控制器;所述主控制器对所述用户的目标网络设备进行管控,其中包括:步骤502:所述主控制器对相应的第一管控范围内所述用户部署的目标网络设备进行管控;步骤503:所述主控制器还通过另一控制器对该另一控制器的第一管控范围内的由所述用户部署的目标网络设备进行管控。
54.在本文实施例中,多个控制器可以根据用户对目标网络设备的部署情况以及第二共识算法选举出该用户的主控制器,用户对目标网络设备的部署情况可以包括用户对各区域内的目标网络设备的重要度等,第二共识算法可以为现有技术中常用的共识算法,此处不做限定。
55.示例性地,若用户1对目标网络设备a1、b1、c1的重要度配置为最高,则管控目标网络设备a1、b1、c1的控制器m1即可为用户1的主控制器,若用户2对目标网络设备d2、e2、f2的重要度配置为最高,则管控目标网络设备d2、e2、f2的控制器m2即可为用户2的主控制器。
56.然后,主控制器对相应的第一管控范围内用户部署的目标网络设备进行管控,示例性地,用户1的主控制器m1对相应的第一管控范围a1、b1、c1、d1、e1、f1内且由用户1部署的目标网络设备(即a1、b1、c1)进行管控。主控制器通过另一控制器对该另一控制器的第一管控范围内的由该用户部署的目标网络设备进行管控,另一控制器即除了主控制器之外的其他控制器,示例性地,用户1的除了主控制器m1的其他控制器为m2和m3,主控制器m1通过控制
器m2对控制器m2的第一管控范围a2、b2、c2、d2、e2、f2内由用户1部署的目标网络设备(即a2、b2、c2)进行管控。因此,当用户1需要对目标网络设备a1、a2之间建立一条隧道连接时,用户1的主控制器m1能够将配置1配置到目标网络设备a1,主控制器m1将与配置1相对应的配置2通过控制器m2配置到目标网络设备a2,从而避免了目标网络设备a1和目标网络设备a2之间的隧道配置或连接状态不一致。
57.需要说明的是,每一个用户的主控制器可以表示在物理控制器上虚拟出来的虚拟控制器,即哪个物理控制器作为哪个用户的主控制器,并非重新部署一台主控制器。
58.此外,由于哪个物理控制器作为哪个用户的主控制器是多个物理控制器之间通第二共识算法得到的,因此避免了多个控制器对作为用户的主控制器的结果不一致的问题,即用户只会存在一个主控制器,不会存在多个主控制器。
59.根据本文的一个实施例,根据所述用户的组网情况,从多个所述控制器中确定每个所述用户的主控制器进一步包括,分别在所述区域内,确定所述用户部署的所述目标网络设备的数量,以使多个所述控制器根据所述目标网络设备的数量以及所述第二共识算法选举出所述用户的主控制器;或,根据所述用户的主营业务的总服务器所在的位置确定所述用户的主控制器。
60.在本文实施例中,若用户在某一区域内部署的目标网络设备的数量越多,则说明用户对该区域内的目标网络设备的配置将越多,因此,为了提高管控效率,可以根据用户部署的目标网络设备数量以及第二共识算法选举出该用户的主控制器,若某区域内的控制器的第一管控范围内还包括其他区域的目标网络设备,则也可以确定该第一管控范围内的属于被该用户部署的目标网络设备的数量,多个控制器根据目标网络设备的数量以及第二共识算法选举出该用户的主控制器。
61.另外,还可以根据用户的主营业务的总服务器所在的位置确定该用户的主控制器,可以理解为,用户的主营业务的总服务器的承载着该用户最多的业务,因此,可以将与该总服务器所在位置对应的控制器作为该用户的主控制器。
62.根据本文的一个实施例,多个所述控制器根据所述网络设备的数量以及所述第二共识算法选举出所述用户的主控制器进一步包括,所述多个控制器以所述用户在某个区域中的所述目标网络设备的数量进行投票,从多个控制器中选举出所述主控制器。
63.在本文实施例中,当触发机制为故障触发时,若故障的物理控制器为某用户的主控制器,则该故障的物理控制器下所有用户的目标网络设备均需要接入新的控制器,从而被其他控制器进行控制,然后其他未发生故障的控制器需要重新选举出该用户的主控制器。由于该用户原来的主控器中可能存储了该用户的全部目标网络设备的配置或数据,当该主控制器对应的物理控制器故障后,该用户的目标网络设备的配置或数据只能通过控制相应目标网络设备的控制器获取,并且,在多个未发生故障的控制器重新选举出该用户的主控制器后,该主控制器需要再次向该用户的其他控制器获取配置或数据,导致当用户的主控制器对应的物理控制器故障之后,多个控制器的工作量巨大。针对上述问题,根据本文的一个实施例,在多个所述控制器通过所述第二共识算法选举出所述用户的主控制器的步骤中,所述方法还包括,
多个所述控制器通过所述第二共识算法选举出所述用户的备控制器;在所述主控制器对所述用户的目标网络设备进行管控的过程中,所述方法还包括,所述主控制器向所述备控制器同步管控数据,以便于当所述触发机制为故障触发且故障的控制器为所述用户的主控制器时,所述备控制器实现所述主控制器的功能。
64.在本文实施例中,在多个控制器通过第二共识算法选举出用户的主控制器的步骤中,多个控制器还通过第二共识算法选举出该用户的备控制器,在选举出的主控制器对该用户的目标网络设备进行管控的过程中,该主控制器向备控制器同步管控数据,即在主控制器对应的物理控制器故障前,该备控制器仅用作数据备份,并不对该用户的全部目标网络设备进行管控,当该主控制器对应的物理控制器故障后,由于该备控制器上已经存储了相应的数据,因此该备控制器可直接作为该用户的主控制器,对该用户的全部目标网络设备继续进行管控。
65.在本文实施例中,若用户的主控制器故障后,该主控制器对应的物理控制器所管控的该用户的目标网络设备重新接入物理控制器,若该备控制器对应的物理控制器所管控的该用户的目标网络设备较少,若将该备控制器作为该用户的主控制器,可能导致对该用户的目标网络设备的管控效率较低。针对上述情况,根据本文的一个实施例,在多个控制器通过第二共识算法选举出用户的主控制器的步骤中,多个控制器通过第二共识算法选举出该用户的多个备控制器,选举出的主控制器向多个备控制器同步管控数据,当该主控制器对应的物理控制器故障后,如图6所示,本文实施例所述的分布式管控方法还包括,步骤601:未发生故障的多个控制器通过所述第二共识算法在所述备控制器中重新选举出所述用户的主控制器;步骤602:重新选举的主控制器实现未发生故障前的所述主控制器的功能。
66.在本文实施例中,当该主控制器对应的物理控制器故障后,未发生故障的多个控制器通过第二共识算法在多个备控制器中重新选举出该用户的主控制器,重新选举的主控制器实现未发生故障前的所述主控制器的功能。从而解决了若用户的主控制器故障后,该主控制器对应的物理控制器所管控的该用户的目标网络设备重新接入物理控制器,若该备控制器对应的物理控制器所管控的该用户的目标网络设备较少,若将该备控制器作为该用户的主控制器,可能导致对该用户的目标网络设备的管控效率较低的问题。
67.需要说明的是,在多个控制器通过第二共识算法选举出用户的主控制器的步骤中,多个控制器通过第二共识算法选举出该用户的多个备控制器的数量可以根据用户的需要进行确定。需要说明的是,备控制器的数量越多,则当该主控制器对应的物理控制器故障后,重新确定该用户的最优的主控制器的效率越高,但由于主控制器需要向多个备控制器同步数据,且每一备控制器需要存储与主控制器相同的数据,因此,分布式管控的成本越高。可以根据用户的实际需要确定备控制器的数量。
68.根据本文的一个实施例,在未发生故障的多个所述控制器通过所述第二共识算法在所述备控制器中重新选举出所述用户的主控制器的步骤中,所述方法还包括,未发生故障的多个控制器通过所述第二共识算法重新选举出所述用户的备控制器。
69.可以理解为,在用户的第一个主控制器故障后,多个控制器从多个备控制器中重
新选举出该用户的第二个主控制器,此外,还可以再次选举出该用户的一个或多个备控制器。该步骤所产生的有益效果与前述多个所述控制器通过所述第二共识算法选举出所述用户的备控制器的步骤所产生的有益效果相同,此处不再赘述。
70.基于同一发明构思,本文实施例还提供了一种分布式管控系统,包括,多个目标网络设备和多个控制器;所述多个控制器对所述多个目标网络设备进行管控时,执行上述方法。
71.通过上述系统所取得的有益效果与上述方法所取得的有益效果一致,本说明书实施例不做赘述。
72.如图7所示为本发明实施例计算机设备的结构示意图,本发明中的控制器可以为本实施例中的计算机设备,执行上述本发明的方法。计算机设备702可以包括一个或多个处理设备704,诸如一个或多个中央处理单元(cpu),每个处理单元可以实现一个或多个硬件线程。计算机设备702还可以包括任何存储资源706,其用于存储诸如代码、设置、数据等之类的任何种类的信息。非限制性的,比如,存储资源706可以包括以下任一项或多种组合:任何类型的ram,任何类型的rom,闪存设备,硬盘,光盘等。更一般地,任何存储资源都可以使用任何技术来存储信息。进一步地,任何存储资源可以提供信息的易失性或非易失性保留。进一步地,任何存储资源可以表示计算机设备702的固定或可移除部件。在一种情况下,当处理设备704执行被存储在任何存储资源或存储资源的组合中的相关联的指令时,计算机设备702可以执行相关联指令的任一操作。计算机设备702还包括用于与任何存储资源交互的一个或多个驱动机构708,诸如硬盘驱动机构、光盘驱动机构等。
73.计算机设备702还可以包括输入/输出模块710(i/o),其用于接收各种输入(经由输入设备712)和用于提供各种输出(经由输出设备714)。一个具体输出机构可以包括呈现设备716和相关联的图形用户接口(gui) 718。在其他实施例中,还可以不包括输入/输出模块710(i/o)、输入设备712以及输出设备714,仅作为网络中的一台计算机设备。计算机设备702还可以包括一个或多个网络接口720,其用于经由一个或多个通信链路722与其他设备交换数据。一个或多个通信总线724将上文所描述的部件耦合在一起。
74.通信链路722可以以任何方式实现,例如,通过局域网、广域网(例如,因特网)、点对点连接等、或其任何组合。通信链路722可以包括由任何协议或协议组合支配的硬连线链路、无线链路、路由器、网关功能、名称服务器等的任何组合。
75.对应于图2-图6中的方法,本文实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述步骤。
76.本文实施例还提供一种计算机可读指令,其中当处理器执行所述指令时,其中的程序使得处理器执行如图2-图6所示的方法。
77.应理解,在本文的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本文实施例的实施过程构成任何限定。
78.还应理解,在本文实施例中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
79.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单
元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本文的范围。
80.所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
81.在本文所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
82.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本文实施例方案的目的。
83.另外,在本文各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
84.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本文的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本文各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
85.本文中应用了具体实施例对本文的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本文的方法及其核心思想;同时,对于本领域的一般技术人员,依据本文的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本文的限制。