專利名稱:計(jì)算機(jī)系統(tǒng)和文件管理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種在例如網(wǎng)絡(luò)連接的多個(gè)計(jì)算機(jī)構(gòu)成的網(wǎng)絡(luò)計(jì)算環(huán)境等當(dāng)中,適用需要高可靠性的群計(jì)算處理、數(shù)據(jù)庫(kù)處理和事務(wù)處理等的較理想計(jì)算機(jī)系統(tǒng)和文件管理方法。
定期采集CPU所執(zhí)行的進(jìn)程的地址空間、關(guān)聯(lián)和文件等狀態(tài)(稱它為進(jìn)程單位的檢驗(yàn)點(diǎn)系統(tǒng)),發(fā)生故障時(shí),恢復(fù)最后采集的檢驗(yàn)點(diǎn)狀態(tài),從這一時(shí)刻起重新開(kāi)始執(zhí)行進(jìn)程,在具有上述這種從故障中恢復(fù)功能的系統(tǒng)中,以往在外部輸入輸出處理方面有問(wèn)題。具體來(lái)說(shuō),發(fā)生故障的時(shí)候,從最后采集的檢驗(yàn)點(diǎn)起重新執(zhí)行進(jìn)程時(shí),進(jìn)程的地址空間和處理器關(guān)聯(lián)等狀態(tài)可以恢復(fù),但外部輸入裝置狀態(tài)的恢復(fù)不太容易。
例如由于難以取消對(duì)于文件的寫入,因而向文件寫入時(shí),數(shù)據(jù)寫入文件之前事先讀取寫入以前的數(shù)據(jù)進(jìn)行保存,然后向文件寫入數(shù)據(jù)。
圖15是就難以取消對(duì)于文件的寫入,故向文件寫入時(shí),數(shù)據(jù)寫入文件之前事先讀取寫入以前的數(shù)據(jù)進(jìn)行保存,然后向文件進(jìn)行數(shù)據(jù)寫入的現(xiàn)有系統(tǒng)結(jié)構(gòu)進(jìn)行說(shuō)明的說(shuō)明圖。
本例中,在時(shí)刻t2向時(shí)刻t1采集檢驗(yàn)點(diǎn)時(shí)刻由“ABCD”4字節(jié)數(shù)據(jù)組成的文件中第一字節(jié)寫入“X”(1)。這種場(chǎng)合,現(xiàn)有例向文件第一字節(jié)寫入“X”前,先將文件第一字節(jié)數(shù)據(jù)“B”讀出(這也稱為undo記錄)(2),然后向文件第一字節(jié)寫入“X”(3)。
然后,在時(shí)刻t3有故障發(fā)生,因而在最后采集的檢驗(yàn)點(diǎn)狀態(tài)(t1)重新運(yùn)行進(jìn)程。文件是在檢驗(yàn)點(diǎn)t1以后將第一字節(jié)更新為“X”的,但通過(guò)用更新時(shí)所采集的undo記錄,恢復(fù)檢驗(yàn)點(diǎn)t1狀態(tài)。另外,這種undo記錄在下一檢驗(yàn)點(diǎn)時(shí)被廢棄不要。
還有這樣一種系統(tǒng),由例如2臺(tái)計(jì)算機(jī)構(gòu)成,其中一臺(tái)(主計(jì)算機(jī))作為運(yùn)行子系統(tǒng),另一臺(tái)(備用計(jì)算機(jī))作為待機(jī)子系統(tǒng),實(shí)現(xiàn)雙重化,主計(jì)算機(jī)發(fā)生故障時(shí),通過(guò)由備用計(jì)算機(jī)繼續(xù)處理,提高系統(tǒng)可用性。而且,這種系統(tǒng)如上文所述定期采集檢驗(yàn)點(diǎn)的話,便能夠使可靠性進(jìn)一步提高。
這樣不斷定期采集進(jìn)程地址空間、關(guān)聯(lián)和文件等狀態(tài)(即檢驗(yàn)點(diǎn)),故障發(fā)生時(shí),恢復(fù)最后采集的檢驗(yàn)點(diǎn)狀態(tài),從這一時(shí)刻起重新開(kāi)始執(zhí)行進(jìn)程,具有這種從故障中恢復(fù)功能的系統(tǒng)(不論是否是雙重化)中,其可靠性有所提高,但有這樣的問(wèn)題,對(duì)文件進(jìn)行更新(例如寫入)時(shí),必須從文件讀取一次更新前的數(shù)據(jù),隨后才對(duì)文件進(jìn)行更新,所以使得文件的更新性能下降。
本發(fā)明正是鑒于這種情況,其目的在于提供一種在具有定期采集檢驗(yàn)點(diǎn),發(fā)生故障時(shí)恢復(fù)最后采集的檢驗(yàn)點(diǎn)狀態(tài),從這一時(shí)刻起重新開(kāi)始執(zhí)行進(jìn)程這種從故障中恢復(fù)功能的系統(tǒng)中,對(duì)文件進(jìn)行更新時(shí)不需要從文件當(dāng)中讀取更新前數(shù)據(jù)等,能夠大幅改善文件更新性能的計(jì)算機(jī)系統(tǒng)和文件管理方法。
本發(fā)明計(jì)算機(jī)系統(tǒng),為2臺(tái)運(yùn)行子系統(tǒng)和待機(jī)子系統(tǒng)計(jì)算機(jī)實(shí)現(xiàn)雙重化的計(jì)算機(jī)系統(tǒng),在定期采集用于重新開(kāi)始中斷處理的檢驗(yàn)點(diǎn),并保存在所述運(yùn)行子系統(tǒng)和待機(jī)子系統(tǒng)兩者計(jì)算機(jī)上的計(jì)算機(jī)系統(tǒng)中,其特征在于包括由所述運(yùn)行子系統(tǒng)和待機(jī)子系統(tǒng)兩者計(jì)算機(jī)雙重化設(shè)置可由所述運(yùn)行子系統(tǒng)計(jì)算機(jī)執(zhí)行的進(jìn)程加以更新的文件,所述進(jìn)程有文件更新指令來(lái)時(shí),將該更新信息保存在所述待機(jī)子系統(tǒng)計(jì)算機(jī)上,僅更新運(yùn)行子系統(tǒng)的文件,在該更新結(jié)束時(shí)刻向該更新請(qǐng)求源通知更新結(jié)束的裝置;采集所述檢驗(yàn)點(diǎn)之后,再向所述待機(jī)子系統(tǒng)文件反映所述更新信息表示的更新內(nèi)容的裝置。
本發(fā)明計(jì)算機(jī)系統(tǒng)中,進(jìn)程請(qǐng)求文件更新時(shí),取得并且保存表示該更新內(nèi)容的更新信息,同時(shí)立即僅僅更新運(yùn)行子系統(tǒng)計(jì)算機(jī)配置的文件(運(yùn)行子系統(tǒng)文件),并將此結(jié)果返回作為請(qǐng)求源的進(jìn)程。而且,采集檢驗(yàn)點(diǎn)之后,將其保存的更新信息所表示的更新內(nèi)容反映給待機(jī)子系統(tǒng)計(jì)算機(jī)配置的文件(待機(jī)子系統(tǒng)文件)。
而當(dāng)進(jìn)程異常終止等時(shí)候,便根據(jù)所保存的更新信息,從待機(jī)子系統(tǒng)文件將最后采集的檢驗(yàn)點(diǎn)以后更新的數(shù)據(jù)所對(duì)應(yīng)的更新前數(shù)據(jù)全部讀出,用這樣讀出的更新前數(shù)據(jù)使運(yùn)行子系統(tǒng)文件恢復(fù)至檢驗(yàn)點(diǎn)時(shí)刻。
具體來(lái)說(shuō),本計(jì)算機(jī)系統(tǒng)實(shí)現(xiàn)故障時(shí)的文件恢復(fù)時(shí),避免象以往那樣更新文件時(shí)讓通常處理處于待機(jī)狀態(tài)直到結(jié)束讀出和保留更新前數(shù)據(jù)這種處理,從而能夠在不損害可靠性的情況下使文件更新性能大幅提高。
此外,也可以利用最終檢驗(yàn)點(diǎn)以前保存的、并反映有更新信息表示的全部更新內(nèi)容的待機(jī)子系統(tǒng)文件,從檢驗(yàn)點(diǎn)起重新執(zhí)行進(jìn)程來(lái)代替運(yùn)行子系統(tǒng)的恢復(fù)。具體來(lái)說(shuō),可以確保因運(yùn)行子系統(tǒng)計(jì)算機(jī)故障而不能用運(yùn)行子系統(tǒng)重新開(kāi)始等場(chǎng)合下的處理得以繼續(xù),從而使系統(tǒng)可用性提高。此外,這時(shí)若讓第三計(jì)算機(jī)重新確保待機(jī)子系統(tǒng)文件,則能夠使系統(tǒng)可用性進(jìn)一步提高。
圖1是說(shuō)明本發(fā)明基本原理用的概念圖。
圖2示意的是本發(fā)明第一實(shí)施例計(jì)算機(jī)系統(tǒng)的系統(tǒng)構(gòu)成。
圖3示意的是適用該實(shí)施例計(jì)算機(jī)系統(tǒng)的概略構(gòu)成。
圖4示意的是該實(shí)施例更新文件的狀態(tài)。
圖5示意的是該實(shí)施例在發(fā)生故障時(shí)恢復(fù)主文件的狀態(tài)。
圖6是示意該實(shí)施例指令文件操作部“寫入文件”時(shí)處理流程的流程圖。
圖7是示意該實(shí)施例指令文件操作部“采集檢驗(yàn)點(diǎn)”時(shí)處理流程的流程圖。
圖8是示意該實(shí)施例備份文件更新部處理流程的流程圖。
圖9是示意該實(shí)施例進(jìn)程發(fā)生異常終止等故障,從在主計(jì)算機(jī)30上最后采集的檢驗(yàn)點(diǎn)起重新執(zhí)行進(jìn)程場(chǎng)合處理流程的流程圖。
圖10是示意該實(shí)施例指令主計(jì)算機(jī)上檢驗(yàn)點(diǎn)信息恢復(fù)部“恢復(fù)地址空間和處理器關(guān)聯(lián)”時(shí)處理流程的流程圖。
圖11是示意該實(shí)施例指令主文件恢復(fù)部“恢復(fù)主文件”時(shí)處理流程的流程圖。
圖12示意的是該實(shí)施例發(fā)生故障時(shí)由備份文件繼續(xù)處理的狀態(tài)。
圖13示意的是本發(fā)明第二實(shí)施例計(jì)算機(jī)系統(tǒng)的系統(tǒng)構(gòu)成。
圖14示意的是適用該實(shí)施例計(jì)算機(jī)系統(tǒng)的概略構(gòu)成。
圖15是就難以取消對(duì)于現(xiàn)有文件的寫入,故向文件寫入時(shí),數(shù)據(jù)寫入文件之前事先讀取寫入以前的數(shù)據(jù)進(jìn)行保存,然后向文件進(jìn)行數(shù)據(jù)寫入的現(xiàn)有系統(tǒng)結(jié)構(gòu)進(jìn)行說(shuō)明的說(shuō)明圖。
首先參照?qǐng)D1說(shuō)明本發(fā)明基本原理。如圖1所示,本發(fā)明計(jì)算機(jī)系統(tǒng)是以由運(yùn)行子系統(tǒng)10和待機(jī)子系統(tǒng)20實(shí)現(xiàn)多重化的系統(tǒng)為前提的。以下說(shuō)明各自的動(dòng)作。
(正常處理)(1)應(yīng)用程序11在運(yùn)行子系統(tǒng)10上發(fā)出WRITE(寫入)系統(tǒng)調(diào)用。
(2)嵌套例行程序12嵌有WRITE系統(tǒng)調(diào)用,向運(yùn)行子系統(tǒng)的操作系統(tǒng)發(fā)出WRITE系統(tǒng)調(diào)用,同時(shí)將該WRITE(寫入)請(qǐng)求發(fā)送給待機(jī)子系統(tǒng)20。但不需要立即向待機(jī)子系統(tǒng)20發(fā)送WRITE請(qǐng)求,可以在下一檢驗(yàn)點(diǎn)到來(lái)之前發(fā)送。而且,待機(jī)子系統(tǒng)20并非立即執(zhí)行接收到的WRITE請(qǐng)求,而是在不確定隊(duì)列211中存儲(chǔ)一次。
(3)指令檢驗(yàn)點(diǎn)處理的話,運(yùn)行子系統(tǒng)10必須將保留下來(lái)的WRITE請(qǐng)求全部發(fā)送給待機(jī)子系統(tǒng)20。
(4)另一方面,待機(jī)子系統(tǒng)20將不確定隊(duì)列211存儲(chǔ)的WRITE請(qǐng)求移至確定隊(duì)列212。
(5)移至該確定隊(duì)列212的WRITE請(qǐng)求由待機(jī)子系統(tǒng)20的操作系統(tǒng)順序處理。
具體來(lái)說(shuō),正常處理過(guò)程中發(fā)生的文件更新,并非處于待機(jī)狀態(tài)直到讀出和保留更新前數(shù)據(jù)這種處理結(jié)束。
(重新運(yùn)行處理)(3)發(fā)生故障這種時(shí)候,向運(yùn)行子系統(tǒng)10和待機(jī)子系統(tǒng)20兩者指令重新運(yùn)行處理。
(4)這時(shí)將運(yùn)行子系統(tǒng)10留下的WRITE請(qǐng)求全部發(fā)送至待機(jī)子系統(tǒng)20。而且,存儲(chǔ)于待機(jī)子系統(tǒng)不確定隊(duì)列211的WRITE請(qǐng)求由于是最后檢驗(yàn)點(diǎn)以后發(fā)出的,因而反之參照這一情況,從待機(jī)子系統(tǒng)文件23讀出更新前數(shù)據(jù),用該讀出的更新前數(shù)據(jù)使運(yùn)行子系統(tǒng)文件14重新運(yùn)行。因此,運(yùn)行子系統(tǒng)文件14和待機(jī)子系統(tǒng)文件23兩者文件均處于最后的檢驗(yàn)點(diǎn)時(shí)刻狀態(tài)。
(5)接著待機(jī)子系統(tǒng)20將不確定隊(duì)列211留下的WRITE請(qǐng)求全部取消。
因此能夠從檢驗(yàn)點(diǎn)時(shí)刻重新開(kāi)始。
接下來(lái)說(shuō)明本發(fā)明實(shí)施例。
(第一實(shí)施例)首先說(shuō)明本發(fā)明第一實(shí)施例。圖2示出本發(fā)明第一實(shí)施例計(jì)算機(jī)系統(tǒng)的系統(tǒng)構(gòu)成。如圖2所示,本實(shí)施例計(jì)算機(jī)系統(tǒng)其計(jì)算機(jī)由主計(jì)算機(jī)30和備用計(jì)算機(jī)40實(shí)現(xiàn)雙重化,它們由網(wǎng)絡(luò)50連接。這種主計(jì)算機(jī)30和備用計(jì)算機(jī)40分別包括上述運(yùn)行子系統(tǒng)10和待機(jī)子系統(tǒng)20兩者,某一臺(tái)是運(yùn)行子系統(tǒng)10動(dòng)作時(shí),另一臺(tái)則是待機(jī)子系統(tǒng)20動(dòng)作。這里,分別在主計(jì)算機(jī)30一側(cè)說(shuō)明運(yùn)行子系統(tǒng)10,在備用計(jì)算機(jī)40一側(cè)說(shuō)明待機(jī)子系統(tǒng)20。
進(jìn)程35在主計(jì)算機(jī)30上執(zhí)行,更新由主文件39和備份文件41實(shí)現(xiàn)雙重化的文件。這里,主文件39配置在主計(jì)算機(jī)30上,備份文件41配置在備用計(jì)算機(jī)40上,通過(guò)主計(jì)算機(jī)30上文件系統(tǒng)36和備用計(jì)算機(jī)40上文件系統(tǒng)48進(jìn)行更新。
主計(jì)算機(jī)30上的文件系統(tǒng)36包含主文件操作部38和主文件恢復(fù)部37。另一方面,備用計(jì)算機(jī)40上的文件系統(tǒng)48則包含備份文件操作部43、不確定隊(duì)列431、確定隊(duì)列432、備份文件更新部44和主文件恢復(fù)信息讀出部42。
進(jìn)程35更新這種雙重化文件時(shí),經(jīng)由主文件操作部38和備份文件操作部43進(jìn)行。進(jìn)程35對(duì)這種實(shí)現(xiàn)雙重化文件進(jìn)行WRITE(寫入)的話,主文件39就原樣立即更新,但備份文件41在此時(shí)不被更新,而是經(jīng)由備份文件操作部43在備用計(jì)算機(jī)40上不確定隊(duì)列431中保存“文件寫入信息”。
而進(jìn)程35采集檢驗(yàn)點(diǎn)時(shí),檢驗(yàn)點(diǎn)控制部31便向檢驗(yàn)點(diǎn)信息保存部32和主文件操作部38發(fā)出該指令。檢驗(yàn)點(diǎn)信息保存部32一旦受理檢驗(yàn)點(diǎn)采集指令,便將檢驗(yàn)點(diǎn)信息(地址空間和處理器關(guān)聯(lián))保存在主計(jì)算機(jī)30上和備用計(jì)算機(jī)40上(主計(jì)算機(jī)30上的檢驗(yàn)點(diǎn)信息34和備用計(jì)算機(jī)40上的檢驗(yàn)點(diǎn)信息45)。
而主文件操作部38一旦受理檢驗(yàn)點(diǎn)采集指令,便經(jīng)由備份文件操作部43將保存在不確定隊(duì)列431中的“文件寫入信息”移至確定隊(duì)列432。移至該確定隊(duì)列432的“文件寫入信息”在檢驗(yàn)點(diǎn)采集之后,由備份文件更新部44用于備份文件41的更新,在備份文件41更新后廢棄。因此,與檢驗(yàn)點(diǎn)以后對(duì)主文件39所進(jìn)行的動(dòng)作相同的WRITE操作也對(duì)備份文件41進(jìn)行。
進(jìn)程35發(fā)生異常終止等故障,而從主計(jì)算機(jī)30上最后采集的檢驗(yàn)點(diǎn)起重新執(zhí)行進(jìn)程3 5時(shí),由主計(jì)算機(jī)30上檢驗(yàn)點(diǎn)信息恢復(fù)部37恢復(fù)地址空間和處理器關(guān)聯(lián)。
就文件而言,備份文件41只是檢驗(yàn)點(diǎn)以后的更新仍在不確定隊(duì)列431中保存“文件寫入信息”,由于實(shí)際未更新因而不需要恢復(fù)。但主文件39在檢驗(yàn)點(diǎn)以后卻已經(jīng)更新過(guò)了,因此需要恢復(fù)。因而,根據(jù)不確定隊(duì)列431所保存的“文件寫入信息”,通過(guò)從備份文件41中讀出主文件39更新前數(shù)據(jù),并將該讀出的更新前數(shù)據(jù)寫入主文件39中來(lái)恢復(fù)。而且,之后將保存在不確定隊(duì)列431中的“文件寫入信息”廢棄。另外,在確定隊(duì)列432中保存“文件寫入信息”時(shí),該“文件寫入信息”向備份文件41反映結(jié)束后,才開(kāi)始上述恢復(fù)處理。
而主計(jì)算機(jī)30或控制主計(jì)算機(jī)30的操作系統(tǒng)發(fā)生系統(tǒng)故障這類故障,從備用計(jì)算機(jī)40上最后采集的檢驗(yàn)點(diǎn)起重新執(zhí)行進(jìn)程35時(shí),進(jìn)程47由檢驗(yàn)點(diǎn)信息恢復(fù)部46恢復(fù)地址空間和處理器關(guān)聯(lián)。
就文件而言,備份文件41只是檢驗(yàn)點(diǎn)以后的更新仍在不確定隊(duì)列431中保存“文件寫入信息”,由于實(shí)際未更新因而不需要恢復(fù)。
另外,對(duì)于該“文件寫入信息”從主計(jì)算機(jī)30傳送至備用計(jì)算機(jī)40,可以最優(yōu)化處理。發(fā)生故障時(shí),主計(jì)算機(jī)30沒(méi)有故障時(shí),則恢復(fù)主文件39,用主文件39重新開(kāi)始從檢驗(yàn)點(diǎn)起的處理。而故障發(fā)生的時(shí)候,主計(jì)算機(jī)30故障時(shí),則用備份文件41重新開(kāi)始從檢驗(yàn)點(diǎn)起的處理。
因此,“文件寫入信息”不需要即時(shí)從主文件操作部38送至備份文件操作部43。具體來(lái)說(shuō),這些“文件寫入信息”可以在下一檢驗(yàn)點(diǎn)之前傳送,因而若考慮傳送效率的話,便在主文件操作部38存儲(chǔ)一次,一旦有“存儲(chǔ)了規(guī)定容量”、“經(jīng)過(guò)了規(guī)定時(shí)間”和“請(qǐng)求過(guò)檢驗(yàn)點(diǎn)采集”這種情況發(fā)生,可以匯總送至備份文件操作部43。
圖3示出適用本實(shí)施例的計(jì)算機(jī)系統(tǒng)的概略構(gòu)成。計(jì)算機(jī)由主計(jì)算機(jī)30和備用計(jì)算機(jī)40實(shí)現(xiàn)雙重化,主計(jì)算機(jī)30連接有盤裝置60a,備用計(jì)算機(jī)40連接有盤裝置60b。進(jìn)程35在主計(jì)算機(jī)上執(zhí)行,而且該進(jìn)程35存取的文件由主文件39和備份文件41實(shí)現(xiàn)雙重化,并分別配置于盤裝置60a和盤裝置60b。
而且,檢驗(yàn)點(diǎn)將檢驗(yàn)點(diǎn)信息保持在主計(jì)算機(jī)30一側(cè)(主檢驗(yàn)點(diǎn)信息34)和備用計(jì)算機(jī)40一側(cè)(備份檢驗(yàn)點(diǎn)信息45)兩處位置。另外,此圖中是將檢驗(yàn)點(diǎn)保持在盤裝置上的,但保持在存儲(chǔ)器上也行。
萬(wàn)一主計(jì)算機(jī)30或控制主計(jì)算機(jī)30的操作系統(tǒng)發(fā)生系統(tǒng)故障這類故障時(shí),便在備用計(jì)算機(jī)40一側(cè)用檢驗(yàn)點(diǎn)信息45重新執(zhí)行進(jìn)程47。這時(shí)進(jìn)程47便采用備份文件41。
而且,也可以擁有多個(gè)主文件39或備份文件41,作成三重化以上文件系統(tǒng)。這時(shí),若為三重化系統(tǒng)的話,可以考慮下述組合(1)2個(gè)主文件和1個(gè)備份文件(2)1個(gè)主文件和2個(gè)備份文件圖4示意的是本實(shí)施例更新文件的狀態(tài)。本例中,在主計(jì)算機(jī)30上工作的進(jìn)程35對(duì)于具有4字節(jié)數(shù)據(jù)“ABCD”的雙重化文件(主計(jì)算機(jī)30上的主文件39和備用計(jì)算機(jī)40上的備份文件41),在時(shí)刻t1將“X”寫入第一字節(jié)(1)。主文件39由此即時(shí)更新,但備份文件41沒(méi)有被即時(shí)更新,而是僅僅保存“文件寫入信息”。
然后,通過(guò)在時(shí)刻t2采集檢驗(yàn)點(diǎn),確定是否保存了方才說(shuō)明的“文件寫入信息”(2)。接下來(lái)在時(shí)刻t2以后,根據(jù)所確定的“文件寫入信息”,執(zhí)行對(duì)備份文件41的更新。
圖5示意的是本實(shí)施例在故障發(fā)生時(shí)恢復(fù)主文件的狀態(tài)。本例中,在主計(jì)算機(jī)30上工作的進(jìn)程35對(duì)于具有4字節(jié)數(shù)據(jù)“ABCD”的雙重化文件(主計(jì)算機(jī)30上的主文件39和備用計(jì)算機(jī)40上的備份文件41),在時(shí)刻t1將“X”寫入第一字節(jié)(1)。主文件39由此即時(shí)更新,但備份文件41沒(méi)有被即時(shí)更新,而是僅僅保存“文件寫入信息”。
然后,在時(shí)刻t2發(fā)生故障(2)。具體來(lái)說(shuō),主文件39被時(shí)刻t1的“文件寫入信息”更新,因而需要恢復(fù),但備份文件41尚未被更新,因而不需要恢復(fù)。按照這里時(shí)刻t1保存的“文件寫入信息”,主文件39的更新部分改變。因此,在主文件39恢復(fù)過(guò)程中,通過(guò)從備份文件41當(dāng)中讀出不確定“文件寫入信息”所示位置的數(shù)據(jù),向主文件39寫入這種讀出的數(shù)據(jù),來(lái)恢復(fù)主文件39。
接下來(lái),利用主計(jì)算機(jī)30上采集的檢驗(yàn)點(diǎn),在主計(jì)算機(jī)30上重新執(zhí)行進(jìn)程35。這種重新執(zhí)行的進(jìn)程35采用已恢復(fù)主文件39。
圖6是示意指令文件操作部“寫入文件”時(shí)處理流程的流程圖。這時(shí),首先保存“文件寫入信息”,并與不確定隊(duì)列431相聯(lián)(步驟A1)。接下來(lái),按照“文件寫入信息”,對(duì)主文件39進(jìn)行更新(步驟A2)。在這一時(shí)刻,一旦“文件寫入”操作結(jié)束,就向請(qǐng)求側(cè)發(fā)出結(jié)束通知(步驟A3)。
圖7是示意指令文件操作部“采集檢驗(yàn)點(diǎn)”時(shí)處理流程的流程圖。這時(shí),所保存的“文件寫入信息”從不確定隊(duì)列431移至確定隊(duì)列432(步驟B1)。
圖8是示意備份文件更新部處理流程的流程圖。這時(shí),首先檢查“文件寫入信息”是否與確定隊(duì)列432相聯(lián)(步驟C1)。若未相聯(lián)時(shí)(步驟C1的N),備份文件更新部44繼續(xù)該檢查。而相聯(lián)時(shí)(步驟C1的Y),便根據(jù)與確定隊(duì)列432相聯(lián)的“文件寫入信息”,更新備份文件41(步驟C2)。接著,從確定隊(duì)列432刪除已執(zhí)行的“文件寫入信息”(步驟C3)。
圖9是示意進(jìn)程35發(fā)生異常終止這類故障,在主計(jì)算機(jī)30上從最后采集的檢驗(yàn)點(diǎn)起重新執(zhí)行進(jìn)程35時(shí)的處理流程的流程圖。
進(jìn)程35發(fā)生故障的話,首先向主計(jì)算機(jī)30上的檢驗(yàn)點(diǎn)信息恢復(fù)部33指令“恢復(fù)地址空間和處理器關(guān)聯(lián)”(步驟D1)。接著,向主文件恢復(fù)部37指令“恢復(fù)主文件”(步驟D2)。
圖10是示意指令主計(jì)算機(jī)30上檢驗(yàn)點(diǎn)信息恢復(fù)部33“恢復(fù)地址空間和處理器關(guān)聯(lián)”時(shí)處理流程的流程圖。這時(shí),首先恢復(fù)進(jìn)程35的地址空間(步驟E1)。接著,恢復(fù)進(jìn)程35在檢驗(yàn)點(diǎn)采集時(shí)的處理器關(guān)聯(lián)狀態(tài)(步驟E2)。
圖11是示意指令主文件恢復(fù)部37“恢復(fù)主文件”時(shí)處理流程的流程圖。這時(shí),首先檢查“文件寫入信息”是否與不確定隊(duì)列431相聯(lián)(步驟F1)?!拔募懭胄畔ⅰ毕嗦?lián)時(shí)(步驟F1的Y),按照與不確定隊(duì)列431相聯(lián)的“文件寫入信息”,通過(guò)從備份文件41中讀出主文件39當(dāng)中更新部分的數(shù)據(jù),并向主文件39寫入該讀出的數(shù)據(jù),恢復(fù)主文件39其更新部分的數(shù)據(jù)(步驟F2)。接著,從不確定隊(duì)列431中刪除(廢棄)用于恢復(fù)的“文件寫入信息”(步驟F3)。重復(fù)這種處理直至沒(méi)有與不確定隊(duì)列431相聯(lián)的“文件寫入信息”為止。
主計(jì)算機(jī)30或控制主計(jì)算機(jī)30的操作系統(tǒng)發(fā)生系統(tǒng)故障這類故障時(shí),在備用計(jì)算機(jī)40上從最后采集的檢驗(yàn)點(diǎn)起重新執(zhí)行進(jìn)程35。這時(shí),由備份文件41繼續(xù)處理。圖12示意的是故障發(fā)生時(shí)由備份文件41繼續(xù)處理的狀態(tài)。
本例中,在主計(jì)算機(jī)30上工作的進(jìn)程35對(duì)于具有4字節(jié)數(shù)據(jù)“ABCD”的雙重化文件(主計(jì)算機(jī)30上的主文件39和備用計(jì)算機(jī)40上的備份文件41),在時(shí)刻t1將“X”寫入第一字節(jié)(1)。主文件39由此即時(shí)更新,但備份文件41沒(méi)有被即時(shí)更新,而是僅僅保存“文件寫入信息”。
然后,在時(shí)刻t2主計(jì)算機(jī)30發(fā)生故障(2)。這時(shí),利用備用計(jì)算機(jī)40上采集的檢驗(yàn)點(diǎn),在備用計(jì)算機(jī)40上重新執(zhí)行進(jìn)程47。這時(shí),進(jìn)程47當(dāng)然是利用備份文件41繼續(xù)處理的,由于在時(shí)刻t1主文件39被更新,而備份文件41尚未被更新,因而在備用計(jì)算機(jī)40上對(duì)進(jìn)程47重新執(zhí)行過(guò)程中,仍然可以用備份文件41。
另外,因發(fā)生故障而斷開(kāi)備份文件時(shí),通過(guò)此后制成新備份文件,便可以再次重現(xiàn)圖1那種初始狀態(tài),對(duì)于再次發(fā)生故障也能進(jìn)行恢復(fù)處理。
而因發(fā)生故障由備份文件繼續(xù)處理,從檢驗(yàn)點(diǎn)起重新執(zhí)行處理時(shí),通過(guò)此后以備份文件為主文件再制作備份文件,可以再次重現(xiàn)圖1那種初始狀態(tài),對(duì)于再次發(fā)生故障也能進(jìn)行恢復(fù)處理。制作這種再次備份文件時(shí),有下述三種方法。
(1)保存?zhèn)浞菸募嚅_(kāi)后主文件的更新信息和數(shù)據(jù),使備份文件重新連接時(shí),向備份文件反映上述斷開(kāi)后主文件更新信息和數(shù)據(jù)。
(2)將主文件復(fù)制為備份文件。但在復(fù)制中主文件還在繼續(xù)更新時(shí),在開(kāi)始復(fù)制的同時(shí)也向備份文件反映文件的更新信息和數(shù)據(jù)。
此外,將這2種方法組合起來(lái)的下述方法也有效。
(3)以重新連接已斷開(kāi)的備份文件(或故障發(fā)生前主文件)為前提,要規(guī)定時(shí)間之前可采取方法(1),保存?zhèn)浞菸募嚅_(kāi)后主文件的更新信息和數(shù)據(jù)。若經(jīng)過(guò)規(guī)定時(shí)間,則不采用方法(1),停止保存?zhèn)浞菸募嚅_(kāi)后主文件的更新信息和數(shù)據(jù),而采取方法(2)。此外,由已斷開(kāi)備份文件以外文件重新連接時(shí),也停止對(duì)備份文件斷開(kāi)后主文件更新信息和數(shù)據(jù)的保存,而采取方法(2)。
(第二實(shí)施例)以下說(shuō)明本發(fā)明第二實(shí)施例。第一實(shí)施例中說(shuō)明的是雙重化計(jì)算機(jī)系統(tǒng),但本發(fā)明運(yùn)用于未實(shí)現(xiàn)雙重化的計(jì)算機(jī)上的文件系統(tǒng)也是有效的。因此,本實(shí)施例以運(yùn)用于未實(shí)現(xiàn)雙重化的計(jì)算機(jī)上的文件系統(tǒng)的場(chǎng)合為例進(jìn)行說(shuō)明。圖13是將本發(fā)明運(yùn)用于未實(shí)現(xiàn)雙重化的計(jì)算機(jī)上的文件系統(tǒng)的場(chǎng)合的結(jié)構(gòu)圖。本系統(tǒng)中計(jì)算機(jī)未雙重化,只有計(jì)算機(jī)30。進(jìn)程35在該計(jì)算機(jī)30上執(zhí)行,對(duì)由主文件39和備份文件41實(shí)現(xiàn)雙重化的文件進(jìn)行更新。具體來(lái)說(shuō),這些主文件39和備份文件41一起配置在計(jì)算機(jī)30上,通過(guò)文件系統(tǒng)36更新。
計(jì)算機(jī)30上的文件系統(tǒng)36包括主文件操作部38,主文件恢復(fù)部37,備份文件操作部43,不確定隊(duì)列431,確定隊(duì)列432,備份文件更新部44和主文件恢復(fù)信息讀出部42。
進(jìn)程35更新這種雙重化文件時(shí),是經(jīng)由主文件操作部38和備份文件操作部43進(jìn)行的。進(jìn)程35對(duì)這種雙重化文件進(jìn)行寫入的話,主文件39就原樣被更新,而備份文件41則不被更新,“文件寫入信息”經(jīng)由備份文件操作部43保存在不確定隊(duì)列431中。
而且,進(jìn)程35采集檢驗(yàn)點(diǎn)時(shí),檢驗(yàn)點(diǎn)控制部31向檢驗(yàn)點(diǎn)信息保存部32和主文件操作部43發(fā)出指令。檢驗(yàn)點(diǎn)信息保存部32一旦接收檢驗(yàn)點(diǎn)采集指令,便在計(jì)算機(jī)30上采集地址空間和處理器關(guān)聯(lián)(檢驗(yàn)點(diǎn)信息34)。
而主文件操作部38一旦接收檢驗(yàn)點(diǎn)采集指令,便經(jīng)由備份文件操作部43將保存在不確定隊(duì)列431中的“文件寫入信息”移至確定隊(duì)列432。移至確定隊(duì)列432的“文件寫入信息”,在檢驗(yàn)點(diǎn)采集后由備份文件更新部44用于備份文件41的更新,在備份文件41更新后廢棄。因此,與檢驗(yàn)點(diǎn)以后對(duì)主文件39進(jìn)行的動(dòng)作相同,對(duì)備份文件41進(jìn)行寫入操作。
進(jìn)程35發(fā)生異常終止等故障,在計(jì)算機(jī)30上從最后采集的檢驗(yàn)點(diǎn)起重新執(zhí)行進(jìn)程35時(shí),由計(jì)算機(jī)30上檢驗(yàn)點(diǎn)信息恢復(fù)部33恢復(fù)地址空間和處理器關(guān)聯(lián)。
就文件而言,備份文件41只是檢驗(yàn)點(diǎn)以后的更新仍在不確定隊(duì)列431中保存“文件寫入信息”,由于實(shí)際未更新因而不需要恢復(fù)。但主文件39在檢驗(yàn)點(diǎn)以后卻已經(jīng)更新過(guò)了,因此需要恢復(fù)。因而,根據(jù)不確定隊(duì)列431所保存的“文件寫入信息”,通過(guò)從備份文件41中讀出主文件39更新前數(shù)據(jù),并將這種讀出的更新前數(shù)據(jù)寫入主文件39中來(lái)恢復(fù)。而且,之后將保存在不確定隊(duì)列431中的“文件寫入信息”廢棄。另外,在確定隊(duì)列432中保存“文件寫入信息”時(shí),該“文件寫入信息”向備份文件41反映結(jié)束后,才開(kāi)始上述恢復(fù)處理。
圖14示出適用本實(shí)施例的計(jì)算機(jī)系統(tǒng)的概略構(gòu)成。本實(shí)施例系統(tǒng)僅僅為計(jì)算機(jī)30,未實(shí)現(xiàn)雙重化。計(jì)算機(jī)30連接有盤裝置60a和盤裝置60b。進(jìn)程35在計(jì)算機(jī)30上執(zhí)行,而且該進(jìn)程35存取的文件由主文件39和備份文件41實(shí)現(xiàn)雙重化,并分別配置于盤裝置60a和盤裝置60b。
象這樣通過(guò)運(yùn)用本發(fā)明,一面定期保存進(jìn)程地址空間和處理器關(guān)聯(lián)等狀態(tài)(檢驗(yàn)點(diǎn)信息),一面繼續(xù)執(zhí)行,當(dāng)故障發(fā)生時(shí)從最后保存的檢驗(yàn)點(diǎn)起重新執(zhí)行進(jìn)程,在具有這種故障應(yīng)付措施的系統(tǒng)中,對(duì)文件更新時(shí),不需要從文件當(dāng)中讀取一次更新前數(shù)據(jù),因而可大幅改善文件更新性能。
另外,上述實(shí)施例記載的文件管理方法作為在計(jì)算機(jī)上可執(zhí)行的程序可以存儲(chǔ)于軟磁盤、光盤和半導(dǎo)體存儲(chǔ)器等存儲(chǔ)介質(zhì)進(jìn)行發(fā)布。
綜上所述,按照本發(fā)明,進(jìn)程請(qǐng)求文件更新時(shí),取得并保存表示其更新內(nèi)容的更新信息,同時(shí)立即僅僅對(duì)主文件更新,采集過(guò)檢驗(yàn)點(diǎn)以后,向備份文件反映由該保存的更新信息表示的更新內(nèi)容。而且,在例如進(jìn)程異常終止等時(shí)候,根據(jù)所保存的更新信息,從備份文件當(dāng)中將最后采集的檢驗(yàn)點(diǎn)以后更新的數(shù)據(jù)所對(duì)應(yīng)的更新前數(shù)據(jù)全部讀出,用這種讀出的更新前數(shù)據(jù)將主文件恢復(fù)至檢驗(yàn)點(diǎn)時(shí)刻,再開(kāi)始重新執(zhí)行進(jìn)程(也可以開(kāi)始重新執(zhí)行用備份文件的進(jìn)程)。
具體來(lái)說(shuō),本計(jì)算機(jī)系統(tǒng)實(shí)現(xiàn)故障時(shí)的文件恢復(fù)時(shí),避免象以往那樣更新文件時(shí)讓通常處理處于待機(jī)狀態(tài)直到結(jié)束讀出和保留更新前數(shù)據(jù)這種處理,從而能夠在不損害可靠性的情況下使文件更新性能大幅提高。
權(quán)利要求
1.一種計(jì)算機(jī)系統(tǒng),為運(yùn)行子系統(tǒng)和待機(jī)子系統(tǒng)的2臺(tái)計(jì)算機(jī)實(shí)現(xiàn)雙重化的計(jì)算機(jī)系統(tǒng),所述計(jì)算機(jī)系統(tǒng)定期采集重新開(kāi)始中斷處理用的檢驗(yàn)點(diǎn),并保存在所述運(yùn)行子系統(tǒng)和待機(jī)子系統(tǒng)兩者的計(jì)算機(jī)上,其特征在于包括由所述運(yùn)行子系統(tǒng)和待機(jī)子系統(tǒng)兩者的計(jì)算機(jī)雙重化設(shè)置可由所述運(yùn)行子系統(tǒng)計(jì)算機(jī)上執(zhí)行的進(jìn)程加以更新的文件;所述進(jìn)程有文件更新指令來(lái)時(shí),將其更新信息保存在所述待機(jī)子系統(tǒng)計(jì)算機(jī)上,僅更新運(yùn)行子系統(tǒng)的文件,在該更新結(jié)束時(shí)刻向該更新請(qǐng)求源通知更新結(jié)束的裝置;采集所述檢驗(yàn)點(diǎn)之后,向所述待機(jī)子系統(tǒng)的文件反映所述更新信息表示的更新內(nèi)容的裝置。
2.如權(quán)利要求1所述的計(jì)算機(jī)系統(tǒng),其特征在于還包括在所述運(yùn)行子系統(tǒng)計(jì)算機(jī)上對(duì)所述更新信息進(jìn)行緩存,并在所述檢驗(yàn)點(diǎn)采集時(shí)刻之前匯總傳送至所述待機(jī)子系統(tǒng)計(jì)算機(jī)的裝置。
3.如權(quán)利要求1所述的計(jì)算機(jī)系統(tǒng),其特征在于還包括所述進(jìn)程異常終止時(shí),根據(jù)所述更新信息,從所述待機(jī)子系統(tǒng)的文件當(dāng)中,讀出最后檢驗(yàn)點(diǎn)以后執(zhí)行的文件更新所對(duì)應(yīng)的更新前數(shù)據(jù),將所述運(yùn)行子系統(tǒng)的文件恢復(fù)至所述檢驗(yàn)點(diǎn)時(shí)刻狀態(tài)之后,從所述檢驗(yàn)點(diǎn)起重新執(zhí)行所述進(jìn)程的裝置。
4.如權(quán)利要求1所述的計(jì)算機(jī)系統(tǒng),其特征在于還包括所述進(jìn)程異常終止時(shí),刪除最后檢驗(yàn)點(diǎn)以后保存的更新信息,向所述待機(jī)子系統(tǒng)文件反映所述檢驗(yàn)點(diǎn)以前更新信息所表示的更新之后,在所述待機(jī)子系統(tǒng)計(jì)算機(jī)上從所述檢驗(yàn)點(diǎn)起重新執(zhí)行所述進(jìn)程的裝置。
5.如權(quán)利要求1所述的計(jì)算機(jī)系統(tǒng),其特征在于還包括所述運(yùn)行子系統(tǒng)計(jì)算機(jī)或控制該運(yùn)行子系統(tǒng)計(jì)算機(jī)的操作系統(tǒng)發(fā)生故障時(shí),刪除最后檢驗(yàn)點(diǎn)以后保存的更新信息,向所述待機(jī)子系統(tǒng)文件反映所述檢驗(yàn)點(diǎn)以前更新信息所表示的更新之后,在所述待機(jī)子系統(tǒng)計(jì)算機(jī)上從所述檢驗(yàn)點(diǎn)起重新執(zhí)行所述進(jìn)程的裝置。
6.如權(quán)利要求1所述的計(jì)算機(jī)系統(tǒng),其特征在于還包括所述待機(jī)子系統(tǒng)計(jì)算機(jī)或控制該待機(jī)子系統(tǒng)計(jì)算機(jī)的操作系統(tǒng)發(fā)生故障時(shí),停止將所述檢驗(yàn)點(diǎn)和更新信息傳送至待機(jī)子系統(tǒng)計(jì)算機(jī)的裝置。
7.如權(quán)利要求1所述的計(jì)算機(jī)系統(tǒng),其特征在于還包括所述運(yùn)行子系統(tǒng)的文件發(fā)生故障時(shí),刪除最后檢驗(yàn)點(diǎn)以后保存的更新信息,向所述待機(jī)子系統(tǒng)文件反映所述檢驗(yàn)點(diǎn)以前更新信息所表示的更新之后,在所述待機(jī)子系統(tǒng)計(jì)算機(jī)上從所述檢驗(yàn)點(diǎn)起重新執(zhí)行所述進(jìn)程的裝置。
8.如權(quán)利要求1所述的計(jì)算機(jī)系統(tǒng),其特征在于還包括所述待機(jī)子系統(tǒng)的文件發(fā)生故障時(shí),停止將所述檢驗(yàn)點(diǎn)和更新信息傳送至待機(jī)子系統(tǒng)計(jì)算機(jī)的裝置。
9.如權(quán)利要求1所述的計(jì)算機(jī)系統(tǒng),其特征在于還包括將所述待機(jī)子系統(tǒng)的文件斷開(kāi)時(shí),在第三計(jì)算機(jī)上重新確保待機(jī)子系統(tǒng)的文件的裝置。
10.如權(quán)利要求1所述的計(jì)算機(jī)系統(tǒng),其特征在于還包括用待機(jī)子系統(tǒng)的文件從所述檢驗(yàn)點(diǎn)起重新執(zhí)行所述進(jìn)程時(shí),將所述待機(jī)子系統(tǒng)的文件切換為運(yùn)行子系統(tǒng),在所述運(yùn)行子系統(tǒng)計(jì)算機(jī)上重新確保待機(jī)子系統(tǒng)的文件的裝置。
11.一種文件管理系統(tǒng),為運(yùn)行子系統(tǒng)和待機(jī)子系統(tǒng)的2臺(tái)計(jì)算機(jī)實(shí)現(xiàn)雙重化的計(jì)算機(jī)系統(tǒng),定期采集重新開(kāi)始中斷處理用的檢驗(yàn)點(diǎn),并保存在所述運(yùn)行子系統(tǒng)和待機(jī)子系統(tǒng)兩者的計(jì)算機(jī)上的計(jì)算機(jī)系統(tǒng)的文件管理方法,其特征在于包括由所述運(yùn)行子系統(tǒng)和待機(jī)子系統(tǒng)兩者的計(jì)算機(jī)雙重化設(shè)置可由所述運(yùn)行子系統(tǒng)計(jì)算機(jī)上執(zhí)行的進(jìn)程加以更新的文件;所述進(jìn)程有文件更新指令來(lái)時(shí),將其更新信息保存在所述待機(jī)子系統(tǒng)計(jì)算機(jī)上,僅更新運(yùn)行子系統(tǒng)的文件,在該更新結(jié)束時(shí)刻向該更新請(qǐng)求源通知更新結(jié)束的步驟;采集所述檢驗(yàn)點(diǎn)之后,向所述待機(jī)子系統(tǒng)的文件反映所述更新信息表示的更新內(nèi)容的步驟。
12.一種可供計(jì)算機(jī)讀取的存儲(chǔ)介質(zhì),存儲(chǔ)有一種計(jì)算機(jī)系統(tǒng)文件管理用程序,用于管理由運(yùn)行子系統(tǒng)和待機(jī)子系統(tǒng)的2臺(tái)計(jì)算機(jī)實(shí)現(xiàn)雙重化,定期采集重新開(kāi)始中斷處理用的檢驗(yàn)點(diǎn),并保存在所述運(yùn)行子系統(tǒng)和待機(jī)子系統(tǒng)兩者的計(jì)算機(jī)上,在所述運(yùn)行子系統(tǒng)和待機(jī)子系統(tǒng)兩者的計(jì)算機(jī)上多重化設(shè)置可由所述運(yùn)行子系統(tǒng)計(jì)算機(jī)上執(zhí)行的進(jìn)程加以更新的文件這樣一種計(jì)算機(jī)系統(tǒng),其特征在于,所述程序用于控制計(jì)算機(jī),當(dāng)所述進(jìn)程有文件更新指令來(lái)時(shí),在所述待機(jī)子系統(tǒng)計(jì)算機(jī)上保存該更新信息,而僅僅更新運(yùn)行子系統(tǒng)的文件,在該更新結(jié)束時(shí)刻向該更新請(qǐng)求源通知更新結(jié)束,采集了所述檢驗(yàn)點(diǎn)之后,向所述待機(jī)子系統(tǒng)的文件反映所述更新信息所表示的更新內(nèi)容。
全文摘要
本發(fā)明提供一種文件更新時(shí)不必待機(jī)等待更新前數(shù)據(jù)保留,故障發(fā)生時(shí)即實(shí)現(xiàn)重新運(yùn)行的計(jì)算機(jī)系統(tǒng)。請(qǐng)求向文件寫入等時(shí)候,將其“文件寫入信息”保存于不確定隊(duì)列431,立即僅對(duì)主文件39進(jìn)行更新。采集了檢驗(yàn)點(diǎn)之后,將不確定隊(duì)列431保存的“文件寫入信息”移至確定隊(duì)列432,并反映至備分文件41。而恢復(fù)時(shí),根據(jù)不確定隊(duì)列431保存的“文件寫入信息”,從備分文件當(dāng)中將最后采集的檢驗(yàn)點(diǎn)以后更新的數(shù)據(jù)所對(duì)應(yīng)的更新前數(shù)據(jù)全部讀出,用以將主文件39恢復(fù)至檢驗(yàn)點(diǎn)時(shí)刻。
文檔編號(hào)G06F11/14GK1175739SQ97114600
公開(kāi)日1998年3月11日 申請(qǐng)日期1997年7月17日 優(yōu)先權(quán)日1996年9月3日
發(fā)明者平山秀昭, 白木原敏雄 申請(qǐng)人:東芝株式會(huì)社