计算机簇中基于法定成员数关无响应服务器的装置和方法

文档序号:6650414阅读:127来源:国知局
专利名称:计算机簇中基于法定成员数关无响应服务器的装置和方法
技术领域
本发明一般涉及数据处理,具体涉及连网计算机系统。
背景技术
自从计算机时代开始以来,计算机系统就与人类努力的许多领域变得密不可分,包括工程设计、机器和处理控制以及信息存储和存取。在计算机的早期,诸如银行、企业和政府之类的公司会购买满足它们需求的单台计算机,但到了20世纪50年代早期,许多公司有了多台计算机,明显需要把数据从一台计算机转移到另一台计算机。这时开始发展计算机网络来允许计算机一起工作。
连网计算机能够执行单个计算机无法执行的任务。此外,网络允许低成本的个人计算机系统连接到更大的系统,来执行这些低成本系统无法独自执行的任务。当今美国的多数公司有一个或多个计算机网络。网络的拓扑和大小可能根据网络所连接的计算机系统和系统管理员的设计而不同。实际上,公司拥有多个计算机网络是很平常的。许多大公司具有复杂的局域网(LAN)和广域网(WAN)的混合,将公司中的多数计算机有效地相互连接。
马上将变得清楚的是,使用在网络上钩挂在一起的多个计算机,通过将任务的不同部分委托给网络上不同的计算机,可以用连网计算机来完成任务,这样,每个计算机可以并行处理它们各自的部分。在网络上共享计算的特定配置中,已经使用计算机“簇”(cluster)的概念来定义可以对任务的不同部分并行工作的、网络上的计算机系统的组。
计算机系统的簇还被用于提供高可靠性的服务。通过允许将服务器上发生故障的服务转移到仍然运行着的服务器上,提供了高可靠性。这种类型的容错是许多公司所期望的,例如那些进行大量电子商务(e-commerce)的公司。为了提供高可靠性的服务,当簇中的一个服务器变得不能运行时,必须有一些适当的机制来检测。一种已知的用于确定簇中的所有服务器是否有效的方法是让每个服务器周期性地向其他服务器发出消息,指示发送消息的服务器仍然运行着并且正常运行。这些类型的消息在本领域中通常称为“心跳”(heartbeat),这是由于只要消息继续(即,只要心脏仍然在跳动),我们就知道服务器仍然运行着。
在现有技术中,当服务器由于缺少心跳而变得不可见时,簇中被指定为管理者的服务器认为不再具有心跳的服务器发生了故障。结果,管理者必须将发生故障的服务器上的资源提供给簇中另一服务器。然而,要注意,没有心跳并不总是意味着服务器不运行了。例如,服务器可能由于删除(trashing)、交换(swapping)、网络溢出等变得临时没有响应,而不能提供心跳。如果服务器未给出心跳但仍然运行着,则有可能服务器可以再次变得有响应并且开始提供心跳。如果管理者已经认为该服务器发生了故障,并且已经将该服务器的服务提供在另一服务器上,那么我们现在将有两个试图提供相同服务的服务器。这产生了管理簇的问题。解决这个问题的一个方法是监视服务的数据以确保两个服务器不试图存取相同服务的同一数据。然而,这是复杂且低效的。当检测到服务器故障时,如果没有用来保证计算机簇中的服务不重复的机制,计算机行业将继续忍受管理计算机簇中发生故障的服务器的不足和低效的方法。

发明内容
一种提供基于法定成员数(quorum)的服务器关机机制的装置和方法,用于允许计算机簇中的管理者以保证没有响应的服务器不会再变得有响应的方式关掉没有响应的服务器。为了簇中的管理者关掉簇中的服务器,簇必须有法定成员数,意味着簇中的大多数计算机必须是有响应的。如果簇具有法定成员数,并且管理者服务器不出现故障,则管理者使发生故障的服务器关机。如果管理者服务器出现故障,则新的管理者使簇中所有没有响应的服务器关机。如果关机成功,则发生故障的服务器上的资源可以故障转移到簇中没有关机的其他服务器。如果关机不成功,则停用该簇。
如附图所示,通过下面对本发明优选实施例更加具体的描述,本发明的前述和其他特征和优点将变得清楚。


