计算机系统与应用于该系统的故障计算机替换方法

文档序号:6486189阅读:345来源:国知局
专利名称:计算机系统与应用于该系统的故障计算机替换方法
技术领域
本发明涉及由多个计算机配置的计算机系统,其中多个计算机包括被称为预备节点的预备计算机。具体而言,本发明涉及计算机系统以及应用于该系统的故障计算机替换方法,其中所述系统适于当计算机在操作期间发生故障时,允许预备计算机处理曾由故障计算机处理的引导图像(bootimage)。
背景技术
近来市场上已经有了高密度计算机系统,其中在单个机架中包括几十到几百个计算机节点。这样的计算机系统通常包括被称作预备节点的预备计算机。一般而言,预备计算机并不常使用,而仅在常用计算机发生故障时用作替代计算机(替代节点)。为此,需要执行下述操作,即,将曾由故障计算机处理的引导图像设置为预备计算机的引导图像。如果预备计算机在所述设置之后被引导,则其可以代替故障计算机使用。
Tetsuo Kaneko和Yoshiya Mori在“Cluster Software”,ToshibaReview,Vol.54,No.12(1999)第18-21页中(下文被称为现有技术文件)描述了一种被称作集群系统的计算机系统。在该集群系统中,当计算机在操作期间发生故障时,曾由故障计算机执行的服务(商业操作)被系统中的另一计算机所接管(故障转移)。作为接管服务的计算机,例如使用待机状态(热待机状态)的计算机。
如上所述,在包括预备计算机(预备节点)的现有技术计算机系统中,当系统中的计算机发生故障时,故障计算机可以用预备计算机来替换。然而,现有技术计算机系统需要操作者来用预备计算机替换故障计算机。
在上面的现有技术文件中描述的集群系统中,曾由故障(出问题的)计算机执行的服务可以被系统中的另一计算机自动接管(故障转移)。
然而,在该集群系统中,接管服务的计算机需要被启动(引导)。因此,难以将集群系统中使用的接管服务技术应用于能够用预备计算机替换故障计算机的机制。

发明内容
考虑到上述情形而产生了本发明,并且本发明的目的是提供一种计算机系统,其中当所述系统中包括的计算机发生故障时,可以在无需任何操作者的条件下用预备计算机来替换故障计算机。
根据本发明的一个方面,提供了一种具有多个计算机的计算机系统,所述多个计算机包括预备计算机,所述计算机系统包括多个存储设备,用于存储用来个别引导所述多个计算机的引导图像;第一存储设备,用于存储所述多个计算机中每个计算机的状态;第二存储设备,用于存储指示所述多个存储设备中每个存储设备和由所述存储设备中存储的每个引导图像所引导的计算机之间的对应关系的信息;故障计算机搜索单元,被配置用于在计算机系统中搜索故障计算机;预备计算机搜索单元,被配置用于根据存储在第一存储设备中的所述多个计算机中每个计算机的状态来选择预备计算机,当故障计算机搜索单元检测到故障计算机时,预备计算机代替故障计算机使用;引导图像选择单元,被配置用于根据存储在第二存储设备中的信息来选择存储设备,所述存储设备存储用于在故障计算机搜索单元检测到故障计算机时引导由预备计算机搜索单元所选择的预备计算机的引导图像;以及引导单元,被配置用于使用引导图像选择单元所选择的存储设备中所存储的引导图像来引导由预备计算机搜索单元所选择的预备计算机。


图1是示出了根据本发明第一实施例的计算机系统的配置的框图;
图2是示出了图1中的数据库CDDBi(i=1,2,3,4)的数据结构示例的示图;图3是示出了计算机状态转换的状态转换图;图4是示出了图1中的数据库DBDB的数据结构示例的示图;图5是示出了图1中的数据库HDB的数据结构示例的示图;图6是主要示出了第一实施例中的故障计算机搜索过程FP的步骤的流程图;图7是示出了下述状态的框图,其中在第一实施例中故障计算机搜索过程FP经历了从计算机C1到计算机C2的故障转移;图8是示出了在执行了图6中的步骤S5之后的数据库DBDB的内容的示图;图9是示出了在执行了图6中的步骤S5之后的数据库CDDBi的内容的示图;图10是示出了下述状态的示图,其中计算机C5能够执行曾由故障计算机C1处理的引导图像;图11是示出了根据本发明第二实施例的计算机系统的配置的框图;图12是主要示出了第二实施例中的故障计算机搜索过程FP的步骤的流程图;图13是示出了根据本发明第三实施例的计算机系统的配置的框图;图14是主要示出了第三实施例中的故障计算机搜索过程FP的步骤的流程图;图15是示出了根据本发明第四实施例的计算机系统的配置的框图;以及图16是主要示出了第四实施例中的故障计算机搜索过程FP的步骤的流程图。
具体实施例方式
实施本发明的最佳实施例

