一种大规模集群环境下的监控数据聚合方法技术

技术编号:8685478 阅读:200 留言:0更新日期:2013-05-09 05:07
本发明专利技术公开了一种大规模集群环境下的监控数据聚合方法,包括:所有监控节点向主控节点发起注册请求,注册请求中携带有该节点所要采集的数据,并按顺序从主控节点分别获得一个唯一的节点编号Ni,主控节点编号设置为N0,主控节点根据聚合节点负载公式以及约束条件计算聚合树所需要的聚合节点个数,并根据聚合节点负载均衡的原则从所有监控节点中选取合适的聚合节点,根据聚合节点构建聚合树,主控节点判断聚合树中是否存在聚合节点失效或者集群规模是否发生改变,如果是则主控节点对聚合节点的失效或者集群规模的变化做出实时处理。本发明专利技术的方法可以克服传统的监控数据聚合导致的集群节点负载不均衡,而且能够动态的自适应集群规模的伸缩变化。

【技术实现步骤摘要】

本专利技术属于计算机集群运维领域,更具体地,涉及。
技术介绍
对整个集群的资源和性能进行有效监控对于保证集群环境的高可用性至关重要。随着集群规模越来越大,如何降低监控系统的开销也变的尤为关键。监控数据的聚合方法的选择直接影响了集群的负载等,同时也要考虑选择的聚合方法能够适应集群的伸缩变换。传统的监控数据聚合方法主要有两种:一种是集中式的聚合方法,如图1所示,所有的监控节点直接发送数据给主控节点,这种聚合方法适用于集群规模较小的情况,实现起来简单快速方便;另外一种是分层式的聚合方法,如图2所示,这种方法适用于集群规模较大的情况,而且可伸缩性也较好,但是实现起来相对复杂。例如目前常用的开源监控系统Ganglia正是采用这种分层式的聚合方法,但是Ganglia聚合树的构建需要手动配置,除非重新进行手动配置,否则运行时的拓扑不会发生变化,另外中间进程(监控数据处理)的异常也会导致数据的丢失。因此,设计的聚合方法也要考虑到聚合树的自动配置建立以及中间进程失效检测恢复的问题。目前对于大规模集群环境来说,一般情况下少则几百个节点,多则成千上万个节点。本专利技术提出的面向集群环境的监控数据聚合方法,主要针对大规模的分布式集群。尽管集群中的每个节点的监控数据量是有限的,但是在大规模分布式计算场景下,确保主控节点快速接收到所有监控数据并维持节点的负载均衡具有一定的挑战。面对这个挑战,常见的聚合方法是构建树型结构,例如构建二叉树等。这些方法可能在集群规模达到一定程度时,主控节点负载可能会成为集群正常运行的一个瓶颈,主要原因是在构建聚合树的过程中,没有对聚合树的高度和宽度做出合适的折中处理,并能实时的根据集群规模的大小自适应动态的做出调整。
技术实现思路
针对现有技术的缺陷,本专利技术的目的在于提供,旨在克服传统的监控数据聚合可能导致的集群节点负载不均衡的问题,而且能够动态的自适应集群规模的伸缩变化。为实现上述目的,本专利技术提供了,包括以下步骤:(I)所有监控节点向主控节点发起注册请求,注册请求中携带有该节点所要采集的数据,并按顺序从主控节点分别获得一个唯一的节点编号Ni,其中i为自然数,主控节点编号设置为NO ;(2)主控节点根据聚合节点负载公式以及约束条件计算聚合树所需要的聚合节点个数,并根据聚合节点负载均衡的原则从所有监控节点中选取合适的聚合节点;(3)根据步骤(2)中获得的聚合节点构建聚合树;具体而言,聚合树为一颗完全二叉树,根节点为主控节点NO,聚合节点按照节点编号Ni按序从小到大排列并构建完全二叉树;(4)主控节点判断是否存在聚合节点失效或者集群规模是否发生改变,如果是则进入步骤(5),否则进入步骤(6);(5)主控节点对聚合节点的失效或者集群规模的变化做出实时处理;具体而言,如果是由聚合节点失效,则主控节点清理该失效的聚合节点的注册信息,并返回步骤(2),如果是有监控节点的注册或者注销,也即集群规模发生了变化,则返回步骤(2);(6)完成聚合树的构建;具体而言,监控节点发送监控数据给它所在分组的聚合节点,聚合节点把接收到的该组所有监控节点的数据进行聚合,并发送给父节点,最终聚合到主控节点,主控节点进行监控数据的存储和数据分析,分析的结果以图表的方式展示给集群运维人员。在步骤(2)中,聚合节点的负载度量Loadn满足目标函数:loadn = a*fn+b*gn,其中a,b为权重因子,且满足a+b=l,fn为数据个数对节点负载的影响,gn为数据大小对节点负载的影响,且fn,gn都是标量。在步骤(2)中,聚合节点个数η彡Max,其中Max为一阈值,其取值范围为集群节点数量的1/50到1/20。步骤(2)包括以下子步骤:(2.1)初始化聚合节点的个数n=2 ;(2.2)利用负载公式计算聚合节点个数η时对应的整体负载sum_loadn=n*1adx,1adx表示消息个数X对应产生的单节点负载,X的取值为聚合树叶子节点聚合的监控节点数量;(2.3)设置n=n+l,并且判断η是否小于等于阈值Max,如果是则返回步骤(2.2),否则进入步骤(2.4);(2.4)从计算得到的所有sum_loadn中取最小值对应的聚合节点个数m作为聚合树所需要的聚合节点个数, 即在整个数据聚合的过程中此时的负载最低;(2.5)根据步骤(2.4)中所求得的聚合节点个数m,依据节点编号Ni从小到大按序分为m组;(2.6)在m个组中随机选取一个监控节点作为该组的聚合节点,初始化各组的监控节点代理,以确定其聚合节点,使得监控代理采集的监控数据发给它所在分组的聚合节点。步骤(2-5)中的分组原则为:聚合节点的子节点所聚合的监控节点数量是该聚合节点所聚合的监控节点数量的2倍,同时已知总的监控节点数量,由此根据等比数列求和公式计算得到各组监控节点的数量。步骤(4)包括以下子步骤:(4.1)初始化聚合节点的失效计数器cnt=0 ;(4.2)主控节点判断是否有新的监控节点的注册或者已有的监控节点的注销,即集群规模发生了变化,如果有则进入步骤(4.8 ),否则进入步骤(4.3 );(4.3)聚合节点以固定时间间隔interval接收子节点child的聚合的监控数据,并重置cnt=0,利用相关聚合函数对监控数据进行过滤合并处理,发给该聚合节点的父节占.(4.4)聚合节点每隔一个时间间隔interval去判断是否没有收到子节点child的消息,如果是则进入步骤(4.5),否则返回步骤(4.3);(4.5)设置cnt=cnt+l,判断cnt是否大于等于5,如果是则进入步骤(4.6),否则返回步骤(4.4);(4.6)聚合节点向子节点child连续三次发送失效探测报文;(4.7)聚合节点判断是否没有收到子节点child的任何反馈,如果是则进入步骤(5),否则返回步骤(4.3)。固定时间间隔interval的取值范围是I至5秒。通过本专利技术所构思的以上技术方案,与现有技术相比,本专利技术具有以下的有益效果:(I)降低了监控系统的开销:由于步骤(2)采用了负载公式以及集群的所有节点数量计算聚合节点的个数,以及步骤(3)根据步骤(2)获得的聚合节点构建聚合树以完成监控数据的聚合,由此确保在整个数据聚合的过程中对集群的负载影响降到最低。(2)适用于大规模的集群环境的监控:由于采用了步骤(2),聚合节点数量会随着集群的规模的增长而增加,由此具有良好的可扩展性,适用大规模的集群环境的监控。(3)动态的自适应集群的伸缩变换:由于采用了步骤(5),监控节点向主控节点的注册或者注销,由此使得在集群的规模发生变化时能够重建聚合树。(4)数据聚合的鲁棒性:由于采用了步骤(5),当主控节点探测到聚合节点失效时及时做出失效处理,由此保证了整个集群监控系统的数据聚合的鲁棒性。附图说明图1为现有集群监控系统的集中式数据聚合方法的架构。图2为现有集群监控系统的分层式数据聚合方法的架构。图3为本专利技术大规模集群环境下的监控数据聚合方法的系统架构。图4为本专利技术大规模集群环境下的监控数据聚合方法的流程图。图5为本专利技术方法中步骤(2)的细化流程图。图6为本专利技术方法中步骤(4)的细化流程图。具体实施例方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具本文档来自技高网
...

