当前位置: 首页 > 专利查询>张焰专利>正文

一种服务器故障检测及切换方法技术

技术编号:10646779 阅读:121 留言:0更新日期:2014-11-12 20:43
本发明专利技术提供一种服务器故障检测及切换方法,其包括:首先建立网络服务器池,所述服务器池包括至少两台池化器,其中该池化器负责将多台服务器组成一个虚拟的服务器池,并对服务器的运行状态进行实时监控和采集;服务器启动后向池化器发送登记消息进行登记;然后池化器进行回应,对服务器进行周期性健康状况检查;如果在数据交换中该服务器发生故障,客户端从传输层得到一个错误信息,客户端由此可以获知服务器端发生故障,这时,客户端进入故障切换模式,客户端重新在池化器处做一次池名解析,获得下一台正常运行的服务器IP地址,然后直接和新的服务器建立连接,完成故障切换过程。

【技术实现步骤摘要】

本专利技术是关于计算机网络服务器领域,尤其涉及一种服务器故障检测及切换方法。 
技术介绍
现有传统的服务器故障容错系统中,通常采用心跳机制实现服务器故障的检测,其具体实现机理如下: 在被检测服务器和检测服务器之间连接一条专用的网线,即所谓的“心跳线”,此心跳线仅为故障检测发送检测信息之用,不作为应用数据传输之用,因此在服务器上都有两块网卡,一块用于连接心跳线,另一块则用于应用数据线路。检测服务器通过心跳线每隔一定的间隔时间向被检测服务器发送一个ICMP消息,即Ping方式来检查被检测服务器的健康状况。 如果检测服务器每次ping后都能从被检测服务器得到回应,则表明被检测服务器是正常的,反之则表明被检测服务器发生故障,从而可以决定进一步的容错处理。 快速正确地检测出被检测服务器的故障,是整个容错系统中最重要的环节,如果出现误判,就会给用户带来重大损失。 传统的故障检测机制(心跳机制)在服务器故障识别上存在很大的局限性: (1)无法检测出应用数据所使用的网络接口的故障,因为心跳线采用独立与应用数据网线的专用的网卡和网线,如果数据网络(网卡或网线等)发生故障,这种情况下是无法检测出来的。 (2)无法检测出应用服务程序本身是否发生异常,心跳机制采用发送ICMP协议消息(Ping)的方式检测对方服务器的健康状况,这种Ping方式实事上只能检测出被检测服务器的操作系统是否正常运行。 (3)如果心跳线本身出现故障,该容错系统将无法正常工作。 (4)无法对可能发生硬件性能瓶颈提前判断。 采用心跳检测机制的容错系统中无法检测应用程序的故障,无法检测应用 数据所使用的网络故障,同时在心跳线自身故障时,将无法正常行使故障检测功能。 在典型的服务器-客户机模式下,服务器是由DNS域名确定其位置的,客户端应用系统在访问服务器之前必须通过使用DNS服务对其域名进行解析,从而得到该服务器的IP地址。在客户机和服务器建立连接后,就可以进行信息交换;假如这一服务器发生故障,客户机应用系统有两种可能的选择:1.中断通信;2.选择另一个服务器继续。 在这种模式下,客户端应用系统必须通过以下方式检测出服务器是否中断: (1)服务器没有响应(time out); (2)服务器回应错误信息; (3)收到传输层错误信息; 为了让客户应用程序能够在检测出服务器发生故障后,有选择其它服务器的可能,必须在其应用程序中明确提供一个服务器列表,指明:第一服务器、第二服务器、第三......等。当第一个服务器中断,则尝试和第二个服务器建立连接,再则第三,依此类推。 也就是说,这一故障切换过程是由用户程序的干涉而实现的,有较大局限性: 其一、服务器列表是静态的,必须有用户特别指明; 其二、替代服务器的选择有着较大的盲目性,无法保证所选服务器是否正常及有效,也不能因服务器的负载情况而灵活选择; 其三、接管是通过应用程序而实现,缺乏透明性; 其四、被动的中断识别方式; 其五、为满足可靠性的保证,应用程序开发量较大。 因为确有必要对现有技术进行改进。 
技术实现思路
本专利技术的目的在于提供一种服务器故障检测及切换模块,在服务器池框架下实现全透明的故障切换模式,用户无需任何干预,只需要在服务器故障发生后进行一个池名解析就可以获得新的正常服务器,并重新进行连接,而从方便快捷完成故障切换的过程。 为达成前述目的,本专利技术一种服务器故障检测及切换方法,其包括如下步骤: (1)首先建立网络服务器池,所述服务器池包括至少两台池化器,其中该池化器负责将多台服务器组成一个虚拟的服务器池,并对服务器的运行状态进行实时监控和采集; (2)服务器启动后向池化器发送登记消息进行登记; (3)池化器收到登记消息后,立即以登记回应消息回复; (4)池化器每隔一个固定的时间间隔向该服务器发送持续活动消息,对服务器进行周期性健康状况检查; (5)服务器接到持续活动消息后,立即以持续活动确认消息回复给池化器; (6)如果池化器发出的持续活动消息,在设定时间内没有收到持续活动确认消息,则迅速连续发送几个持续活动消息,如果仍然没有收到持续活动确认消息,则可以判定服务器发生故障; (7)客户端通过池名访问服务器池,首先在池化器处进行池名解析,池化器收到客户端发来的池名解析请求后,会在自身保存的服务器列表中进行查找,并根据预先确定的策略选择一个有效的正常运行的服务器,然后将该服务器的IP地址发送给发出解析请求的客户端; (8)客户端完成池名解析后,然后根据解析得到的服务器IP地址,直接访问服务器,并进行数据交互; (9)如果在数据交换中该服务器发生故障,客户端从传输层得到一个错误信息,客户端由此可以获知服务器端发生故障,这时,客户端进入故障切换模式,客户端重新在池化器处做一次池名解析,获得下一台正常运行的服务器IP地址,然后直接和新的服务器建立连接,完成故障切换过程。 根据本专利技术的一个实施例,本专利技术的服务器池系统由以下三个部分组成: 服务器池:服务器池是由一组具有相同功能的,并被统一管理起来的服务器组成,每个服务器池均使用唯一的池名作为标识; 池化器:是服务器池的管理设备,负责将多台服务器组成一个虚拟的服务器池,并对各台服务器的运行状态进行实时监控和采集;同时提供池名解析功能,以便能让用户方便地访问服务器; 客户端:访问服务器池的客户机。 根据本专利技术的一个实施例,所述服务器池采用池化器的池名解析机制:客户端访问服务器池,先在池化器处做池名解析,池化器根据客户端提交的解析请求,在自己的服务器列表中进行查询,通常每个池名都对应着多个服务器,池化器按照事先确定好的选择策略,为该用户选择一个最佳的服务器IP,并将该结果以解析回应消息的形式反馈给客户端。 本专利技术的有益效果:本专利技术的故障识别方法,可识别以下故障种类:宕机故障、服务器程序死锁、服务器程序崩溃、系统资源耗尽、网络故障(网卡故障、交换机故障等引起的网络通信故障)。故障识别更精准,更快速。相对传统的故障识别机制(心跳机制)来说,可以提供更深度的故障检测功能。并且本专利技术的故障切换方法的优点在于简单透明,无需在客户端维护一个服务器列表,只需随时简单地在池化器做池名解析即可。同时服务器增加减少或变更都无需通知客户端做任何改动。对用户实现了完全的透明化。 附图说明图1是本专利技术的服务器池系统的结构示意图; 图2为本专利技术的服务器故障检测及切换方法的流程图。 具体实施方式此处所称的“一个实施例”或“实施例”是指可包含于本专利技术至少一个实现方式中的特定特征、结构或特性。在本说明书中不同地方出现的“在一个实施例中”并非均指同一个实施例,也不是单独的或选择性的与其他实施例互相排斥的实施例。 请参阅图1,其为本专利技术的服务器池系统的结构示意图。如图1所示,本专利技术的服务器池系统由以下三个部分组成: 本文档来自技高网
...

