本發(fā)明涉及計算機(jī)領(lǐng)域,并且更具體地,涉及故障恢復(fù)的方法和裝置。
背景技術(shù):
隨著計算機(jī)技術(shù)的飛速發(fā)展,越來越多的行業(yè)利用計算機(jī)技術(shù)提高本行業(yè)的工作效率。
在計算機(jī)系統(tǒng)中,計算機(jī)主要依靠執(zhí)行進(jìn)程來實現(xiàn)其功能,當(dāng)進(jìn)程出現(xiàn)故障甚至失效時,可能影響程序乃至整個計算機(jī)系統(tǒng)的正常運(yùn)行,因此,如何實現(xiàn)進(jìn)程的故障恢復(fù),成為急需解決的問題。
目前,已知一種故障恢復(fù)的方法,通過周期性備份記錄有進(jìn)程正常時的計算狀態(tài)的恢復(fù)文件,在運(yùn)行有該進(jìn)程的節(jié)點(diǎn)出現(xiàn)故障而導(dǎo)致該進(jìn)程出現(xiàn)故障時,在與該節(jié)點(diǎn)相對應(yīng)的恢復(fù)節(jié)點(diǎn),基于所保存的恢復(fù)文件對該進(jìn)程進(jìn)行恢復(fù)處理。
但是,當(dāng)該節(jié)點(diǎn)所對應(yīng)的恢復(fù)節(jié)點(diǎn)也出現(xiàn)故障時,將無法實現(xiàn)該進(jìn)程的恢復(fù),嚴(yán)重影響了故障恢復(fù)的可靠性。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例提供一種故障恢復(fù)的方法和裝置,能夠提高故障恢復(fù)的可靠性。
第一方面,提供了一種故障恢復(fù)的方法,該方法包括:確定N個失效進(jìn)程中每個失效進(jìn)程所對應(yīng)的恢復(fù)文件的大小,并確定M個恢復(fù)節(jié)點(diǎn)中每個恢復(fù)節(jié)點(diǎn)的運(yùn)行狀態(tài),其中,N≥1,M≥2;根據(jù)每個失效進(jìn)程所對應(yīng)的恢復(fù)文件的大小以及每個恢復(fù)節(jié)點(diǎn)的運(yùn)行狀態(tài)確定每個失效進(jìn)程所對應(yīng)的恢復(fù)節(jié)點(diǎn),其中,該運(yùn)行狀態(tài)包括資源使用狀態(tài);對每個失效進(jìn)程所對應(yīng)的恢復(fù)節(jié)點(diǎn)進(jìn)行控制,以在每個失效進(jìn)程所對應(yīng)的恢復(fù)節(jié)點(diǎn),對每個失效進(jìn)程進(jìn)行故障恢復(fù)。
結(jié)合第一方面,在第一方面的第一種實現(xiàn)方式中,該N個失效進(jìn)程中的 第一失效進(jìn)程所對應(yīng)的恢復(fù)文件存儲在至少兩個存儲節(jié)點(diǎn)中。
結(jié)合第一方面及其上述實現(xiàn)方式,在第一方面的第二種實現(xiàn)方式中,在各該存儲節(jié)點(diǎn)中存儲的該第一失效進(jìn)程所對應(yīng)的恢復(fù)文件相同。
結(jié)合第一方面及其上述實現(xiàn)方式,在第一方面的第三種實現(xiàn)方式中,該第一失效進(jìn)程所對應(yīng)的恢復(fù)文件包括至少兩個子恢復(fù)文件,在各該存儲節(jié)點(diǎn)中存儲的子恢復(fù)文件不同。
結(jié)合第一方面及其上述實現(xiàn)方式,在第一方面的第四種實現(xiàn)方式中,當(dāng)N≥2時,該根據(jù)每個失效進(jìn)程所對應(yīng)的恢復(fù)文件的大小以及每個恢復(fù)節(jié)點(diǎn)的運(yùn)行狀態(tài)確定每個失效進(jìn)程所對應(yīng)的恢復(fù)節(jié)點(diǎn),包括:根據(jù)每個恢復(fù)節(jié)點(diǎn)的運(yùn)行狀態(tài),基于每個失效進(jìn)程所對應(yīng)的恢復(fù)文件的大小,按照從大到小的順序,依次確定每個失效進(jìn)程所對應(yīng)的恢復(fù)節(jié)點(diǎn)。
結(jié)合第一方面及其上述實現(xiàn)方式,在第一方面的第五種實現(xiàn)方式中,一個失效進(jìn)程所對應(yīng)的恢復(fù)節(jié)點(diǎn)與同一失效進(jìn)程所對應(yīng)的存儲節(jié)點(diǎn)不同。
結(jié)合第一方面及其上述實現(xiàn)方式,在第一方面的第六種實現(xiàn)方式中,該根據(jù)每個失效進(jìn)程所對應(yīng)的恢復(fù)節(jié)點(diǎn)進(jìn)行控制,包括:根據(jù)每個失效進(jìn)程所對應(yīng)的恢復(fù)節(jié)點(diǎn)的運(yùn)行狀態(tài)和每個失效進(jìn)程所對應(yīng)的恢復(fù)文件的大小,估計每個失效進(jìn)程的恢復(fù)時間;根據(jù)每個失效進(jìn)程的恢復(fù)時間,進(jìn)行控制。
第二方面,提供了一種故障恢復(fù)的裝置,該裝置包括:確定單元,用于確定N個失效進(jìn)程中每個失效進(jìn)程所對應(yīng)的恢復(fù)文件的大小,及M個恢復(fù)節(jié)點(diǎn)中每個恢復(fù)節(jié)點(diǎn)的運(yùn)行狀態(tài),并根據(jù)每個失效進(jìn)程所對應(yīng)的恢復(fù)文件的大小和M個恢復(fù)節(jié)點(diǎn)的運(yùn)行狀態(tài),確定每個失效進(jìn)程所對應(yīng)的恢復(fù)節(jié)點(diǎn),其中,該運(yùn)行狀態(tài)包括資源使用狀態(tài),N≥1,M≥2;處理單元,用于對每個失效進(jìn)程所對應(yīng)的恢復(fù)節(jié)點(diǎn)進(jìn)行控制,以在每個失效進(jìn)程所對應(yīng)的恢復(fù)節(jié)點(diǎn),對每個失效進(jìn)程進(jìn)行故障恢復(fù)。
結(jié)合第二方面,在第二方面的第一種實現(xiàn)方式中,該N個失效進(jìn)程中的第一失效進(jìn)程所對應(yīng)的恢復(fù)文件存儲在至少兩個存儲節(jié)點(diǎn)中。
結(jié)合第二方面及其上述實現(xiàn)方式,在第二方面的第二種實現(xiàn)方式中,在各該存儲節(jié)點(diǎn)中存儲的該第一失效進(jìn)程所對應(yīng)的恢復(fù)文件相同。
結(jié)合第二方面及其上述實現(xiàn)方式,在第二方面的第三種實現(xiàn)方式中,該第一失效進(jìn)程所對應(yīng)的恢復(fù)文件包括至少兩個子恢復(fù)文件,在各該存儲節(jié)點(diǎn)中存儲的子恢復(fù)文件不同。
結(jié)合第二方面及其上述實現(xiàn)方式,在第二方面的第四種實現(xiàn)方式中,當(dāng)N≥2時,該確定單元具體用于根據(jù)每個恢復(fù)節(jié)點(diǎn)的運(yùn)行狀態(tài),基于每個失效進(jìn)程所對應(yīng)的恢復(fù)文件的大小,按照從大到小的順序,依次確定每個失效進(jìn)程所對應(yīng)的恢復(fù)節(jié)點(diǎn)。
結(jié)合第二方面及其上述實現(xiàn)方式,在第二方面的第五種實現(xiàn)方式中,一個失效進(jìn)程所對應(yīng)的恢復(fù)節(jié)點(diǎn)與同一失效進(jìn)程所對應(yīng)的存儲節(jié)點(diǎn)不同。
結(jié)合第二方面及其上述實現(xiàn)方式,在第二方面的第六種實現(xiàn)方式中,該處理單元具體用于根據(jù)每個失效進(jìn)程所對應(yīng)的恢復(fù)節(jié)點(diǎn)的運(yùn)行狀態(tài)和每個失效進(jìn)程所對應(yīng)的恢復(fù)文件的大小,估計每個失效進(jìn)程的恢復(fù)時間,并根據(jù)每個失效進(jìn)程的恢復(fù)時間,進(jìn)行控制。
可見,根據(jù)本發(fā)明實施例的故障恢復(fù)的方法,根據(jù)失效進(jìn)程所對應(yīng)的恢復(fù)文件的大小和至少兩個恢復(fù)節(jié)點(diǎn)的運(yùn)行狀態(tài),從至少兩個恢復(fù)節(jié)點(diǎn)中確定對該失效進(jìn)程進(jìn)行故障恢復(fù)的恢復(fù)節(jié)點(diǎn),相比只有一個恢復(fù)節(jié)點(diǎn)可靠性更高,同時能夠一定程度上確保所確定的恢復(fù)節(jié)點(diǎn)能夠?qū)崿F(xiàn)對失效進(jìn)程的故障恢復(fù),從而進(jìn)一步提高故障恢復(fù)的可靠性。
附圖說明
為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對本發(fā)明實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面所描述的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是根據(jù)本發(fā)明實施例的故障恢復(fù)的方法的示意性流程圖。
圖2是適用本發(fā)明實施例的故障恢復(fù)的方法的系統(tǒng)示意性架構(gòu)圖。
圖3是根據(jù)本發(fā)明實施例的故障恢復(fù)的裝置的示意性框圖。
圖4是根據(jù)本發(fā)明實施例的故障恢復(fù)的設(shè)備的示意性結(jié)構(gòu)圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
本發(fā)明實施例提供的故障恢復(fù)的方法和裝置,可以應(yīng)用于計算機(jī)上,該計算機(jī)包括硬件層、運(yùn)行在硬件層之上的操作系統(tǒng)層,以及運(yùn)行在操作系統(tǒng)層上的應(yīng)用層。該硬件層包括CPU、存儲器管理單元(MMU,Memory Management Unit)和內(nèi)存(也稱為存儲器)等硬件。該操作系統(tǒng)可以是任意一種或多種通過進(jìn)程實現(xiàn)業(yè)務(wù)處理的計算機(jī)操作系統(tǒng),例如,Linux系統(tǒng)、Unix系統(tǒng)、Android系統(tǒng)、iOS系統(tǒng)或windows系統(tǒng)等。該應(yīng)用層包含瀏覽器、通訊錄、文字處理軟件、即時通信軟件等應(yīng)用。應(yīng)理解,以上列舉的計算機(jī)設(shè)備僅為示例性說明,本發(fā)明并未特別限定。
圖1是根據(jù)本發(fā)明實施例提供的故障恢復(fù)的方法100的示意性流程圖,如圖1所示,該方法100包括:
S110,確定N個失效進(jìn)程中每個失效進(jìn)程所對應(yīng)的恢復(fù)文件的大小,并確定M個恢復(fù)節(jié)點(diǎn)中每個恢復(fù)節(jié)點(diǎn)的運(yùn)行狀態(tài),其中,N≥1,M≥2;
需要說明的是,作為實例而非限定,在本發(fā)明實施例中,該失效進(jìn)程指的是運(yùn)行(或處理)的結(jié)果未能達(dá)到期望的進(jìn)程,例如在運(yùn)行的過程中就因故障被中止的進(jìn)程,即該進(jìn)程沒有運(yùn)行結(jié)果(也可以看做該進(jìn)程的運(yùn)行結(jié)果不符合預(yù)期),又例如看似運(yùn)行成功結(jié)束但運(yùn)行結(jié)果卻不符合期望的進(jìn)程。
S120,根據(jù)每個失效進(jìn)程所對應(yīng)的恢復(fù)文件的大小以及每個恢復(fù)節(jié)點(diǎn)的運(yùn)行狀態(tài)確定每個失效進(jìn)程所對應(yīng)的恢復(fù)節(jié)點(diǎn),其中,該運(yùn)行狀態(tài)包括資源使用狀態(tài);
需要說明的是,作為實例而非限定,該資源使用狀態(tài)包括該恢復(fù)節(jié)點(diǎn)上的硬件利用率,例如CPU利用率和/或內(nèi)存利用率。舉例說明,若某一恢復(fù)節(jié)點(diǎn)的CPU利用率已經(jīng)很高,即該恢復(fù)節(jié)點(diǎn)已經(jīng)很繁忙,同時該失效進(jìn)程對應(yīng)的恢復(fù)文件又較大,即恢復(fù)該失效進(jìn)程需要消耗較多資源,那么該恢復(fù)節(jié)點(diǎn)就不適合作為該失效進(jìn)程的恢復(fù)節(jié)點(diǎn)。
可選的,在其他的實施例中,該運(yùn)行狀態(tài)還可以包括該恢復(fù)節(jié)點(diǎn)的通信狀態(tài),具體的,該通信狀態(tài)指的是該恢復(fù)節(jié)點(diǎn)與其他節(jié)點(diǎn)的通信狀態(tài)是可以通信還是不可以通信。舉例說明,若某一恢復(fù)節(jié)點(diǎn)與存儲失效進(jìn)程A對應(yīng)的恢復(fù)文件的存儲節(jié)點(diǎn)不能通信,那么該恢復(fù)節(jié)點(diǎn)就不能作為該失效進(jìn)程A的恢復(fù)節(jié)點(diǎn)。
S130,對每個失效進(jìn)程所對應(yīng)的恢復(fù)節(jié)點(diǎn)進(jìn)行控制,以在每個失效進(jìn)程所對應(yīng)的恢復(fù)節(jié)點(diǎn),對每個失效進(jìn)程進(jìn)行故障恢復(fù)。
圖2示出了適用該方法100的計算機(jī)系統(tǒng)200的示意性架構(gòu)圖,如圖2所示,計算機(jī)系統(tǒng)200包括管理節(jié)點(diǎn)210、多個存儲節(jié)點(diǎn)220和多個恢復(fù)節(jié)點(diǎn)230和多個計算節(jié)點(diǎn)240,為了便于理解和說明,圖2中僅示出一個計算節(jié)點(diǎn)240。
其中,各計算節(jié)點(diǎn)240運(yùn)行有一個或多個進(jìn)程。
并且,各計算節(jié)點(diǎn)240與一個或多個存儲節(jié)點(diǎn)220通信連接,從而計算節(jié)點(diǎn)240能夠?qū)⑺\(yùn)行的各進(jìn)程的恢復(fù)文件傳輸至所連接的存儲節(jié)點(diǎn)220進(jìn)行備份。作為實例而非限定,在本發(fā)明實施例中,恢復(fù)文件可以是其進(jìn)程在正常狀態(tài)下運(yùn)行時的數(shù)據(jù)。
另外,管理節(jié)點(diǎn)210與各計算節(jié)點(diǎn)240通信連接,從而管理節(jié)點(diǎn)210能夠監(jiān)控各計算節(jié)點(diǎn)240中所運(yùn)行的各進(jìn)程的運(yùn)行狀態(tài)。
此外,管理節(jié)點(diǎn)210與各恢復(fù)節(jié)點(diǎn)230通信連接,從而管理節(jié)點(diǎn)210能夠監(jiān)控各恢復(fù)節(jié)點(diǎn)230的運(yùn)行狀態(tài),并向恢復(fù)節(jié)點(diǎn)230發(fā)送控制指令。
可選地,在本發(fā)明實施例中,各恢復(fù)節(jié)點(diǎn)230與各存儲節(jié)點(diǎn)220可以通信連接,從而,恢復(fù)節(jié)點(diǎn)230在對進(jìn)程進(jìn)行恢復(fù)時,能夠從存儲節(jié)點(diǎn)220中獲取恢復(fù)文件。
應(yīng)理解,以上列舉的各恢復(fù)節(jié)點(diǎn)230與各存儲節(jié)點(diǎn)220的連接關(guān)系僅為實例性說明,例如,也可以使管理節(jié)點(diǎn)210與各存儲節(jié)點(diǎn)220通信連接,并使恢復(fù)節(jié)點(diǎn)230通過管理節(jié)點(diǎn)210從存儲節(jié)點(diǎn)220中獲取恢復(fù)文件。
另外,在計算機(jī)系統(tǒng)200中,可以設(shè)置有與個節(jié)點(diǎn)通信連接的總線系統(tǒng)250,從而,能夠通過總線系統(tǒng)250實現(xiàn)上述各節(jié)點(diǎn)之間的通信連接。
在本發(fā)明實施例中,一個節(jié)點(diǎn)可以是一臺獨(dú)立配置的計算機(jī)實體,或者,也可以多個節(jié)點(diǎn)配置在同一計算機(jī)實體,或者,也可以由多個計算機(jī)實體構(gòu)成一個節(jié)點(diǎn),本發(fā)明并未特別限定。
在本發(fā)明實施例中,該方法100可以由管理節(jié)點(diǎn)210執(zhí)行,該管理節(jié)點(diǎn)210可以獨(dú)立于計算機(jī)系統(tǒng)中的各節(jié)點(diǎn)(包括發(fā)生故障的計算節(jié)點(diǎn)240、用于存儲失效進(jìn)程的恢復(fù)文件的存儲節(jié)點(diǎn)220和用于對失效進(jìn)行故障恢復(fù)的恢復(fù)節(jié)點(diǎn)230)。并且,該管理節(jié)點(diǎn)與各節(jié)點(diǎn)通信連接,以傳輸控制指令或數(shù)據(jù)等信息;或者,該方法100也可以由該計算機(jī)系統(tǒng)200中集成有該管理節(jié)點(diǎn)的功能的一個或多個其他節(jié)點(diǎn)執(zhí)行。
并且,本發(fā)明實施了的方法100應(yīng)用于包括至少兩個恢復(fù)節(jié)點(diǎn)的計算機(jī) 系統(tǒng)中,各恢復(fù)節(jié)點(diǎn)能夠提供計算資源(例如,中央處理器和存儲器等),從而能夠?qū)κнM(jìn)程進(jìn)行恢復(fù)。
此外,管理節(jié)點(diǎn)可以指示恢復(fù)節(jié)點(diǎn)進(jìn)行針對失效進(jìn)程的恢復(fù)。
以下,為了便于理解和說明,以管理節(jié)點(diǎn)作為該方法100的執(zhí)行主體,對該方法100的處理過程進(jìn)行詳細(xì)說明。
具體地說,在本發(fā)明實施了中,為了防止進(jìn)程失效而影響業(yè)務(wù)服務(wù),可以周期性的存儲進(jìn)程的恢復(fù)文件,例如,執(zhí)行狀態(tài)或計算狀態(tài),進(jìn)程失效時,回滾到之前保存的某個狀態(tài)處重新開始執(zhí)行。
本發(fā)明實施例中的恢復(fù)文件用來記錄進(jìn)程在正常狀態(tài)下運(yùn)行時的數(shù)據(jù),以便于根據(jù)該恢復(fù)文件記錄的內(nèi)容對每個失效進(jìn)程進(jìn)行故障恢復(fù)。在一些實施例中,該恢復(fù)文件可以是檢查點(diǎn)文件,該檢查點(diǎn)文件是基于檢查點(diǎn)技術(shù)生成的;在另一些實施例中,該恢復(fù)文件可以是日志文件,該日志文件是基于日志技術(shù)生成的。需要說明的是,檢查點(diǎn)文件或日志文件的生成可以由現(xiàn)有技術(shù)實現(xiàn),不屬于本發(fā)明涵蓋的內(nèi)容,因此在此不做詳述。
應(yīng)理解,以上列舉的恢復(fù)文件的形式和所記錄的內(nèi)容僅為示例性說明,本發(fā)明并不限定于此,其他能夠?qū)崿F(xiàn)本發(fā)明實施例的恢復(fù)文件的功能的具體實施例均落入本發(fā)明的保護(hù)范圍內(nèi)。
在本發(fā)明實施了中,失效進(jìn)程的數(shù)量可以為一個,也可以為多個,本發(fā)明并未特別限定,并且,當(dāng)失效進(jìn)程的數(shù)量為多個時,針對各失效進(jìn)程的處理類似,以下為了便于理解和說明,以針對失效進(jìn)程#A的處理為例,對本發(fā)明實施了的方法100的處理過程進(jìn)行詳細(xì)說明。
可選地,該N個失效進(jìn)程中的第一失效進(jìn)程所對應(yīng)的恢復(fù)文件存儲在至少兩個存儲節(jié)點(diǎn)中。
具體地說,在本發(fā)明實施了中,針對失效進(jìn)程#A(即,第一失效進(jìn)程的一例),其所對應(yīng)的恢復(fù)文件可以存儲在該失效進(jìn)程#A所對應(yīng)的兩個或兩個以上的存儲節(jié)點(diǎn)中。
這里,當(dāng)存在多個失效進(jìn)程時,任意兩個失效進(jìn)程的恢復(fù)文件所存儲于的存儲節(jié)點(diǎn)可以相同,也可以不同,本發(fā)明并未特別限定。
另外,上述“相同”可以包括:完全相同,例如,失效進(jìn)程#A的恢復(fù)文件可以存儲于存儲節(jié)點(diǎn)#α和存儲節(jié)點(diǎn)#β,失效進(jìn)程#B的恢復(fù)文件可以存儲于存儲節(jié)點(diǎn)#α和存儲節(jié)點(diǎn)#β;或者,部分相同,例如,失效進(jìn)程#C的恢復(fù) 文件可以存儲于存儲節(jié)點(diǎn)#η和存儲節(jié)點(diǎn)#θ,失效進(jìn)程#D的恢復(fù)文件可以存儲于存儲節(jié)點(diǎn)#θ和存儲節(jié)點(diǎn)#λ)。
類似地,上述“不同”可以包括:完全不同,例如,失效進(jìn)程#A的恢復(fù)文件可以存儲于存儲節(jié)點(diǎn)#α和存儲節(jié)點(diǎn)#β,失效進(jìn)程#B的恢復(fù)文件可以存儲于存儲節(jié)點(diǎn)#γ和存儲節(jié)點(diǎn)#δ;或者,部分不同,例如,失效進(jìn)程#C的恢復(fù)文件可以存儲于存儲節(jié)點(diǎn)#η和存儲節(jié)點(diǎn)#θ,失效進(jìn)程#D的恢復(fù)文件可以存儲于存儲節(jié)點(diǎn)#θ和存儲節(jié)點(diǎn)#λ)。
并且,以上列舉的一個失效進(jìn)程的恢復(fù)文件所存儲于的存儲節(jié)點(diǎn)的數(shù)量僅為示例性說明,本發(fā)明并未限定于此,例如,一個失效進(jìn)程的恢復(fù)文件也可以只存儲在一個存儲節(jié)點(diǎn)。并且,當(dāng)存在多個失效進(jìn)程時,各失效進(jìn)程的恢復(fù)文件所存儲于的存儲節(jié)點(diǎn)的數(shù)量可以相同,也可以不同,本發(fā)明并未特別限定。
在本發(fā)明實施了中,該失效進(jìn)程#A所對應(yīng)的恢復(fù)文件可以按以下方式存儲在多個(至少兩個)存儲節(jié)點(diǎn)中。
方式1
可選地,在各該存儲節(jié)點(diǎn)中存儲的該第一失效進(jìn)程所對應(yīng)的恢復(fù)文件相同。
具體地說,在本發(fā)明實施了中,多個存儲節(jié)點(diǎn)中可以存儲有失效進(jìn)程#A所對應(yīng)的完整的恢復(fù)文件(以下,為了便于理解和區(qū)分,記做:恢復(fù)文件#A)。另外,“完整的恢復(fù)文件”是指,通過存儲在一個存儲節(jié)點(diǎn)中的恢復(fù)文件#A便能夠?qū)κнM(jìn)程#A的故障處理。
根據(jù)本發(fā)明實施了的故障處理的方法,通過使在各該存儲節(jié)點(diǎn)中存儲的該第一失效進(jìn)程所對應(yīng)的恢復(fù)文件相同(即,各存儲節(jié)點(diǎn)存儲有一致的、完整的恢復(fù)文件),在一個或多個存儲節(jié)點(diǎn)發(fā)生故障時仍能夠從其他的未發(fā)生故障的存儲節(jié)點(diǎn)獲取恢復(fù)文件,從而進(jìn)一步提高故障處理的可靠性。
方式2
可選地,該第一失效進(jìn)程所對應(yīng)的恢復(fù)文件包括至少兩個子恢復(fù)文件,在各該存儲節(jié)點(diǎn)中存儲的子恢復(fù)文件不同。。
具體地說,在本發(fā)明實施了中,可以將在恢復(fù)文件#A分割為多個子恢復(fù)文件(為了便于理解和區(qū)分,記做:子恢復(fù)文件#A1~子恢復(fù)文件#AX)。并將該子恢復(fù)文件#A1~子恢復(fù)文件#AX分別存儲在多個存儲節(jié)點(diǎn)中,其中,一 個子恢復(fù)文件可以存儲在一個存儲節(jié)點(diǎn)中,也可以(重復(fù)或分割地)存儲在多個存儲節(jié)點(diǎn)中,本發(fā)明并未特別限定,并且,任意兩個子恢復(fù)文件所存儲于的存儲節(jié)點(diǎn)不同,或者說,各存儲節(jié)點(diǎn)所存儲的子恢復(fù)文件不同,這里,“不同”可以是完全不同,例如,對于子恢復(fù)文件#A1和子恢復(fù)文件#A2,子恢復(fù)文件#A1可以存儲于存儲節(jié)點(diǎn)#1和存儲節(jié)點(diǎn)#2,子恢復(fù)文件#A2可以存儲于存儲節(jié)點(diǎn)#3和存儲節(jié)點(diǎn)#4;或者,“不同”也可以部分不同,例如,對于子恢復(fù)文件#A3和子恢復(fù)文件#A4,子恢復(fù)文件#A3可以存儲于存儲節(jié)點(diǎn)#5和存儲節(jié)點(diǎn)#6,子恢復(fù)文件#A4可以存儲于存儲節(jié)點(diǎn)#6和存儲節(jié)點(diǎn)#7。
根據(jù)本發(fā)明實施例提供的故障處理的方法,通過將失效進(jìn)程所對應(yīng)的恢復(fù)文件分割為多個子恢復(fù)文件,并將各子恢復(fù)文件存儲于相異的存儲節(jié)點(diǎn),能夠在進(jìn)行故障處理時同時從多個存儲節(jié)點(diǎn)獲取子恢復(fù)文件,從而能夠減小傳輸恢復(fù)文件所需要的時間,提高故障處理的效率。
可選的,在一些實施例中,該“失效進(jìn)程”的恢復(fù)文件的存儲是在該進(jìn)程有效(或者說,正常運(yùn)行時)時周期性地進(jìn)行的,即,在本發(fā)明實施了中,在計算機(jī)系統(tǒng)中運(yùn)行的各進(jìn)程,在該進(jìn)程有效(或者說,正常運(yùn)行)時,均周期性的存儲其恢復(fù)文件。
在另一些實施例中,恢復(fù)文件也可以是在失效進(jìn)程失效前存儲在失效進(jìn)行所運(yùn)行的計算節(jié)點(diǎn)中,并在失效前上傳至存儲節(jié)點(diǎn),即,恢復(fù)文件的備份也可以是周期性地進(jìn)行的。
以上列舉的恢復(fù)文件的存儲方式僅為示例性說明,本發(fā)明并未限定于此,例如,各進(jìn)程的恢復(fù)文件還可以統(tǒng)一的存儲于一個存儲節(jié)點(diǎn)。
本發(fā)明實施了的故障處理的方法可以在管理節(jié)點(diǎn)確定進(jìn)程失效時執(zhí)行,作為確定進(jìn)程失效的方法,例如,在計算機(jī)系統(tǒng)中的各節(jié)點(diǎn)運(yùn)行的進(jìn)程可以周期性向管理節(jié)點(diǎn)發(fā)送心跳消息,如果管理節(jié)點(diǎn)在規(guī)定時間內(nèi)未接收到某個進(jìn)程的心跳消息,則可以認(rèn)為該進(jìn)程失效。應(yīng)理解,以上列舉的確定進(jìn)程失效的方法僅為示例性說明,本發(fā)明并不限定于此,現(xiàn)有技術(shù)中能夠確定進(jìn)程失效的方法均落入本發(fā)明的保護(hù)范圍內(nèi)。
從而,在如上所述確定進(jìn)程失效后,在S110,管理節(jié)點(diǎn)可以確定各失效節(jié)點(diǎn)所對應(yīng)的恢復(fù)文件的大小,例如,針對失效進(jìn)程#A(即,失效進(jìn)程的一例),管理節(jié)點(diǎn)可以從失效進(jìn)程#A所對應(yīng)的(一個或多個)存儲設(shè)備獲取用于指示恢復(fù)文件#A(或者,子恢復(fù)文件#A1~子恢復(fù)文件#AX)的大小的信息, 并根據(jù)該信息,確定失效進(jìn)程#A所對應(yīng)的恢復(fù)文件的大小。
再例如,各進(jìn)程在生成恢復(fù)文件時可以確定該恢復(fù)文件的大小,并將用于指示恢復(fù)文件大小的信息發(fā)送給管理節(jié)點(diǎn),管理節(jié)點(diǎn)可以根據(jù)進(jìn)程的標(biāo)識存儲該信息,即,可以基于進(jìn)程的標(biāo)識與指示來自該進(jìn)程的恢復(fù)文件的大小的信息之間的映射關(guān)系,對所獲得的指示各恢復(fù)文件的大小的信息進(jìn)行存儲和索引,從而,當(dāng)管理節(jié)點(diǎn)發(fā)現(xiàn)該進(jìn)程失效時,可以基于該進(jìn)程的標(biāo)識查找到指示該進(jìn)程所對應(yīng)的恢復(fù)文件的大小的信息。
并且,在S110,管理節(jié)點(diǎn)可以確定各恢復(fù)節(jié)點(diǎn)的運(yùn)行狀態(tài)。
在一些實施例中,該運(yùn)行狀態(tài)可以包括恢復(fù)節(jié)點(diǎn)的資源使用狀態(tài),具體地說,恢復(fù)節(jié)點(diǎn)可以根據(jù)管理節(jié)點(diǎn)的指示或周期性的向管理節(jié)點(diǎn)上報該恢復(fù)節(jié)點(diǎn)的中央處理器(CPU,Central Processing Unit)使用率或內(nèi)存使用率等負(fù)載信息,從而,管理節(jié)點(diǎn)可以根據(jù)來自恢復(fù)節(jié)點(diǎn)的負(fù)載信息,確定其資源使用狀態(tài)。
在另一些實施例中,該運(yùn)行狀態(tài)可以包括恢復(fù)節(jié)點(diǎn)的通信狀態(tài),具體地說,恢復(fù)節(jié)點(diǎn)可以向管理節(jié)點(diǎn)上報指示該恢復(fù)節(jié)點(diǎn)與計算機(jī)系統(tǒng)中的其他節(jié)點(diǎn)的通信狀態(tài)(例如,該狀態(tài)可以包括正常通信、無法通信或通信時延等)的通信狀態(tài)信息,從而,管理節(jié)點(diǎn)可以根據(jù)來自恢復(fù)節(jié)點(diǎn)的該通信狀態(tài)信息,確定其通信狀態(tài)。
需要說明的是,在本發(fā)明實施了中,各存儲節(jié)點(diǎn)可以組成存儲網(wǎng)絡(luò)(或者說,存儲網(wǎng)格),該存儲網(wǎng)絡(luò)通過統(tǒng)一的對外接口向計算機(jī)系統(tǒng)中的各恢復(fù)節(jié)點(diǎn)提供數(shù)據(jù)(例如,恢復(fù)文件),并且,各恢復(fù)節(jié)點(diǎn)與該存儲網(wǎng)絡(luò)之間可以通過消息隊列等方式進(jìn)行通信,從而各恢復(fù)節(jié)點(diǎn)無需獲知存儲有其需要的恢復(fù)文件的存儲節(jié)點(diǎn)的具體地址,例如,網(wǎng)際協(xié)議(IP,Internet Protocol)地址或媒體訪問控制地址(MAC,Media Access Control)地址等。
例如,恢復(fù)節(jié)點(diǎn)僅需將作為故障處理的對象的失效進(jìn)程#A的標(biāo)識發(fā)送至存儲網(wǎng)絡(luò),存儲網(wǎng)絡(luò)的接口設(shè)備可以根據(jù)預(yù)先存儲的各進(jìn)程的標(biāo)識與其恢復(fù)文件所存儲于的存儲節(jié)點(diǎn)的映射關(guān)系,查找到與所接收到的失效進(jìn)程#A的標(biāo)識相對應(yīng)的存儲節(jié)點(diǎn),進(jìn)而能過獲得與該失效進(jìn)程#A相對應(yīng)的恢復(fù)文件#A。
因此,該通信狀態(tài)可以是恢復(fù)節(jié)點(diǎn)與該存儲網(wǎng)絡(luò)的接口設(shè)備之間的通信狀態(tài)。
另外,在本發(fā)明實施了中,存在多個進(jìn)程(例如,該多個進(jìn)程包括上述失效進(jìn)程#A和進(jìn)程#B)之間需要進(jìn)行通信以實現(xiàn)業(yè)務(wù)功能的情況,此情況下,用于對失效進(jìn)程#A進(jìn)行恢復(fù)的恢復(fù)節(jié)點(diǎn)需要與運(yùn)行有進(jìn)程#B的節(jié)點(diǎn)(即,該恢復(fù)節(jié)點(diǎn)的關(guān)聯(lián)節(jié)點(diǎn))進(jìn)行通信。
因此,該通信狀態(tài)還可以是恢復(fù)節(jié)點(diǎn)與關(guān)聯(lián)節(jié)點(diǎn)的通信狀態(tài)。
在如上所述,確定恢復(fù)文件的大小以及各恢復(fù)節(jié)點(diǎn)的運(yùn)行狀態(tài)后,S120,根據(jù)每個失效進(jìn)程所對應(yīng)的恢復(fù)文件的大小以及每個恢復(fù)節(jié)點(diǎn)的運(yùn)行狀態(tài)確定每個失效進(jìn)程所對應(yīng)的恢復(fù)節(jié)點(diǎn)。
例如,當(dāng)N=1時,需要恢復(fù)的進(jìn)程只有一個(例如,上述失效進(jìn)程#A),此情況下,可以選擇當(dāng)前的運(yùn)行狀態(tài)能夠滿足該失效進(jìn)程#A所需要的運(yùn)行條件的節(jié)點(diǎn)作為該失效進(jìn)程#A所對應(yīng)的恢復(fù)節(jié)點(diǎn)。
作為運(yùn)行條件,例如,可以列舉:
A.計算資源或存儲資源能夠滿足失效進(jìn)程#A的處理要求,即,節(jié)點(diǎn)的空閑資源能夠確保該失效進(jìn)程#A的運(yùn)行,例如,恢復(fù)節(jié)點(diǎn)的內(nèi)存、CPU、存儲等資源滿足進(jìn)程#A的運(yùn)行要求。
B.通信狀態(tài)能夠滿足失效進(jìn)程#A的處理要求,即,恢復(fù)節(jié)點(diǎn)能夠與失效進(jìn)程#A的關(guān)聯(lián)節(jié)點(diǎn)進(jìn)行通信,或者,恢復(fù)節(jié)點(diǎn)能夠與失效進(jìn)程#A的存儲節(jié)點(diǎn)進(jìn)行通信以獲得失效進(jìn)程#A的恢復(fù)文件。
應(yīng)理解,以上列舉的根據(jù)恢復(fù)節(jié)點(diǎn)的運(yùn)行狀態(tài)和恢復(fù)文件的大小確定失效進(jìn)程所對應(yīng)的恢復(fù)節(jié)點(diǎn)的方法和過程僅為示例性說明,本發(fā)明并不限定于此。
再例如,當(dāng)N≥2時,管理節(jié)點(diǎn)可以根據(jù)各恢復(fù)文件的大小,確定針對各失效進(jìn)程的恢復(fù)順序,即
可選地,當(dāng)N≥2時,該根據(jù)每個失效進(jìn)程所對應(yīng)的恢復(fù)文件的大小以及每個恢復(fù)節(jié)點(diǎn)的運(yùn)行狀態(tài)確定每個失效進(jìn)程所對應(yīng)的恢復(fù)節(jié)點(diǎn),包括:
根據(jù)每個恢復(fù)節(jié)點(diǎn)的運(yùn)行狀態(tài),基于每個失效進(jìn)程所對應(yīng)的恢復(fù)文件的大小,按照從大到小的順序,依次確定每個失效進(jìn)程所對應(yīng)的恢復(fù)節(jié)點(diǎn)。
具體地說,在存在多個失效進(jìn)程時,需要為該多個失效進(jìn)程尋找合適的恢復(fù)節(jié)點(diǎn),并確保該多個失效進(jìn)程的恢復(fù)時間之和最短。
在本發(fā)明實施例中,可以根據(jù)恢復(fù)文件的大小,按照從大到小的順序,依次確定各失效進(jìn)程所對應(yīng)的恢復(fù)節(jié)點(diǎn),優(yōu)先確定恢復(fù)文件最大的失效進(jìn)程 所對應(yīng)的恢復(fù)節(jié)點(diǎn)。
下面對N≥2時,各失效進(jìn)程所對應(yīng)的恢復(fù)節(jié)點(diǎn)的具體確定過程進(jìn)行說明。
步驟1,管理節(jié)點(diǎn)可以基于恢復(fù)文件大小,按照從大到小的順序,確定失效進(jìn)程集合(包括失效進(jìn)程#1~失效進(jìn)程#K),其中,P1≥P2≥…≥PK,其中,P表示恢復(fù)文件大小,K為待恢復(fù)的失效進(jìn)程的數(shù)量,并令計數(shù)變量i=1;
步驟2,管理節(jié)點(diǎn)可以獲取能夠提供恢復(fù)處理的節(jié)點(diǎn)(或者說,運(yùn)行有能夠放置待恢復(fù)的失效進(jìn)行的虛擬機(jī)),設(shè)這些節(jié)點(diǎn)的集合為N,已被分配的集合Nu=0;
步驟3,若i>K,則執(zhí)行步驟6,否則,執(zhí)行步驟4;
步驟4,針對失效進(jìn)程#i,假如集合Nu中節(jié)點(diǎn)的排列順序(例如,可以按放入集合的時間順序排列,也可以按剩余的可用資源大小排列,本發(fā)明并未特別限定)為N1,N2…Nj,則先依次嘗試集合Nu中節(jié)點(diǎn)是否能夠滿足失效進(jìn)程#i的運(yùn)行條件,如果不存,則從集合N進(jìn)行選擇,并將能夠滿足的節(jié)點(diǎn)(例如,集合N中能夠滿足失效進(jìn)程#i的運(yùn)行條件的下標(biāo)最小的節(jié)點(diǎn))放入結(jié)合Nu中,作為Nj+1。并且,管理節(jié)點(diǎn)可以進(jìn)行更新處理,令i=i+1,轉(zhuǎn)到Step3。
應(yīng)理解,以上列舉的確定各失效進(jìn)程所對應(yīng)的恢復(fù)節(jié)點(diǎn)的方法僅為示例性說明,本發(fā)明并未限定于此,還可以使用例如,首次適應(yīng)、最佳適應(yīng)、降序首次適應(yīng)及降序最佳適應(yīng)算法等啟發(fā)式算法確定各失效進(jìn)程所對應(yīng)的恢復(fù)節(jié)點(diǎn)。
在如上所述確定了各失效進(jìn)程所對應(yīng)的恢復(fù)節(jié)點(diǎn)之后,在S130,管理節(jié)點(diǎn)可以根據(jù)各失效進(jìn)程所對應(yīng)的恢復(fù)節(jié)點(diǎn),對各失效進(jìn)行恢復(fù)處理。
例如,管理節(jié)點(diǎn)可以直接指示恢復(fù)節(jié)點(diǎn)從存儲節(jié)點(diǎn)獲取失效進(jìn)程的恢復(fù)文件,并基于該恢復(fù)文件進(jìn)行恢復(fù)。這里,恢復(fù)節(jié)點(diǎn)基于恢復(fù)文件對進(jìn)行進(jìn)行恢復(fù)處理的方法和過程可以與現(xiàn)有技術(shù)相似,這里,為了避免贅述,省略其詳細(xì)說明。
再例如,管理節(jié)點(diǎn)可以根據(jù)各失效進(jìn)程所對應(yīng)的恢復(fù)節(jié)點(diǎn),估計恢復(fù)時間,并根據(jù)恢復(fù)時間,確定恢復(fù)策略,即:
可選地,該根據(jù)每個失效進(jìn)程所對應(yīng)的恢復(fù)節(jié)點(diǎn),對每個失效進(jìn)程進(jìn)行故障恢復(fù)處理,包括:
根據(jù)每個失效進(jìn)程所對應(yīng)的恢復(fù)節(jié)點(diǎn)的運(yùn)行狀態(tài)和每個失效進(jìn)程所對應(yīng)的恢復(fù)文件的大小,估計每個失效進(jìn)程的恢復(fù)時間;
根據(jù)每個失效進(jìn)程的恢復(fù)時間,對每個失效進(jìn)程進(jìn)行故障恢復(fù)處理。
具體地說,管理節(jié)點(diǎn)可以采樣以下方式估計失效進(jìn)程的恢復(fù)時間。
管理節(jié)點(diǎn)可以采用(例如,預(yù)先設(shè)置的)多種方案對失效進(jìn)程和恢復(fù)節(jié)點(diǎn)進(jìn)行匹配,或者說,管理節(jié)點(diǎn)可以采用(例如,預(yù)先設(shè)置的)多種方案將失效進(jìn)程模擬地放置與某個恢復(fù)節(jié)點(diǎn),并計算該方案下的恢復(fù)時間。
其中,各方案需要滿足以下條件:
條件1
失效進(jìn)程#K所匹配的恢復(fù)節(jié)點(diǎn)需要滿足失效進(jìn)程#K的故障恢復(fù)對CPU處理能力的要求,即,上述條件1可以表示為以下式(1)
式(1)
其中,表示失效進(jìn)程#K的故障恢復(fù)對CPU處理能力的要求;aKi∈[0,1],即,如果失效進(jìn)程#K放置在恢復(fù)節(jié)點(diǎn)i,則aKi=1,否則aKi=0;表示恢復(fù)節(jié)點(diǎn)#i的CPU的處理能力(例如,所能夠提供的虛擬CPU的數(shù)量)。
條件2
失效進(jìn)程#K所匹配的恢復(fù)節(jié)點(diǎn)需要滿足失效進(jìn)程#K的故障恢復(fù)對內(nèi)存的要求,即,上述條件2可以表示為以下式(2)
式(2)
其中,表示失效進(jìn)程#K的故障恢復(fù)對內(nèi)存的要求;aKi∈[0,1],即,如果失效進(jìn)程K放置在恢復(fù)節(jié)點(diǎn)i,則aKi=1,否則aKi=0;表示恢復(fù)節(jié)點(diǎn)#i能夠提供的內(nèi)存。
并且,上述可以根據(jù)以下式(3)確定:
式(3)
其中,mK表示失效進(jìn)程#K申請內(nèi)存的大小(或者說,失效進(jìn)程#K的恢復(fù)文件的大小),μ、ε為預(yù)設(shè)系數(shù),由實驗測定,v表示失效進(jìn)行的數(shù)量。
條件3
一個失效進(jìn)程的故障恢復(fù)只在一個恢復(fù)節(jié)點(diǎn)中進(jìn)行,例如,用于進(jìn)行針對失效進(jìn)程#1的故障恢復(fù)的恢復(fù)節(jié)點(diǎn)的CPU處理能力(例如,所能夠提供的虛擬CPU的數(shù)量)需要滿足失效進(jìn)程#1的故障恢復(fù)對CPU處理能力的要求,且用于進(jìn)行針對失效進(jìn)程#1的故障恢復(fù)的恢復(fù)節(jié)點(diǎn)能夠提供的內(nèi)存需要 滿足失效進(jìn)程#1的故障恢復(fù)對內(nèi)存的要求。
恢復(fù)節(jié)點(diǎn)#i上的失效進(jìn)程恢復(fù)時間T(ni)與失效進(jìn)程#K的恢復(fù)文件的大小mK之間的量化關(guān)系可以由以下式(4)表達(dá):
式(4)
其中,a、β為系數(shù),由實驗測定。
第j種放置方案的失效節(jié)點(diǎn)恢復(fù)時間取所有節(jié)點(diǎn)上失效進(jìn)程集合恢復(fù)時間的最大值Rj可以由以下式(5)表達(dá):
Rj=max(Tj(nj)),i=1,2,...s 式(5)
從而,基于上述條件1~條件3能夠確定使恢復(fù)時間開銷量化模型的目標(biāo)函數(shù)min(Rj)達(dá)到最小的匹配方案,以及該方案下各失效進(jìn)程的恢復(fù)時間。。
在如上所述確定了各失效進(jìn)程的恢復(fù)時間之后,管理節(jié)點(diǎn)可以判定各失效進(jìn)程的估計的恢復(fù)時間是否滿足該進(jìn)程對恢復(fù)時間的要求,并根據(jù)判定結(jié)果執(zhí)行恢復(fù)處理,例如,如果所估計的恢復(fù)時間小于或等于該進(jìn)程所要求的恢復(fù)時間的最大值,則管理節(jié)點(diǎn)可以指示恢復(fù)節(jié)點(diǎn)對該失效進(jìn)程進(jìn)行恢復(fù)。再例如,如果所估計的恢復(fù)時間大于該進(jìn)程所要求的恢復(fù)時間的最大值,則管理節(jié)點(diǎn)可以在運(yùn)行有該失效進(jìn)程的原節(jié)點(diǎn)進(jìn)行故障排除處理等。
可選地,一個失效進(jìn)程所對應(yīng)的恢復(fù)節(jié)點(diǎn)與同一失效進(jìn)程所對應(yīng)的存儲節(jié)點(diǎn)相異。
具體地說,在本發(fā)明實施了中失效進(jìn)程#A所對應(yīng)的存儲節(jié)點(diǎn),與該失效進(jìn)程#A所對應(yīng)的恢復(fù)節(jié)點(diǎn)相異,即,在本發(fā)明實施例的計算機(jī)系統(tǒng)中,可以使用于存儲恢復(fù)文件的存儲節(jié)點(diǎn)與用于執(zhí)行恢復(fù)處理的恢復(fù)節(jié)點(diǎn)獨(dú)立,從而能夠便于維護(hù),并減小各節(jié)點(diǎn)的負(fù)擔(dān)。
應(yīng)理解,以上列舉的存儲節(jié)點(diǎn)與恢復(fù)節(jié)點(diǎn)的關(guān)系僅為示例性說明,一個失效進(jìn)程所對應(yīng)的存儲節(jié)點(diǎn)與恢復(fù)節(jié)點(diǎn)也可以為同一節(jié)點(diǎn),本發(fā)明并未特別限定。
根據(jù)本發(fā)明實施例的故障恢復(fù)的方法,根據(jù)失效進(jìn)程所對應(yīng)的恢復(fù)文件的大小和至少兩個恢復(fù)節(jié)點(diǎn)的運(yùn)行狀態(tài),從至少兩個恢復(fù)節(jié)點(diǎn)中確定對該失效進(jìn)程進(jìn)行故障恢復(fù)的恢復(fù)節(jié)點(diǎn),相比只有一個恢復(fù)節(jié)點(diǎn)可靠性更高,同時能夠一定程度上確保所確定的恢復(fù)節(jié)點(diǎn)能夠?qū)崿F(xiàn)對失效進(jìn)程的故障恢復(fù),從而進(jìn)一步提高故障恢復(fù)的可靠性。
以上,結(jié)合圖1和圖2詳細(xì)說明了本發(fā)明實施了的故障恢復(fù)的方法,下面結(jié)合圖3,詳細(xì)說明發(fā)明的故障恢復(fù)的裝置。
圖3示出了根據(jù)本發(fā)明實施例的故障恢復(fù)的裝置300的示意性框圖。如圖3所示,該裝置300包括:
確定單元310,用于確定N個失效進(jìn)程中每個失效進(jìn)程所對應(yīng)的恢復(fù)文件的大小,及M個恢復(fù)節(jié)點(diǎn)中每個恢復(fù)節(jié)點(diǎn)的運(yùn)行狀態(tài),并根據(jù)每個失效進(jìn)程所對應(yīng)的恢復(fù)文件的大小和M個恢復(fù)節(jié)點(diǎn)的運(yùn)行狀態(tài),確定每個失效進(jìn)程所對應(yīng)的恢復(fù)節(jié)點(diǎn),其中,該運(yùn)行狀態(tài)包括資源使用狀態(tài)或通信狀態(tài),N≥1,M≥2;
處理單元320,用于根據(jù)每個失效進(jìn)程所對應(yīng)的恢復(fù)節(jié)點(diǎn)進(jìn)行控制,以在每個失效進(jìn)程所對應(yīng)的恢復(fù)節(jié)點(diǎn),對每個失效進(jìn)程進(jìn)行故障恢復(fù)。
可選地,該N個失效進(jìn)程中的第一失效進(jìn)程所對應(yīng)的恢復(fù)文件存儲在至少兩個存儲節(jié)點(diǎn)中。
可選地,在各該存儲節(jié)點(diǎn)中存儲的該第一失效進(jìn)程所對應(yīng)的恢復(fù)文件相同。
可選地,該第一失效進(jìn)程所對應(yīng)的恢復(fù)文件包括至少兩個子恢復(fù)文件,在各該存儲節(jié)點(diǎn)中存儲的子恢復(fù)文件不同。
可選地,當(dāng)N≥2時,該確定單元具體用于根據(jù)每個恢復(fù)節(jié)點(diǎn)的運(yùn)行狀態(tài),基于每個失效進(jìn)程所對應(yīng)的恢復(fù)文件的大小,按照從大到小的順序,依次確定每個失效進(jìn)程所對應(yīng)的恢復(fù)節(jié)點(diǎn)。
可選地,一個失效進(jìn)程所對應(yīng)的恢復(fù)節(jié)點(diǎn)與同一失效進(jìn)程所對應(yīng)的存儲節(jié)點(diǎn)不同。
可選地,該處理單元具體用于根據(jù)每個失效進(jìn)程所對應(yīng)的恢復(fù)節(jié)點(diǎn)的運(yùn)行狀態(tài)和每個失效進(jìn)程所對應(yīng)的恢復(fù)文件的大小,估計每個失效進(jìn)程的恢復(fù)時間,并根據(jù)每個失效進(jìn)程的恢復(fù)時間,對每個失效進(jìn)程進(jìn)行故障恢復(fù)處理。
根據(jù)本發(fā)明實施例的故障處理的裝置300可對應(yīng)于本發(fā)明實施例的方法中的執(zhí)行主體,例如,管理節(jié)點(diǎn),并且,該故障處理的裝置300中的各單元即模塊和上述其他操作和/或功能分別為了實現(xiàn)圖1中的方法100的相應(yīng)流程,為了簡潔,在此不再贅述。
根據(jù)本發(fā)明實施例的故障恢復(fù)的裝置,根據(jù)失效進(jìn)程所對應(yīng)的恢復(fù)文件的大小和至少兩個恢復(fù)節(jié)點(diǎn)的運(yùn)行狀態(tài),從至少兩個恢復(fù)節(jié)點(diǎn)中確定對該失 效進(jìn)程進(jìn)行故障恢復(fù)的恢復(fù)節(jié)點(diǎn),相比只有一個恢復(fù)節(jié)點(diǎn)可靠性更高,同時能夠一定程度上確保所確定的恢復(fù)節(jié)點(diǎn)能夠?qū)崿F(xiàn)對失效進(jìn)程的故障恢復(fù),從而進(jìn)一步提高故障恢復(fù)的可靠性。
以上,結(jié)合圖1和圖2詳細(xì)說明了本發(fā)明實施了的故障恢復(fù)的方法,下面結(jié)合圖4,詳細(xì)說明發(fā)明的故障恢復(fù)的設(shè)備。
圖4示出了根據(jù)本發(fā)明實施例的故障恢復(fù)的設(shè)備400的示意性框圖。如圖4所示,該設(shè)備400包括:
總線系統(tǒng)410;
與該總線系統(tǒng)410相連的處理器420;
與該總線系統(tǒng)410相連的存儲器430;
其中,該處理器通過該總線,調(diào)用該存儲器中存儲的程序,以用于確定N個失效進(jìn)程中每個失效進(jìn)程所對應(yīng)的恢復(fù)文件的大小,并確定M個恢復(fù)節(jié)點(diǎn)中每個恢復(fù)節(jié)點(diǎn)的運(yùn)行狀態(tài),其中,N≥1,M≥2;
用于根據(jù)每個失效進(jìn)程所對應(yīng)的恢復(fù)文件的大小以及每個恢復(fù)節(jié)點(diǎn)的運(yùn)行狀態(tài)確定每個失效進(jìn)程所對應(yīng)的恢復(fù)節(jié)點(diǎn),其中,該運(yùn)行狀態(tài)包括資源使用狀態(tài)或通信狀態(tài);
用于根據(jù)每個失效進(jìn)程所對應(yīng)的恢復(fù)節(jié)點(diǎn)進(jìn)行控制,以在每個失效進(jìn)程所對應(yīng)的恢復(fù)節(jié)點(diǎn),對每個失效進(jìn)程進(jìn)行故障恢復(fù)。
可選地,該N個失效進(jìn)程中的第一失效進(jìn)程所對應(yīng)的恢復(fù)文件存儲在該第一失效進(jìn)程所對應(yīng)的至少兩個存儲節(jié)點(diǎn)中。
可選地,在各該存儲節(jié)點(diǎn)中存儲的該第一失效進(jìn)程所對應(yīng)的恢復(fù)文件相同。
可選地,該第一失效進(jìn)程所對應(yīng)的恢復(fù)文件包括至少兩個子恢復(fù)文件,在各該存儲節(jié)點(diǎn)中存儲的子恢復(fù)文件不同。
可選地,當(dāng)N≥2時,該處理器具體用于根據(jù)每個恢復(fù)節(jié)點(diǎn)的運(yùn)行狀態(tài),基于每個失效進(jìn)程所對應(yīng)的恢復(fù)文件的大小,按照從大到小的順序,依次確定每個失效進(jìn)程所對應(yīng)的恢復(fù)節(jié)點(diǎn)。
可選地,一個失效進(jìn)程所對應(yīng)的恢復(fù)節(jié)點(diǎn)與同一失效進(jìn)程所對應(yīng)的存儲節(jié)點(diǎn)不同。
可選地,可選地,該處理器具體用于根據(jù)每個失效進(jìn)程所對應(yīng)的恢復(fù)節(jié)點(diǎn)的運(yùn)行狀態(tài)和每個失效進(jìn)程所對應(yīng)的恢復(fù)文件的大小,估計每個失效進(jìn)程 的恢復(fù)時間;
用于根據(jù)每個失效進(jìn)程的恢復(fù)時間,對每個失效進(jìn)程進(jìn)行故障恢復(fù)處理。
處理器還可以稱為CPU。存儲器可以包括只讀存儲器和隨機(jī)存取存儲器,并向處理器提供指令和數(shù)據(jù)。存儲器的一部分還可以包括非易失隨機(jī)訪問存儲器(Non-Volatile Random Access Memory,NVRAM)。具體的應(yīng)用中,設(shè)備400可以嵌入或者本身可以就是計算機(jī)設(shè)備,其中,總線除包括數(shù)據(jù)總線之外,還包括電源總線、控制總線和狀態(tài)信號總線。但是為了清楚明起見,在圖中將各種總線都標(biāo)為總線系統(tǒng)410。具體的不同產(chǎn)品中解碼器可能與處理單元集成為一體。
處理器可以實現(xiàn)或者執(zhí)行本發(fā)明方法實施例中的公開的各步驟及邏輯框圖。通用處理器可以是微處理器或者該處理器也可以是任何常規(guī)的處理器,解碼器等。結(jié)合本發(fā)明實施例所公開的方法的步驟可以直接體現(xiàn)為硬件處理器執(zhí)行完成,或者用解碼處理器中的硬件及軟件模塊組合執(zhí)行完成。軟件模塊可以位于隨機(jī)存儲器,閃存、只讀存儲器,可編程只讀存儲器或者電可擦寫可編程存儲器、寄存器等本領(lǐng)域成熟的存儲介質(zhì)中。
應(yīng)理解,在本發(fā)明實施例中,該處理器420可以是中央處理單元(Central Processing Unit,簡稱為“CPU”),該處理器420還可以是其他通用處理器、數(shù)字信號處理器(digital signal processor,DSP)、應(yīng)用專用集成電路(Application Specific Integrated Circuit,ASIC)、現(xiàn)場可編程門陣列(Field-Programmable Gate Array,FPGA)等。通用處理器可以是微處理器或者該處理器也可以是任何常規(guī)的處理器等。
該存儲器430可以包括只讀存儲器和隨機(jī)存取存儲器,并向處理器420提供指令和數(shù)據(jù)。存儲器430的一部分還可以包括非易失性隨機(jī)存取存儲器。例如,存儲器430還可以存儲設(shè)備類型的信息。
該總線系統(tǒng)410除包括數(shù)據(jù)總線之外,還可以包括電源總線、控制總線和狀態(tài)信號總線等。但是為了清楚說明起見,在圖中將各種總線都標(biāo)為總線系統(tǒng)410。需要說明的是,本發(fā)明實施例中“與總線系統(tǒng)410相連”既可以包括直接相連,也可以包括間接相連。
在實現(xiàn)過程中,上述方法的各步驟可以通過處理器420中的硬件的集成邏輯電路或者軟件形式的指令完成。結(jié)合本發(fā)明實施例所公開的方法的步驟 可以直接體現(xiàn)為硬件處理器執(zhí)行完成,或者用處理器中的硬件及軟件模塊組合執(zhí)行完成。軟件模塊可以位于隨機(jī)存儲器,閃存、只讀存儲器,可編程只讀存儲器或者電可擦寫可編程存儲器、寄存器等本領(lǐng)域成熟的存儲介質(zhì)中。該存儲介質(zhì)位于存儲器430,處理器420讀取存儲器430中的信息,結(jié)合其硬件完成上述方法的步驟。為避免重復(fù),這里不再詳細(xì)描述。
根據(jù)本發(fā)明實施例的故障恢復(fù)的設(shè)備400可對應(yīng)于本發(fā)明實施例的方法中的執(zhí)行主體(例如,管理節(jié)點(diǎn)),并且,故障恢復(fù)的設(shè)備400中的各單元即模塊和上述其他操作和/或功能分別為了實現(xiàn)圖1中的方法100的相應(yīng)流程,為了簡潔,在此不再贅述。
根據(jù)本發(fā)明實施例的故障恢復(fù)的設(shè)備,根據(jù)失效進(jìn)程所對應(yīng)的恢復(fù)文件的大小和至少兩個恢復(fù)節(jié)點(diǎn)的運(yùn)行狀態(tài),從至少兩個恢復(fù)節(jié)點(diǎn)中確定對該失效進(jìn)程進(jìn)行故障恢復(fù)的恢復(fù)節(jié)點(diǎn),相比只有一個恢復(fù)節(jié)點(diǎn)可靠性更高,同時能夠一定程度上確保所確定的恢復(fù)節(jié)點(diǎn)能夠?qū)崿F(xiàn)對失效進(jìn)程的故障恢復(fù),從而進(jìn)一步提高故障恢復(fù)的可靠性。
需要說明的是,本發(fā)明實施例中提到的A和/或B代表的含義包括A,B以及A和B。
應(yīng)理解,在本發(fā)明的各種實施例中,上述各過程的序號的大小并不意味著執(zhí)行順序的先后,各過程的執(zhí)行順序應(yīng)以其功能和內(nèi)在邏輯確定,而不應(yīng)對本發(fā)明實施例的實施過程構(gòu)成任何限定。
本領(lǐng)域普通技術(shù)人員可以意識到,結(jié)合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、或者計算機(jī)軟件和電子硬件的結(jié)合來實現(xiàn)。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計約束條件。專業(yè)技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統(tǒng)、裝置和單元的具體工作過程,可以參考前述方法實施例中的對應(yīng)過程,在此不再贅述。
在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的系統(tǒng)、裝置和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個 系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨(dú)物理存在,也可以兩個或兩個以上單元集成在一個單元中。
所述功能如果以軟件功能單元的形式實現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時,可以存儲在一個計算機(jī)可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機(jī)設(shè)備(可以是個人計算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機(jī)存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以所述權(quán)利要求的保護(hù)范圍為準(zhǔn)。