一种云计算监控框架设计及实现方法及云计算处理设备的制作方法

文档序号:7859295阅读:217来源:国知局
专利名称:一种云计算监控框架设计及实现方法及云计算处理设备的制作方法
技术领域
本发明涉及计算机软件和云计算领域,尤其涉及一种云计算监控框架设计及实现方法及云计算处理设备。
背景技术
云计算基础设施平台是一个复杂的服务平台,具有多样化、异构性和动态变化的特点。云计算系统的正常运行离不开监控系统的支持,云监控系统能够实时反映出云平台的健康状况,能够及时发现和处理云计算平台已发生和潜在的问题,这对于管理和调度云计算系统资源起到了关键性的作用。因此,一个好的监控框架对于系统的正常运维起着决定性的作用。然而,当前对于一个好的监控框架没有一个确切的规定
发明内容
本发明要解决的技术问题是提供一种云计算监控框架设计及实现方法及云计算处理设备,为云计算监控框架设计提供新的解决方案。为了解决上述技术问题,本发明提供了一种云计算监控框架设计及实现方法,所述方法包括在节点上设置唯一性软件标识作为节点的身份标识,节点自动扫描发现其它节点,根据节点的身份标识进行注册并生成节点组织关系表,根据所述节点组织关系表对节点进行下述操作中的一种或多种节点间心跳检查、节点初始化或运行中检查、路由故障通知告警消息、推送节点监控数据。进一步地,上述方法还可以具有以下特点在节点上设置唯一性软件标识是指对不同类型节点安装不同的程序包或进程,根据节点上运行的所述程序包或进程识别节点身份。进一步地,上述方法还可以具有以下特点所述节点采用组播或Avahi方式进行自动扫描;将注册信息注册到本地的配置文件中,并在所述配置文件中记录或更新注册时间。进一步地,上述方法还可以具有以下特点 所述节点间心跳检查包括根据节点的注册时间的刷新间隔作为网络心跳间隔用于检查节点间的网络连通性。进一步地,上述方法还可以具有以下特点所述节点初始化或运行中检查包括在每个节点开机时自动检测服务进程是否启动、存储挂载是否就绪,在节点运行中检查服务进程是否僵死、服务进程是否退出,存储挂载目录是否就绪,检查到异常后杀死僵死进程、启动服务进程、挂载可用的存储。进一步地,上述方法还可以具有以下特点使用RabbitMQ消息队列机制对故障通知告警消息进行路由和传输。进一步地,上述方法还可以具有以下特点
所述推送节点监控数据包括将对节点的监控数据实时刷新到Redis数据库,监控数据包括以下参数中的一种或多种(PU使用率,CPU负载,内存使用率,磁盘空间使用率,磁盘输入和/或输出,网络流量,系统进程运行情况信息。进一步地,上述方法还可以具有以下特点采用事件循环轮询机制对节点轮询执行所述操作。为了解决上述技术问题,本发明还提供了一种云计算处理设备,所述设备包括管理模块、操作执行模块、监控数据存储模块;所述管理模块,用于在节点上设置唯一性软件标识作为节点的身份标识,自动扫描发现其它节点,根据节点的身份标识进行注册并生成节点组织关系表;所述操作执行模块,用于根据所述节点组织关系表对节点进行下述操作中的一种或多种节点间心跳检查、节点初始化或运行中检查、路由故障通知告警消息、推送节点监 控数据;所述监控数据存储模块,用于存储和更新节点监控数据。进一步地,上述云计算处理设备还可以具有以下特点所述管理模块,还用于在节点上设置唯一性软件标识是指对不同类型节点安装不同的程序包或进程,根据节点上运行的所述程序包或进程识别节点身份;采用组播或Avahi方式进行自动扫描,将注册信息注册到本地的配置文件中,并在所述配置文件中记录或更新注册时间;所述操作执行模块,还用于根据节点的注册时间的刷新间隔作为网络心跳间隔用于检查节点间的网络连通性;还用于在每个节点开机时自动检测服务进程是否启动、存储挂载是否就绪,在节点运行中检查服务进程是否僵死、服务进程是否退出,存储挂载目录是否就绪,检查到异常后杀死僵死进程、启动服务进程、挂载可用的存储;还用于使用RabbitMQ消息队列机制对故障通知告警消息进行路由和传输;将对节点的监控数据实时刷新到Redis数据库,监控数据包括以下参数中的一种或多种CPU使用率,CPU负载,内存使用率,磁盘空间使用率,磁盘输入和/或输出,网络流量,系统进程运行情况信息;还用于采用事件循环轮询机制对节点轮询执行所述操作。本方案可以方便的移植和应用到其他的分布式系统,具有一定的通用性,可以省略人工操作过程,可以自动完成云计算的运行,提高云计算系统的智能性。


图I是云计算监控框架设计及实现方法的流程图;图2是云计算处理设备的结构图。
具体实施例方式需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相
互任意组合。如图I所示,云计算监控框架设计及实现方法包括在节点上设置唯一性软件标识作为节点的身份标识,节点自动扫描发现其它节点,根据节点的身份标识进行注册并生成节点组织关系表,根据所述节点组织关系表对节点进行下述操作中的一种或多种节点间心跳检查、节点初始化或运行中检查、路由故障通知告警消息、推送节点监控数据。下面对各步骤进行详细说明。I节点身份自动识别云计算系统的节点身份具有多样化,可简单分为计算节点、管理主控节点、分布式存储master节点、分布式存储chunkserver节点和集中式存储节点等等,并且某些节点可能重复身份,比如某些节点具有管理节点和计算节点双重身份等。面对如此多的节点类型可以通过手动修改配置文件来指定身份,但是当有上千台节点时,手动修改配置文件确定节点身份存在耗时而繁琐的问题,因此自动化确定节点身份至关重要,只要安装好监控程序,上千台节点自动识别各自的身份并确立起节点间的关系,能够减少大量的部署和维护工作量。本方案中,在节点上设置唯一性软件标识是指对不同类型节点安装不同的程序包或进程,根据节点上运行的所述程序包或进程识别节点身份。每种类型的节点会安装不同的程序包,启动不同的进程,可以简单根据某些进程是否安装和运行作为确定节点身份的 标识,当然不能随意安装这些特殊程序包到节点,需要严格的控制,不然会导致节点身份识别混淆。避免该问题最简单的方式就是定制化安装光盘,该光盘预先配置各种节点的安装选项并保证最精简的包安装。除此方式外,还也可以采用其他方式作为确定节点身份的标识。2节点自动扫描与自动注册云计算平台具有多种多样的节点类型,各种节点相互配合完成共同的资源管理和调度任务,如计算节点在主控节点的控制下有条不紊的进行着虚拟机生命周期的管理,计算节点实时反馈管理节点关于计算节点的实时资源使用情况,而计算节点上的虚拟机也时刻与存储交互,实时读写数据到存储节点等等。节点集群如此有条理的配合工作离不开一种潜在的节点关系维护。当然我们可以手动配置文件设定每个节点的身份,并手动填写一张关于其他节点身份关系的关系表,这样每个节点就能自动找到各自的合作节点,事实上当前大部分系统都是这样设计的。但是,当云计算系统规模达到一定程度后,手动维护每个节点的节点关系身份表存在一定的难度,同时配置上千台节点工作量较大。本方案中,节点采用组播或Avahi方式进行自动扫描;将注册信息注册到本地的配置文件中,并在所述配置文件中记录或更新注册时间。组播协议中同一组播组的节点能够收到组播消息,因此可以用来扫描和搜索节点;Avahi是zeroconf协议的实现,它可以在没有DNS服务的局域网里发现基于zeiOconf协议的设备和服务,因此也可以用来发现和扫描节点。本发明组播方式,稳定且可靠。当节点扫描和发现后,自动注册到本地的配置文件中,比如xml文件,同时在配置文件记录注册时间。本方案中可以为每个节点动态生成一张各种节点的关系表,该关系表能够根据节点身份的改变实时变化,具有一定的智能性和实时性。3节点间的网络心跳检查云计算系统的节点集群通过数据中心网络互连,是网络就会存在丢包的情况,当出现网络断开,需使其他节点实时感知节点的网络故障。本方案中,节点间心跳检查包括根据节点的注册时间的刷新间隔作为网络心跳间隔用于检查节点间的网络连通性。
本方案中采用一种被动式的网络心跳检测方法,通过节点关系注册时实时记录注册时间,节点注册是持续随机的,每次注册都会刷新上次注册时记录的注册时间,注册时间频率可以指定,两次注册的注册时间差可以用来当作网络心跳间隔,事实证明,通过这样的方法既实现了节点注册,也间接实现了节点间心跳的检查,同时避免了使用一些故障诊断协议如ICMP带来的额外网络开销。4节点的初始化检查或运行中检查云计算系统的智能化不止包括节点身份自动识别和节点间关系自动维护,还包括节点自动初始化操作,如节点服务进程的故障检查与自动恢复功能,存储就绪检查等。本方案中,节点初始化或运行中检查包括在每个节点开机时自动检测服务进程是否启动、存储挂载是否就绪,在节点运行中检查服务进程是否僵死、服务进程是否退出,存储挂载目录是否就绪,检查到异常后杀死僵死进程、启动服务进程、挂载可用的存储,具有一定的智能性。本过程通过节点组织关系表实时查询当前的目标管理节点,然后将数据发送到目标节点,该过程不需要人工参与配置,是自动完成的,因此具有一定的智能性。 5使用RabbitMQ消息队列机制对故障通知告警消息进行路由和传输高级消息队列协议(AMQP,Advanced Message Queuing Protocol)是应用层协议的一个开放标准,为面向消息的中间件设计。AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全性要求很严格。AMQP允许来自不同供应商的消息生产者和消费者实现真正的互操作扩展。AMQP是一个线路级的协议,它描述了通过网络传输的字节流的数据格式。RabbitMQ是AMQP的开源实现,基于Erlang语言,具有高性能、健壮以及Scalability的优点。本发明基于RabbitMQ的这些特征,实现了一个可靠的监控框架,该框架对监控消息进行路由并将监控响应数据发送到指定的处理队列。该方案成熟可靠,效率高效,最主要是简化编程,让开发者不用去关心底层的数据传输和实现,并且能够大大降低云计算系统模块的耦合性。6监控数据的获取,内存数据库Redis的数据推送本方案中,所述推送节点监控数据包括将对节点的监控数据实时刷新到Redis数据库,监控数据包括以下参数中的一种或多种CPU使用率,CPU负载,内存使用率,磁盘空间使用率,磁盘输入和/或输出,网络流量,系统进程运行情况信息。Redis是一种开源的基于Key-Value的轻量级NoSQL数据库,Redis的所有数据可以保存在内存中,也可以持久化到磁盘,具有闻性能、闻效存储、闻可用性和闻可扩展性等诸多优势。它结构简单,读与效率高,支持服务器集群,能够处理海量数据,可以应对高并发访问。因此本发明中监控数据的存取基于Redis也具有这些相应的特性。本过程通过节点组织关系表实时查询当前redis所在的节点,然后将数据发送到目标节点,该过程不需要人工参与配置,是自动完成的,因此具有一定的智能化。7采用事件循环(Event Loop)轮询机制对节点轮询执行各操作。GLib中的Main Event Loop可以监控管理所有可用的事件资源。GLib内部实现了 Timeout,Idle, Child Watch三种类型的事件源,如文件描述符(普通文件、管道或者套接字)或者超时。用户也可以定义自己的其它类型资源,但这需要使用g_source_attachO进行关联。在Main Event Loop中每一个事件资源都被赋予一个优先级。用户可以指定默认优先级,默认的优先级是G_PRIORITY_DEFAULT,它的值是O。值比O小的意味着更高的优先级。值比O大的意味着更低的优先级。高优先级的事件资源总是比低优先级的事件资源得到优先处理。通过GSource结构创建新的事件资源类型,新的事件资源类型包括步骤一到步骤六的事件资源,新事件资源类型用一个结构体表示。可以调用g_source_newO创建一个新事件资源类型的实例,这需要将一张函数表(GSourceFuncs)和事件资源结构体的大小传递给g_source_new()函数。其中函数表中的函数决定了新的资源事件的行为。GMainLoop>GMainContext和GSource具有一定的关系,其中每个GMainLoop中只能有一个CMainContext,而每个CMainContext中可以有多个GSource,也就是用户可以同时对多个资源进行轮询。创建好新的资源类型后使用g_source_attach O进行关联,即向GMainLoop中添加关联的资源。向其中添加初始化事件资源之后,就可以调用g_main_l00p_rUn()函数进行轮询,在没有调用g_main_l00p_quit()的情况下,程序将阻塞到该函数。继续检查新的从每个事件资源发出的新事件并处理它们。最后,当某个资源发出的事件中调用g_main_loop_quit O 时,将会退出 Main Event Loop,同时 g_main_loop_run O 返回。 Event Loop轮询机制中prepare O、check O和dispatch O函数与轮询有关,这三个函数在轮询过程的不同阶段被调用。prepare O在所有的文件描述符被轮询前调用,对于超时事件资源该函数返回TRUE时说明已到定时时间,返回FALSE则说明未到。当所有文件描述符都被轮询完之后将会调用checkO函数,对于超时事件资源该函数的返回值的意义与prepareO函数一致。dispatch()函数用于发送事件资源,当prepare O或者checkO任意一个返回TRUE时,该函数将被调用。其主要是调用用户的回调函数,实现相应的功能。这三个函数的具体功能需要用户根据需要来实现。如图2所示,云计算处理设备包括管理模块、操作执行模块、监控数据存储模块。所述管理模块,用于在节点上设置唯一性软件标识作为节点的身份标识,自动扫描发现其它节点,根据节点的身份标识进行注册并生成节点组织关系表;所述操作执行模块,用于根据所述节点组织关系表对节点进行下述操作中的一种或多种节点间心跳检查、节点初始化或运行中检查、路由故障通知告警消息、推送节点监控数据;所述监控数据存储模块(也称为Redis模块),用于存储和更新节点监控数据。所述管理模块,还用于在节点上设置唯一性软件标识是指对不同类型节点安装不同的程序包或进程,根据节点上运行的所述程序包或进程识别节点身份;采用组播或Avahi方式进行自动扫描,将注册信息注册到本地的配置文件中,并在所述配置文件中记录或更新注册时间;所述操作执行模块,还用于根据节点的注册时间的刷新间隔作为网络心跳间隔用于检查节点间的网络连通性;还用于在每个节点开机时自动检测服务进程是否启动、存储挂载是否就绪,在节点运行中检查服务进程是否僵死、服务进程是否退出,存储挂载目录是否就绪,检查到异常后杀死僵死进程、启动服务进程、挂载可用的存储。所述操作执行模块中包括RabbitMQ子模块,RabbitMQ子模块用于使用RabbitMQ消息队列机制对故障通知告警消息进行路由和传输。所述操作执行模块,还用于将对节点的监控数据实时刷新到Redis数据库,监控数据包括以下参数中的一种或多种=CPU使用率,CPU负载,内存使用率,磁盘空间使用率,磁盘输入和/或输出,网络流量,系统进程运行情况信息;还用于采用事件循环轮询机制对节点轮询执行所述操作。当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存 储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
权利要求
1.一种云计算监控框架设计及实现方法,其特征在于,所述方法包括 在节点上设置唯一性软件标识作为节点的身份标识,节点自动扫描发现其它节点,根据节点的身份标识进行注册并生成节点组织关系表,根据所述节点组织关系表对节点进行下述操作中的一种或多种节点间心跳检查、节点初始化或运行中检查、路由故障通知告警消息、推送节点监控数据。
2.如权利要求I所述的方法,其特征在于, 在节点上设置唯一性软件标识是指对不同类型节点安装不同的程序包或进程,根据节点上运行的所述程序包或进程识别节点身份。
3.如权利要求2所述的方法,其特征在于, 所述节点采用组播或Avahi方式进行自动扫描; 将注册信息注册到本地的配置文件中,并在所述配置文件中记录或更新注册时间。
4.如权利要求3所述的方法,其特征在于, 所述节点间心跳检查包括根据节点的注册时间的刷新间隔作为网络心跳间隔用于检查节点间的网络连通性。
5.如权利要求4所述的方法,其特征在于, 所述节点初始化或运行中检查包括在每个节点开机时自动检测服务进程是否启动、存储挂载是否就绪,在节点运行中检查服务进程是否僵死、服务进程是否退出,存储挂载目录是否就绪,检查到异常后杀死僵死进程、启动服务进程、挂载可用的存储。
6.如权利要求5所述的方法,其特征在于, 使用RabbitMQ消息队列机制对故障通知告警消息进行路由和传输。
7.如权利要求6所述的方法,其特征在于, 所述推送节点监控数据包括将对节点的监控数据实时刷新到Redis数据库,监控数据包括以下参数中的一种或多种=CPU使用率,CPU负载,内存使用率,磁盘空间使用率,磁盘输入和/或输出,网络流量,系统进程运行情况信息。
8.如权利要求7所述的方法,其特征在于, 采用事件循环轮询机制对节点轮询执行所述操作。
9.一种云计算处理设备,其特征在于, 所述设备包括管理模块、操作执行模块、监控数据存储模块; 所述管理模块,用于在节点上设置唯一性软件标识作为节点的身份标识,自动扫描发现其它节点,根据节点的身份标识进行注册并生成节点组织关系表; 所述操作执行模块,用于根据所述节点组织关系表对节点进行下述操作中的一种或多种节点间心跳检查、节点初始化或运行中检查、路由故障通知告警消息、推送节点监控数据; 所述监控数据存储模块,用于存储和更新节点监控数据。
10.如权利要求9所述云计算处理设备,其特征在于, 所述管理模块,还用于在节点上设置唯一性软件标识是指对不同类型节点安装不同的程序包或进程,根据节点上运行的所述程序包或进程识别节点身份;采用组播或Avahi方式进行自动扫描,将注册信息注册到本地的配置文件中,并在所述配置文件中记录或更新注册时间;所述操作执行模块,还用于根据节点的注册时间的刷新间隔作为网络心跳间隔用于检查节 点间的网络连通性;还用于在每个节点开机时自动检测服务进程是否启动、存储挂载是否就绪,在节点运行中检查服务进程是否僵死、服务进程是否退出,存储挂载目录是否就绪,检查到异常后杀死僵死进程、启动服务进程、挂载可用的存储;还用于使用RabbitMQ消息队列机制对故障通知告警消息进行路由和传输;将对节点的监控数据实时刷新到Redis数据库,监控数据包括以下参数中的一种或多种CPU使用率,CPU负载,内存使用率,磁盘空间使用率,磁盘输入和/或输出,网络流量,系统进程运行情况信息;还用于采用事件循环轮询机制对节点轮询执行所述操作。
全文摘要
本发明公开了一种云计算监控框架设计及实现方法及云计算处理设备,所述方法包括在节点上设置唯一性软件标识作为节点的身份标识,节点自动扫描发现其它节点,根据节点的身份标识进行注册并生成节点组织关系表,根据所述节点组织关系表对节点进行下述操作中的一种或多种节点间心跳检查、节点初始化或运行中检查、路由故障通知告警消息、推送节点监控数据。本方案可以方便的移植和应用到其他的分布式系统,具有一定的通用性,可以省略人工操作过程,可以自动完成云计算的运行,提高云计算系统的智能性。
文档编号H04L12/26GK102868736SQ201210316388
公开日2013年1月9日 申请日期2012年8月30日 优先权日2012年8月30日
发明者罗登亮 申请人:浪潮(北京)电子信息产业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1