【技术保护点】
一种大规模集群环境下的监控数据聚合方法,其特征在于,包括以下步骤:(1)所有监控节点向主控节点发起注册请求,注册请求中携带有该节点所要采集的数据,并按顺序从主控节点分别获得一个唯一的节点编号Ni,其中i为自然数,主控节点编号设置为N0;(2)主控节点根据聚合节点负载公式以及约束条件计算聚合树所需要的聚合节点个数,并根据聚合节点负载均衡的原则从所有监控节点中选取合适的聚合节点;(3)根据步骤(2)中获得的聚合节点构建聚合树;具体而言,聚合树为一颗完全二叉树,根节点为主控节点N0,聚合节点按照节点编号Ni按序从小到大排列并构建完全二叉树;(4)主控节点判断聚合树中是否存在聚合节点失效或者集群规模是否发生改变,如果是则进入步骤(5),否则进入步骤(6);(5)主控节点对聚合节点的失效或者集群规模的变化做出实时处理;具体而言,如果是由聚合节点失效,则主控节点清理该失效的聚合节点的注册信息,并返回步骤(2),如果是有监控节点的注册或者注销,也即集群规模发生了变化,则返回步骤(2);(6)完成聚合树的构建;具体而言,监控节点发送监控数据给它所在分组的聚合节点,聚合节点把接收到的该组所有监控节点的数据进行聚合,并发送给父节点,最终聚合到主控节点,主控节点进行监控数据的存储和数据分析,分析的结果以图表的方式展示给集群运维人员。...