将在以下参考附图来描述本发明的实施例。图1是示出了根据本发明第一实施例的计算机系统的配置的框图。图1所示的计算机系统包括五个计算机C1至C5。计算机C1至C5经由网络N彼此连接。此外,计算机C1至C5连接到存储区域网SAN。存储设备SS也连接到存储区域网SAN。存储设备SS包括盘(盘驱动器)D1至D4。换句话说,计算机C1至C5和存储设备SS中的盘D1至D4经由存储区域网SAN连接在一起。
盘D1、D2、D3和D4预先存储用于计算机的引导图像,所述计算机被赋予主机名称“主机-1”、“主机-2”、“主机-3”和“主机-4”。存储在盘Di(i=1,2,3,4)中的引导图像被称作“主机-i”的引导图像。“主机-i”的引导图像包括操作系统OSi和在该操作系统OSi上运行的应用程序。换句话说,盘Di被用作“主机-i”的引导盘。
在图1所示的计算机C1至C5中,使用盘D1至D4中存储的引导图像来引导计算机C1至C4。在图1中,操作系统OS1至OS4运行在服务中的相应计算机C1至C4上。假定服务中的计算机C1至C4识别出它们自身的主机名称为盘D1至D4的引导图像中记录的“主机-1”至“主机-4”。在图1中,余下的计算机C5被提供用作被称为预备节点的预备计算机。计算机C5没有加载包括操作系统在内的引导图像;因此它没有被引导。预备计算机的个数不一定是一个,也可以是两个或多个。
存储设备SS具有数据库DBDB。数据库DBDB保有用于管理存储设备SS中的盘D1至D4和使用盘D1至D4作为引导盘的计算机(引导计算机)之间的对应关系的管理表(管理信息)。
在服务中的计算机C1至C4中,运行预备计算机搜索单元PP1至PP4、引导图像设置单元BS1至BS4以及引导单元BB1至BB4。预备计算机搜索单元PPi(i=1,2,3,4)搜索预备计算机。预备计算机搜索单元PPi具有数据库CDDBi。数据库CDDBi保有用于管理计算机系统中的计算机C1至C5中每个计算机的状态和图1中所示的计算机系统中的盘D1至D4中每个盘之间的关系的管理表(管理信息)。
引导图像设置单元BSi(间接地)设置存储设备SS中的盘Di中存储的引导图像和分配了“主机-i”作为主机名称的计算机之间的对应关系,使得所述引导图像被所述计算机处理。使用单元BSi对它们之间的对应关系进行的设置(引导图像设置)是根据来自故障计算机搜索过程FP的指令而完成的。引导单元BBi通过由引导图像设置单元BSi设置的引导图像来引导分配了“主机-i”作为主机名称的计算机。
在服务中的计算机C1至C4之一中,例如在计算机C1中,运行故障计算机搜索过程FP。故障计算机搜索过程FP用作故障计算机搜索单元,其使用数据库HDB来搜索故障计算机。数据库HDB保有用于管理分配了“主机-i”的计算机是否正在运行(存在)的管理表(管理信息)。
在计算机Ci上运行的预备计算机搜索单元PPi、引导图像设置单元BSi和引导单元BBi例如是程序单元。在第一实施例中,每个程序单元被包括在故障计算机替换控制程序中。单元PPi、BSi和BBi是由计算机Ci(没有示出其中的CPU)读取故障计算机替换控制程序来实现的。在计算机C1上运行的故障计算机搜索过程FP也是包括在故障计算机替换控制程序中的程序单元。搜索过程FP也是由计算机C1读取故障计算机替换控制程序来实现的。因此,很可能搜索过程FP将在除计算机C1之外的计算机上运行。
在服务中的计算机C1至C4中,运行集群控制单元CC1至CC4。集群控制单元CC1至CC4经由网络N彼此通信,以检测发生问题的计算机(有问题的计算机)。集群控制单元CC1至CC4彼此周期性地发送被称作心跳信号的信号。当在经过给定时间段(超时周期)之后心跳信号消失时,集群控制单元CC1至CC4中的每个确定在其对应的计算机上发生了问题。集群控制单元CC1至CC4组成一个虚拟集群控制系统CC。集群控制系统CC执行下述控制,即,由另一计算机接管检测出问题的计算机(有问题的计算机)所执行的服务。在第一实施例中,故障计算机搜索过程FP被预先定义为由集群控制系统CC所控制的一个服务。换句话说,当由于出问题之类的原因而使运行搜索过程FP的计算机(图1中的计算机C1)停止时,搜索过程FP被集群控制系统CC所控制,从而其可以被另一计算机引导。
集群控制单元CCi是由计算机Ci读取并执行用于控制集群的软件程序(集群软件)来实现的。假定在第一实施例中,集群软件和故障计算机替换控制程序彼此独立。然而,举例来说,与故障计算机替换控制程序相对应的代码信息可以预先并入集群软件中。
图2示出了图1中的数据库CDDBi(i=1,2,3,4)的数据结构示例。如图2所示,数据库CDDBi的每条记录包括用于设置计算机、计算机的状态和盘信息的项。作为计算机的信息,使用了用于标识计算机的计算机标识符。所述状态指示对应计算机的状态,并且表示“服务”(S)、“预备”(P)、“停机”(D)或“预留”(R)。当状态是“服务”(S)时,在对应记录的盘项中设置盘标识符。盘标识符标识存储下述引导图像的盘(存储设备),所述引导图像被用于引导记录中的计算机标识符所标识的计算机。
图2中示出的数据库CDDBi指示图1所示的计算机系统的状态。首先,计算机C1至C4处于“服务”(S)状态,或者盘D1至D4每个都作为引导盘处于服务中。另一方面,计算机C5处于“预备”(P)状态,或者用作预备计算机。
图3是示出了计算机状态转换的状态转换图。除了上述四个计算机状态外,还示出了状态(-),其中计算机没有被物理结合到所述系统中。参考图3,在第一实施例中,“预备”(P)状态下的计算机(预备计算机)可以将其状态经由“预留”(R)状态改变为“服务”(S)状态。
图4示出了图1中的数据库DBDB的数据结构示例。如图4所示,数据库DBDB的每条记录包括用于设置盘(引导盘)的信息(例如,盘标识符)的项,所述盘存储使用该盘作为引导盘的计算机的引导图像和信息(例如,计算机标识符)。
图5示出了图1中的数据库HDB的数据结构示例。如图5所示,数据库HDB的每条记录包括用于设置指示主机的信息(例如,主机名称)和计数器的信息(例如,计数器值)的项。每次集群控制单元CCi在超时周期内发送心跳信号时,与运行控制单元CCi的主机相对应的计数器加一。
然后,将参考图6来描述图1所示的计算机系统的操作。图6是主要示出了故障计算机搜索过程FP的步骤的流程图。这里是检测故障计算机以及利用应用于该故障计算机的引导图像来引导预备计算机的操作示例。现在假定计算机C1至C4正在根据“主机-1”至“主机-4”的引导图像而进行操作,或者它们处于“服务”(S)状态。“主机-1”至“主机-4”的引导图像被存储在存储设备SS中的相应盘D1至D4中。还假定计算机C5作为预备计算机位于计算机系统中,并且处于“预备”(P)状态。在这种情况下,服务中的计算机C1至C4的预备计算机搜索单元PP1至PP4的数据库CDDB1至CDDB4具有如图2所示的内容。存储设备SS中的数据库DBDB具有如图4所示的内容。
在图1所示的计算机系统中,集群控制系统CC中的集群控制单元CCi(i=1,2,3,4)或在计算机Ci上运行的集群控制单元CCi发送/接收心跳信号。当集群控制单元CCi在超时周期内能接收来自另一集群控制单元CCj(j=1,2,3,4并且j≠i)的心跳信号时,数据库HDB一条记录中的计数器(其对应于运行集群控制单元CCj的主机)增加一。当经过超时周期之后从集群控制单元CCj发送的心跳信号消失时,集群控制系统CC确定在运行集群控制单元CCj的计算机Cj上出现问题。
这里假定被集群控制系统CC确定为有问题计算机的计算机Cj是其上运行故障计算机搜索过程FP的计算机C1,或者是分配了“主机-1”作为主机名称的计算机C1。在第一实施例中,当其上运行过程FP的计算机被确定为有问题计算机时,搜索过程FP被定义为要被另一计算机接管的服务(将经历故障转移)。当如第一实施例那样搜索过程FP运行在计算机C1上时,计算机C2至C4被置为待机计算机。因此,当计算机C1被确定为有问题计算机时,搜索过程FP被计算机C2至C4之一接管。这里假定如图7所示计算机C2从有问题的计算机C1接管搜索过程FP。此后,搜索过程FP在计算机C2上运行。
现在假定在计算机Cj出问题之后,很长时间都没有从集群控制单元CCj发送心跳信号。在这种情况下,与计算机Cj相对应的数据库HDB中的计数器在长时间内没有改变。故障计算机搜索过程FP检测到这个状态,并且通过下述步骤将计算机Cj转换为预备计算机。
当故障计算机搜索过程FP启动时,其在预定时间段内空闲(步骤S1)。然后,搜索过程FP查询数据库HDB,并且搜索计数器在所述固定时间段期间没有改变的主机(步骤S2)。如果不存在计数器没有改变的主机,或者如果与主机相对应的计数器都改变了,则搜索过程FP确定没有主机发生故障。在这种情况下,搜索过程FP返回到步骤S1并且处于空闲状态。此后,搜索过程FP重复步骤S1和S2,直到存在计数器没有改变的主机。
相反,如果存在计数器没有改变的主机,则搜索过程FP辨认引起来自主机的集群控制单元的心跳信号消失的因素。该因素是主机已经发生故障和主机被重新引导这两个事实之一。为了辨认该因素,搜索过程FP重新引导主机所需的固定时间段内空闲(步骤S3)。之后,搜索过程FP再次查询HDB,并且确定之前曾被确定为未改变的主机的计数器是否仍保持未改变(步骤S4)。如果计数器仍保持未改变,则搜索过程FP确定与该计数器对应的主机不是有效的,因而该计算机已经发生故障。这里假定搜索过程FP确定分配了“主机-1”作为主机名称的计算机C1发生故障。
在集群控制系统CC的控制下,搜索过程FP不是运行在计算机C1上而是运行在计算机C2上(参见图7)。当搜索过程FP确定计算机C1发生故障时,其使得预备计算机搜索单元PP2搜索预备计算机(预备节点)。使用预备计算机搜索单元PP2对预备计算机进行的搜索是如下执行的。
首先,预备计算机搜索单元PP2查询数据库CDDB2。然后,搜索单元PP2从数据库CDDB2获取“预备”(P)状态下的计算机的计算机标识符。在具有图2所示的数据库CDDB2(CDDB1至CDDB4)的第一实施例中,“预备”(P)状态下的计算机的计算机标识符是C5。在这种情况下,计算机C5被检测(选择)出作为预备计算机。
如果搜索单元PP2检测(选择)出计算机C5作为预备计算机,则它如下操作数据库CDDB2。当计算机C1是故障计算机而计算机C5是预备计算机时,搜索单元PP2将故障计算机C1的状态以及预备计算机C5的状态分别改变为“停机”(D)和“预留”(R)。由搜索单元PP2所执行的数据库操作在服务中的其它计算机C3和C4的搜索单元PP3和PP4的数据库CDDB3和CDDB4中得到反映。这样,数据库CDDB3和CDDB4的内容被改变以和数据库CDDB2的内容一致。图9中示出了改变后的数据库CDDB2至CDDB4(CDDBi)的内容。
当预备计算机被检测(选择)出时,故障计算机搜索过程FP执行控制,以使预备计算机C5使用曾在故障计算机C1中使用的引导图像。由于搜索过程FP使得预备计算机C5处理曾在计算机C1中使用的引导图像,所以存储设备SS中的数据库DBDB由引导图像设置单元BS2来操作(步骤S5)。
引导图像设置单元BS2选择数据库DBDB中的一条记录(其中故障计算机C1被设置为引导计算机),或者选择包括计算机C1的信息(计算机标识符)的记录。如图4所见,在所选择的记录中设置了与计算机C1的信息(计算机标识符)配对出现的盘D1的信息(盘标识符)。因此,所选记录指示曾被用于引导故障计算机C1的引导图像被存储在盘D1中。
为了使预备计算机C5处理盘D1中存储的引导图像,引导图像设置单元BS2如下操作(更新)所选记录。换句话说,对于所选记录,设置单元BS2将引导计算机的信息(计算机标识符)从故障计算机C1的信息改变为预备计算机C5的信息,其中所述引导计算机的信息与盘D1的信息(盘标识符)配对出现。由设置单元BS2更新记录的操作或更新数据库DBDB的操作等效于选择曾用于引导故障计算机C1的引导图像作为用于引导预备计算机C5的引导图像。设置单元BS2充当引导图像选择单元。由于设置单元BS2执行选择引导图像的操作(数据库DBDB的操作),所以曾由故障计算机C1处理的“主机-1”的引导图像(盘D1中存储的引导图像)被间接设置在预备计算机C5中。数据库DBDB中的内容在图8中示出。
当故障计算机搜索过程FP使用引导图像设置单元BS2执行步骤S5时,引导单元BB2使用所选的引导图像引导预备计算机C5(步骤S6)。引导预备计算机C5的操作将在下文详细描述。首先,预备计算机C5具有未示出的接口电路。接口电路运行作为与网络N连接的控制电路。接口电路待命,以便经由网络N接收属它所有的特定信息包。因此,接口电路总是被提供待机电流。接口电路具有在该接口电路经由网络N接收到特定信息包时利用该接口电路启动(引导)计算机(预备计算机5)的功能。具有这样接口电路的预备计算机C5被设置在这样的(待机)状态下,以允许其总是可以被引导。
引导单元BB2经由网络N发送特定信息包到预备计算机C5,以引导预备计算机C5。在接收到该特定信息包后,预备计算机C5的接口电路开始引导预备计算机C5的操作(例如,引导装入引导加载程序的操作)。开始引导操作的预备计算机C5查询数据库DBDB,以便搜索记录了用于引导预备计算机C1的引导图像的盘。预备计算机C5查询数据库DBDB,并且搜索设置了预备计算机C5的标识符的记录。预备计算机C5根据在设置了预备计算机C5的标识符的记录上记录的盘D1的标识符,使用存储设备SS中的盘D1中存储的“主机-1”的引导图像来进行引导。如上所述经由网络发送特定信息包到特定计算机以引导所述特定计算机的技术是众所周知的Wake on LAN(商标)。
由于上述的预备计算机C5被引导,所以计算机C5可以执行曾由故障计算机C1处理的“主机-1”的引导图像。换句话说,计算机C5作为“主机-1”进行引导。因此,数据库CDDB2被操作,以将计算机C5的状态从“预留”(R)改变为“服务”(S)。从而,直到计算机C1发生故障时仍在计算机C1上运行的操作系统OS1、预备计算机搜索单元PP1、引导图像设置单元BS1、引导单元BB1和集群控制单元CC1开始在计算机C5上运行,如图10所示。
如上所述,在第一实施例中,即使故障计算机搜索过程FP在故障计算机C1上运行,它也被另一计算机(计算机C2)接管。因此,搜索过程FP可以可靠地确定计算机C1发生故障。在搜索过程FP的控制下,可以使用在接管了过程FP的计算机上运行的预备计算机搜索单元、引导图像设置单元和引导单元(预备计算机搜索单元PP2、引导图像设置单元BS2和引导单元BB2)来实现对预备计算机的搜索、用于允许预备计算机使用曾被故障计算机C1所使用的引导图像的设置、以及引导预备计算机的自动化。
在前述实施例中,在超时周期内每次接收到心跳信号就递增的计数器被用于检测主机的故障。然而,通过监控甚至在经过超时周期之后仍没有接收到心跳信号的时间段或从所述超时周期(第一超时周期)后经过的时间,可以确定对应主机的故障。只有在从第一超时周期后经过的时间超过了预设第二超时周期时,才确定对应主机的故障。
第二实施例图11是示出了根据本发明第二实施例的计算机系统的配置的框图。在图11中,与图1所示的计算机系统等同的组成元件用相同的标号来表示。首先,对图11所示的计算机系统配置的描述将着重于图1和图11所示的计算机之间的差异。在图11所示的计算机系统中,远程分布服务器RDS连接到网络N。远程分布服务器RDS具有盘(盘驱动器)R1、R2、R3和R4。盘R1、R2、R3和R4预先分别存储“主机-1”、“主机-2”、“主机-3”和“主机-4”的引导图像。主机名称“主机-1”、“主机-2”、“主机-3”和“主机-4”被记录在盘R1、R2、R3和R4中存储的引导图像的给定位置处。这里假定计算机C1、C2、C3和C4是分别由盘R1、R2、R3和R4中存储的引导图像所引导的。在这种情况下,计算机C1、C2、C3和C4的主机名称分别是“主机-1”、“主机-2”、“主机-3”和“主机-4”。
计算机C1、C2、C3、C4和C5分别包括盘(本地盘驱动器)D1、D2、D3、D4和D5。远程分布服务器RDS的盘R1、R2、R3和R4的内容被分别拷贝到盘D1、D2、D3和D4中。如果计算机C1、C2、C3和C4被引导,则由“主机-1”、“主机-2”、“主机-3”和“主机-4”标识的主机被引导。
现在将参考图12来描述图11所示的计算机系统的操作。图12是主要示出了故障计算机搜索过程FP的步骤的流程图。这里是检测故障计算机以及在预备计算机中设置应用于该故障计算机的引导图像来引导该预备计算机的操作示例,如前述的第一实施例那样。现在假定计算机C1至C4正在根据在盘D1至D4中拷贝的“主机-1”至“主机-4”的引导图像而进行操作,或者它们处于“服务”(S)状态。同时,假定计算机C5作为预备计算机位于计算机系统中,并且被设定于“预备”(P)状态。而且,假定故障计算机搜索过程FP在计算机C1上运行。在计算机C1至C4均没有发生故障的正常状态下,搜索过程FP重复与图6中的步骤S1和S2相对应的操作(步骤S11和S12)。
假定计算机C1在如第一实施例的上述条件下发生故障。在这种情况下,搜索过程FP执行与图6中的步骤S1、S2、S3和S4相对应的操作(步骤S11、S12、S13和S14)以确定计算机C1的故障。搜索过程FP被待机计算机C2至C4中的任何一个所接管,例如被下述阶段中的计算机C2所接管。在此阶段,在经过超时周期之后,没有从计算机C1上运行的集群控制单元CC1发送任何心跳信号,因而集群控制系统CC检测出计算机C1发生故障。
当搜索过程FP确定计算机C1的故障时,它使得预备计算机搜索单元PP2搜索预备计算机。与第一实施例类似,这里假定检测(选择)出计算机C5作为预备计算机。然后,搜索过程FP执行控制,以使预备计算机C5使用曾由故障计算机C1所使用的“主机-1”的引导图像。为了在预备计算机C5中处理“主机-1”的引导图像,搜索过程FP使得引导图像设置单元BS2将引导图像拷贝到预备计算机C5的本地盘D5中(步骤S15)。“主机-1”的引导图像被存储在远程分布服务器RDS中的盘R1中。引导图像设置单元BS2从远程分布服务器RDS中选择盘R1。然后,引导图像设置单元BS2将盘R1中存储的“主机-1”的引导图像拷贝到预备计算机C5的本地盘D5中(步骤S15)。如上所述,在第二实施例中,曾在故障计算机C1中处理的“主机-1”的引导图像被直接设置在由故障计算机搜索过程FP检测(选择)出的预备计算机C5中。在这个方面,第二实施例不同于第一实施例,在第一实施例中,曾在故障计算机C1中处理的“主机-1”的引导图像被间接设置在预备计算机C5中。
接下来,搜索过程FP使得引导单元BB2根据预备计算机C5的盘D5中拷贝的“主机-1”的引导图像来引导预备计算机C5(步骤S16)。由引导单元BB2引导计算机C5的操作是以和第一实施例相同的方式执行的。因此,计算机C5作为“主机-1”被引导。从而,直到计算机C1发生故障时仍在计算机C1上运行的操作系统OS1、预备计算机搜索单元PP1、引导图像设置单元BS1、引导单元BB1和集群控制单元CC1开始在计算机C5上运行。
第三实施例图13是示出了根据本发明第三实施例的计算机系统的配置的框图。在图13中,与图1所示的计算机系统等同的组成元件用相同的标号来表示。首先,对图13所示的计算机系统配置的描述将着重于图1和图13所示的计算机之间的差异。假定在图13所示的计算机系统中,根据存储设备SS中的盘D1、D2、D3和D4中所存储的“主机-1”、“主机-2”、“主机-3”和“主机-4”的引导图像来操作计算机C1、C2、C3和C4,或者计算机C1、C2、C3和C4处于“服务”(S)状态。在计算机C1、C2、C3和C4上,故障计算机搜索过程FP1、FP2、FP3和FP4彼此并行运行。搜索过程FP1、FP2、FP3和FP4对应于图1所示的搜索过程FP。
故障计算机搜索过程FP1、FP2、FP3和FP4的特征在于它们在由主机名称“主机-1”、“主机-2”、“主机-3”和“主机-4”的引导图像所引导的计算机(计算机C1、C2、C3和C4)上运行。在这方面,搜索过程FP1、FP2、FP3和FP4不同于仅在系统的一个计算机上运行的一个过程的上述搜索过程FP。搜索过程FP1、FP2、FP3和FP4的特征在于每个搜索过程可以识别将运行它的计算机。换句话说,搜索过程FP1、FP2、FP3和FP4识别出,分配给将要在其上运行它们的计算机的主机名称(它们自己的主机名称)是在存储设备SS中的盘D1、D2、D3和D4中所存储的引导图像中所记录的“主机-1”、“主机-2”、“主机-3”和“主机-4”。搜索过程FP1、FP2、FP3和FP4使用识别主机名称的功能搜索故障计算机。与搜索过程FP不同,搜索过程FP1、FP2、FP3和FP4不需要搜索故障计算机的数据库HDB。
在第三实施例中,故障计算机搜索过程FP1、FP2、FP3和FP4被预先定义为由集群控制系统CC所控制的服务。换句话说,当其上正在运行过程FP1、FP2、FP3和FP4的计算机(图13中的计算机C1、C2、C3和C4)由于故障之类的原因而停止时,过程FP1、FP2、FP3和FP4由集群控制系统CC控制,从而它们可以由另一计算机引导。
现在将参考图14来描述图13所示的计算机系统的操作。图14是主要示出了故障计算机搜索过程FP1(FPi)的步骤的流程图。这里是利用故障计算机搜索过程FP1检测故障计算机C1以及在预备计算机中设置应用于故障计算机C1的引导图像来引导该预备计算机的操作示例。
首先,当故障计算机搜索过程FP1启动时,它确定其是否在将要运行它的计算机(即,主机名称是“主机-1”的计算机C1)上运行(步骤S21)。通常,如图13所示,搜索过程FP1运行在计算机C1上。在这种情况下,搜索过程FP1一直空闲到它下一次启动(步骤S28)。
现在假定其上正在运行搜索过程FP1的计算机C1发生故障。因此,在集群控制系统CC的控制下,将搜索过程FP1从故障计算机C1移到计算机系统中的另一计算机(故障转移)。换句话说,启动搜索过程FP1的部件从故障计算机C1改变为另一计算机。因此,搜索过程FP1开始在具有主机名称“主机-1”的计算机(C1)(其上将运行搜索过程FP1)之外的计算机上运行。这里假定搜索过程FP1由具有主机名称“主机-2”的计算机C2来启动。
当搜索过程FP1由计算机C2启动时,它确定它正在具有主机名称“主机-1”的计算机C1(其上将运行搜索过程FP1)之外的计算机(具有主机名称“主机-2”的计算机C2)上运行。因此,搜索过程FP1识别出最初在运行搜索过程FP1的具有主机名称“主机-1”的计算机C1发生故障。在这种情况下,搜索过程FP1使用当前正在运行搜索过程FP1的计算机C2上的预备计算机搜索单元PP2来搜索预备计算机(步骤S22和S23)。与第一实施例类似,使用搜索单元PP2对预备计算机的搜索是通过参考数据库CDDB2而获取“预备”(P)状态下的计算机的计算机标识符而实现的。如果不存在处于“预备”(P)状态下的计算机,则故障计算机搜索过程FP1在给定的时间段内空闲(步骤S24),然后再次使用预备计算机搜索单元PP2来搜索预备计算机(步骤S22和S23)。
现在假定数据库CDDB2(CDDBi)是如图2所示的数据库。计算机C5被检测为预备计算机。当预备计算机C5被检测(选择)出时,故障计算机搜索过程FP1执行与图6中的步骤S5和S6相对应的操作(步骤S25和S26)。换句话说,搜索过程FP1执行控制,以使预备计算机C5使用曾被故障计算机C1所使用的“主机-1”的引导图像。为了由预备计算机C5来处理“主机-1”的引导图像,搜索过程FP1使当前正在运行搜索过程FP1的计算机C2上的引导图像设置单元BS2来操作存储设备SS中的数据库DBDB(步骤S25)。利用数据库DBDB的操作,曾用于引导故障计算机C1的引导图像被选择为用于引导预备计算机C5的引导图像,这与第一实施例类似。然后,搜索过程FP1使当前正在运行搜索过程FP1的计算机C2上的引导单元BB2使用所选的“主机-1”的引导图像来引导预备计算机C5(步骤S26)。这样,计算机C5可以处理曾由故障计算机C1处理的“主机-1”的引导图像。换句话说,计算机C5作为“主机-1”而被引导,并且直到计算机C1发生故障时仍在计算机C1上运行的操作系统OS1、预备计算机搜索单元PP1、引导图像设置单元BS1、引导单元BB1和集群控制单元CC1开始在计算机C5上运行。
假定预备计算机C5是由曾被故障计算机C1处理的“主机-1”的引导图像所引导的,或者假定计算机C5作为“主机-1”而被引导。那么,将最初在计算机“主机-1”上运行的故障计算机搜索过程FP1从计算机C2(其主机名称为“主机-2”)移动(返回)到计算机C5(其主机名称为“主机-1”),其中计算机C5作为“主机-1”而被引导(步骤S27)。将搜索过程FP1移动(返回)到最初运行搜索过程FP1的具有主机名称“主机-1”的计算机的操作(即,故障返回操作)是由集群控制系统CC执行的。之后,搜索过程FP1一直空闲到它下一次启动(步骤S28)。
在前述第三实施例中,预备计算机搜索单元PP1(PPi)、引导图像设置单元BS1(BSi)和引导单元BB1(BBi)独立于故障计算机搜索过程FP1(FPi)。然而,预备计算机搜索单元PP1(PPi)、引导图像设置单元BS1(BSi)和引导单元BB1(BBi)可以被配置为与故障计算机搜索过程FP1(FPi)相关联(包括在故障计算机搜索过程FP1(FPi)中)。在这样的配置中,当在集群控制系统CC的控制下将故障计算机搜索过程FP1从计算机C1移到计算机C2时,预备计算机搜索单元PP1、引导图像设置单元BS1和引导单元BB1也被移到计算机C2中。在这种情况下,故障计算机搜索过程FP1使用预备计算机搜索单元PP1、引导图像设置单元BS1和引导单元BB1来执行图14的流程图所示的过程。
在前述第三实施例中,存在下述可能即使当计算机C1暂时发生故障时,故障计算机搜索过程FP1将被移到计算机C2,以由曾被计算机C1处理的引导图像来引导预备计算机C5。因此,与其它服务不同,集群控制系统CC可以通过使用长于被用于检测计算机故障的超时周期的超时周期,将故障计算机搜索过程FP1(FPi)从故障计算机移到另一计算机(故障转移)。
第四实施例图15是示出了根据本发明第四实施例的计算机系统的配置的框图。在图15中,与图11或图13所示的计算机系统等同的组成元件用相同的标号来表示。图15所示的计算机系统不同于根据图13所示的第三实施例的计算机系统之处等同于根据图11所示的第二实施例的计算机系统不同于根据图1所示的第一实施例的计算机系统之处。图15所示的计算机系统中的故障计算机搜索过程FP1(FPi)的步骤由图16的流程图示出。如图16所见,故障计算机搜索过程FP1(FPi)执行与第三实施例中的图14的流程图所示的步骤S21至S28相对应的操作(步骤S31至S38)。然而,步骤S37的操作是由集群控制系统CC执行的,如图14中的步骤S27。图16的流程图与图14的流程图不同之处在于与图14中的步骤S25相对应的操作(步骤S35)。换句话说,在使预备计算机C5使用曾由故障计算机C1使用的引导图像的操作上二者不同。在步骤S35中,曾由故障计算机C1使用的引导图像(即在远程分布服务器RDS中的盘R1中存储的引导图像)被拷贝到预备计算机C5的本地盘D5中。该操作与图12中的步骤S15的操作相同。
下面的技术被应用于上述的第一到第四实施例。当曾处理引导图像的计算机发生故障时,通过使用计算机的故障检测作为触发器,由该引导图像引导预备计算机。如果应用了该技术,通过使用计算机的负载变得高于参考值这一事实作为触发器,可以由曾被计算机处理的引导图像来引导预备计算机。在这种情况下,不需要总是接管故障计算机搜索过程。而且,通过使用即将到来的预设时间作为触发器,可以由随时间变化的引导图像来引导同一计算机。换句话说,在白天,可以由包括第一操作系统的第一引导图像来引导同一计算机,而在夜间,可以由包括第二操作系统的第二引导图像来引导它。这种配置尤其适用于图1或图13所示的计算机系统,该计算机系统不需要拷贝引导图像。
本发明不限于上述实施例,而在简化实施阶段中,在不脱离本发明主题的范围的条件下,可以修改实施例的组件。通过适当组合实施例的组件可以获得多种发明。例如可以删除实施例的一些组件。不同实施例的组件可以适当地进行组合。
工业适用性根据本发明,当计算机发生故障时,通过在预备计算机中设置引导图像可以引导预备计算机,从而预备计算机可以代替故障计算机使用。
权利要求
1.一种具有多个计算机的计算机系统,所述多个计算机包括预备计算机,所述计算机系统包括多个存储设备,用于存储用来个别引导所述多个计算机的引导图像;第一存储设备,用于存储所述多个计算机中每个计算机的状态;第二存储设备,用于存储指示所述多个存储设备中每个存储设备和由所述存储设备中存储的每个引导图像所引导的计算机之间的对应关系的信息;故障计算机搜索单元,被配置用于在所述计算机系统中搜索故障计算机;预备计算机搜索单元,被配置用于根据存储在第一存储单元中的所述多个计算机中每个计算机的状态来选择预备计算机,当所述故障计算机搜索单元检测到故障计算机时,所述预备计算机代替所述故障计算机使用;引导图像选择单元,被配置用于根据存储在第二存储设备中的信息来选择存储设备,所述存储设备存储用于在所述故障计算机搜索单元检测到所述故障计算机时引导由所述预备计算机搜索单元所选择的所述预备计算机的引导图像;以及引导单元,被配置用于通过使用由所述引导图像选择单元所选择的存储设备中所存储的引导图像来引导由所述预备计算机搜索单元所选择的所述预备计算机。
2.如权利要求1所述的计算机系统,其中所述故障计算机搜索单元包括第一确定单元和第二确定单元,所述第一确定单元被配置用于周期性确定所述多个计算机中的每个是否正常运行,所述第二确定单元被配置用于确定由所述第一确定单元确定为未正常运行的计算机在下述条件下发生故障,所述条件是在所述第一确定单元的确定之后,在经过了给定时间段之后所述计算机没有正常运行。
3.如权利要求1所述的计算机系统,其中所述故障计算机搜索单元包括被配置用于在所述多个计算机的任何工作计算机上运行并在所述计算机系统中搜索故障计算机的特定过程,并且所述特定过程被配置用于当在运行所述过程的计算机上出现问题时,在除了所述预备计算机之外的计算机上运行。
4.如权利要求3所述的计算机系统,还包括集群控制系统,所述集群控制系统被配置用于检测所述计算机系统中发生故障的计算机,并使在所述故障计算机中执行的服务由除了所述预备计算机之外的计算机接管,其中所述集群控制系统被配置用于当所述故障计算机是运行特定过程的计算机时,使所述特定过程由除了所述预备计算机之外的计算机接管。
5.如权利要求4所述的计算机系统,还包括第三存储设备,所述第三存储设备存储用来管理由存储在所述多个存储设备中的引导图像所引导的每个计算机是否正在运行的管理信息,其中所述集群控制系统周期性监控由存储在所述多个存储设备中的引导图像所引导的计算机,以更新存储在所述第三存储设备中的管理信息,以及所述故障计算机搜索单元基于存储在所述第三存储设备中的管理信息在所述计算机系统中搜索故障计算机。
6.如权利要求5所述的计算机系统,其中所述集群控制系统包括多个集群控制单元,所述多个集群控制单元被配置用于通过周期性执行与所述多个计算机的每个工作计算机的通信来检测故障计算机,并且所述集群控制单元被配置用于根据所述通信的结果来更新存储在所述第三存储设备中的管理信息。
7.如权利要求1所述的计算机系统,其中所述故障计算机搜索单元包括多个特定过程,所述多个特定过程被配置用于在所述多个计算机的工作计算机上运行,并在所述计算机系统中搜索故障计算机,并且所述多个特定过程中的每个被配置用于当在运行所述过程的计算机上出现问题时,在除了所述预备计算机之外的计算机上运行。
8.如权利要求7所述的计算机系统,其中所述多个特定过程中的所述每个特定过程识别是否在所述多个计算机的任何一个计算机上运行,并且当所述多个特定过程的所述每个特定过程没有在将要运行所述多个特定过程的所述每个特定过程的计算机上运行时,确定所述计算机发生故障。
9.如权利要求7所述的计算机系统,还包括集群控制系统,所述集群控制系统被配置用于检测所述计算机系统中发生故障的计算机,并使曾在所述故障计算机中执行的服务由除了所述预备计算机之外的计算机接管,其中所述集群控制系统被配置用于当所述故障计算机是运行特定过程的计算机时,使所述特定过程由除了所述预备计算机之外的计算机接管。
10.如权利要求9所述的计算机系统,其中所述集群控制系统包括多个集群控制单元,所述多个集群控制单元被配置用于通过在所述多个计算机的工作计算机上运行并彼此周期性通信来检测故障计算机。
11.一种使用预备计算机来代替故障计算机的方法,所述方法被应用于由多个计算机配置的计算机系统,所述多个计算机包括所述预备计算机,所述方法包括在所述计算机系统中搜索故障计算机;根据存储在第一存储设备中的所述多个计算机的每个计算机的状态来选择预备计算机,所述预备计算机代替通过所述搜索检测出的所述故障计算机而使用;根据下述信息从存储用来引导所述多个计算机的引导图像的多个存储设备中选择存储设备,其中所述信息指示所述多个存储设备中的每个存储设备和由所述多个存储设备的每个存储设备中所存储的引导图像所引导的计算机之间的对应关系,所述存储设备存储用来引导被选择来代替所述故障计算机的所述预备计算机的引导图像,并且所述信息存储在第二存储设备中;以及使用存储在所选存储设备中的引导图像来引导所选的预备计算机。
12.如权利要求11所述的方法,其中所述搜索是由在所述多个计算机的任意工作计算机上运行的特定过程执行的。
13.如权利要求12所述的方法,还包括当运行所述特定过程的计算机发生故障时,将所述特定过程移到除了所述预备计算机之外的计算机。
14.如权利要求11所述的方法,其中所述搜索是由在所述多个计算机的所有工作计算机上运行的多个特定过程执行的。
15.如权利要求14所述的方法,还包括将在所述多个计算机的故障计算机上运行的特定过程移到除了所述预备计算机之外的计算机。
16.如权利要求15所述的方法,其中所述搜索包括当所述搜索未对将要执行所述搜索的计算机执行时,确定所述计算机发生故障。
全文摘要
当计算机(C1)发生故障时,在该计算机(C1)上运行的故障计算机搜索过程(FP)被诸如计算机(C2)的另一计算机所启动。当搜索过程(FP)检测到故障计算机(C1)时,搜索过程(FP)使用预备计算机搜索单元(PP2)选择预备计算机(C5)。引导图像设置单元(BS2)选择存储了曾由故障计算机(C1)所处理的引导图像的存储设备(D1)。引导单元(BB2)使用在所选的存储设备(D1)中存储的引导图像来引导所选的预备计算机(C5)。
文档编号G06F11/20GK1802636SQ20048001594
公开日2006年7月12日 申请日期2004年5月7日 优先权日2003年5月9日
发明者沟口研一 申请人:株式会社东芝, 东芝解决方案株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1