一种基于SNMP的健康算法的CDN全局负载均衡策略的制作方法

文档序号:16007091发布日期:2018-11-20 20:11阅读:187来源:国知局

本发明涉及互联网CDN技术领域,尤其是涉及一种基于SNMP的健康算法的CDN全局负载均衡策略。



背景技术:

随着社会的发展,互联网用户快速增长带动了互联网经济的蓬勃发展,移动互联网、电子商务、网络视频、品牌网络广告、网上招聘、网络游戏等在极短的时间得到快速发展并积累了众多用户,成为了人们生活中不可或缺的一部分。

在现有CDN技术中,用户使用互联网服务时,一般先访问域名,通过dns协议获取服务的IP地址,再通过IP地址去访问真正的服务。随着服务规模逐步扩大,访问请求也越来越多,此时会使用一组服务器组成服务器集群,由服务器集群一并对外提供服务。此时,用户访问的入口点仍是域名,通过dns协议解析出此集群的IP地址。

在CDN平台中,需要通过全局负载均衡系统(GSLB)将用户的访问请求调度到服务质量最优的CDN节点之上。而在这个过程中,实时了解各CDN节点的健康状态显得非常重要,因为只有了解了CDN节点的当前健康状态,才能实现精准的调度。



技术实现要素:

本发明的目的在于提供一种基于健康算法的CDN全局负载均衡策略,以解决上述背景技术中提出的问题和缺陷,在不增加设备的前提下,通过SNMP在不同设备间获取各 CDN节点设备的MIB库信息,计算出各节点设备的健康状态,GSLB根据各节点设备的健康状态将用户的访问请求调度到健康状态最优的CDN节点。

为实现上述目的,本发明提供如下技术方案:

一种基于SNMP的健康算法的CDN全局负载均衡策略,由输入、计算、输出三个环节构成,其中,.

在输入环节,基于SNMP获取的运行状态指标,为设备定义一套综合评估该设备运行状态的健康指标体系,体系中每个健康算法指标都使用SNMP从设备MIB库中得到;

在计算环节,利用SNMP采集设备运行状态指标值,使用计算CDN设备当前健康值,健康算法为CDN提供相同服务的各设备提供可对比的健康值,

健康值=Σ(健康指标值所属级别范围的级别值×指标权重)

在输出环节,服务健康值被保存在设备健康状态表中,体现当前CDN业务网络中所有设备的健康状态,包括但不限于时间戳、服务对象、检测状态、健康值,健康状态越好的设备,其健康值也越高。

在上述技术方案中,在输入环节,其健康算法指标包括CPU空闲率、空闲内存、用户连接数、用户流数。

作为上述技术方案的优选,所述的健康算法为每个算法指标设置权重,所有算法指标的权重之和为1,同时,每一个算法指标的指标值在不同范围内被定义不同的级别值,级别值的范围在[0,1];并且当任意一个算法指标的指标值落在级别值为0的范围内时,则设备的健康值均为0,此时表示设备没有能力为更多的用户提供服务。

作为上述技术方案的优选,所述的在计算设备健康值过程中,发现任何一个健康值指标值落在其级别值为0的指标范围内,其设备健康值为0;

当设备的某一项或者多项健康指标通过SNMP无法获取,此时该设备健康值设置为- 1,即不可知状态,此时设备健康监测线程将该健康值为-1的设备暂时移出GSLB引导设备队列。

在上述技术方案中,基于SNMP的健康算法的CDN全局负载均衡策略由CDN全局负载均衡控制器完成策略过程,其包括用户引导处理控制器、用户引导处理线程,设备健康状态缓存、设备健康监测线程、设备健康监测控制器、本地配置加载模块和本地配置文件,其中,

设备健康监测线程和用户引导处理线程分属GSLB的2个独立模块,使用共享数据区的方式来实现服务监测和用户引导之间的通信工作,设备健康状态缓存承担从设备健康监测线程实时记录服务最新的健康指数;当用户请求达到时,用户引导处理控制器从这片数据缓存获取相关服务的健康指标,选择最佳服务,完成引导;

设备健康监测控制器实施监测,并根据各服务的健康算法结合监测结果,计算设备当前健康指数;在完成一个设备的监测工作后,设备健康监测控制器将设备当前健康指数及最新状态记录在设备健康状态缓存中,为用户引导处理控制器提供数据;

用户引导处理控制器用于接收用户的访问请求,根据用户IP和请求内容从设备健康状态缓存中获取相关设备当前健康指数,选择最佳服务提供给用户,并对用户的请求进行缓存;

用户引导处理线程负责从用户引导处理控制器中读取用户的请求并进行分析和处理;