下面将结合附图描述本发明的优选实施例,其中相同的附图标记表示相同的元素,并且图1是根据优选实施例的计算机装置的方框图;图2是根据优选实施例的、图1所示的计算机系统的簇的方框图;图3是根据优选实施例的、用于加电(power up)簇中的服务器的方法的流程图;图4是服务器根据对共享的磁盘驱动器的锁定的丢失而自己关机的现有技术的方法;以及图5是根据优选实施例的、用于在故障转移(fail over)发生故障的服务器的资源之前关掉计算机簇中没有响应的服务器的方法的流程图。
具体实施例方式
根据本发明的优选实施例,计算机簇中的基于法定成员数的服务器关机机制保证在将资源故障转移到一个或多个其他有响应的服务器之前、关掉簇中没有响应的服务器。关机机制是基于法定成员数的,意味着只有包括簇中多数服务器的簇才能执行关机操作。通过关掉发生故障的服务器,优选实施例保证发生故障的系统不会再次变得有响应。
现有技术提供了一种方法,用于簇中的服务器确定何时它变得不响应,以及知道它需要关机。图4中的方法400示出了使用共享磁盘驱动器的现有技术中的一个已知的方法中的步骤。当簇中的不同计算机系统共享磁盘驱动器时,典型地有一种对磁盘驱动器的锁定机制,用来保证在任何给定的时间只有一个服务器可以存取磁盘驱动器。使用某种成员资格算法而相互可见的服务器集将选出一个领导者,该领导者将获得对磁盘驱动器的锁定。如果由于通信故障导致该服务器集分成分区,则多数分区(majority partition)将获得对共享磁盘驱动器的锁定(步骤410)。使用投票系统确定多数分区。这将导致原来的领导者检测到对共享磁盘驱动器的锁定被盗取(步骤420为“是”),并且结果原来分区中的服务器将发生恐慌(panic)。这种恐慌可能导致服务器关机或者影响操作系统内核。
由于不同的分区将了解到我们已经以异步的方式分区,因此对多数分区的检查是必要的。如果没有分区具有多数,则每个分区将使具有有效资源的任何服务器恐慌。尽管图4的方法400对于共享磁盘驱动器的服务器多少有点效果,但行业内的趋势是摆脱在簇中的服务器之间共享资源。此外,簇中的一些服务器可能不需要共享存储设备,这使得方法400不能应用到这些服务器。结果,需要一种方法知道服务器何时发生故障,并且采取适当的措施来保证当服务器没有响应时它是不运行的。
现在参照图1,计算机系统100是可以作为根据本发明优选实施例的簇中的成员的、计算机系统的一种合适实现。计算机系统100是IBM eServeriSeries计算机系统。然而,本领域技术人员应当理解,本发明的机制和装置可等效地应用到其他计算机系统,而不管计算机系统是复杂的多用户计算装置、单个用户工作站还是嵌入式控制系统。如图1所示,计算机系统100包括一个或多个处理器110、主存储器120、海量存储接口130、显示器接口140、网络接口150和服务处理器接口180。这些系统组件通过利用系统总线160互连。海量存储接口130用于连接海量存储设备(例如直接存取存储设备155)与计算机系统100。直接存取存储设备155的一种特定类型是可读和可写的CD RW驱动器,其可以向/从CD RW 195写入/读取数据。
服务处理器接口180最好连接计算机100与单独的服务处理器182。服务处理器182最好包括服务器关机机制184,用于允许连接到服务处理器的服务器单独地关机。服务处理器182典型地提供用于允许计算机系统(例如100)命令服务处理器关掉簇中另一计算机系统的接口。此外,当簇中的服务器是进程(process)而不是物理的机箱或逻辑分区时,服务处理器180可以终止另一机器上的单个进程。
根据优选实施例的主存储器120包含数据121、操作系统122和簇引擎123。数据121表示用作从计算机系统100的任何程序的输入或输出的任何数据。操作系统122是行业内公知为OS/400的多任务操作系统。然而,本领域技术人员应当理解的是,本发明的宗旨和范围不限于任一操作系统。簇引擎123提供簇中的计算机之间的通信。簇引擎123包括支持簇通信的本领域中公知的许多特征和机制,但在图1中未示出。簇引擎123包括可通过多条通道的心跳机制124、成员资格改变机制125和基于法定成员数的服务器关机机制126。心跳机制124和成员资格改变机制125最好是本领域公知的机制。心跳机制124将周期性心跳消息发送给簇中的其他服务器,并且从簇中的其他服务器接收周期性心跳消息。
可以使用各种通道(例如网络、串行线或基于共享磁盘的心跳)来发送这些心跳。成员资格改变机制125监视簇中的成员资格,并且当簇中的一个服务器变得不响应(即,停止发送心跳消息)时产生成员资格改变消息给簇中的所有服务器。基于法定成员数的服务器关机机制126允许管理者服务器关掉没有响应的服务器,从而保证没有响应的服务器将来不会有响应。只有当簇具有法定成员数时基于法定成员数的服务器关机机制126才能关掉服务器,这将在下面参照图5更详细地讨论。
在图1的计算机系统100中,基于法定成员数的服务器关机机制126作为簇引擎123的一部分示出。然而,这仅仅是作为优选实施例的范围内的一个可能的实现示出的。也可以独立于簇引擎123实现基于法定成员数的服务器关机机制126。优选实施例明示地扩展到基于法定成员数的服务器关机机制126的任何适合的位置和实现。
计算机系统100使用众所周知的虚拟寻址机制,该机制允许计算机系统100的程序仿佛它们仅存取大的、单个存储实体那样操作,而不是存取多个较小的、诸如主存储器120和DASD设备155之类的存储实体。因此,尽管数据121、操作系统122和簇引擎123被示出成驻留在主存储器120中,但本领域技术人员应当认识到,在主存储器120中不必同时完全包含这些项。应当注意的是,这里使用术语“存储器”来泛指计算机系统100的虚拟存储器,并且可以包括连接到计算机系统100的其他计算机系统的虚拟存储器。
处理器110可以由一个或多个微处理器和/或集成电路构造而成。处理器110执行存储在主存储器120中的程序指令。主存储器120存储处理器110可以存取的程序和数据。当计算机系统100启动时,处理器110初始地执行构成操作系统122的程序指令。操作系统122是用来管理计算机系统100的资源的复杂程序。这些资源中的一些是处理器110、主存储器120、海量存储接口130、显示器接口140、网络接口150、系统总线160和服务处理器接口180。
尽管计算机系统100示出成仅包含单条系统总线,但本领域技术人员应当理解的是,可以使用具有多条总线的计算机系统来实践本发明。此外,用在优选实施例中的接口每个都包括用于从处理器110卸载(off-load)计算密集的处理的、独立的、完全编程的微处理器。然而,本领域技术人员应当理解的是,本发明等效地应用于仅仅使用I/O适配器执行类似功能的计算机系统。
显示器接口140用于将一个或多个显示器165直接连接到计算机系统100。这些显示器165可以是非智能(即,哑)的终端或者完全可编程的工作站,用于允许系统管理员和用户与计算机系统100通信。然而要注意的是,尽管提供显示器接口140来支持与一个或多个显示器165通信,但计算机系统100并不是必须需要显示器165,因为与用户和其他进程之间所有所需的交互可以通过网络接口150进行。
网络接口150用于将其他计算机系统和/或工作站(例如,图1中的175)通过网络170与计算机系统100连接。不论计算机系统100可以如何与其他计算机系统和/或工作站连接,不管网络连接170是使用当今的模拟和/或数字技术还是将来的某些网络技术制成的,都能等效地应用本发明。此外,可以使用许多不同的网络协议来实现网络。这些协议是允许计算机通过网络170通信的专门的计算机程序。TCP/IP(传输控制协议/因特网协议)是适合的网络协议的一个例子。
此时,要注意的是,尽管已经并且将继续在完全功能的计算机系统的上下文中描述本发明,但本领域技术人员应当理解的是,本发明能够作为程序产品以各种形式分发,并且等效地应用本发明,而与实际用来承载分发的特定类型的信号承载介质无关。适合的信号承载介质的例子包括诸如软盘和CD RW(例如,图1的195)之类的可记录型介质和诸如数字和模拟通信链路之类的传输型介质。
参照图2,示出了具有五个计算机系统(或“节点”)的简单的簇200。要注意的是,簇200中的节点100最好是图1所示的计算机系统100。然而,本领域技术人员应当理解,可以在簇中相互连接不同类型的计算机系统。图2中的节点之间的连接表示逻辑连接,只要簇中的节点可以逻辑上相互通信,物理连接可以在优选实施例的范围内变化。每个节点100连接到服务处理器182。服务处理器182最好包括用于允许单独地关掉每个节点上的每个服务器的逻辑。当簇200中的一个节点变得不响应时,管理者服务器中的基于法定成员数的服务器关机系统126给予服务处理器182一个或多个命令来关掉簇200中的一个或多个服务器。服务处理器182响应于来自管理者服务器的命令,关掉簇中的一个或多个服务器。要注意的是,术语“关机”表示除去服务器的电力,但也可以表示使用任何适合的机制或方法仅仅将服务器置于非运行状态。例如,服务处理器182可以简单地声明(assert)并保持硬复位信号给需要关机的节点。只要声明了复位信号,节点就不能加电。如果服务器位于这样一个装置的逻辑分区中,该装置包括一个或多个仍然有响应的其他逻辑分区的簇中的其他服务器,则不能物理地关掉该装置,这是因为这也将复位有响应的服务器。然而,服务处理器可以声明信号或者提供命令来使需要关机的服务器关机。因此,在本说明书和权利要求书中使用的术语“关机”意味着无论如何使用当前已知的还是将来开发的技术,将服务器置于没有响应的状态直到管理员确定该服务器可以加电备份(power backup)为止。此外,这些术语还可以仅仅指重启服务器。服务处理器还可以精细地划分成颗粒(grain),如果簇的成员是进程而不是物理的机箱或逻辑分区,则服务器的关机可以仅仅是保证服务器进程终止的简单步骤。
参照图3,方法300是根据优选实施例的、用于初始地加电簇中的服务器的方法。首先,管理者服务器加电(步骤310)。之所以这样进行是因为当管理者服务器移动时,用于关掉机箱电源的算法可以复位正在启动的机箱电源。这使得簇的初始引导(bring up)更加平滑。然后,可以加电簇中的其余服务器(步骤320)。为了简单起见,在方法300中,我们假设簇存在单个管理者服务器,使用仲裁方案确定在任何具体时刻由哪个管理者负责执行管理任务。在多个管理者服务器的情况下,在步骤310中启动所有管理者服务器,随后在步骤320中启动不是管理者的服务器。
图5示出了根据优选实施例的、最好由图1中基于法定成员数的服务器关机机制126执行的一种特定方法500。当簇中的一个或多个服务器发生故障时方法500开始(步骤510)。如果簇没有法定成员数(步骤520为“否”),则结束方法500。如果簇包含簇中的多数服务器,则该簇具有法定成员数。这样,具有3个发生故障的服务器的7个服务器的簇仍然具有法定成员数,但如果4个服务器发生故障,则其余的簇不再具有法定成员数。如果可能的服务器数量是偶数,则一个服务器被赋予两票并作为决胜者(tiebreaker)。本领域技术人员可以确定其他技术来创建决胜者。如果簇具有法定成员数(步骤520为“是”),则方法500确定管理者服务器是否发生故障(步骤530)。步骤530不是简单地测试来看管理者是否曾经发生故障,而是更具体地测试来看管理者服务器是否是在步骤510中开始方法500的故障服务器之一。如果管理者服务器在步骤510中发生故障(步骤530为“是”),则簇中所有具有关键资源的、不可见的服务器关机(步骤540)。如果服务器已经停止发送心跳消息或者它已经被从该簇中分离出去,则称服务器是不可见(即,没有响应)的。如果没有管理者服务器发生故障(步骤530“否”),则方法500关掉在步骤S510中发生故障的、当前是任何法定成员数保护的资源的潜在所有者的服务器。该检查是重要的,因为它允许服务器进程干净地关闭,而结果不会关掉它。步骤540和550之间的差别仅在于此如果管理者发生故障,我们不必知道哪个故障节点用作管理者,因此我们必须关掉簇中所有没有响应的服务器(步骤540)来避免管理者将来又运行。如果管理者未发生故障,则只需要关掉可能潜在地拥有法定成员数保护的资源的故障服务器(步骤550)。
如果关机操作成功(步骤560为“是”),则故障服务器上的资源可以故障转移到簇中仍有响应的服务器(步骤570)。将资源从不运行的服务器故障转移到簇中运行着的服务器的概念是本领域公知的,因此这里不需要进一步详细讨论。资源故障转移是使得这些相同的资源在簇中另一服务器上可用的处理。这正是一种使用多个服务器、当一个服务器发生故障时相互接管来提供高可靠性服务的特定方式的本质。如果关机操作不成功(步骤560“否”),则停用(disable)该簇(步骤580)。当基于法定成员数的服务器关机机制发送命令来关掉所选的服务器时,优选实施例依靠完成其关掉所选服务器的工作的服务处理器。如果服务处理器不能执行其关机功能,则意味着存在服务处理器自身的或者其他需要系统管理员干涉的问题。这样,当在步骤580中停用簇时,最好将问题通知给系统管理员,以便系统管理员可以采取适当措施来纠正该问题。
理解了图5的方法500,我们现在理解在图3中为什么在加电其他服务器之前首先加电管理者服务器。让我们假设在加电另一服务器A之后加电管理者服务器B。在这种情况下,当A加电时,它将认为自己是管理者。当服务器C加电时,它将检测到管理者服务器的改变,这将被解释为前一管理者发生故障,从而将关掉所有不可见的服务器。这些不可见的服务器可能处于加电过程中,并且在它们可以完成加电序列之前,每当管理者改变,它们都会被有效地中断(kill)。通过要求首先加电管理者服务器(步骤310)、随后加电其他服务器(步骤320),避免了这种不期望的行为。
本领域技术人员应当理解,在本发明的范围内各种变型是可能的。因此,尽管参照其优选实施例具体示出并描述了本发明,但本领域技术人员应当理解,可以在不背离本发明的宗旨和范围的前提下对其形式和细节进行这些和其他改变。例如,尽管示出了公知的服务处理器作为一种用于关掉服务器的可能的机制,但也可以使用优选实施例范围内的其他机制。例如,可以使用能够接收命令、并且关闭到配电盘(power strip)中的特定插头或整个配电盘的电力的可寻址配电盘。任何用于将服务器置于没有响应状态、直到采取一些干涉步骤为止的机制都落入这里使用的术语“服务处理器”的范围内。此外,这里所述的服务器可以位于逻辑分区内,这意味着关掉逻辑分区中的服务器仅仅表示关掉逻辑分区。
权利要求
1.一种装置,包括至少一个处理器;连接到所述至少一个处理器的存储器;驻留在存储器中并且由所述至少一个处理器执行的服务器进程;驻留在存储器中并且由所述至少一个处理器执行的簇引擎,该簇引擎处理该服务器进程和簇中的其他服务器之间的通信;和驻留在存储器中并且由所述至少一个处理器执行的、基于法定成员数的服务器关机机制,该基于法定成员数的服务器关机机制确定该服务器进程是否是包括簇中大多数服务器的服务器组中的一部分,如果是的话,则基于法定成员数的服务器关机机制发出命令来关掉簇中的至少一个其他服务器。
2.如权利要求1所述的装置,还包括服务处理器,用于接收命令,并且作为响应,关掉至少一个其他服务器。
3.如权利要求1所述的装置,其中,簇引擎包括心跳机制,用于将周期性消息发送给簇中的其他服务器来指示服务器进程运行正常。
4.如权利要求3所述的装置,其中,心跳机制从簇中的其他服务器接收指示簇中的其他服务器运行正常的周期性消息。
5.如权利要求4所述的装置,其中,簇引擎包括成员资格改变机制,用于当簇中所选的服务器由于未能发送指示所选服务器运行正常的周期性消息而变得不响应时,产生成员资格改变消息给簇中的所有服务器。
6.如权利要求1所述的装置,其中,簇引擎包括成员资格改变机制,用于当簇中的任何服务器变得不响应时,产生成员资格改变消息给簇中的所有服务器。
7.如权利要求1所述的装置,其中,基于法定成员数的服务器关机机制确定簇的管理者是否发生故障,如果是的话,则基于法定成员数的服务器关机机制发出至少一个命令来关掉簇中所有没有响应的服务器。
8.如权利要求1所述的装置,其中,当接收到服务器故障的指示时,基于法定成员数的服务器关机机制确定簇的管理者是否发生故障,如果不是的话,则基于法定成员数的服务器关机机制发出至少一个命令来关掉与接收到的服务器故障的指示对应的服务器。
9.如权利要求1所述的装置,其中,服务器进程驻留在装置上定义的逻辑分区中。
10.如权利要求1所述的装置,其中,基于法定成员数的服务器关机机制确定所述至少一个其他服务器的关机是否成功,如果所述至少一个其他服务器的关机成功,则基于法定成员数的服务器关机机制允许将关机的所述至少一个其他服务器上的任何资源故障转移到至少一个有响应的服务器,如果所述至少一个其他服务器的关机不成功,则基于法定成员数的服务器关机机制停用该簇。
11.一种连网计算机系统,包括通过网络连接在一起成为簇的多个服务器,每个服务器包括簇引擎,用于处理簇中的服务器之间的通信;和基于法定成员数的服务器关机机制,用于确定服务器是否是包括簇中大多数服务器的服务器组的一部分,如果是的话,基于法定成员数的服务器关机机制发出命令来关掉簇中的至少一个服务器。
12.如权利要求11所述的连网计算机系统,还包括连接到簇中的多个服务器中的每个的服务处理器,该服务处理器接收命令,并且作为响应,关掉簇中的至少一个服务器。
13.如权利要求11所述的连网计算机系统,其中,簇引擎包括心跳机制,用于将周期性消息发送给簇中的其他服务器来指示服务器进程运行正常。
14.如权利要求13所述的连网计算机系统,其中,心跳机制从簇中的其他服务器接收指示簇中的其他服务器运行正常的周期性消息。
15.如权利要求14所述的连网计算机系统,其中,簇引擎包括成员资格改变机制,用于当簇中所选的服务器由于未能发送指示所选服务器运行正常的周期性消息而变得不响应时,产生成员资格改变消息给簇中的所有服务器。
16.如权利要求11所述的连网计算机系统,其中,簇引擎包括成员资格改变机制,用于当簇中的任何服务器变得不响应时,产生成员资格改变消息给簇中的所有服务器。
17.如权利要求11所述的连网计算机系统,其中,基于法定成员数的服务器关机机制确定簇的管理者是否发生故障,如果是的话,则基于法定成员数的服务器关机机制发出至少一个命令来关掉簇中所有没有响应的服务器。
18.如权利要求11所述的连网计算机系统,其中,当接收到服务器故障的指示时,基于法定成员数的服务器关机机制确定簇的管理者是否发生故障,如果不是的话,则基于法定成员数的服务器关机机制发出至少一个命令来关掉与接收到的服务器故障的指示对应的服务器。
19.如权利要求11所述的连网计算机系统,其中,簇中的至少一个服务器位于逻辑分区中。
20.如权利要求11所述的连网计算机系统,其中,基于法定成员数的服务器关机机制确定所述至少一个其他服务器的关机是否成功,如果所述至少一个其他服务器的关机成功,则基于法定成员数的服务器关机机制允许将关机的所述至少一个其他服务器上的任何资源故障转移到至少一个有响应的服务器,如果所述至少一个其他服务器的关机不成功,则基于法定成员数的服务器关机机制停用该簇。
21.一种装置,包括(A)至少一个处理器;(B)连接到所述至少一个处理器的存储器;(C)驻留在存储器中并且由所述至少一个处理器执行的服务器进程;(D)驻留在存储器中并且由所述至少一个处理器执行的簇引擎,该簇引擎处理该服务器进程和簇中的其他服务器之间的通信;该簇引擎包括(D1)心跳机制,用于将周期性消息发送给簇中的其他服务器来指示服务器进程运行正常,以及从簇中的其他服务器接收指示簇中的其他服务器运行正常的周期性消息;(D2)成员资格改变机制,用于当簇中的任何服务器变得不响应时,产生成员资格改变消息给簇中的所有服务器;(E)驻留在存储器中并且由所述至少一个处理器执行的、基于法定成员数的服务器关机机制,该基于法定成员数的服务器关机机制确定该服务器进程是否是包括簇中大多数服务器的服务器组中的一部分,如果是的话,则当接收到服务器故障的指示时,基于法定成员数的服务器关机机制确定簇的管理者是否发生故障,如果簇的管理者发生故障,则基于法定成员数的服务器关机机制发出至少一个命令来关掉簇中所有没有响应的服务器,如果簇的管理者没有发生故障,则基于法定成员数的服务器关机机制发出至少一个命令来关掉与接收到的服务器故障的指示对应的服务器。
22.如权利要求21所述的装置,还包括服务处理器,用于接收命令,并且作为响应,关掉至少一个其他服务器。
23.如权利要求21所述的装置,其中,服务器进程驻留在在该装置上定义的逻辑分区中。
24.如权利要求21所述的装置,其中,基于法定成员数的服务器关机机制确定所述至少一个其他服务器的关机是否成功,如果所述至少一个其他服务器的关机成功,则基于法定成员数的服务器关机机制允许将关机的所述至少一个其他服务器上的任何资源故障转移到至少一个有响应的服务器,如果所述至少一个其他服务器的关机不成功,则基于法定成员数的服务器关机机制停用该簇。
25.一种用于处理簇中没有响应的服务器的计算机实现方法,该方法包括步骤确定簇中的服务器何时变得不响应;确定簇中的大多数服务器是否有响应;以及如果簇中的大多数服务器有响应,则发出命令来关掉簇中的至少一个服务器。
26.如权利要求25所述的方法,还包括步骤簇中的每个服务器将周期性消息发送给簇中的其他服务器来指示发送该周期性消息的服务器运行正常。
27.如权利要求25所述的方法,还包括步骤每个服务器从簇中的其他服务器接收指示簇中的其他服务器运行正常的周期性消息。
28.如权利要求27所述的方法,还包括步骤当簇中所选的服务器由于未能发送指示所选服务器运行正常的周期性消息而变得不响应时,产生成员资格改变消息给簇中的所有服务器。
29.如权利要求25所述的方法,还包括步骤当簇中的任何服务器变得不响应时,产生成员资格改变消息给簇中的所有服务器。
30.如权利要求25所述的方法,还包括步骤确定簇的管理者是否发生故障,如果是的话,则发出至少一个命令来关掉簇中所有没有响应的服务器。
31.如权利要求25所述的方法,还包括步骤当接收到服务器故障的指示时确定簇的管理者是否发生故障,如果不是的话,则发出至少一个命令来关掉与接收到的服务器故障的指示对应的服务器。
32.如权利要求25所述的方法,还包括步骤确定所述至少一个其他服务器的关机是否成功;如果所述至少一个其他服务器的关机成功,则允许将关机的所述至少一个其他服务器上的任何资源故障转移到至少一个有响应的服务器;以及如果所述至少一个其他服务器的关机不成功,则停用该簇。
33.一种用于处理簇中没有响应的服务器的计算机实现方法,该方法包括步骤簇中的每个服务器将周期性消息发送给簇中的其他服务器来指示发送该周期性消息的服务器运行正常;簇中的每个服务器从簇中的其他服务器接收指示簇中的其他服务器运行正常的周期性消息;当簇中任何服务器变得不响应时,产生成员资格改变消息给簇中的所有服务器;确定簇中的大多数服务器是否有响应;接收服务器故障的指示;如果簇中的大多数服务器有响应,则执行步骤确定服务器故障的指示是否指示簇的管理者发生故障;如果簇的管理者发生故障,则发出至少一个命令来关掉簇中所有没有响应的服务器;和如果簇的管理者未发生故障,则发出至少一个命令来关掉与接收到的服务器故障的指示对应的服务器。
34.如权利要求33所述的方法,还包括步骤确定所述至少一个其他服务器的关机是否成功;如果所述至少一个其他服务器的关机成功,则允许将关机的所述至少一个其他服务器上的任何资源故障转移到至少一个有响应的服务器;以及如果所述至少一个其他服务器的关机不成功,则停用该簇。
35.一种程序产品,包括基于法定成员数的服务器关机机制,该基于法定成员数的服务器关机机制确定该服务器进程是否是包括簇中大多数服务器的服务器组中的一部分,如果是的话,则基于法定成员数的服务器关机机制发出命令来关掉簇中的至少一个其他服务器;和计算机可读信号承载介质,用于承载该基于法定成员数的服务器关机机制。
36.如权利要求35所述的程序产品,其中,信号承载介质包括可记录介质。
37.如权利要求35所述的程序产品,其中,信号承载介质包括传输介质。
38.如权利要求35所述的程序产品,还包括心跳机制,用于将周期性消息发送给簇中的其他服务器来指示服务器进程运行正常。
39.如权利要求38所述的程序产品,其中,心跳机制从簇中的其他服务器接收指示簇中的其他服务器运行正常的周期性消息。
40.如权利要求39所述的程序产品,还包括成员资格改变机制,用于当簇中所选的服务器由于未能发送指示所选服务器运行正常的周期性消息而变得不响应时,产生成员资格改变消息给簇中的所有服务器。
41.如权利要求35所述的程序产品,还包括成员资格改变机制,用于当簇中的任何服务器变得不响应时,产生成员资格改变消息给簇中的所有服务器。
42.如权利要求35所述的程序产品,其中,基于法定成员数的服务器关机机制确定簇的管理者是否发生故障,如果是的话,则基于法定成员数的服务器关机机制发出至少一个命令来关掉簇中所有没有响应的服务器。
43.如权利要求35所述的程序产品,其中,当接收到服务器故障的指示时,基于法定成员数的服务器关机机制确定簇的管理者是否发生故障,如果不是的话,则基于法定成员数的服务器关机机制发出至少一个命令来关掉与接收到的服务器故障的指示对应的服务器。
44.如权利要求35所述的程序产品,其中,簇中的至少一个服务器位于逻辑分区中。
45.如权利要求35所述的程序产品,其中,基于法定成员数的服务器关机机制确定所述至少一个其他服务器的关机是否成功,如果所述至少一个其他服务器的关机成功,则基于法定成员数的服务器关机机制允许将关机的所述至少一个其他服务器上的任何资源故障转移到至少一个有响应的服务器,如果所述至少一个其他服务器的关机不成功,则基于法定成员数的服务器关机机制停用该簇。
46.一种程序产品,包括(A)驻留在存储器中并且由至少一个处理器执行的簇引擎,该簇引擎处理该服务器进程和簇中的其他服务器之间的通信,该簇引擎包括(A1)心跳机制,用于将周期性消息发送给簇中的其他服务器来指示服务器进程运行正常,以及从簇中的其他服务器接收指示簇中的其他服务器运行正常的周期性消息;(A2)成员资格改变机制,用于当簇中的任何服务器变得不响应时,产生成员资格改变消息给簇中的所有服务器;(A3)基于法定成员数的服务器关机机制,该基于法定成员数的服务器关机机制确定该服务器进程是否是包括簇中大多数服务器的服务器组中的一部分,如果是的话,则当接收到服务器故障的指示时,基于法定成员数的服务器关机机制确定簇的管理者是否发生故障,如果簇的管理者发生故障,则基于法定成员数的服务器关机机制发出至少一个命令来关掉簇中所有没有响应的服务器,如果簇的管理者没有发生故障,则基于法定成员数的服务器关机机制发出至少一个命令来关掉与接收到的服务器故障的指示对应的服务器;和(B)用于承载该簇引擎的计算机可读信号承载介质。
47.如权利要求46所述的程序产品,其中,信号承载介质包括可记录介质。
48.如权利要求46所述的程序产品,其中,信号承载介质包括传输介质。
49.如权利要求46所述的程序产品,其中,簇中的至少一个服务器位于逻辑分区中。
50.如权利要求46所述的程序产品,其中,基于法定成员数的服务器关机机制确定所述至少一个其他服务器的关机是否成功,如果所述至少一个其他服务器的关机成功,则基于法定成员数的服务器关机机制允许将关机的所述至少一个其他服务器上的任何资源故障转移到至少一个有响应的服务器,如果所述至少一个其他服务器的关机不成功,则基于法定成员数的服务器关机机制停用该簇。
全文摘要
提供基于法定成员数的服务器关机机制的装置和方法,用于允许计算机簇中的管理者以保证没有响应的服务器不会再变得有响应的方式关掉没有响应的服务器。为了簇中的管理者关掉簇中的服务器,簇必须有法定成员数,这意味着簇中的大多数计算机必须是有响应的。如果簇具有法定成员数,并且如果管理者服务器不出现故障,则管理者使发生故障的服务器关机。如果管理者服务器出现故障,则新的管理者使簇中所有没有响应的服务器关机。如果关机成功,则发生故障的服务器上的资源可以故障转移到簇中没有关机的其他服务器。如果关机不成功,则停用该簇。
文档编号G06F9/46GK1770707SQ20051012013
公开日2006年5月10日 申请日期2005年11月4日 优先权日2004年11月4日
发明者克里斯托弗·H·琼斯, 威廉姆·T·纽波特, 格雷厄姆·D·沃利斯 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1