【技术保护点】
一种服务器故障检测及切换方法,其包括如下步骤:(1)首先建立网络服务器池,所述服务器池包括至少两台池化器,其中该池化器负责将多台服务器组成一个虚拟的服务器池,并对服务器的运行状态进行实时监控和采集;(2)服务器启动后向池化器发送登记消息进行登记;(3)池化器收到登记消息后,立即以登记回应消息回复;(4)池化器每隔一个固定的时间间隔向该服务器发送持续活动消息,对服务器进行周期性健康状况检查;(5)服务器接到持续活动消息后,立即以持续活动确认消息回复给池化器;(6)如果池化器发出的持续活动消息,在设定时间内没有收到持续活动确认消息,则迅速连续发送几个持续活动消息,如果仍然没有收到持续活动确认消息,则可以判定服务器发生故障;(7)客户端通过池名访问服务器池,首先在池化器处进行池名解析,池化器收到客户端发来的池名解析请求后,会在自身保存的服务器列表中进行查找,并根据预先确定的策略选择一个有效的正常运行的服务器,然后将该服务器的IP地址发送给发出解析请求的客户端;(8)客户端完成池名解析后,然后根据解析得到的服务器IP地址,直接访问服务器,并进行数据交互;(9)如果在数据交换中该服务器发生故障,客户端从传输层得到一个错误信息,客户端由此可以获知服务器端发生故障,这时,客户端进入故障切换模式,客户端重新在池化器处做一次池名解析,获得下一台正常运行的服务器IP地址,然后直接和新的服务器建立连接,完成故障切换过程。...

【技术特征摘要】
1.一种服务器故障检测及切换方法,其包括如下步骤:
(1)首先建立网络服务器池,所述服务器池包括至少两台池化器,其中该
池化器负责将多台服务器组成一个虚拟的服务器池,并对服务器的运行状态进
行实时监控和采集;
(2)服务器启动后向池化器发送登记消息进行登记;
(3)池化器收到登记消息后,立即以登记回应消息回复;
(4)池化器每隔一个固定的时间间隔向该服务器发送持续活动消息,对服
务器进行周期性健康状况检查;
(5)服务器接到持续活动消息后,立即以持续活动确认消息回复给池化器;
(6)如果池化器发出的持续活动消息,在设定时间内没有收到持续活动确
认消息,则迅速连续发送几个持续活动消息,如果仍然没有收到持续活动确认
消息,则可以判定服务器发生故障;
(7)客户端通过池名访问服务器池,首先在池化器处进行池名解析,池化
器收到客户端发来的池名解析请求后,会在自身保存的服务器列表中进行查找,
并根据预先确定的策略选择一个有效的正常运行的服务器,然后将该服务器的
IP地址发送给发出解析请求的客户端;
(8)客户端完成池名解析后,然后根据解析得到的服务器IP地址,直接
访问服务器,并进行数据交互;
(9)如果在数据交换中该...

【专利技术属性】
技术研发人员:张焰
申请(专利权)人:张焰
类型:发明
国别省市:江苏;32

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

1