本地配置加载模块的作用是在全局负载均衡控制器中进行配置的本地文件加载、下发到CDN全局负载均衡控制器的其他各个功能模块中,以使配置文件生效,本地配置文件指的是通过人工操作输入的用于使全局负载均衡控制器正常工作的配置文件。

在上述技术方案中,输入环节由用户引导处理控制器、本地配置加载模块和本地配置文件3个模块分担,其工作内容是接收并缓存用户的请求,设备监测程序设置这项策略也出现在输入环节;计算环节由设备健康状态缓存、设备健康监测线程、设备健康监测控制器3个模块分担,其工作内容是对CDN节点的健康状态进行计算和分析,健康算法绑定这项策略也出现在计算环节;输出环节由用户引导处理线程1个模块分担,其工作内容是根据计算环节所得出的计算结果,将用户的请求调度至服务质量最优的节点,用户全局引导这项策略也出现在输出环节。

本发明的优点:

在本发明提供的一种基于SNMP的健康算法的CDN全局负载均衡策略中,设备健康状态指标体系的定义非常灵活,用户可随时调整健康指标、指标级别范围及其在算法中的权重,以适应CDN网络的变化。运维人员也可以使用试错法,通过调整健康指标体系定义,观察CDN网络负载均衡情况变化,达到优化算法的目的。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例的一种基于SNMP的健康算法的CDN全局负载均衡策略的流程示意图。

图2为本发明实施例的一种基于SNMP的健康算法的CDN全局负载均衡策略的健康算法与具体设备绑定示意图。

图3为本发明实施例的一种基于SNMP的健康算法的CDN全局负载均衡策略的基于 SNMP的服务状态监测过程示意图。

图4为本发明实施例的一种基于SNMP的健康算法的CDN全局负载均衡策略的CDN全局负载均衡控制器的结构示意图。

图5为本发明实施例的一种基于SNMP的健康算法的CDN全局负载均衡策略的设备健康状态缓存当前状态读写的数据流程示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

简单网络管理协议(SNMP),由一组网络管理的标准组成,包含一个应用层协议 (application layer protocol)、数据库模型(database schema)和一组资源对象。该协议能够支持网络管理系统,用以监测连接到网络上的设备是否有任何引起管理上关注的情况。该协议是互联网工程工作小组(IETF,Internet Engineering Task Force) 定义的internet协议簇的一部分。SNMP的目标是管理互联网Internet上众多厂家生产的软硬件平台,因此SNMP受Internet标准网络管理框架的影响也很大。SNMP已经出到第三个版本的协议,其功能较以前已经大大地加强和改进了。

管理信息库(MIB,Management Information Base)是TCP/IP网络管理协议标准框架的内容之一,MIB定义了受管设备必须保存的数据项、允许对每个数据项进行的操作及其含义,即管理系统可访问的受管设备的控制和状态信息等数据变量都保存在MIB中。

本发明实施例中基于SNMP的全局负载均衡控制策略由3部分构成:

1,用户全局引导:将用户请求引导,即到一个能够提供最佳有效服务的CDN节点,及遵循IP就近原则,为用户提供网络距离最近的CDN节点,并在节点中检索到最健康的服务。

2,健康算法绑定:如图2所示,在CDN全局负载均衡中定义了健康算法以后,需要将算法绑定到相应的设备上,并定义算法中涉及健康指标在实际设备相应的MIB指标。MIB库保存了设备的控制和状态信息,健康指标从MIB库中抽取了其中一部分信息包括CPU空闲率、空闲内存、用户连接数进行分析得出的综合指标。

一个CDN设备只能绑定一个健康算法计算健康值。同一时刻,健康值越高的设备,其状态越佳。

3、设备监测程序设置:如图3所示,一个CDN平台通常由几百甚至上千台设备构成,基于SNMP的全局负载均衡一般采用轮训方式逐台获取设备运行状态,并计算设备健康指标。为确保CDN所有设备的健康指标能以合适的频率刷新。

设备监测程序设置一般以监测程序为单位,设定监测程序的数量,以及每个监测程序需要监测的设备。

基于SNMP的CDN全局负载均衡控制设备的设计:

本发明还设计了一种CDN全局负载均衡控制器,该控制器是根据CDN管理人员设定的全局负载均衡策略实现设备实施监测和用户请求及时引导。根据基于SNMP的CDN 全局负载均衡的技术方案,如图4所示,基于SNMP的GSLB原型结构如下:

1、用户引导处理控制器接收来自外界的用户请求,并从用户引导处理线程池中激活一个用户引导处理线程处理用户请求,用户引导处理控制器同时承担监控所有用户引导处理线程工作状态的职责。

