基于次計算機中的存儲器錯誤移動主計算機中的對象的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明的實施例主要地涉及計算機系統(tǒng)而更具體地涉及使用鏡像的計算機系統(tǒng)。
【背景技術(shù)】
[0002]計算機系統(tǒng)通常地包括硬件(比如半導(dǎo)體、晶體管、芯片和電路板)和計算機程序的組合。隨著計算機和它們使用的數(shù)據(jù)已經(jīng)變得更重要,用戶已經(jīng)變得日益無法容忍對計算機的可用性的任何中斷。為了滿足用戶的高可用性要求,計算機可以提供冗余部件,從而在一個部件出故障或者變得不可用的情況下,計算機自動地切換成使用另一部件。
[0003]—種高可用性技術(shù)稱為鏡像或者檢查點設(shè)置,其中主計算機向次計算機周期地復(fù)制它的存儲器的內(nèi)容和處理器狀態(tài)。鏡像包括跟蹤對由分區(qū)訪問的存儲器的改變和對分區(qū)在主計算機在其上執(zhí)行的處理器的狀態(tài)的改變、周期地暫停分區(qū)在主計算機的執(zhí)行、通過網(wǎng)絡(luò)向次計算機發(fā)送跟蹤的改變、等待次計算機確認(rèn)接收跟蹤的改變以及恢復(fù)對暫停的分區(qū)的執(zhí)行。在主計算機的故障的情況下,次計算機開始以對在分區(qū)中執(zhí)行的應(yīng)用透明的方式使用跟蹤的改變和處理器狀態(tài)來執(zhí)行由主計算機執(zhí)行的分區(qū)。
【發(fā)明內(nèi)容】
[0004]提供一種方法、計算機可讀存儲介質(zhì)和計算機。在一個實施例中,在主服務(wù)器處執(zhí)行分區(qū),其中分區(qū)訪問在主服務(wù)器處的第一存儲器塊地址處的第一存儲器位置。如果在次服務(wù)器處的第一對應(yīng)存儲器位置具有錯誤,其中在次服務(wù)器處的第一對應(yīng)存儲器位置對應(yīng)于在主服務(wù)器處的第一存儲器位置,則從在主服務(wù)器處的第一存儲器位置向在主服務(wù)器處的第二存儲器位置移動對象。
【附圖說明】
[0005]圖1描繪用于實現(xiàn)本發(fā)明的一個實施例的例子系統(tǒng)的高級框圖。
[0006]圖2描繪根據(jù)本發(fā)明的一個實施例的經(jīng)由網(wǎng)絡(luò)和次存儲設(shè)備連接的例子服務(wù)器計算機的高級框圖。
[0007]圖3描繪根據(jù)本發(fā)明的一個實施例的用于存儲器表的例子數(shù)據(jù)結(jié)構(gòu)的框圖。
[0008]圖4描繪根據(jù)本發(fā)明的一個實施例的用于檢查點的例子處理的流程圖。
[0009]圖5描繪根據(jù)本發(fā)明的一個實施例的用于處置存儲器錯誤的例子處理的流程圖。
[0010]圖6描繪根據(jù)本發(fā)明的一個實施例的用于處置主服務(wù)器的故障的例子處理的流程圖。
[0011]圖7描繪根據(jù)本發(fā)明的一個實施例的用于處置次服務(wù)器的故障的例子處理的流程圖。
[0012]然而將注意所附附圖僅圖示本發(fā)明的例子實施例、因此未視為限制本發(fā)明的其它實施例的范圍。
【具體實施方式】
[0013]參照附圖,其中相似標(biāo)號表示貫穿若干視圖的相似部分,圖1描繪根據(jù)本發(fā)明的一個實施例的連接到網(wǎng)絡(luò)130的服務(wù)器計算機系統(tǒng)100的高級框圖表示。本發(fā)明的實施例的機制和裝置同樣地適用于任何適當(dāng)計算系統(tǒng)。服務(wù)器計算機系統(tǒng)100的主要部件包括一個或者多個處理器101、存儲器102、終端接口單元111、存儲接口單元112、1/0(輸入/輸出)設(shè)備接口單元113和網(wǎng)絡(luò)接口單元114,所有這些部件被直接地或者間接地通信地耦合用于經(jīng)由存儲器總線103、I/O總線104和I/O總線接口單元105的部件間通信。
[0014]服務(wù)器計算機系統(tǒng)100包含這里通稱為處理器101的一個或者多個通用可編程中央處理單元(CPU)101A、101B、101C和101D。在一個實施例中,服務(wù)器計算機系統(tǒng)100包含通常為相對大的系統(tǒng)的多個處理器;然而,在另一實施例中,計算系統(tǒng)100可以備選地是單個CPU系統(tǒng)。每個處理器101執(zhí)行存儲器102中存儲的指令并且可以包括一級或者多級板上高速緩存。
[0015]在一個實施例中,存儲器102可以包括用于存儲或者編碼數(shù)據(jù)和程序的隨機存取半導(dǎo)體存儲器、存儲設(shè)備或者存儲介質(zhì)(易失性或者非易失性)。在另一實施例中,存儲器102代表服務(wù)器計算機系統(tǒng)100的整個虛擬存儲器并且也可以包括耦合到服務(wù)器計算機系統(tǒng)100的或者經(jīng)由網(wǎng)絡(luò)130連接的其它計算機系統(tǒng)的虛擬存儲器。存儲器102在概念上是單個單片實體,但是在其它實施例中,存儲器102是更復(fù)雜的布置、比如高速緩存和其它存儲器設(shè)備的分級。例如存儲器可以存在于多級高速緩存中,并且這些高速緩存可以按功能來進(jìn)一步劃分,從而一個高速緩存保持指令而另一高速緩存保持由一個或者多個處理器使用的非指令數(shù)據(jù)。如在各種所謂非統(tǒng)一存儲器存取(NUMA)計算機架構(gòu)中的任何NUMA計算機架構(gòu)中已知的那樣,存儲器可以被進(jìn)一步分布并且與不同CPU或者CPU集合關(guān)聯(lián)。
[0016]圖示存儲器102為包括多個分區(qū)134、管理程序136和存儲器表140。雖然圖示分區(qū)134、管理程序136和存儲器表140為存儲于計算機系統(tǒng)100中的存儲器102中,但是在其它實施例中,它們中的一些或者全部可以在不同計算系統(tǒng)上并且可以例如經(jīng)由網(wǎng)絡(luò)130來遠(yuǎn)程地訪問。另外,服務(wù)器計算機系統(tǒng)100可以使用虛擬尋址機制,這些虛擬尋址機制允許服務(wù)器計算機系統(tǒng)100的程序表現(xiàn)如同它們僅具有對大的單個存儲實體的訪問而不是對多個更小存儲實體的訪問。因此,盡管圖示分區(qū)134、管理程序136和存儲器表140為駐留在存儲器102中,但是這些單元未必都被同時完全地包含在相同存儲設(shè)備中。
[0017]分區(qū)134中的每個分區(qū)包括應(yīng)用(app) 144、操作系統(tǒng)(0S) 146和分區(qū)數(shù)據(jù)148??梢灾С秩魏螖?shù)目的分區(qū)134,并且在任何時間在計算機100中駐留的分區(qū)134的數(shù)目可以隨著向計算機100添加或者從計算機100去除分區(qū)134而動態(tài)地改變。分區(qū)134中的每個分區(qū)包括在分離或者獨立存儲器空間中在處理器101上執(zhí)行的指令。在各種實施例中,實現(xiàn)應(yīng)用144為用戶應(yīng)用、第三方應(yīng)用或者其任何部分、多個或者組合。應(yīng)用144和操作系統(tǒng)146包括在處理器101上執(zhí)行的指令或者由在處理器101上執(zhí)行的指令解釋的語句。應(yīng)用144中的每個應(yīng)用可以相互相同或者互不相同,操作系統(tǒng)146中的每個操作系統(tǒng)可以相互相同或者互不相同,而數(shù)據(jù)148中的每個數(shù)據(jù)可以相互相同或者互不相同。
[0018]雖然圖示管理程序136為存儲于存儲器102內(nèi),但是在其它實施例中,可以在固件或者硬件中實現(xiàn)管理程序136的全部或者部分。管理程序136可以執(zhí)行低級管理功能、比如頁面表管理并且也可以執(zhí)行更高級管理功能、比如創(chuàng)建和刪除分區(qū)134、并行I/O維護(hù)和向/從各種分區(qū)134分配/取消分配處理器,存儲器和其它硬件或者程序資源。管理程序136控制向分區(qū)134分配、鎖定和解鎖共享的資源以及分區(qū)134對共享資源的訪問從而保證這些分區(qū)134在服務(wù)器計算機系統(tǒng)100內(nèi)的安全和隔離。管理程序開始、停止和中止分區(qū)134在處理器101上的執(zhí)行。
[0019]管理程序136靜態(tài)地和/或動態(tài)地向每個分區(qū)134分配計算機100中的可用資源的部分。例如可以向每個分區(qū)134分配處理器101中的一個或者多個處理器和/或在其上執(zhí)行的一個或者多個硬件線程以及待訪問的可用存儲器空間的部分。分區(qū)134可以共享具體程序和/或硬件資源、比如處理器101,從而給定的資源可以由多于一個分區(qū)134利用。備選地,可以一次向僅一個分區(qū)134分配程序和硬件資源。通常地向分區(qū)134中的一個或者多個分區(qū)分配附加資源、例如海量存儲裝置、備用存儲裝置、用戶輸入、網(wǎng)絡(luò)連接和/或其I/O適配器??梢杂枚喾N方式分配資源、例如在逐個總線基礎(chǔ)上或者在逐個資源基礎(chǔ)上而多個分區(qū)134在相同總線上共享資源??梢砸淮蜗蚨鄠€分區(qū)134分配一些資源。這里標(biāo)識的資源僅為例子,并且可以使用能夠分配的任何適當(dāng)資源。
[0020]在一個實施例中,如以下參照圖2、3、4、5、6和7進(jìn)一步描述的那樣,分區(qū)134和/或管理程序136包括在處理器101上執(zhí)行的指令或者由在處理器101上執(zhí)行的指令解釋的語句以執(zhí)行功能。在另一實施例中,可以在微代碼或者固件中實現(xiàn)分區(qū)134和/或管理程序136。在另一實施例中,可以經(jīng)由邏輯門、半導(dǎo)體器件、芯片、電路、電路卡和/或其它物理硬件器件在硬件中實現(xiàn)管理程序136。
[0021]存儲器總線103提供用于在處理器101、存儲器102和I/O總線接口單元105之中傳送數(shù)據(jù)的數(shù)據(jù)通信路徑或者通信結(jié)構(gòu)。I/o總線接口單元105進(jìn)一步耦合到I/O總線104用于向和從各種I/O單元傳送數(shù)據(jù)。I/O總線接口單元105通過