自主服务器场和服务器场中的自修复方法

文档序号:7965558阅读:161来源:国知局
专利名称:自主服务器场和服务器场中的自修复方法
技术领域
本发明涉及自主计算领域,更具体地说,涉及服务器场的自修复。
背景技术
从企业计算技术的出现开始,与适于在企业中运用的创新技术的数目日益增多同步,计算技术的复杂性呈指数规律增加。受人推崇的摩尔定律推动了信息技术业的巨大发展,并被看作技术进步的基础。尽管如此,位于运用和管理新的计算技术最前沿的人们认识到计算技术数目的日益增多以及复杂性日益提高的代价是技术管理。
即,在要求必须监视和管理企业中每个组成部分的情况下,互用性的主要目的已变得越来越难以实现。过去,企业仅仅由数个标准化组成部分构成,目前,企业可包括大量根本不同的组成部分,每个组成部分能够在规定的运作参数内极好地完成任务,或者在规定的运作参数外极差地完成工作。从而,虽然外行看来未来的挑战好象取决于开发具有更高能力的许多新技术,但是本领域的技术人员会认识到未来的真正挑战由可能已经存在的技术管理决定。
在著名的宣言Automnomic ComputingIBM′s Perspective onthe State of Information Technology中,Paul Horn,IBM Research的高级副总裁评述“要忙于的不是跟上摩尔定律,而是应付其长达数十年统治的结果”。在该评述下,Horn提出与生物科学的自主神经系统相似的计算。即,鉴于人类的自主神经系统监视、控制、修复和响应不断变化的条件,而不需要出自人类一方的任何有意识努力,因此在自主计算系统中,系统必须自我调整、自我修复和响应不断变化的条件,而不需要出自计算系统操作员的任何有意识努力。
从而,与自主神经系统能够使人类免于应付复杂事件的负担一样,自主计算系统也能够如此。可确切地说,计算系统本身能够承担应付其自身复杂性的责任。IBM宣言的要点和自主计算系统的八个主要特征相关I、系统必须“了解自身”,并包括同样拥有系统身份的那些系统组成部分。
II、系统必须能够在不断变化并且不可预测的条件下配置和重新配置自身。
III、系统必须决不满足于现状,系统必须始终寻找优化其工作的方式。
IV、系统必须是能自修复的,能够从可能导致其一些部分发生故障的常规及异常事件中恢复过来。
V、系统必须是自我保护方面的专家。
VI、系统必须了解其环境以及围绕其活动的背景,并据此采取行动。
VII、系统必须遵守开放式标准。
VIII、系统必须预期使用户无法察觉其复杂性所需的优化资源。
特别地,根据自主计算的这八个条件(tenant),已提出数种单一系统及对等系统,其中自我配置、管理和修复为自主操作建立了基础。但是,不论自主计算的这八个条件,现有的实现都没有注意客户计算装置和服务器场中服务器过程的相互作用以促进服务器场中的自我管理和自修复。相反,多数服务器场依赖于周期心跳机制的应用,或者依赖于在喷射器(sprayer)指派一个服务器处理输入的请求时用“喷射器(sprayer)”监视服务器场中服务器的可用状态。

发明内容
本发明是服务器场中服务器故障诊断和自修复的方法、系统和设备。具体地说,本发明能够实现服务器场的自主配置。根据本发明的结构配置的自主服务器场可包括能够响应从位于服务器场之外的客户机接收的请求的许多服务器。资源导向器比如IP喷射器或网络调度程序可被配置成根据诸如随机选择法、循环选择法和最近最少使用法之类的资源分配算法,把请求发送给选定的一些服务器。重要的是,和其故障诊断及自修复的管理完全依赖于资源导向器的能力的常规服务器场不同,本发明中,客户机辅助故障检测逻辑部分可与资源导向器耦接,以便提供故障诊断和自修复的客户机辅助管理。
服务器场中服务器故障诊断和自修复的方法可包括在客户机试图参加与服务器场中的指定服务器的通信请求/响应对话时,从客户机接收重试请求。可根据重试请求确定指定服务器中故障的出现。因此,可指定服务器场中的一个不同服务器处理重试请求。重要的是,也可执行补救指定服务器中的故障的操作。
在本发明的一个方面,确定步骤可包括把表示指定服务器中出现故障的指示设置在与重试请求相关的请求串中。或者,确定步骤可包括把表示指定服务器中出现故障的指示设置在与重试请求相关的cookie中。最后,执行步骤可包括执行从下列操作中选择的至少一个补救操作、初始服务器再循环(回收),重新启动初始服务器中的某一设备,以及重新启动初始服务器中的某一应用程序。可选地,执行步骤可包括把故障通知给管理节点。