【技术特征摘要】
1.一种大规模集群环境下的监控数据聚合方法,其特征在于,包括以下步骤: (1)所有监控节点向主控节点发起注册请求,注册请求中携带有该节点所要采集的数据,并按顺序从主控节点分别获得一个唯一的节点编号Ni,其中i为自然数,主控节点编号设置为NO ; (2)主控节点根据聚合节点负载公式以及约束条件计算聚合树所需要的聚合节点个数,并根据聚合节点负载均衡的原则从所有监控节点中选取合适的聚合节点; (3)根据步骤(2)中获得的聚合节点构建聚合树;具体而言,聚合树为一颗完全二叉树,根节点为主控节点NO,聚合节点按照节点编号Ni按序从小到大排列并构建完全二叉树; (4)主控节点判断聚合树中是否存在聚合节点失效或者集群规模是否发生改变,如果是则进入步骤(5),否则进入步骤(6); (5)主控节点对聚合节点的失效或者集群规模的变化做出实时处理;具体而言,如果是由聚合节点失效,则主控节点清理该失效的聚合节点的注册信息,并返回步骤(2),如果是有监控节点的注册或者注销,也即集群规模发生了变化,则返回步骤(2); (6)完成聚合树的构建;具体而言,监控节点发送监控数据给它所在分组的聚合节点,聚合节点把接收到的该组所有监控节点的数据进行聚合,并发送给父节点,最终聚合到主控节点,主控节点进行监控数据的存储和数据分析,分析的结果以图表的方式展示给集群运维人员。2.根据权利要求1所述的监控数据聚合方法,其特征在于,在步骤(2)中,聚合节点的负载度量Loadn满足目标函数:1adn = a*fn+b*gn,其中a, b为权重因子,且满足a+b=l, fn为数据个数对节点负载的影响,gnS数据大小对节点负载的影响,且fn,gn都是标量。3.根据权利要求2所述的监控数据聚合方法,其特征在于,在步骤(2)中,聚合节点个数η彡Max,其中Max为一阈值,其取值范围为集群节点数量的1/50到1/20。4.根据权利要求3所述的监控数据聚合方法,其特征在于,步骤(2)包括以下子步骤: (2.1)初始化聚合节点的个数n=2 ; (2.2)利用负载公式计算聚合节点个数η时对应的整体负载sum_loadn=n*loadx, 1adx表示消息个数X...

【专利技术属性】
技术研发人员:蒋文斌金海黄永徐慧卢志伟肖畅
申请(专利权)人:华中科技大学
类型:发明
国别省市:

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

1