服务器机群的状态检测方法和装置的制作方法

文档序号:7866055阅读:197来源:国知局
专利名称:服务器机群的状态检测方法和装置的制作方法
技术领域
本发明涉及计算机领域,具体地,涉及一种服务器机群的状态检测方法和装置。
背景技术
网络银行、网上办公、网络查询、网上购物等等众多的网络服务已经日益成为人们生活中密不可分的一部分,这些互联网应用都给人们的生活和工作带来了极大帮助,而对提供这些应用的数据中心而言,伴随而来的是用户访问流量和服务器数量的迅速增长,所以数据中心需要负载均衡设备把访问流量合理分配到每台服务器上,保证整个数据中心的运行效率。随着一般数据中心向云计算数据中心发展,在大规模云计算环境中,用户规模不断扩大,用户对应用服务提出更高的访问速度、访问安全以及稳定性等要求,网络层的负载均衡功能已经不能满足更高层次的应用服务提供的需要,因此对流量的应用层处理被逐渐 添加到负载均衡设备之中,最终形成了应用交付设备。应用交付设备可以根据服务器上应用业务的状态对进入云计算数据中心的流量进行负载均衡,从而提高云计算中心应用业务的性能。应用交付设备对数据中心大量的服务器进行负载均衡,就需要实时检测每台服务器的应用业务状态。在云计算环境中,应用交付设备要检测的服务器很多是架设在物理服务器上的虚拟服务器,虚拟服务器的数量庞大,而且随着虚拟服务器的创建、销毁和配置等操作,虚拟服务器的业务状态变化也非常频繁。应用交付设备要提高负载均衡的效果,就要及时发现每台服务器的业务状态变化,就要提高对服务器业务状态的检测频率。如图I所示,现有的应用交付系统进行业务状态检测的方法,是在应用交付系统与每台服务器之间通过网络协议栈建立一个连接,由应用交付系统依次向每台服务器发送业务状态查询信息,并接收服务器的响应信息。在大规模云计算数据中心,服务器的数量庞大,应用交付设备对大量虚拟服务器的频繁的业务状态检测,需要大量的网络传输和计算开销,会降低服务器业务状态检测的及时性和效率。针对相关技术中由于应用交付设备检测服务器机群的状态需要与每个服务器建立连接而需要大量的网络传输和计算开销,从而引起的服务器机群状态检测的效率低的问题,目前尚未提出有效的解决方案。