附图中表示了目前的优选实施例,但是,本发明并不局限于附图中所示的具体结构和手段,其中图1是根据本发明的方案,为客户机辅助诊断和自我修复而配置的服务器场的方框图;图2是图解说明服务器场中客户机辅助诊断和自修复过程的时序图。
具体实施例方式
本发明是服务器场中客户机辅助诊断和自修复的一种方法、系统和设备。具体地说,根据本发明的安排,单个客户计算装置能够向服务器场中的一个或多个服务器请求服务,包括数据。对于从各个客户计算装置接收的每个请求,网络调度程序,例如喷射器(sprayer)可把请求发送给服务器场中的可用服务器,从而,请求客户机和指定的服务器可建立通信对话。
在指定的服务器不能在通信对话期间应答请求客户机的情况下,请求客户机可随同表示指定的服务器不能应答请求的指示一起,重试所述请求。所述指示可包括,例如直接提及失败服务器,或者网络调度程序可据其解析失败服务器的身份的关联子。当收到重试时,网络调度程序可再次把所述请求发送给服务器场中的另一服务器。另外,网络调度程序可在失败服务器中采取补救措施,例如使该服务器再循环(回收)(recycling),重新启动该服务器中的特定应用程序或过程,以及通知服务器场管理员(管理器)。
这样,与服务器场中的服务器交互作用的客户计算装置能够以先前利用在网络调度程序内实现的诊断工具不能实现的粒度(granularity),监视服务器场中服务器的响应性。即,虽然网络调度程序独自只能监视把初始请求发送给服务器场中的特定服务器时的通信对话的成功,但是在本发明中,在通信耦接的客户机和服务器之间的每个请求的过程中,都能够监视通信对话的成功。从而,本发明的应用能够简化服务器场中的自主计算结构。
图1是根据本发明的方案,为客户机辅助诊断和自修复配置的服务器场的方框图。服务器场120可包括一个或多个服务器150,每个服务器150上驻留一个或多个计算程序170以及相关数据180。网络调度程序140可被配置成通过计算机通信网络130,接收来自一个或多个客户机110的输入请求。网络调度程序140可根据众所周知的诸如循环法,或者随机服务器选择法之类的负载均衡算法,把这样的输入请求发送给服务器150中的选定服务器。可选地,可设置管理节点160,通过所述管理节点160,能够管理服务器场120的配置。
操作中,可在单个客户机110和服务器场120中的一个服务器150之间建立通信对话。具体地说,当从单个客户机110收到初始请求时,网络调度程序,例如前端IP喷射器、资源导向器或者其它这样的网络设备,能够根据任意负载均衡或者其它服务器选择算法,例如随机选择法、最近最少使用算法,或者循环选择法,把初始请求发送给在服务器场120中选择的一个服务器150。根据对所述选定的一个服务器150的分配,可在客户机110和所选定的服务器150之间建立通信对话,在此期间,可在客户机110和选定的服务器150之间,保持对话亲合性(affinity)。
在客户机110和所选定的服务器150的通信耦接过程中,可发生请求/响应事务。一般地,在所选定的服务器150能够以恰当的方式应答来自客户机110的请求的情况下,能够保持对话亲合性。但是,在所选择的服务器150不能应答请求190A的情况下,甚至在建立对话的初始请求期间发生故障的情况下,客户机110也能够尝试重试190B。重要的是,随同重试请求190B一起,客户机110能够将该选定服务器150标识为未能应答请求190A。具体地说,所选服务器150的身份可以cookie(甜点数据块)的形式被包含或者被包含在重试请求串内。
在任何情况下,当检测到重试请求190B时,网络调度程序140可指定服务器150中的一个新服务器来响应所述重试请求190B。更重要的是,服务器150中的所述一个新服务器能够在服务器150中的所述选定服务器中采取补救措施。或者,可选地,附属的诊断程序(或者位于和网络调度程序140相同的节点中,或者位于另一节点之内)可采取补救措施。这种补救措施可包括,例如,所选定的服务器150的再循环(回收),所选定的服务器150中特定应用程序或过程的重新启动,以及通知管理节点160。
重要的是,本发明既不严格局限于在有超时条件开始时响应失败的报告,也不严格局限于仅仅根据服务器中的某一超时条件,确定已发生故障。相反,就识别服务器中的某一故障而论,在确定已发生故障之前,请求方客户机可多次重新尝试该主题(subject)请求。此外,通过检查有缺陷的响应,客户机可宣称已发生故障,所述有缺陷的响应可以不同的方式指示服务器中的故障,例如HTTP 4xx通知。
更具体地说,网络调度程序140能够处理多类服务器故障。例如,网络调度程序140能够处理客户机110发送的请求190A未到达指定服务器150的情况。另外,网络调度程序140能够处理指定服务器150未能产生结果的情况。网络调度程序140还能够处理虽然指定服务器150产生了结果,但是结果未到达客户机110的情况。总之,对本领域的技术人员来说,网络调度程序140显然能够处理由于不能完成客户机110和指定服务器150之间的请求/响应事务而产生的所有故障状态。
图2是图解说明服务器场中客户机辅助诊断和自修复的过程的时序图。开始于步骤1,客户机可把请求转发给喷射器。喷射器可在步骤2中把所述请求发送给服务器场中的初始指定服务器。如果该初始指定服务器在一次或多次尝试之后不能应答,或者服务器以一出错通知作为回答,或者可从响应检测到故障,则在步骤3中,客户机可尝试重试,所述重试可包括表示初始指定服务器未能应答请求的指示。
在步骤4中,认识到需要在服务器场中指定新服务器以处理客户机的请求,喷射器或者诊断程序(可选)可在服务器场中指定下一服务器来处理来自客户机的后续请求,包括所述重试请求。特别地,可根据任意资源管理或负载均衡算法,例如循环选择法、随机选择法或者最近最少使用法,指定下一服务器。在任何情况下,在步骤5中,在已确定初始指定的服务器中的故障的情况下,喷射器或者诊断程序(视情况而定)可进一步诊断所述初始指定服务器的状态。
重要的是,喷射器或者诊断程序能够利用数种方法识别不同类别的服务器故障,每种方法的应用取决于错误的类别。例如,在服务器未能应答请求,或者响应没有被客户机接收的情况下,可使用诸如强制回应(ping)和寻迹路由程序(trace route)之类传统IP工具来诊断服务器故障。作为比较,在服务器收到请求,但是没有产生结果的情况下,诊断程序可向被怀疑的服务器注入诊断事务,或者诊断请求程序可请求客户机把诊断事务注入被怀疑的服务器中。随后,诊断程序可监视结果。
在喷射器或者可选的诊断程序能够明确识别故障的情况下,喷射器可采取补救措施,例如再循环(回收)该初始指定服务器,或者重新启动该初始指定服务器中的某一应用程序或过程。另外,喷射器可把检测到的故障通知服务器场的管理员(管理器)。最后,在步骤6中,假定下一服务器没有失败,那么服务器场中的下一服务器可应答客户机的重试请求以及客户机发出的后续请求。
可用硬件、软件或者硬件和软件的组合实现本发明。可以集中方式在一个计算机系统中实现本发明的方法和系统,或者以其中在数个互连的计算机系统间分布不同元件的分布式方法实现本发明的方法和系统。任意种类的计算机系统,或者适合于实现这里描述的方法的其它设备都适合于实现这里描述的功能。
硬件和软件的典型组合可以是具有计算机程序的通用计算机系统,所述计算机程序当被载入并执行时,控制所述计算机系统,使得所述计算机系统实现这里描述的方法。本发明还可嵌入计算机程序产品中,所述计算机程序产品包括能够实现这里描述的方法的所有特征,并且当被载入计算机系统时,能够执行这些方法。
本语境中的计算机程序或应用程序意指以任意语言、代码或符号表示的,用于使具有信息处理能力的系统直接地或者在下述两者之一或两者之后,执行特定功能的一组指令的表达a)转换成另一语言、代码或符号;b)以不同的材料形式复制。重要的是,在不脱离本发明的精神或本质属性的情况下,可以其它具体形式具体体现本发明,因此,本发明的范围应参考下述权利要求,而不是参考在前的说明书。
权利要求
1.服务器场中服务器故障诊断和自修复的方法,包括下述步骤从试图参加与服务器场中的指定服务器的通信请求/响应对话的客户机接收重试请求;根据所述重试请求,确定所述指定服务器中故障的出现;和执行补救所述指定服务器中的所述故障的操作。
2.按照权利要求1所述的方法,还包括响应于根据所述重试请求对所述指定服务器中故障的出现的确定,指定服务器场中的一个不同服务器处理所述重试请求。
3.按照权利要求1所述的方法,其中所述确定步骤包括把表示在所述指定服务器中出现所述故障的指示设置在与所述重试请求相关的请求串中的步骤。
4.按照权利要求1所述的方法,其中所述确定步骤包括把表示在所述指定服务器中出现所述故障的指示设置在与所述重试请求相关的甜点数据块中的步骤。
5.按照权利要求1所述的方法,其中所述执行步骤包括执行从下述操作中选择的至少一个补救操作的步骤再循环所述初始服务器,重新启动所述初始服务器中的某一设备,以及重新启动所述初始服务器中的某一应用程序。
6.按照权利要求1所述的方法,其中所述执行步骤还包括把所述故障通知给管理节点的步骤。
7.按照权利要求1所述的方法,其中所述执行步骤包括下述步骤诊断所述故障;和根据所述诊断执行至少一个补救操作,其中所述补救操作选自下述操作再循环所述初始服务器,重新启动所述初始服务器中的某一设备,以及重新启动所述初始服务器中的某一应用程序。
8.按照权利要求7所述的方法,其中所述诊断步骤包括下述步骤对所述指定服务器进行强制回应检测;和在所述指定服务器和所述客户机之间执行寻迹路由程序。
9.按照权利要求7所述的方法,其中所述诊断步骤包括下述步骤把测试事务注入所述指定服务器;和监视所述注入产生的结果。
10.按照权利要求9所述的方法,其中所述注入步骤包括促使所述客户机向所述指定服务器中注入测试事务的步骤。
11.一种自主服务器场,包括能够响应从位于服务器场之外的客户机接收的请求的许多服务器;配置成把所述请求发送给所述服务器中的选定服务器的资源导向器;和与所述资源导向器耦接的客户机辅助故障检测逻辑部分。
12.按照权利要求11所述的自主服务器场,还包括与所述资源导向器通信耦接,并被配置成诊断检测所述服务器中的所述选定服务器中的故障的诊断程序。
13.一种机器可读存储器,具有保存于其上的执行服务器场中服务器的故障诊断和自修复的计算机程序,所述计算机程序包括一组例程指令,所述一组指令当被执行时,使机器执行下述步骤从试图参加与服务器场中的指定服务器的通信请求/响应对话的客户机接收重试请求;根据所述重试请求,确定所述指定服务器中故障的出现;和执行补救所述指定服务器中的所述故障的操作。
14.按照权利要求13所述的机器可读存储器,还包括响应于根据所述重试请求对所述指定服务器中故障的出现的确定,指定服务器场中的一个不同服务器处理所述重试请求。
15.按照权利要求13所述的机器可读存储器,其中所述确定步骤包括把表示在所述指定服务器中出现所述故障的指示设置在与所述重试请求相关的请求串中的步骤。
16.按照权利要求13所述的机器可读存储器,其中所述确定步骤包括把表示在所述指定服务器中出现所述故障的指示设置在与所述重试请求相关的甜点数据块中的步骤。
17.按照权利要求13所述的机器可读存储器,其中所述执行步骤包括执行从下述操作中选出的至少一个补救操作的步骤再循环所述初始服务器,重新启动所述初始服务器中的某一设备,以及重新启动所述初始服务器中的某一应用程序。
18.按照权利要求13所述的机器可读存储器,其中所述执行步骤还包括把所述故障通知给管理节点的步骤。
19.按照权利要求13所述的机器可读存储器,其中所述执行步骤包括下述步骤诊断所述故障;和根据所述诊断执行至少一个补救操作,其中所述补救操作选自下述操作再循环所述初始服务器,重新启动所述初始服务器中的某一设备,以及重新启动所述初始服务器中的某一应用程序。
20.按照权利要求19所述的机器可读存储器,其中所述诊断步骤包括下述步骤对所述指定服务器进行强制回应检测;和在所述指定服务器和所述客户机之间执行寻迹路由程序。
21.按照权利要求19所述的机器可读存储器,其中所述诊断步骤包括下述步骤把测试事务注入所述指定服务器;和监视所述注入产生的结果。
22.按照权利要求21所述的机器可读存储器,其中所述注入步骤包括促使所述客户机向所述指定服务器中注入测试事务的步骤。
全文摘要
自主服务器场和服务器场中的自修复方法。根据本发明的方案配置的自主服务器场可包括能够响应从位于服务器场之外的客户机接收的请求的许多服务器。诸如IP喷射器或网络调度程序之类的资源导向器可被配置成根据诸如随机选择法、循环选择法和最近最少使用法之类的资源分配算法,把请求发送给所选定的服务器。重要的是,和其故障诊断及自修复的管理完全依赖于资源导向器的能力的常规服务器场不同,本发明中,客户机辅助故障检测逻辑部分可与资源导向器耦接,以便提供故障诊断和自修复的客户机辅助管理。
文档编号H04L29/08GK1492348SQ0315810
公开日2004年4月28日 申请日期2003年9月3日 优先权日2002年9月18日
发明者戴维·L·凯明斯基, 戴维 L 凯明斯基, M. 奥格尔, 戴维·M.·奥格尔 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1