实现云AC负载均衡的方法、装置及系统
技术领域
本发明涉及网络通信信息领域,尤其涉及一种实现云AC负载均衡的方法、装置及系统。
背景技术
WLAN设备分成两个主要部分,一个是无线接入点(AccessPoint,简称AP),一个是无线控制器(AccessController,简称AC)。对于运营商级的网络来说,需要高效率、稳定性、可靠安全的AP,还需要大容量、管控性强的AC。随着WLAN网络逐渐成为人们日常工作、生活基础设施的今天,以及我国“智慧城市”、“智慧社区”以及“智慧商家”的发展,需要WLAN网络拥有良好的网络健壮度,对于网络安全性也有了更加严格的要求;云AC的发展成为必然趋势,它可有效提高网络的可靠性与安全性。
现有云AC的实现方案,在一台云AC服务器实现多个AC,每个AC都可以当做一台独立运行的AC设备对外提供AP的接入和管理服务;AP接入云AC服务器中的某个AC来为用户提供无线服务。当云AC服务器所需要接入和管理的AP数量比较多时,将所有的AP通过负载分担方式接入到不同的AC中,可以使每个AC的运行稳定高效,也使整个云AC服务器的运行达到最优。现有的云AC服务器,在实现多AC的负载分担时,主要的有两种方式:
第一种方式,通过静态配置方式来指定:人工手动的对每个AP进行设置,指定AP连接到云AC服务器某个对应的AC;当需要对AP在不同AC间进行迁移时,再来手动的修改AP的设置。此种方式完全需要人工介入,由人工进行负载的分配;不利于维护管理;当进行AC的迁移和扩容时,又会涉及到大量的人工配置工作。人工的负载分配方式带来大量的人力维护成本,并且这种分配方式也是“静态的”不能解决运行中的负载平衡问题。
第二种方式,通过专用的代理设备来进行负载分担:所有的AP都指定连接到专用的代理设备,由代理设备对AP的数据流代理转发给不同的AC来达到负载分担的目的。此种使用专用的代理设备进行“集中式的”负载分担的方式对“专用代理设备”的性能有极高的要求,该设备也成为整个系统的故障关键点,该设备的一点故障将会造成整个系统、整个网络的故障。另现有实现的代理设备仅能按照“连接数量”进行负载分配,无法反映实际AC的运行负载情况。
因此,有必要提出一种新实现云AC负载均衡的方法,解决现有技术中云AC负载均衡实现方式的效率低且维护成本高,以及可靠性低、不能对负载情况进行动态调整的问题。
发明内容
有鉴于此,本发明提供了一种实现云AC负载均衡的方法、装置及系统,,以解决现有技术中维护成本高,且不能对负载进行动态调整的问题。
为解决上述技术问题,本发明的技术方案是这样实现的:
第一发明,本发明提供一种实现云AC负载均衡的方法,包括:
A、设备管理中心根据AP的注册请求,在云AC服务器中为所述AP分配一个预选实例AC;
B、所述AP向所述预选实例AC发送发现请求消息;
C、所述预选实例AC接收到所述发现请求消息后,对本实例AC的负载信息及收集到的其他实例AC的负载信息进行比较,确定出可以处理所述AP发现请求的优选实例AC列表,向所述AP回复携带所述优选实例AC列表的发现响应消息。
具体的,在步骤C中,所述确定出可以处理所述AP发现请求的优选实例AC列表,向所述AP回复携带所述优选实例AC列表的发现响应消息,具体包括:
所述预选实例AC将符合优选规则的所有实例AC的信息,加入到优选实例AC列表,在向所述AP回复的发现响应消息中携带所述优选实例AC列表,所述优选实例列表中包括符合优选规则的所有实例AC的地址、端口以及优先级信息。
进一步的,本发明所述方法还包括如下步骤:
D、所述AP接收到所述预选AC回复的发现响应消息后,从优选实例AC列表中选出第一最优实例AC,向所述第一最优实例AC发起接入请求消息;
E、所述第一最优实例AC接收到所述AP的接入请求消息后,对本实例AC的负载信息及收集到的其他实例AC的负载信息进行比较,确定出可以处理所述AP接入请求的第二最优实例AC后,向所述AP回复接入响应消息;
F、所述AP接收到接入响应消息后,判断如果接入响应消息中为所述第一最优实例AC接受连接的内容,则所述AP成功接入第一最优实例AC,否则所述AP向所述第二最优实例AC重新发起接入请求消息。
具体的,在步骤E中,所述确定出可以处理所述AP接入请求的第二最优实例AC后,向所述AP回复接入响应,具体包括:
如果第一最优实例AC确定自身符合优选规则或者所述AP已经是通过重定向方式接入且重定向次数超过设定阈值,则向所述AP回复接受接入的接入响应消息;否则确定符合优选规则的其他实例AC为第二最优实例AC,在向所述AP回复的接入响应消息中携带所述AP可重定向连接的第二最优实例AC的信息。
进一步的,所述方法还包括如下步骤:
G、在AP已经成功接入第一最优实例AC/第二最优实例AC后,所述第一最优实例AC/第二最优实例AC定期检测本实例AC的运行负载情况,如果实例AC的负载与所有实例AC平均负载的差值在设定的周期时间内持续高于设定的阈值,则向所述AP发送重定向通告,以使所述AP重定向接入其他优选的实例AC;和/或
H、在AP已经成功接入第一最优实例AC/第二最优实例AC后,所述第一最优实例/第二最优实例AC在需要重启之前,向所述AP发送重定向通告,以使所述AP重定向接入其他优选的实例AC。
进一步的,在步骤A之前,所述方法还包括如下步骤:
A0、在云AC服务器上创建至少两个实例AC,每一个实例AC为可以独立提供AC服务的进程,将所述至少两个实例AC加入到同一个组播组/广播组;每个实例AC定时收集自身负载信息并在组播组/广播组内进行通告,并等待接收其他实例AC对外通告的负载信息并进行保存/更新。
本发明提供的实现云AC负载均衡的方法,能够依照实例AC实际运行负载情况进行的、不需要人工干预/自动的、分布式的负载分配方法,使整个系统的负载达到平衡最优。而且本发明还通过对实例AC重定向,用于日常的实例AC迁移和实例AC扩容时的过渡。
第二发明,本发明提供一种实现云AC负载均衡的装置,位于云AC服务器的实例AC中,所述装置包括:
负载信息处理模块,用于通过组播/广播发现云AC系统中其他实例AC,并与其他实例AC进行实例AC的负载信息交互;并用于在协议信息交互模块接收到来自AP的无线接入点的控制和配置协议CAPWAP消息时,确定出优选实例AC;
协议信息交互模块,用于与AP交互CAPWAP消息,在发向AP的CAPWAP消息中携带所述负载信息处理模块确定出的优选实例AC。
具体的,所述负载信息处理模块包括:
AC信息交互单元,用于定时收集自身所在实例AC的负载信息并在所加入的组播组/广播组内进行通告,并等待接收组播组/广播组内其他实例AC对外通告的负载信息;
负载信息管理单元,用于保存并更新本实例AC的负载信息以及收集的其他实例AC的负载信息;
优选AC确定单元,用于根据对自身所在实例AC的负载信息与其他实例AC的负载信息进行比较,确定优选实例AC。
具体的,所述协议信息交互模块,具体用于:
接收到AP发送的发现请求消息DiscoveryRequestMessage后,通知所述负载信息处理模块确定出可以处理所述AP发现请求的优选实例AC列表后,向所述AP回复携带所述优选实例AC列表的发现响应消息DiscoveryResponseMessage;和/或
接收到AP发送的接入请求消息JoinRequestMessage后,通知所述负载信息处理模块确定出可以处理所述AP接入请求的优选实例AC后,向所述AP回复携带自身所在实例AC接受接入的接入响应JoinResponseMessage消息或携带确定出的其他优选实例AC的接入响应消息。
具体的,所述协议信息交互模块,具体用于:
当所述负载信息处理模块确定出符合优选规则的所有实例AC后,将符合优规则的所有实例AC的信息,加入到优选实例AC列表,在向所述AP回复的发现响应消息中携带所述优选实例AC列表,所述优选实例列表中包括符合优选规则的所有实例AC的地址、端口以及优先级信息;和/或
当所述负载信息处理模块确定自身所在实例AC符合优选规则或者发现所述发送接入请求消息的AP已经是通过重定向方式接入且重定向次数超过设定阈值,则向所述AP回复接受接入的接入响应消息;否则向发送接入请求消息的AP回复携带所述AP可重定向连接的其他优选实例AC的接入响应消息。
具体的,所述负载信息包括实例AC已经接入的AP数量、已经接入的终端STA数量、CPU负载和网络负载;
所述优选AC确定单元还用于,用于对自身所在实例AC的负载信息进行计算获得自身所在实例AC的负载值,再将其他实例AC的负载信息进行计算得出其他实例AC的负载值,将计算出的各个负载值进行比较,确定优选实例AC。
本发明提供的实现云AC负载均衡的装置,能够实现对自身负载信息与接收到的其他实例AC实际运行负载情况,进行对比决定是否接受AP的接入或者发送重定向接入其他实例AC的消息,使整个系统的负载达到平衡最优。
同时,本发明还提供一种实现云AC负载均衡的系统,所述系统包括设备管理中心和云AC服务器,所述云AC服务器包括至少两个实例AC,所述实例AC为上述实现云AC负载均衡的装置;
所述设备管理中心,用于根据AP的注册请求,在云AC服务器中为所述AP分配一个预选实例AC。
综上所述,本发明本发明的有益效果包括:通过分布式的负载信息交互和决策,动态的达到整个系统负载的最优,不需要人工干预且可靠性高,还通过实例AC重定向,解决日常管理中的实例AC迁移和实例AC扩容时的过渡,由系统自动进行负载分配,再次达到负载平衡。
附图说明
图1为本发明实施例一提供的一种实现云AC负载均衡方法的系统示意图;
图2为本发明实施例二提供的一种实现云AC负载均衡方法的详细流程图;
图3为本发明实施例三提供的一种实现云AC负载均衡方法详细流程图;
图4为本发明实施例四提供的一种实现云AC负载均衡装置的结构框图;
图5为本发明实施例五提供的一种实现云AC负载均衡装置的结构框图;
图6为本发明实施例六提供的一种的实现云AC负载均衡系统示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
如图1所示,图1为本发明实施例提供的一种实现云AC负载均衡的方法流程图。具体包括如下步骤:
S101、设备管理中心根据AP的注册请求,在云AC服务器中为所述AP分配一个预选实例AC。
本发明实施例中,云AC服务器包括很多个实例AC(至少为两个),每一个实例AC为可以独立提供AC服务的进程。一般来说,在云AC系统的部署有对云AC服务器和AP进行维护和配置管理,为用户提供无线接入服务的AP可以通过人工操作或者非人工操作的方式向设备管理中心进行注册,通过注册可以允许该AP接入,并设置该AP的服务配置(如SSID、认证类型等),为该AP分配初始进行接入时所连接的实例AC的信息(主要包括AC的地址和端口信息),分配规则可以由管理员进行指定。
S102、所述AP向所述预选实例AC发送发现请求消息。
本发明实施例中,AP与实例AC之间通过控制和配置协议CAPWAP协议进行交互。AP在接入AC之前,首先向所述预选实例AC发送发现请求消息DiscoveryRequestMessage。
S103、所述预选实例AC接收到所述发现请求消息后,对本实例AC的负载信息及收集到的其他实例AC的负载信息进行比较,确定出可以处理所述AP发现请求的优选实例AC列表,向所述AP回复携带所述优选实例AC列表的发现响应消息(DiscoveryResponseMessage)。
在云AC系统部署时,各实例AC以对等的地位运行,一般的各实例AC运行在相同网段内(在相同网段内,可以方便的使用多播、广播进行实例AC的发现)。各实例AC建立定时收集任务,定时收集本实例AC的负载信息,并进行记录更新,向云AC系统中的其他实例AC通告本实例AC的负载信息。所述负载信息包括实例AC已经接入的AP数量、已经接入的终端STA数量、CPU负载和网络负载等。
在本步骤中,所述预选实例AC将符合优选规则的所有实例AC的信息,加入到优选实例AC列表,在向所述AP回复的发现响应消息中携带所述优选实例AC列表,所述优选实例AC列表中包括符合优选规则的所有实例AC的地址、端口以及优先级信息。
本实施例中的实例AC优选规则可以由管理员进行定义,例如依照实例AC的负载信息(包括但不限于已经接入的AP数量、STA数量、CPU负载、网络负载等),赋予不同类型的信息以不同的占比,计算得出一个实例AC的负载值;根据各实例AC所计算负载值的大小确定优先级(如最高优先级的就是最优选的),根据设定优选实例AC列表中包括的实例AC个数,确定加入优选实例AC列表中的各实例AC信息。
实施例二
如图2所示,图2为本发明实施例提供的一种实现云AC负载均衡方法的具体流程图。具体包括如下步骤:
S201,设备管理中心根据AP的注册请求,在云AC服务器中为所述AP分配一个预选实例AC。
S202,所述AP向所述预选实例AC发送发现请求消息。
S203,所述预选实例AC接收到所述发现请求消息后,对本实例AC的负载信息及收集到的其他实例AC的负载信息进行比较,确定出可以处理所述AP发现请求的优选实例AC列表,向所述AP回复携带所述优选实例AC列表的发现响应消息。此处的发现响应消息即为CAPWAP协议的DiscoveryResponseMessage消息。
由于以上步骤S201~S203与上述图1中的步骤S101~S103相同,此处不再赘述。
S204、所述AP接收到所述预选AC回复的发现响应消息后,从优选实例AC列表中选出第一最优实例AC,向所述第一最优实例AC发起接入请求消息。此处的接入请求消息即为CAPWAP协议的JoinRequestMessage。
S205、所述第一最优实例AC接收到所述AP的接入请求消息后,对本实例AC的负载信息及收集到的其他实例AC的负载信息进行比较,确定出可以处理所述AP接入请求的第二最优实例AC后,向所述AP回复接入响应消息。
本步骤中,所述第一最优实例AC接收到AP的接入请求消息(JoinRequestMessage)请求后,检查包括自己在内的各实例AC的负载信息,优选该AP可以接入的符合优选规则的实例AC列表;如果当前实例AC处于优选的实例AC列表中或者AP已经是通过重定向方式接入并且重定向次数超过设定的阈值,则该实例AC接受AP的接入,向AP回应接受接入的接入响应消息(JoinResponseMessage),否则的话,将优选实例AC列表信息封装在响应消息中通告AP进行重定向接入。
所述确定出可以处理所述AP接入请求的第二最优实例AC后,向所述AP回复接入响应,具体包括:如果第一最优实例AC确定自身符合优选规则或者所述AP已经是通过重定向方式接入且重定向次数超过超过设定阈值,则向所述AP回复接受接入的;否则确定符合优选规则的其他实例AC为第二最优实例AC,在向所述AP回复的接入响应消息中携带所述AP可重定向连接的第二最优实例AC的信息。
S206、所述AP接收到接入响应消息后,判断如果接入响应消息中为所述第一最优实例AC接受连接的内容,则所述AP成功接入第一最优实例AC,否则所述AP向所述第二最优实例AC重新发起接入请求消息。
本步骤中,AP向第一最优实例AC或者第二最优实例AC接入成功后,AP将所接入的实例AC信息记录起来,在后续AP重启等需要重新进行接入时,优先向记录的实例AC发起接入请求。
实施例三
如图3所示,为本发明另一实施例提供的一种实现云AC负载均衡方法的详细流程图。具体包括如下步骤:
S301,设备管理中心根据AP的注册请求,在云AC服务器中为所述AP分配一个预选实例AC。
S302,所述AP向所述预选实例AC发送发现请求消息。
S303,所述预选实例AC接收到所述发现请求消息后,对本实例AC的负载信息及收集到的其他实例AC的负载信息进行比较,确定出可以处理所述AP发现请求的优选实例AC列表,向所述AP回复携带所述优选实例AC列表的发现响应消息。此处的发现响应消息即为CAPWAP协议的DiscoveryResponseMessage消息。
S304、所述AP接收到所述预选AC回复的发现响应消息后,从优选实例AC列表中选出第一最优实例AC,向所述第一最优实例AC发起接入请求消息。此处的接入请求消息即为CAPWAP协议的JoinRequestMessage。
S305、所述第一最优实例AC接收到所述AP的接入请求消息后,对本实例AC的负载信息及收集到的其他实例AC的负载信息进行比较,确定出可以处理所述AP接入请求的第二最优实例AC后,向所述AP回复接入响应消息。
S306、所述AP接收到接入响应消息后,判断如果接入响应消息中为所述第一最优实例AC接受连接的内容,则所述AP成功接入第一最优实例AC,否则所述AP向所述第二最优实例AC重新发起接入请求消息。
在AP已经成功接入第一最优实例AC/第二最优实例AC后,所述第一最优实例AC/第二最优实例AC定期检测本实例AC的运行负载情况,如果实例AC的负载与所有实例AC平均负载的差值在设定的周期时间内持续高于设定的阈值,则向所述AP发送重定向通告,以使所述AP重定向接入其他优选的实例AC。
本发明实施例中,在AP已经接入实例AC的情况下,当前实例AC持续的运行高负载时,例如通过设定检测条件:如果实例AC的负载与所有实例AC平均负载的差值在设定的周期时间内持续高于设定的阈值,则该实例AC向一些AP发送重定向通告,让一些AP重定向转接入其他相对空闲的实例AC。所述重定向通告携带在CAPWAP协议的配置更新消息(ConfigurationUpdateRequest)中,在AP所连接的实例AC需要切换时,都会通过这个消息来通过AP重连接。
另外,本发明实施例的实现云AC负载均衡方法,还可以用于实例AC扩容时的过渡:当某实例AC需要扩容时,一般的需要对该实例AC的启动参数和设置等进行调整,可能会需要重启实例AC;此时,可以先将运行在待扩容实例AC上的AP重定向连接到其他实例AC,待实例AC扩容重启后,由系统自动进行负载分配,再次达到负载平衡。本发明实施例的实现云AC负载均衡方法,还可以用于实例AC迁移:、需要某AP固定的接入特定的实例AC时,通告AP重定向接入固定实例AC即可。
本发明实施例通过的实例AC负载信息收集、在AP接入和运行过程进行的负载决策,可以使整个云AC系统中的实例AC的负载基本达到平衡,使整个系统达到最优。
实施例四
参见图4,为本发明实施例提供的一种实现云AC负载均衡装置的结构框图。本发明实施例的实现云AC负载均衡装置位于云AC服务器的实例AC中,所述装置包括:
负载信息处理模块401,用于通过组播/广播发现云AC系统中其他实例AC,并与其他实例AC进行实例AC的负载信息交互;并用于在协议信息交互模块402接收到来自AP的无线接入点的控制和配置协议CAPWAP消息时,确定出优选实例AC;
协议信息交互模块402,用于与AP交互CAPWAP消息,在发向AP的CAPWAP消息中携带所述负载信息处理模块确定出的优选实例AC。
优选的,所述协议信息交互模块402,具体还用于接收到AP发送的发现请求消息后,通知所述负载信息处理模块确定出可以处理所述AP发现请求的优选实例AC列表后,向所述AP回复携带所述优选实例AC列表的发现响应消息;接收到AP发送的接入请求消息后,通知所述负载信息处理模块确定出可以处理所述AP接入请求的优选实例AC后,向所述AP回复携带自身所在实例AC接受接入的接入响应消息或携带确定出的其他优选实例AC的接入响应消息。
优选的,所述协议信息交互模块402,具体还用于当所述负载信息处理模块确定出符合优选规则的所有实例AC后,将符合优规则的所有实例AC的信息,加入到优选实例AC列表,在向所述AP回复的发现响应消息中携带所述优选实例AC列表,所述优选实例列表中包括符合优选规则的所有实例AC的地址、端口以及优先级信息;和/或
当所述负载信息处理模块401确定自身所在实例AC符合优选规则或者发现所述发送接入请求消息的AP已经是通过重定向方式接入且重定次数超过设定阈值,则向AP回复接受接入的接入响应消息;否则向发送接入请求消息的AP回复携带所述AP可重定向连接的其他优选实例AC的接入响应消息。
实施例五
参见图5,为本发明实施例提供的另外一种实现云AC负载均衡装置的结构框图。本发明实施例的实现云AC负载均衡装置位于云AC服务器的实例AC中,所述装置包括负载信息处理模块401和协议信息交互模块402。负载信息处理模块401包括:
AC信息交互单元401a,用于定时收集自身所在实例AC的负载信息并在所加入的组播组/广播组内进行通告,并等待接收组播组/广播组内其他实例AC对外通告的负载信息。
负载信息管理单元401b,用于保存并更新本实例AC的负载信息以及收集的其他实例AC的负载信息。实例AC的负载信息,包括本实例AC已经接入的AP数量、已经接入的STA终端数量、CPU负载、网络负载等。本实例AC的负载信息由负载信息管理单元401b单元从本实例AC中自行收集;其他实例AC的负载信息,通过AC信息交互单元401a与云AC系统中其他实例AC交互得到。
优选AC确定单元401c,用于根据对自身所在实例AC的负载信息与其他实例AC的负载信息进行比较,确定优选实例AC。所述优选AC确定单元4013用于对自身所在实例AC的负载信息进行计算获得自身所在实例AC的负载值,再将其他实例AC的负载信息进行计算得出其他实例AC的负载值,将计算出的各个负载值进行比较,确定优选实例AC。本实施例中,可以根据比较的结果,确定出优选实例AC的优先级。
参见图6,为本发明实施例六提供的一种的实现云AC负载均衡系统示意图。所述实现云AC负载均衡系统包括设备管理中心和云AC服务器,所述云AC服务器包括三个实例AC,所述实例AC为实施例四和实施例五中实现云AC负载均衡的装置。所述设备管理中心,根据AP的注册请求,在云AC服务器中为所述AP分配一个预选实例AC。设备管理中心还用于对云AC服务器中的各实例AC的管理维护,各实例AC处于对等地位。在AP在某个实例AC上线后,该实例AC从设备管理中心进行检查,获取针对该AP的配置信息并下发生效;且该实例AC负责对上线AP的接入控制和管理,进行具体的无线业务处理。
本系统通过实施上述实施例一、实施例二和实施例三的实现云AC负载均衡的方法,可以达到整个系统中实例AC负载动态调整,不需要人工干预,可靠性高。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。