計算機系統與應用於該系統的故障計算機替換方法
2023-04-26 10:43:36 1
專利名稱:計算機系統與應用於該系統的故障計算機替換方法
技術領域:
本發明涉及由多個計算機配置的計算機系統,其中多個計算機包括被稱為預備節點的預備計算機。具體而言,本發明涉及計算機系統以及應用於該系統的故障計算機替換方法,其中所述系統適於當計算機在操作期間發生故障時,允許預備計算機處理曾由故障計算機處理的引導圖像(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日
發明者溝口研一 申請人:株式會社東芝, 東芝解決方案株式會社