專利名稱:計算機系統(tǒng)、故障容許系統(tǒng)及控制方法和程序的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種計算機系統(tǒng)、一種使用其的故障容許系統(tǒng)及其操作控制方法和程序,具體地,涉及一種故障容許計算機系統(tǒng)的改進。
背景技術(shù):
近年來,廣泛使用的通用CPU的性能明顯增強,通過在使用這種通用CPU的工作站或服務(wù)器上安裝通用操作系統(tǒng)(OS),提供了高性能且廉價的系統(tǒng)。結(jié)果,即使是傳統(tǒng)上使用非常昂貴大型計算機的應(yīng)用程序,也可以使用利用高性能和廉價通用CPU的系統(tǒng)。
另一方面,系統(tǒng)需要每天24小時持續(xù)運行的危急任務(wù)應(yīng)用程序也在增多。在這些應(yīng)用程序中,重要的是構(gòu)造系統(tǒng)以防止系統(tǒng)死機。
然而,在這種通用CPU和通用OS中,由于缺乏CPU自身的故障檢測功能,在通用OS中硬件故障的情況下,當(dāng)出現(xiàn)故障時,由于缺乏用于響應(yīng)的故障通知手段和故障處理的限定,硬件故障引起系統(tǒng)崩潰。因此,為了提供高可靠性的系統(tǒng),需要添加特定外圍電路或開發(fā)專用OS,這造成在難以在跟隨開發(fā)普通通用CPU系統(tǒng)的同時來開發(fā)高可靠性的系統(tǒng)。因此,普通系統(tǒng)和高可靠性系統(tǒng)之間的成本性能差趨向于增大。
因此,為了提供一種與使用通用CPU的計算機具有共性的高可靠性計算機系統(tǒng),例如故障容許計算機系統(tǒng),如日本專利待審No.09-034809所述,提出了一種與相同時鐘同步地執(zhí)行相同處理的CPU,一種用于檢測CPU的故障并斷開故障CPU的設(shè)備以及一種用于通過取決于IO故障的CPU指令來斷開故障IO路徑的系統(tǒng)。然而,在廣泛使用的通用OS中,由于沒有提供硬件故障通知方法和故障處理功能這一事實,存在系統(tǒng)崩潰的問題。
因此,為了使用通用OS,需要能夠?qū)⒂布收虾蚈S完全分離的配置。例如,參考國際專利申請的國家公開No.2001-523855,通過一個計算機系統(tǒng)分別配置了計算單元(CE)和IO控制部分(IOP),并且每一個單元多次相連,以便實現(xiàn)冗余。在單元之間執(zhí)行通信,并且在檢測到故障時斷開CE或IOP。
例如,對于IO控制部分,從OS的角度硬件是可視的。盡管可以暫停其中出現(xiàn)故障的IO控制部分,該故障不會直接影響OS,并且通過檢測故障并利用剩余的冗余IO控制部分返回正常響應(yīng)能夠消除故障的出現(xiàn)。
然而,在該系統(tǒng)中,CPU和IO分別需要一個計算機,此外,為了構(gòu)成冗余配置,需要多個計算機來實現(xiàn)冗余。此外,由于每一個計算機運行不同步或不同,需要安裝額外的OS許可,系統(tǒng)變得昂貴。
存在一種系統(tǒng),通過利用通用OS上的標準PnP(即插即用),能夠動態(tài)地改變IO設(shè)備或總線上IO橋的連接配置,因此,設(shè)想通過采用利用這種PnP軟件的冗余配置系統(tǒng)來構(gòu)成高可靠性故障容許計算機系統(tǒng)。
然而,對于IO橋PnP處理,不支持完全動態(tài)配置改變。例如,在連接IO橋時,由于不確定與IO橋相連的設(shè)備所需的存儲器空間分配量以及設(shè)備的數(shù)目,由于PnP控制軟件或OS的限制(通常由固定值限定),不能自由地將存儲器空間分配給相連的IO橋,從而限制了設(shè)備的數(shù)目和類型。
例如,在IO橋的PnP連接的情況下,由于OS不能確定IO橋需要多少資源,分配了一定存儲器空間并且之后不能改變。因此,當(dāng)在相連IO橋下連接其它IO橋或設(shè)備時,不能連接需要比分配給第一IO橋更多存儲器空間的IO橋或設(shè)備。
此外,如果連接了多個設(shè)備,由于所需的存儲器空間可能會超出分配給IO橋的存儲器空間這一事實,一些設(shè)備不能根據(jù)相連設(shè)備的數(shù)目來分配存儲器資源。存儲器資源分配的這種限制在多級IO橋配置系統(tǒng)中稱為嚴重問題,多個IO橋在PnP連接IO橋下相連。
傳統(tǒng)上,由于上述限制,為了構(gòu)造具有使用PnP軟件的系統(tǒng)的故障容許計算機系統(tǒng),需要修改OS標準PnP控制軟件和OS自身,以便充分地將資源分配到IO橋。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種能夠構(gòu)造冗余配置的高可靠性和高可用性計算機系統(tǒng),而無需修改已有的通用OS功能,還提供了一種使用上述系統(tǒng)的故障容許系統(tǒng)及其操作控制方法和程序。
根據(jù)本發(fā)明的一種計算機系統(tǒng)包括CPU、存儲器、總線和用于將IO設(shè)備與總線相連的IO橋,其中計算機系統(tǒng)包括偽IO總線橋,在另一個系統(tǒng)與總線相連的冗余配置期間,偽IO總線橋從總線斷開,并且在其它系統(tǒng)從總線斷開的單機配置期間,偽IO總線橋保持IO橋的設(shè)置信息,以仿真所述其它系統(tǒng)的IO橋。
在根據(jù)本發(fā)明的故障容許系統(tǒng)中,將上述計算機系統(tǒng)配置為冗余配置。
一種故障容許系統(tǒng)的操作控制方法,所述故障容許系統(tǒng)包括通過總線互連的第一和第二計算機系統(tǒng),以形成冗余配置,每一個系統(tǒng)具有CPU、存儲器、用于將IO設(shè)備與總線相連的IO橋以及仿真另一個系統(tǒng)中IO橋的偽IO總線橋,該操作控制方法包括步驟在單機配置期間,使偽IO總線橋保持另一個系統(tǒng)的IO橋的初始設(shè)置信息;形成冗余配置;以及在冗余配置期間,將偽IO總線橋從總線斷開,并將偽IO總線橋保持的初始設(shè)置信息復(fù)制到所述另一個系統(tǒng)的IO橋。
根據(jù)本發(fā)明的程序是一種用于執(zhí)行故障容許系統(tǒng)的操作控制方法的程序,所述故障容許系統(tǒng)包括通過總線互連的第一和第二計算機系統(tǒng),以形成冗余配置,每一個系統(tǒng)具有CPU、存儲器、用于將IO設(shè)備與總線相連的IO橋以及仿真另一個系統(tǒng)中IO橋的偽IO總線橋,該程序包括處理在單機配置期間,使偽IO總線橋保持另一個系統(tǒng)的IO橋的初始設(shè)置信息;形成冗余配置;以及在冗余配置期間,將偽IO總線橋從總線斷開,并將偽IO總線橋保持的初始設(shè)置信息復(fù)制到所述另一個系統(tǒng)的IO橋。
圖1是根據(jù)本發(fā)明的系統(tǒng)配置圖;圖2是利用圖1中配置的故障容許計算機系統(tǒng)的一個示例;圖3是說明圖2中操作的流程圖;圖4是利用圖1中配置的故障容許計算機系統(tǒng)的另一個示例;以及圖5是利用圖1中配置的故障容許計算機系統(tǒng)的另一個示例。
具體實施例方式
下面將參考附圖來說明本發(fā)明的實施例。圖1示出了單個計算機系統(tǒng)配置,以配置根據(jù)本發(fā)明的故障容許系統(tǒng)。CPU 11和存儲器12與主控制器21相連,主控制器21與總線100相連。與總線100相連的IO橋23可以與支持熱插拔的設(shè)備相連,或與用于連接熱插拔支持設(shè)備的其它IO橋40、41相連。
將總線(通過單個橋?qū)优cCPU 11相連的總線)100被配置為一個橋LSI 20中的虛擬總線,橋LSI 20包括主控制器21和IO橋23。此外,偽IO橋25與虛擬總線100相連。該偽IO橋25是一種在橋LSI 20中設(shè)置的邏輯設(shè)備,具有保持用于IO橋?qū)嶓w的設(shè)置信息的功能。該設(shè)置信息至少是配置信息(例如設(shè)備標識信息)和存儲器空間分配信息。由OS預(yù)設(shè)該設(shè)置信息的初始值。
如下參考圖2到3所述,通過與另一個系統(tǒng)(圖2中的系統(tǒng)B)相連以進行雙工操作,當(dāng)連接了IO橋的對應(yīng)實體(圖2中的IO橋23B)時,該偽IO橋25從總線100斷開并且不能被識別。在該雙工操作中,與系統(tǒng)(B)共享總線100。
傳統(tǒng)橋22和偽傳統(tǒng)橋24與總線100相連,傳統(tǒng)總線資源30與傳統(tǒng)橋22相連。邊帶通信線101使主控制器21能夠不通過總線100來訪問偽IO橋25或偽傳統(tǒng)橋24。
因此,主控制器21通過邊帶通信線101訪問由偽IO橋25保持的初始設(shè)置信息,并且所述初始設(shè)置信息被復(fù)制到另一個系統(tǒng)中IO橋的實體。
圖2是將圖1的系統(tǒng)用作系統(tǒng)A、B的一種雙工系統(tǒng)。在圖2中,與圖1相同的系統(tǒng)A中的組件由帶“A”的相同數(shù)字表示,而系統(tǒng)B中的相同組件由圖1中帶“B”的相同數(shù)字表示。
通過將橋LSI 20A與橋LSI 20B相連,每一個系統(tǒng)中的CPU 11A、11B能夠通過虛擬總線100訪問IO橋23A、23B和IO設(shè)備41A、41B下的IO橋23A、23B和IO橋40A、40B。
通過按照相同的時鐘周期執(zhí)行相同的處理,每一個系統(tǒng)A、B的CPU 11A、11B,存儲器12A、12B和主控制器21A、21B作為一個系統(tǒng)中的CPU進行操作(虛線所示的區(qū)域;對于圖4、5是一樣的)。
當(dāng)系統(tǒng)作為雙工配置運行時,由于IO橋?qū)嶓w中的信息設(shè)置改變,偽IO橋25A進行操作,以便監(jiān)視到相連的系統(tǒng)B中IO橋23B的實體的訪問,以保持IO橋23B的該實體的配置信息設(shè)置,以便將IO橋23B的實體的最近設(shè)置信息復(fù)制到偽IO橋25A。
另一方面,偽IO橋25B還監(jiān)視到相連的系統(tǒng)A中IO橋23A的實體的訪問,以保持IO橋23A的該實體的配置信息設(shè)置。
即使連接了IO橋的實體且總線100不能識別每一個IO橋25A、25B,主控制器21A、21B仍可以通過邊帶通信101來訪問由每一個IO橋25A、25B保持的配置信息。如上所述,這能夠?qū)⒚恳粋€偽IO橋的設(shè)置信息復(fù)制到IO橋的各自實體?;蛘?,對于到IO橋的讀取訪問,偽IO橋進行響應(yīng),對于寫入訪問,偽IO設(shè)備進行監(jiān)視,并將訪問還發(fā)送到實體IO橋,從而能夠簡化用于將由偽IO橋保持的配置信息復(fù)制到IO橋的實體的操作。
參考圖3,說明了利用圖1的系統(tǒng)來形成圖2所示雙工配置的操作。首先,在加電時,僅存在圖1的配置或系統(tǒng)A(步驟S1)。由作為OS中基本軟件的BIOS(基本輸入/輸出系統(tǒng))來完成到這里包括IO橋24A的IO設(shè)備41A的存儲器資源分配(步驟S2)。
這里,如圖2所示,在雙工操作處設(shè)置到偽IO橋25A的存儲器空間分配,以便分配足夠的容量,包括IO橋?qū)嶓w23B下相連的設(shè)備和新近相連的設(shè)備所需的存儲器空間。OS啟動之后,還使用這里分配的存儲器空間。
如圖1的情況所示,在加電之后,假設(shè)其中啟動OS的系統(tǒng)是系統(tǒng)A,當(dāng)連接系統(tǒng)B時,形成圖2的冗余配置(步驟S3)。利用系統(tǒng)A和B之間的連接,通過BIOS調(diào)用(步驟S4),其中沒有示出來自連接控制器的中斷通知,BIOS進行系統(tǒng)A和B之間總線100的連接(步驟S5)。例如,該連接控制器是主板上的電路,用于控制例如PCI(外圍部件互連)熱插拔控制器的IO接口的火線的插入和拔出,這是一種公知電路,因此不再進行說明。
這里,系統(tǒng)A中的偽IO橋25A從總線100斷開,相反系統(tǒng)B中的IO橋23B的實體相連(步驟S6)。然后,主控制器通過從邊帶通信101讀取系統(tǒng)A中偽IO橋25A中設(shè)置的設(shè)置值來進行初始化,并將設(shè)置值復(fù)制到系統(tǒng)B中IO橋23B的實體(步驟S7)。對于系統(tǒng)B中的偽IO橋和系統(tǒng)A中的IO橋的實體也是一樣的。
該處理之后,調(diào)用用于OS的PnP控制軟件(步驟S8),僅對于IO橋下設(shè)備,由于軟件不能識別IO橋的配置變化,由PnP控制軟件執(zhí)行搜索或存儲器資源分配(S9)。
在PC/AT(個人計算機/高級技術(shù))架構(gòu)中,作為主控制器21A、21B的功能,由于傳統(tǒng)橋22A、22B和傳統(tǒng)總線資源30A、30B需要在系統(tǒng)中是單一的,控制到傳統(tǒng)橋22A、22B和傳統(tǒng)總線資源30A、30B的訪問,以便發(fā)送傳統(tǒng)橋/傳統(tǒng)總線資源。
由于傳統(tǒng)橋/傳統(tǒng)總線資源在系統(tǒng)中是單一的并且必須在系統(tǒng)中存在,當(dāng)由于故障等不能使用傳統(tǒng)橋22A、22B或傳統(tǒng)總線資源30A、30B的實際實體時,或為了維護、更換等將其去除時,偽傳統(tǒng)橋24A、24B能夠可選地執(zhí)行傳統(tǒng)橋/傳統(tǒng)總線資源的功能,直到切換主控制器21A、21B的訪問。
按照這種方式,在雙工系統(tǒng)中,如果將與虛擬總線100相連并且彼此對應(yīng)的IO橋作為偽IO橋集成到每一個系統(tǒng)中,并且物理上斷開系統(tǒng),偽IO橋能夠仿真另一個系統(tǒng)中實際的IO橋,從而可以就像所謂的PnP事件沒有發(fā)生一樣進行操作。
此外,通過在出現(xiàn)連接和斷開的虛擬總線上提供偽IO橋,所述偽IO橋與受到虛擬總線的連接或斷開影響的實際IO橋相對應(yīng),隱藏了IO橋的動態(tài)連接和斷開,對于所述動態(tài)連接和斷開,不可能利用標準PnP軟件自由地分配存儲器空間。由于在加電時將足夠的存儲器資源分配給IO橋,可以將需要的存儲器資源分配給與橋相連的設(shè)備,而無需修改OS或其標準PnP控制軟件。
接下來,將說明根據(jù)本發(fā)明的另一個實施例。在圖1中,偽IO橋25能夠?qū)崿F(xiàn)最小功能,以便通過標準PnP軟件來分配存儲器空間?;蛘?,偽IO橋25能夠?qū)崿F(xiàn)實際設(shè)備的全部或部分功能,從而臨時執(zhí)行實際設(shè)備的功能。
在圖1中,盡管將主控制器21、IO橋23和偽IO橋24集成到一個LIS 20中,還可以將每一個IO橋和偽IO橋作為另一個外部LSI與LSI 20相連。
在圖2中,盡管通過從邊帶通信101讀取在系統(tǒng)A的偽IO橋25A中設(shè)置的設(shè)置值并將其復(fù)制到系統(tǒng)B中的IO橋23B的實體,還可以通過以下操作,利用總線100來執(zhí)行復(fù)制提供功能,以便臨時將系統(tǒng)A中的偽IO橋25A傳輸?shù)脚c系統(tǒng)B中的IO橋23B的實體不同的設(shè)備或功能。
利用與圖2相同的參考數(shù)字來表示相同組件的圖4示出了根據(jù)本發(fā)明的另一個實施例。在圖4中,與系統(tǒng)A相連的是偽IO橋25A和偽IO橋32A,偽IO橋25A用作系統(tǒng)B中的IO橋23B,偽IO橋32A用作IO橋40B,IO橋40B接下來與系統(tǒng)B中的IO橋23B相連。按照這種方式,在IO橋以多級方式相連的配置中,如果預(yù)先限定了系統(tǒng)的配置,可以按照多級方式來連接偽IO橋。通過添加功能以便對于每一個IO橋使偽IO橋的功能無效,還可以形成如圖2所示的配置。
在圖5中,在三重配置中設(shè)置系統(tǒng)冗余。系統(tǒng)A中的每一個偽IO橋25A、26A分別與系統(tǒng)B、C中的IO橋23B、23C的實體相對應(yīng)。類似地,系統(tǒng)B中的每一個偽IO橋25B、26B分別與系統(tǒng)A、C中的IO橋23A、23C的實體相對應(yīng),以及系統(tǒng)C中的每一個偽IO橋25C、26C分別與系統(tǒng)A、B中的IO橋23A、23B的實體相對應(yīng)。
按照這種方式,可以根據(jù)每一個系統(tǒng)中偽IO橋的數(shù)目來增加系統(tǒng)冗余。此外,通過對于每一個偽IO橋添加無效功能,可以根據(jù)系統(tǒng)冗余來形成配置。
如上所述,在根據(jù)本發(fā)明的故障容許計算機系統(tǒng)中,通過雙重構(gòu)造執(zhí)行固定步驟操作的CPU硬件并形成冗余配置(例如軟件RAID1),同時保持包括通用CPU和通用OS的結(jié)合的系統(tǒng)配置(這里,通常是PC/AT架構(gòu)),能夠構(gòu)造高可靠性計算機系統(tǒng)。
此外,為了在斷開冗余CPU或用于維護、更換等的冗余IO控制器時不會失去系統(tǒng)的可用性,利用將邊界設(shè)為邏輯總線或物理總線的通用PnP/熱插拔控制軟件,能夠連接硬件資源,從而形成冗余,或斷開冗余硬件資源,以便能夠提供高可靠性和高可用性的故障容許計算機系統(tǒng),而無需修改已有的通用OS功能。
顯然,通過計算機可讀程序(軟件)來實現(xiàn)圖3所示的操作流程。
本發(fā)明的第一個優(yōu)點在于,提供了雙重具有不支持PnP的IO空間的IO設(shè)備。這是因為即使硬件實體在物理上斷開,通過使設(shè)備虛擬,軟件可以將不支持另外必須存在于系統(tǒng)中的PnP的IO設(shè)備識別為始終存在的設(shè)備。結(jié)果,無需使用PnP控制軟件,通過BIOS(基本輸入/輸出系統(tǒng))控制能夠容易地實現(xiàn)冗余配置。
本發(fā)明的第二個優(yōu)點在于,對于具有多級IO橋的系統(tǒng)中的PnP控制,可以使用用于通用OS的PnP控制軟件。這是因為在系統(tǒng)雙工操作之前,通過使PnP虛擬地與IO橋相連,BIOS能夠預(yù)先保留足夠的存儲器資源。結(jié)果,利用用于通用OS BIOS的PnP控制軟件,能夠容易地形成冗余配置。
本發(fā)明的第三個優(yōu)點在于,通過軟件能夠使用通用OS,而無需考慮雙工操作軟件。這是因為由于每一個系統(tǒng)的CPU通過固定步驟操作來執(zhí)行相同操作,軟件不需要考慮CPU雙工操作,對于雙工操作之間和之后的每一個系統(tǒng),由軟件識別的系統(tǒng)的橋配置始終是相同配置。結(jié)果,利用通用OS能夠容易地形成冗余配置。
權(quán)利要求
1.一種計算機系統(tǒng)包括CPU、存儲器、總線和用于將IO設(shè)備與總線相連的IO橋,其中,計算機系統(tǒng)包括偽IO總線橋,在另一個系統(tǒng)與總線相連的冗余配置期間,偽IO總線橋從總線斷開,并且在其它系統(tǒng)從總線斷開的單機配置期間,偽IO總線橋保持IO橋的設(shè)置信息,以仿真所述其它系統(tǒng)的IO橋。
2.根據(jù)權(quán)利要求1所述的計算機系統(tǒng),其特征在于還包括分配裝置,用于在單機配置期間,響應(yīng)加電,將存儲器空間分配到偽IO橋。
3.根據(jù)權(quán)利要求1所述的計算機系統(tǒng),其中,偽IO橋保持其它系統(tǒng)的IO橋的初始設(shè)置信息。
4.根據(jù)權(quán)利要求3所述的計算機系統(tǒng),其特征在于還包括復(fù)制裝置,用于在冗余配置期間,將由偽IO橋保持的初始設(shè)備信息復(fù)制到所述其它系統(tǒng)的IO橋。
5.根據(jù)權(quán)利要求1所述的計算機系統(tǒng),其特征在于,偽IO橋保持所述其它系統(tǒng)中IO橋的最近設(shè)置信息。
6.一種故障容許系統(tǒng),其特征在于,將根據(jù)權(quán)利要求1到5之一所述的計算機系統(tǒng)配置為冗余配置。
7.一種故障容許系統(tǒng)的操作控制方法,所述故障容許系統(tǒng)包括通過總線互連的第一和第二計算機系統(tǒng),以形成冗余配置,每一個系統(tǒng)具有CPU、存儲器、用于將IO設(shè)備與總線相連的IO橋以及仿真另一個系統(tǒng)中IO橋的偽IO總線橋,所述方法包括步驟在單機配置期間,使偽IO總線橋保持另一個系統(tǒng)的IO橋的初始設(shè)置信息;形成冗余配置;以及在冗余配置期間,將偽IO總線橋從總線斷開,并將偽IO總線橋保持的初始設(shè)置信息復(fù)制到所述另一個系統(tǒng)的IO橋。
8.根據(jù)權(quán)利要求7所述的操作控制方法,其特征在于還包括步驟在單機配置期間,響應(yīng)加電,將存儲器空間分配到偽IO橋。
9.根據(jù)權(quán)利要求7所述的操作控制方法,其特征在于還包括步驟在冗余配置期間,偽IO橋保持所述另一個系統(tǒng)的IO橋的最近設(shè)置信息。
10.一種用于執(zhí)行故障容許系統(tǒng)的操作控制方法的程序,所述故障容許系統(tǒng)包括通過總線互連的第一和第二計算機系統(tǒng),以形成冗余配置,每一個系統(tǒng)具有CPU、存儲器、用于將IO設(shè)備與總線相連的IO橋以及仿真另一個系統(tǒng)中IO橋的偽IO總線橋,所述程序包括處理在單機配置期間,使偽IO總線橋保持另一個系統(tǒng)的IO橋的初始設(shè)置信息;形成冗余配置;以及在冗余配置期間,將偽IO總線橋從總線斷開,并將偽IO總線橋保持的初始設(shè)置信息復(fù)制到所述另一個系統(tǒng)的IO橋。
全文摘要
本發(fā)明提供了一種高可靠性容許計算機系統(tǒng),能夠構(gòu)造使用PnP軟件的冗余配置。在雙工系統(tǒng)中,將與虛擬總線相連并且彼此對應(yīng)的IO橋的實體(實際IO橋)集成到系統(tǒng)中,作為偽IO橋,因此,如果系統(tǒng)物理上彼此斷開,通過在另一個系統(tǒng)中仿真實際IO橋,偽IO橋能夠好像在IO橋自身中沒有發(fā)生所謂的PnP事件一樣進行操作。
文檔編號G06F11/16GK1790283SQ20051002285
公開日2006年6月21日 申請日期2005年12月12日 優(yōu)先權(quán)日2004年12月13日
發(fā)明者水谷文俊 申請人:日本電氣株式會社