2、用户引导处理线程根据用户引导处理控制器下达的处理用户请求指令,根据全局负载均衡策略定义的全局用户引导方式,从设备健康状态缓存获取最佳设备为用户提供服务,完成用户引导工作。

3、设备健康状态缓存是一个记录CDN所有设备健康状态数据的容器,它从设备健康监测线程接收设备健康状态数据,为用户引导处理模块选择用户需要的健康状态最佳的设备。

4、设备健康监测线程使用SNMP实时监测一组设备的运行状态,根据全局负载均衡策略定义设备绑定的健康算法计算设备当前健康指标,并发送给设备健康状态缓存。

5、设备健康监测控制器根据全局负载均衡策略配置的设备监测程序,创建、设置并启动设备健康监测线程。同时在GSLB运行期间实时监测各设备健康监测线程的运行状态,发现故障线程立即重建。

6、本地配置加载模块负载从本地配置文件加载CDN管理员设定的全局负载均衡策略,为上层业务逻辑(用户引导和服务监测)提供数据支持。

7、本地配置文件保存CDN管理员设定的全局负载均衡策略和支撑原型正常运行的基础数据,由CDN管理员负责维护。

由于设备健康监测线程和用户引导处理线程分属GSLB2个独立模块,需要使用共享数据区的方式实现服务监测和用户引导之间的通信工作。在GSLB控制器总体结构中设备健康状态缓存承担从设备健康监测线程实时记录服务最新的健康指数;当用户请求达到时,用户引导处理模块从这片数据缓存获取相关服务的健康指标,选择最佳服务,完成引导。

本发明涉及的CDN全局负载均衡控制设备的核心业务数据流程:GSLB原型的核心业务包括设备健康监测线程和用户引导处理模块,从数据流程角度来看,设备健康监测线程为用户引导处理模块准备必要的数据-各设备健康指数,用户引导处理模块使用设备健康监测线程的数据,选择用户最合适的服务,完成引导工作。

如图5所示,设备健康监测控制器根据服务监测策略,对服务实施监测,并根据各服务的健康算法、结合监测结果(设备各类状态指标)计算设备当前健康指数。在完成一个设备的监测工作后,设备健康监测控制器将设备当前健康指数及最新状态记录在设备健康状态缓存,为用户引导提供数据。

用户引导接收用户请求,根据用户IP和请求内容从设备健康状态缓存中获取相关设备当前健康指数,选择最佳服务提供给用户。

如图1所示,各流程的具体描述如下:

1、算法输入:设备健康指标体系

基于SNMP获取的运行状态指标,我们可以为不同设备定义一套综合评估该设备运行状态的健康指标体系(体系中每个算法指标都可以使用SNMP从设备MIB库中得到)。

健康算法的表现形式如下:

如上表所示,健康算法与一批算法指标相关,它为每个算法指标在本算法设置权重,所有算法指标的权重之和为1,同时,算法定义了每一个算法指标的指标值在不同范围内的级别值,级别值的范围在[0,1];并且任意一个算法指标的指标值落在级别值为0的范围内,设备的健康值均为0,表示设备没有能力为更多的用户提供服务。

2、设备健康值的计算:

根据设备指标体系的定义使用SNMP获取设备各健康指标值。由各项健康指标值加权平均得到设备健康值,计算公司为:

健康值=Σ(健康指标值所属级别范围的级别值×指标权重)

在计算设备健康值过程中,发现任何一个健康值指标值落在其级别值为0的指标范围内,其设备健康值为0.

如设备的某一项或者多项健康指标通过SNMP无法获取,此时该设备健康值设置为- 1(“不可知”)

●一般情况下,“服务不可用”源于网络故障或服务发生错误,这是SNMP无法获取当前设备或应用服务的MIB,获取算法指标随之失效,设备健康值将随即被设置为-1(不可知),暂时离开GSLB引导设备队列。

●服务负载状态根据健康算法的定义,从SNMP获取到的设备MIB库指标加权计算得到,综合体现当时设备的负载情况。

3、算法输出:设备健康状态表

服务健康值被保存在设备健康状态表中,体现当前CDN业务网络中所有设备的健康状态,包括:时间戳、服务对象、检测状态、健康值。

根据健康值计算公式可知,健康状态越好的设备,其健康值也越高。

在出现网络中断或发生服务故障时,SNMP无法获取设备健康指标的情况,此时设备健康值被设置为-1(不可知),暂时离开GSLB引导设备队列。

以上所述仅为本发明的较佳实施方式作了详细说明,但是本发明并不限于上述实施方式,保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内,本发明实施例还可以在不脱离本专利宗旨的前提下做出各种变化。因此,本发明的保护范围应该以权利要求的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1