发明内容
针对相关技术中由于应用交付设备检测服务器机群的状态需要与每个服务器建立连接而需要大量的网络传输和计算开销,从而引起的服务器检测的及时性差及效率低的问题,本发明提出一种服务器机群的状态检测方法和装置,能够通过原始报文获取服务器机群的状态,再将该状态通知给请求方,从而提高服务器机群状态检测的效率。本发明的技术方案是这样实现的根据本发明的一个方面,提供了一种服务器机群的状态检测方法,该服务器机群的状态检测方法包括从请求方接收服务器机群状态查询请求;响应于服务器机群状态查询请求,通过服务器机群的内部网络获取服务器机群中服务器的状态;将获取的服务器机群中服务器的状态通知给请求方。其中,从请求方接收服务器机群状态查询请求包括以预设时间间隔接收由请求方发送的服务器机群状态查询请求。并且,通过原始报文获取服务器机群中服务器的状态包括根据状态查询请求构造与状态查询请求对应的原始报文,通过内部网络向服务器机群中的服务器发送原始报文;·接收服务器机群中的服务器响应于原始报文返回的各服务器的状态。此外,接收服务器机群中的服务器响应于原始报文返回的各服务器的状态包括接收各服务器通过内部网络返回的状态报文,并根据状态报文获取服务器的状态。并且,根据状态报文获取服务器的状态包括提取状态报文中包含的服务器标识和状态信息,根据状态信息确定该服务器标识所对应的服务器的状态。根据本发明的另一个方面,提供了一种服务器机群的状态检测装置,该状态检测装置包括接收模块,用于从请求方接收服务器机群状态查询请求;获取模块,用于响应于服务器机群状态查询请求,通过服务器机群的内部网络获取服务器机群中服务器的状态;通知模块,用于将获取的服务器机群中服务器的状态通知给请求方。其中,接收模块用于以预设时间间隔接收由请求方发送的服务器机群状态查询请求。其中,获取模块还用于根据状态查询请求构造与状态查询请求对应的原始报文,通过内部网络向服务器机群中的服务器发送原始报文。此外,获取模块还用于接收各服务器通过内部网络返回的状态报文,并根据状态报文获取服务器的状态。获取模块根据状态报文获取服务器的状态包括提取状态报文中包含的服务器标识和状态信息,根据状态信息确定该服务器标识所对应的服务器的状态。本发明通过从请求方接收服务器机群状态查询请求,响应于该服务器机群状态查询请求,通过服务器机群的内部网络获取服务器机群中服务器的状态,将获取的服务器机群中服务器的状态通知给请求方,能够通过原始报文获取服务器机群的状态,再将该状态通知给请求方,从而提高服务器机群状态检测的效率。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图I是根据本发明背景技术中现有技术的应用交付系统进行业务状态检测的方法;图2是根据本发明实施例的服务器机群的状态检测方法的流程图;图3是根据本发明实施例的服务器机群的状态检测装置的框图;图4是根据本发明实施例的服务器机群的状态检测装置的具体结构实例。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。根据本发明的一个实施例,提供了一种服务器机群的状态检测方法。如图2所示,根据本发明实施例的服务器机群的状态检测方法包括步骤S201,从请求方接收服务器机群状态查询请求;步骤S203,响应于服务器机群状态查询请求,通过原始报文获取服务器机群中服务器的状态(借助于服务器集群的内部网络,而并非针对每个服务器分别建立对外连接);步骤S205,将获取的服务器机群中服务器的状态通知给请求方。其中,从请求方接收服务器机群状态查询请求包括以预设时间间隔接收由请求方发送的服务器机群状态查询请求。并且,通过原始报文获取服务器机群中服务器的状态包括根据状态查询请求构造与状态查询请求对应的原始报文,通过内部网络向服务器机群中的服务器发送原始报文;接收服务器机群中的服务器响应于原始报文返回的各服务器的状态。此外,接收服务器机群中的服务器响应于原始报文返回的各服务器的状态包括接收各服务器通过内部网络返回的状态报文,并根据状态报文获取服务器的状态。并且,根据状态报文获取服务器的状态包括提取状态报文中包含的服务器标识和状态信息,根据状态信息确定该服务器标识所对应的服务器的状态。 根据本发明的另一个方面,提供了一种服务器机群的状态检测装置。如图3所示,该服务器机群的状态检测装置包括接收模块31,用于从请求方接收服务器机群状态查询请求;获取模块32,用于响应于服务器机群状态查询请求,通过原始报文获取服务器机群中服务器的状态;通知模块33,用于将获取的服务器机群中服务器的状态通知给请求方。其中,接收模块31用于以预设时间间隔接收由请求方发送的服务器机群状态查询请求。
并且,获取模块32还用于根据状态查询请求构造与状态查询请求对应的原始报文,通过内部网络向服务器机群中的服务器发送原始报文;以及用于接收服务器机群中的服务器响应于原始报文返回的各服务器的状态。此外,获取模块32还用于接收各服务器通过内部网络返回的状态报文,并根据状态报文获取服务器的状态。另外,获取模块32还用于提取状态报文中包含的服务器标识和状态信息,根据状态信息确定该服务器标识所对应的服务器的状态。根据本发明的服务器机群的状态检测装置,可以按照图4的功能模块来实现。本发明针对大规模云计算环境中的应用交付设备,设计了一种通过原始套接字和广播报文实现的服务器业务状态检测方法。如图4所示,在本发明中,应用交付设备的服务器业务状态检测功能,分为发送查询模块(即本文中的接收模块)和回收应答模块(即本文中的获取模块结合了通知模块)两部分。发送查询模块循环进行服务器业务状态查 询时,不是通过标准的网络协议栈和每台服务器建立连接后依次向每台服务器发送查询信息,而是直接构造一个原始套接字的查询报文,并以广播报文的形式发送出去,实现对所有服务器业务状态的查询。回收应答模块循环接收所有服务器返回的业务状态信息,更新应用交付设备中的业务状态信息结构。本发明的基于原始套接字的服务器业务状态检测方法,处理过程如下一、应用交付设备启动后,服务器业务状态检测模块建立一个保存服务器业务状态信息的数据结构,并启动发送查询模块和回收应答模块。二、发送查询模块启动后,在内部网络接口上打开一个原始套件字,然后进入一个周期循环的过程。三、在发送查询模块的每一次循环中,根据系统定义的服务器业务状态(例如,月艮务器是否正常、服务器的负载、服务器的CPU、服务器的内存等)查询消息结构,构造一个原始报文,报文的目的mac地址(物理地址)设置为广播地址,目的是可以令服务器机群的所有服务器均能接收到报文,再从内部网络接口发送出去。四、回收应答模块启动后,在内部网络接口上打开一个原始套接字,然后进入一个周期循环的过程。五、在回收应答模块的每一次循环中,都通过原始套接字从内部网络接口接收一个报文,如果报文不是服务器业务状态的应答消息,则丢弃该报文,否则,就从报文中提取出服务器标识和业务状态信息,保存到服务器业务状态信息的数据结构中。可选地,服务器业务状态查询功能也可以通过扩展操作系统的协议栈,把状态查询应答功能定义为一个私有的3层协议,在内核的协议处理模块中实现。综上所述,借助于本发明的上述技术方案,通过从请求方接收服务器机群状态查询请求,响应于该服务器机群状态查询请求,通过原始报文获取服务器机群中服务器的状态,将获取的服务器机群中服务器的状态通知给请求方。能够通过原始报文获取服务器机群的状态,再将该状态通知给请求方,从而提高服务器机群状态检测的效率。本发明和一般服务器业务状态检测方法相比,用广播代替轮询,减少了状态查询时传输的网络数据量,用原始套接字代替网络协议栈连接,避免了网络协议栈的处理开销,可以提高对大量服务器业务状态检测的效率。
以上所述仅为本发明的较佳实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。·
权利要求
1.一种服务器机群的状态检测方法,其特征在于,所述状态检测方法包括 从请求方接收服务器机群状态查询请求; 响应于所述服务器机群状态查询请求,通过所述服务器机群的内部网络获取所述服务器机群中服务器的状态; 将获取的所述服务器机群中服务器的所述状态通知给所述请求方。
2.根据权利要求I所述的状态检测方法,其特征在于,从所述请求方接收服务器机群状态查询请求包括 以预设时间间隔接收由所述请求方发送的所述服务器机群状态查询请求。
3.根据权利要求I所述的状态检测方法,其特征在于,通过所述服务器机群的内部网络获取所述服务器机群中服务器的状态包括 根据所述状态查询请求构造与所述状态查询请求对应的原始报文,通过所述内部网络向所述服务器机群中的服务器发送所述原始报文; 接收所述服务器机群中的服务器响应于所述原始报文返回的各服务器的状态。
4.根据权利要求3所述的状态检测方法,其特征在于,接收所述服务器机群中的服务器响应于所述原始报文返回的各服务器的状态包括 接收所述各服务器通过所述内部网络返回的状态报文,并根据所述状态报文获取服务器的状态。
5.根据权利要求4所述的状态检测方法,其特征在于,根据所述状态报文获取服务器的状态包括 提取所述状态报文中包含的服务器标识和状态信息,根据所述状态信息确定该服务器标识所对应的服务器的状态。
6.一种服务器机群的状态检测装置,其特征在于,所述状态检测装置包括 接收模块,用于从请求方接收服务器机群状态查询请求; 获取模块,用于响应于所述服务器机群状态查询请求,通过所述服务器机群的内部网络获取所述服务器机群中服务器的状态; 通知模块,用于将获取的所述服务器机群中服务器的所述状态通知给所述请求方。
7.根据权利要求6所述的状态检测装置,其特征在于,所述接收模块用于以预设时间间隔接收由所述请求方发送的所述服务器机群状态查询请求。
8.根据权利要求6所述的状态检测装置,其特征在于,所述获取模块还用于根据所述状态查询请求构造与所述状态查询请求对应的原始报文,通过所述内部网络向所述服务器机群中的服务器发送所述原始报文;以及用于接收所述服务器机群中的服务器响应于所述原始报文返回的各服务器的状态。
9.根据权利要求8所述的状态检测装置,其特征在于,所述获取模块还用于接收所述各服务器通过所述内部网络返回的状态报文,并根据所述状态报文获取服务器的状态。
10.根据权利要求9所述的状态检测装置,其特征在于,所述获取模块还用于提取所述状态报文中包含的服务器标识和状态信息,根据所述状态信息确定该服务器标识所对应的服务器的状态。
全文摘要
本发明公开了一种服务器机群的状态检测方法和装置,该方法包括从请求方接收服务器机群状态查询请求;响应于该服务器机群状态查询请求,通过服务器机群的内部网络获取服务器机群中服务器的状态;将获取的服务器机群中服务器的状态通知给请求方。本发明通过从请求方接收服务器机群状态查询请求,响应于该服务器机群状态查询请求,通过服务器机群的内部网络获取服务器机群中服务器的状态,将获取的服务器机群中服务器的状态通知给请求方。本发明能够通过原始报文获取服务器机群的状态,再将该状态通知给请求方,从而提高服务器机群状态检测的效率。
文档编号H04L29/08GK102932209SQ201210474320
公开日2013年2月13日 申请日期2012年11月20日 优先权日2012年11月20日
发明者刘朝辉, 邵宗有, 刘新春 申请人:无锡城市云计算中心有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1