專利名稱:管理文件系統(tǒng)版本的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及管理文件系統(tǒng)版本的方法和系統(tǒng)。更具體地說,本發(fā)明涉及文件系統(tǒng)的邏輯版本的產(chǎn)生和去除。
背景技術(shù):
管理邏輯文件系統(tǒng)版本的系統(tǒng)和方法在本領(lǐng)域中已為人們所知。圖1是運(yùn)行單一操作系統(tǒng)實(shí)例的節(jié)點(diǎn)12的方框圖10。節(jié)點(diǎn)12具有帶有文件系統(tǒng)管理邏輯16的節(jié)點(diǎn)軟件14。另外,該節(jié)點(diǎn)與包括文件數(shù)據(jù)空間和系統(tǒng)元數(shù)據(jù)空間19的本地存儲(chǔ)介質(zhì)18通信。文件系統(tǒng)管理邏輯16起管理文件系統(tǒng)的邏輯版本的作用。現(xiàn)有系統(tǒng)向文件系統(tǒng)的邏輯版本分配一個(gè)紀(jì)元編號(hào)(epoch number),但是不包括用于文件系統(tǒng)內(nèi)的對(duì)象的識(shí)別系統(tǒng)。為了確定在現(xiàn)有文件系統(tǒng)版本中是否已刪除了某一對(duì)象,必須檢查其它記錄,以確定該對(duì)象的死亡紀(jì)元編號(hào)是什么。因此,現(xiàn)有系統(tǒng)不包括識(shí)別邏輯文件系統(tǒng)版本內(nèi),確定其中對(duì)象有效的邏輯文件系統(tǒng)范圍的對(duì)象的邏輯。
類似地,圖2是與存儲(chǔ)區(qū)域網(wǎng)絡(luò)30通信的客戶機(jī)/服務(wù)器節(jié)點(diǎn)22的方框圖20??蛻魴C(jī)/服務(wù)器節(jié)點(diǎn)具有帶有文件系統(tǒng)邏輯26的軟件24。另外,客戶機(jī)/服務(wù)器節(jié)點(diǎn)22與包括文件數(shù)據(jù)空間32和文件系統(tǒng)元數(shù)據(jù)空間34的存儲(chǔ)區(qū)域網(wǎng)絡(luò)30通信。在打開存儲(chǔ)區(qū)域網(wǎng)絡(luò)30中的存儲(chǔ)介質(zhì)上的現(xiàn)有文件對(duì)象的內(nèi)容的過程中,客戶機(jī)聯(lián)系客戶機(jī)/服務(wù)器節(jié)點(diǎn)22,以便獲得元數(shù)據(jù)。元數(shù)據(jù)向客戶機(jī)提供關(guān)于文件的信息,例如文件屬性及在存儲(chǔ)設(shè)備上的位置。客戶機(jī)/服務(wù)器節(jié)點(diǎn)22對(duì)存儲(chǔ)區(qū)域網(wǎng)絡(luò)30的元數(shù)據(jù)34內(nèi)的請(qǐng)求文件,進(jìn)行元數(shù)據(jù)信息的查尋??蛻魴C(jī)/服務(wù)器22把文件元數(shù)據(jù)傳送給請(qǐng)求客戶機(jī),包括構(gòu)成該文件的所有數(shù)據(jù)塊的位置。一旦客戶機(jī)知道數(shù)據(jù)塊位置,則客戶機(jī)能夠直接從與存儲(chǔ)區(qū)域網(wǎng)絡(luò)30通信的共享存儲(chǔ)設(shè)備獲得該文件的數(shù)據(jù)。另外,客戶機(jī)/服務(wù)器節(jié)點(diǎn)22包括具有文件系統(tǒng)邏輯26的軟件24。文件系統(tǒng)邏輯26起產(chǎn)生并管理文件系統(tǒng)的準(zhǔn)瞬時(shí)(near-instantaneous)邏輯版本。但是,文件系統(tǒng)邏輯26向文件系統(tǒng)的邏輯版本分配一個(gè)紀(jì)元編號(hào),但是不包括用于文件系統(tǒng)內(nèi)的對(duì)象的一個(gè)兩部分識(shí)別系統(tǒng)。因此,現(xiàn)有系統(tǒng)不包括識(shí)別邏輯文件系統(tǒng)版本內(nèi),確定其中對(duì)象有效的邏輯文件系統(tǒng)范圍的對(duì)象的邏輯。
邏輯文件系統(tǒng)版本的產(chǎn)生的其它例子是盤鏡像(disk mirroring)。借助該方法,在兩個(gè)盤上保持文件系統(tǒng)數(shù)據(jù)的兩個(gè)物理邏輯版本。通過使鏡像分裂開,產(chǎn)生文件系統(tǒng)的準(zhǔn)瞬時(shí)版本。從而,文件系統(tǒng)數(shù)據(jù)的邏輯版本導(dǎo)致使所需存儲(chǔ)空間數(shù)量加倍的代價(jià)。另外,在能夠獲得文件系統(tǒng)的后續(xù)邏輯版本之前,這種方法要求產(chǎn)生另一鏡像對(duì)。產(chǎn)生文件系統(tǒng)邏輯版本的另一例子是基于日志的文件系統(tǒng),其中對(duì)文件系統(tǒng)對(duì)象的每個(gè)修改進(jìn)行寫時(shí)復(fù)制過程(copy-on-write procedure)。定期檢查系統(tǒng)的狀態(tài),以便記錄文件系統(tǒng)的狀態(tài),并去除非引用的邏輯文件系統(tǒng)版本。另外,后臺(tái)進(jìn)程持續(xù)不斷地聯(lián)合文件系統(tǒng)的內(nèi)容。因此,這兩個(gè)例子在效率方面都有限,并且增大了存儲(chǔ)容量要求。
在支持文件系統(tǒng)的邏輯版本的已知現(xiàn)有系統(tǒng)中,存在和要求增大存儲(chǔ)空間及后臺(tái)處理相關(guān)的限制。于是,需要既無需增大存儲(chǔ)空間又無需后臺(tái)處理的文件系統(tǒng)邏輯版本的準(zhǔn)瞬時(shí)產(chǎn)生和存儲(chǔ)。
發(fā)明內(nèi)容
本發(fā)明包括管理文件系統(tǒng)的邏輯版本的方法和系統(tǒng)。
在本發(fā)明的第一方面,提供一種管理文件系統(tǒng)的邏輯版本的方法。向文件系統(tǒng)的邏輯版本分配一個(gè)紀(jì)元(epoch)值。向文件系統(tǒng)對(duì)象分配一對(duì)紀(jì)元值。保持所有有效的文件系統(tǒng)紀(jì)元值的版本表,同時(shí)每個(gè)列出的紀(jì)元值對(duì)應(yīng)于文件系統(tǒng)的一個(gè)有效邏輯版本。通過把文件系統(tǒng)的邏輯版本的當(dāng)前紀(jì)元值保存在永久存儲(chǔ)器中的版本表中,并單調(diào)遞增當(dāng)前文件系統(tǒng)紀(jì)元值,在單一時(shí)刻(single point-in-time)產(chǎn)生文件系統(tǒng)的準(zhǔn)瞬時(shí)邏輯版本。對(duì)象紀(jì)元值對(duì)確定其中對(duì)象有效的邏輯文件系統(tǒng)版本的范圍。
在本發(fā)明的第二方面,提供一種數(shù)據(jù)存儲(chǔ)系統(tǒng)。該系統(tǒng)包括由一個(gè)紀(jì)元值識(shí)別的邏輯文件系統(tǒng)版本,和由一對(duì)紀(jì)元值識(shí)別的文件系統(tǒng)對(duì)象。版本表被用于保持所有有效的文件系統(tǒng)紀(jì)元值的列表。列出的每個(gè)紀(jì)元值對(duì)應(yīng)于文件系統(tǒng)的一個(gè)有效邏輯版本。提供在單一時(shí)刻產(chǎn)生文件系統(tǒng)的準(zhǔn)瞬時(shí)邏輯版本的版本管理器。與文件系統(tǒng)的當(dāng)前邏輯版本相關(guān)的當(dāng)前紀(jì)元值適合于保存在永久存儲(chǔ)器中的版本表中。另外,版本管理器單調(diào)增大當(dāng)前文件系統(tǒng)紀(jì)元值。對(duì)象紀(jì)元值對(duì)確定其中對(duì)象有效的文件系統(tǒng)邏輯版本的范圍。
在本發(fā)明的第三方面,提供一種計(jì)算機(jī)可讀信號(hào)承載介質(zhì)。在介質(zhì)中提供向文件系統(tǒng)的邏輯版本分配一個(gè)紀(jì)元值,向文件系統(tǒng)對(duì)象分配一對(duì)紀(jì)元值的單元。另外,在介質(zhì)中提供保持所有有效文件系統(tǒng)紀(jì)元值的版本表的單元,每個(gè)列出的紀(jì)元值對(duì)應(yīng)于文件系統(tǒng)的一個(gè)有效邏輯版本。最后,在介質(zhì)中提供在單一時(shí)刻產(chǎn)生文件系統(tǒng)的準(zhǔn)瞬時(shí)邏輯版本的單元。文件系統(tǒng)產(chǎn)生單元把文件系統(tǒng)的邏輯版本的當(dāng)前紀(jì)元值保存在永久存儲(chǔ)器中的版本表中,并單調(diào)遞增當(dāng)前文件系統(tǒng)紀(jì)元值。對(duì)象紀(jì)元值對(duì)確定其中對(duì)象有效的文件系統(tǒng)邏輯版本的范圍。
在本發(fā)明的第四方面,提供一種管理文件系統(tǒng)的邏輯版本的方法。文件系統(tǒng)邏輯被嵌入運(yùn)行單一操作系統(tǒng)實(shí)例的節(jié)點(diǎn)的服務(wù)器軟件內(nèi)。所述邏輯適合于與節(jié)點(diǎn)的本地存儲(chǔ)介質(zhì)的元數(shù)據(jù)空間通信。向文件系統(tǒng)的邏輯版本分配一個(gè)紀(jì)元值。向文件系統(tǒng)對(duì)象分配一對(duì)紀(jì)元值。保存所有有效文件系統(tǒng)紀(jì)元值的版本表,同時(shí)每個(gè)列出的紀(jì)元值對(duì)應(yīng)于文件系統(tǒng)的一個(gè)有效邏輯版本。通過把文件系統(tǒng)的邏輯版本的當(dāng)前紀(jì)元值保存在永久存儲(chǔ)器中的版本表中,并單調(diào)遞增當(dāng)前文件系統(tǒng)紀(jì)元值,在單一時(shí)刻產(chǎn)生文件系統(tǒng)的準(zhǔn)瞬時(shí)邏輯版本。對(duì)象紀(jì)元值對(duì)確定其中對(duì)象有效的邏輯文件系統(tǒng)版本的范圍。
在本發(fā)明的第五方面,提供一種數(shù)據(jù)存儲(chǔ)系統(tǒng)。文件系統(tǒng)邏輯被嵌入適于運(yùn)行單一操作系統(tǒng)實(shí)例的節(jié)點(diǎn)的服務(wù)器軟件內(nèi)。所述文件系統(tǒng)邏輯適合于與節(jié)點(diǎn)的本地存儲(chǔ)器的元數(shù)據(jù)通信。所述系統(tǒng)包括由一個(gè)紀(jì)元值識(shí)別的邏輯文件系統(tǒng)版本,和由一對(duì)紀(jì)元值識(shí)別的文件系統(tǒng)對(duì)象。版本表被用于保持所有有效的文件系統(tǒng)紀(jì)元值的列表。列出的每個(gè)紀(jì)元值對(duì)應(yīng)于文件系統(tǒng)的一個(gè)有效邏輯版本。提供在單一時(shí)刻產(chǎn)生文件系統(tǒng)的準(zhǔn)瞬時(shí)邏輯版本的版本管理器。與文件系統(tǒng)的當(dāng)前邏輯版本相關(guān)的當(dāng)前紀(jì)元值適合于保存在永久存儲(chǔ)器中的版本表中。另外,版本管理器單調(diào)增大當(dāng)前文件系統(tǒng)紀(jì)元值。對(duì)象紀(jì)元值對(duì)確定其中對(duì)象有效的文件系統(tǒng)邏輯版本的范圍。
在本發(fā)明的第六方面,提供一種呈計(jì)算機(jī)可讀信號(hào)承載介質(zhì)形式的產(chǎn)品。在介質(zhì)中提供運(yùn)行在節(jié)點(diǎn)的服務(wù)器軟件內(nèi)的文件系統(tǒng)邏輯的單元,所述節(jié)點(diǎn)運(yùn)行單一的操作系統(tǒng)實(shí)例。所述邏輯適合于與節(jié)點(diǎn)的本地存儲(chǔ)介質(zhì)的元數(shù)據(jù)通信。在介質(zhì)中提供向文件系統(tǒng)的邏輯版本分配一個(gè)紀(jì)元值,向文件系統(tǒng)對(duì)象分配一對(duì)紀(jì)元值的單元。另外,在介質(zhì)中提供保持所有有效文件系統(tǒng)紀(jì)元值的版本表的單元,每個(gè)列出的紀(jì)元值對(duì)應(yīng)于文件系統(tǒng)的一個(gè)有效邏輯版本。最后,在介質(zhì)中提供在單一時(shí)刻產(chǎn)生文件系統(tǒng)的準(zhǔn)瞬時(shí)邏輯版本的單元。文件系統(tǒng)產(chǎn)生單元把文件系統(tǒng)的邏輯版本的當(dāng)前紀(jì)元值保存在永久存儲(chǔ)器中的版本表中,并單調(diào)遞增當(dāng)前文件系統(tǒng)紀(jì)元值。對(duì)象紀(jì)元值對(duì)確定其中對(duì)象有效的文件系統(tǒng)邏輯版本的范圍。
在本發(fā)明的第七方面,提供一種管理文件系統(tǒng)的邏輯版本的方法。文件系統(tǒng)邏輯被嵌入與共享存儲(chǔ)系統(tǒng)通信的服務(wù)器節(jié)點(diǎn)的服務(wù)器軟件內(nèi)。所述系統(tǒng)包括由一個(gè)紀(jì)元值識(shí)別的邏輯文件系統(tǒng)版本,和由一對(duì)紀(jì)元值識(shí)別的文件系統(tǒng)對(duì)象。版本表被用于保持所有有效的文件系統(tǒng)紀(jì)元值的列表。列出的每個(gè)紀(jì)元值對(duì)應(yīng)于文件系統(tǒng)的一個(gè)有效邏輯版本。提供在單一時(shí)刻產(chǎn)生文件系統(tǒng)的準(zhǔn)瞬時(shí)邏輯版本的版本管理器。與文件系統(tǒng)的當(dāng)前邏輯版本相關(guān)的當(dāng)前紀(jì)元值適合于保存在永久存儲(chǔ)器中的版本表中。另外,版本管理器單調(diào)遞增當(dāng)前文件系統(tǒng)紀(jì)元值。對(duì)象紀(jì)元值對(duì)確定其中對(duì)象有效的文件系統(tǒng)邏輯版本的范圍。
在本發(fā)明的第八方面,提供一種數(shù)據(jù)存儲(chǔ)系統(tǒng)。文件系統(tǒng)邏輯被嵌入與共享存儲(chǔ)系統(tǒng)通信的服務(wù)器節(jié)點(diǎn)的服務(wù)器軟件內(nèi)。所述邏輯適合于與共享存儲(chǔ)系統(tǒng)的的元數(shù)據(jù)空間通信。所述系統(tǒng)包括由一個(gè)紀(jì)元值識(shí)別的邏輯文件系統(tǒng)版本,和由一對(duì)紀(jì)元值識(shí)別的文件系統(tǒng)對(duì)象。版本表被用于保持所有有效的文件系統(tǒng)紀(jì)元值的列表。列出的每個(gè)紀(jì)元值對(duì)應(yīng)于文件系統(tǒng)的一個(gè)有效邏輯版本。提供在單一時(shí)刻產(chǎn)生文件系統(tǒng)的準(zhǔn)瞬時(shí)邏輯版本的版本管理器。與文件系統(tǒng)的當(dāng)前邏輯版本相關(guān)的當(dāng)前紀(jì)元值適合于保存在永久存儲(chǔ)器中的版本表中。另外,版本管理器單調(diào)增大當(dāng)前文件系統(tǒng)紀(jì)元值。對(duì)象紀(jì)元值對(duì)確定其中對(duì)象有效的文件系統(tǒng)邏輯版本的范圍。
在本發(fā)明的第九方面,提供一種呈計(jì)算機(jī)可讀信號(hào)承載介質(zhì)形式的產(chǎn)品。在介質(zhì)中提供運(yùn)行與共享存儲(chǔ)系統(tǒng)通信的服務(wù)器節(jié)點(diǎn)的服務(wù)器軟件內(nèi)的文件系統(tǒng)邏輯的單元。所述邏輯適合于與共享存儲(chǔ)系統(tǒng)的元數(shù)據(jù)通信。在介質(zhì)中提供向文件系統(tǒng)的邏輯版本分配一個(gè)紀(jì)元值,向文件系統(tǒng)對(duì)象分配一對(duì)紀(jì)元值的單元。另外,在介質(zhì)中提供保持所有有效文件系統(tǒng)紀(jì)元值的版本表的單元,每個(gè)列出的紀(jì)元值對(duì)應(yīng)于文件系統(tǒng)的一個(gè)有效邏輯版本。最后,在介質(zhì)中提供在單一時(shí)刻產(chǎn)生文件系統(tǒng)的準(zhǔn)瞬時(shí)邏輯版本的單元。文件系統(tǒng)產(chǎn)生單元把文件系統(tǒng)的邏輯版本的當(dāng)前紀(jì)元值保存在永久存儲(chǔ)器中的版本表中,并單調(diào)遞增當(dāng)前文件系統(tǒng)紀(jì)元值。對(duì)象紀(jì)元值對(duì)確定其中對(duì)象有效的文件系統(tǒng)邏輯版本的范圍。
在本發(fā)明的所有方面,紀(jì)元值可以是任意可遞增的值,例如(但不限于)數(shù)字。
結(jié)合附圖,根據(jù)本發(fā)明的優(yōu)選實(shí)施例的下述詳細(xì)說明,本發(fā)明的其它特征和優(yōu)點(diǎn)將變得顯而易見。
圖1是現(xiàn)有技術(shù)的帶有文件系統(tǒng)管理邏輯的單一節(jié)點(diǎn)的方框圖。
圖2是現(xiàn)有技術(shù)的具有與存儲(chǔ)區(qū)域網(wǎng)絡(luò)通信的服務(wù)器節(jié)點(diǎn)的計(jì)算機(jī)系統(tǒng)的方框圖,所述服務(wù)器節(jié)點(diǎn)具有文件系統(tǒng)管理邏輯。
圖3是具有單一節(jié)點(diǎn)的計(jì)算機(jī)系統(tǒng)的方框圖,所述單一節(jié)點(diǎn)具有根據(jù)本發(fā)明的優(yōu)選實(shí)施例的文件系統(tǒng)管理邏輯。
圖4是具有服務(wù)器節(jié)點(diǎn)的計(jì)算機(jī)系統(tǒng)的方框圖,所述服務(wù)器節(jié)點(diǎn)具有根據(jù)本發(fā)明的優(yōu)選實(shí)施例的文件系統(tǒng)管理邏輯,其中服務(wù)器節(jié)點(diǎn)與存儲(chǔ)區(qū)通信。
圖5是圖解說明產(chǎn)生根據(jù)本發(fā)明優(yōu)選實(shí)施例的文件系統(tǒng)的準(zhǔn)瞬時(shí)版本的過程的流程圖。
圖6是圖解說明文件系統(tǒng)的邏輯版本的準(zhǔn)瞬時(shí)去除的過程的流程圖。
圖7是圖解說明對(duì)于文件系統(tǒng)的邏輯版本的準(zhǔn)瞬時(shí)復(fù)原的過程的流程圖。
圖8是圖解說明把對(duì)象插入文件系統(tǒng)中的過程的流程圖。
圖9是圖解說明查尋文件系統(tǒng)的識(shí)別對(duì)象的過程的流程圖。
圖10是圖解說明對(duì)引用的文件系統(tǒng)對(duì)象進(jìn)行寫時(shí)復(fù)制過程的流程圖。
圖11是圖解說明去除非引用文件系統(tǒng)對(duì)象的過程的流程圖。
圖12是圖解說明重置文件系統(tǒng)對(duì)象的死亡紀(jì)元編號(hào)的過程的流程圖。
具體實(shí)施例方式
概述在服務(wù)器中,提供文件系統(tǒng),其中文件系統(tǒng)呈生根于特定目錄的子樹的形式。樹根說明生根于根目錄的文件系統(tǒng)樹,并向所有客戶機(jī)提供具有名稱樹的一致形式(view)的能力。在目錄層保持文件系統(tǒng)的邏輯版本。每個(gè)邏輯文件系統(tǒng)版本被賦予呈整數(shù)形式的一個(gè)獨(dú)特編號(hào),下面稱為紀(jì)元編號(hào)。當(dāng)初始產(chǎn)生文件系統(tǒng)時(shí),文件系統(tǒng)具有為1的紀(jì)元編號(hào)。每次產(chǎn)生文件系統(tǒng)的邏輯版本時(shí),例如當(dāng)發(fā)出產(chǎn)生文件系統(tǒng)的邏輯版本的命令時(shí),紀(jì)元編號(hào)被加1。除了文件系統(tǒng)的紀(jì)元編號(hào)之外,文件系統(tǒng)中的所有對(duì)象具有對(duì)象標(biāo)識(shí)符和兩個(gè)紀(jì)元編號(hào)。第一個(gè)對(duì)象紀(jì)元編號(hào)被稱為出生紀(jì)元編號(hào),第二個(gè)對(duì)象紀(jì)元編號(hào)被稱為死亡紀(jì)元編號(hào)。出生和死亡紀(jì)元編號(hào)定義它們被分配給的對(duì)象的存在時(shí)間。借助其對(duì)象標(biāo)識(shí)符和出生紀(jì)元編號(hào),訪問文件系統(tǒng)中的對(duì)象。保持具有組織文件系統(tǒng)的邏輯版本的版本表的數(shù)據(jù)結(jié)構(gòu),以便識(shí)別持久保存的文件系統(tǒng)的邏輯版本。因此,存在分配給文件系統(tǒng)的一個(gè)紀(jì)元編號(hào),和分配給文件系統(tǒng)對(duì)象的兩個(gè)紀(jì)元編號(hào)。
背景技術(shù):
圖3是運(yùn)行根據(jù)優(yōu)選實(shí)施例的單一操作系統(tǒng)實(shí)例文件系統(tǒng)管理邏輯的節(jié)點(diǎn)42的方框圖40。節(jié)點(diǎn)42具有客戶機(jī)驅(qū)動(dòng)器44和服務(wù)器軟件46。節(jié)點(diǎn)42的服務(wù)器軟件46包括嵌入節(jié)點(diǎn)的軟件內(nèi)的文件系統(tǒng)管理邏輯48。文件系統(tǒng)管理邏輯48的功能是向文件系統(tǒng)的邏輯版本分配一個(gè)識(shí)別號(hào),并向文件系統(tǒng)對(duì)象分配兩個(gè)識(shí)別號(hào)。文件系統(tǒng)對(duì)象的識(shí)別號(hào)確定對(duì)象有效的邏輯文件系統(tǒng)版本的范圍。
類似地,圖4是具有共享持久存儲(chǔ)器和根據(jù)本發(fā)明優(yōu)選實(shí)施例的嵌入文件系統(tǒng)管理邏輯的分布式系統(tǒng)的方框圖60。分布式系統(tǒng)包括具有多個(gè)服務(wù)器節(jié)點(diǎn)70和80、管理節(jié)點(diǎn)(administrator node)90和多個(gè)客戶機(jī)節(jié)點(diǎn)92和94的存儲(chǔ)區(qū)域網(wǎng)絡(luò)62。存儲(chǔ)區(qū)域網(wǎng)絡(luò)62具有文件數(shù)據(jù)空間64和元數(shù)據(jù)空間66。元數(shù)據(jù)空間被保留用于服務(wù)器節(jié)點(diǎn)70和80??蛻魴C(jī)節(jié)點(diǎn)92和94都可訪問保存在存儲(chǔ)區(qū)域網(wǎng)絡(luò)62的文件數(shù)據(jù)空間64上的一個(gè)對(duì)象或多個(gè)對(duì)象,但是不能訪問元數(shù)據(jù)空間66。在打開存儲(chǔ)區(qū)域網(wǎng)絡(luò)62中存儲(chǔ)介質(zhì)上的現(xiàn)有文件對(duì)象的內(nèi)容的過程中,客戶機(jī)聯(lián)系服務(wù)器以獲得元數(shù)據(jù)和鎖(lock)。元數(shù)據(jù)向客戶機(jī)提供和文件有關(guān)的信息,例如其屬性和在存儲(chǔ)設(shè)備上的位置。鎖向客戶機(jī)提供打開文件和讀取或?qū)懭霐?shù)據(jù)所需的特權(quán)。服務(wù)器節(jié)點(diǎn)對(duì)存儲(chǔ)區(qū)域網(wǎng)絡(luò)62的元數(shù)據(jù)空間66內(nèi)的請(qǐng)求文件進(jìn)行元數(shù)據(jù)信息的查尋。服務(wù)器節(jié)點(diǎn)70或80把批準(zhǔn)的鎖信息和文件元數(shù)據(jù)傳送給發(fā)出請(qǐng)求的客戶機(jī)節(jié)點(diǎn),包括構(gòu)成文件的數(shù)據(jù)塊的位置。一旦客戶機(jī)節(jié)點(diǎn)持有分發(fā)的鎖,并且知道數(shù)據(jù)塊位置,則客戶機(jī)能夠直接從連接在存儲(chǔ)區(qū)域網(wǎng)絡(luò)上的共享存儲(chǔ)設(shè)備獲得文件的數(shù)據(jù)。另外,每個(gè)服務(wù)器節(jié)點(diǎn)70和80分別包括服務(wù)器軟件72和82。服務(wù)器軟件72和82分別具有嵌入的文件系統(tǒng)管理邏輯74和84。文件系統(tǒng)管理邏輯使服務(wù)器能夠產(chǎn)生它們管理的文件系統(tǒng)的邏輯版本。另外,邏輯向文件系統(tǒng)的邏輯版本分配一個(gè)識(shí)別號(hào),并向文件系統(tǒng)對(duì)象分配兩個(gè)識(shí)別號(hào)。對(duì)象識(shí)別號(hào)確定邏輯文件系統(tǒng)版本的范圍,該對(duì)象在所述范圍中有效。
圖5是圖解說明產(chǎn)生文件系統(tǒng)的邏輯版本的準(zhǔn)瞬時(shí)過程的流程圖100。文件系統(tǒng)的新的邏輯版本被賦予一個(gè)圖像名稱(步驟102)。文件系統(tǒng)的邏輯版本被賦予文件系統(tǒng)的以前的紀(jì)元編號(hào),原像(primaryimage)的紀(jì)元編號(hào)被加1(步驟104)。關(guān)于文件系統(tǒng)的新的紀(jì)元編號(hào)標(biāo)識(shí)符,產(chǎn)生版本表中的一個(gè)條目(步驟106)。數(shù)據(jù)結(jié)構(gòu)保持對(duì)文件系統(tǒng)來說有效的所有紀(jì)元編號(hào)標(biāo)識(shí)符的列表。
在把新的紀(jì)元編號(hào)標(biāo)識(shí)符輸入數(shù)據(jù)結(jié)構(gòu)中之后,進(jìn)入原像的數(shù)據(jù)分配(步驟108)。隨后,原像的紀(jì)元編號(hào)標(biāo)識(shí)符和文件系統(tǒng)的邏輯版本的原始紀(jì)元編號(hào)標(biāo)識(shí)符被寫入永久存儲(chǔ)器(persistent storage)(步驟110)。在步驟110之后,成功完成文件系統(tǒng)的邏輯版本的產(chǎn)生(步驟112)。因此,產(chǎn)生文件系統(tǒng)的邏輯版本的準(zhǔn)瞬時(shí)過程包括在永久存儲(chǔ)器中保持原像的紀(jì)元編號(hào)標(biāo)識(shí)符和文件系統(tǒng)的準(zhǔn)瞬時(shí)邏輯版本。
除了產(chǎn)生文件系統(tǒng)的邏輯版本之外,還可通過準(zhǔn)瞬時(shí)過程,從版本表去除文件系統(tǒng)的邏輯版本。圖6是圖解說明從內(nèi)存(memory)和永久存儲(chǔ)器準(zhǔn)瞬時(shí)地去除文件系統(tǒng)的邏輯版本的過程的流程圖120。操作員提供與選擇從版本表去除的文件系統(tǒng)的邏輯版本相關(guān)的紀(jì)元編號(hào)標(biāo)識(shí)符。從版本表去除關(guān)于原始紀(jì)元編號(hào)標(biāo)識(shí)符的條目(步驟122),隨后從永久存儲(chǔ)器刪除關(guān)于識(shí)別的邏輯文件系統(tǒng)版本的條目(步驟124)。之后,啟動(dòng)后臺(tái)進(jìn)程,從版本表和永久存儲(chǔ)器去除為邏輯文件系統(tǒng)版本一部分的所有非引用對(duì)象(non-referenced object)。在步驟126之后,完成指定的邏輯文件系統(tǒng)版本的去除(步驟128)。因此,從內(nèi)存和永久存儲(chǔ)器去除文件系統(tǒng)的邏輯版本的過程包括從版本表去除與邏輯文件系統(tǒng)版本相關(guān)的對(duì)應(yīng)紀(jì)元編號(hào)標(biāo)識(shí)符。
除了從內(nèi)存和永久存儲(chǔ)器去除文件系統(tǒng)的邏輯版本之外,操作員也可選擇復(fù)原特定的邏輯文件系統(tǒng)版本。圖7是圖解說明準(zhǔn)瞬時(shí)地復(fù)原文件系統(tǒng)的特定邏輯版本的過程的流程圖140。以搜索參數(shù)的形式輸入操作員打算復(fù)原的特定紀(jì)元編號(hào)標(biāo)識(shí)符。隨后進(jìn)行測試,確定文件系統(tǒng)的原始紀(jì)元編號(hào)標(biāo)識(shí)符是否和搜索參數(shù)相同(步驟142)。如果對(duì)步驟142的測試的響應(yīng)是否定的,則從版本表,即從內(nèi)存去除關(guān)于該紀(jì)元編號(hào)標(biāo)識(shí)符的條目(步驟144)。之后,從永久存儲(chǔ)器去除關(guān)于該紀(jì)元編號(hào)標(biāo)識(shí)符的條目(步驟146)。版本表中的紀(jì)元編號(hào)標(biāo)識(shí)符現(xiàn)在被減1,小于內(nèi)存中和永久存儲(chǔ)器中先前去除的條目(步驟148)。算法隨后返回步驟142的測試,直到關(guān)于紀(jì)元編號(hào)標(biāo)識(shí)符的條目和輸入?yún)?shù)相同為止。如果對(duì)步驟142的測試的響應(yīng)是肯定的,則與原像紀(jì)元編號(hào)標(biāo)識(shí)符相關(guān)的文件系統(tǒng)的邏輯版本變成新的原像(步驟150)。步驟150的處理包括對(duì)于新原像,在版本表中標(biāo)記一個(gè)條目。新原像也保存在永久存儲(chǔ)器中(步驟152)。隨后,啟動(dòng)后臺(tái)進(jìn)程,從版本表和永久存儲(chǔ)器去除非引用的對(duì)象(步驟154)。在步驟154之后,完成復(fù)原文件系統(tǒng)的規(guī)定邏輯版本(步驟156)。因此,對(duì)于文件系統(tǒng)的邏輯版本的準(zhǔn)瞬時(shí)復(fù)原的過程包括去除版本表中和永久存儲(chǔ)器中的所有插入邏輯文件系統(tǒng)版本,并把原始紀(jì)元編號(hào)標(biāo)識(shí)符設(shè)置成正在復(fù)原的紀(jì)元編號(hào)標(biāo)識(shí)符。
每個(gè)文件系統(tǒng)包括呈文件、目錄和符號(hào)鏈接等形式的對(duì)象。所有文件系統(tǒng)對(duì)象保存在B樹(btree)記錄中,其中每個(gè)記錄描述相同的一個(gè)或多個(gè)對(duì)象實(shí)例。文件系統(tǒng)對(duì)象可保存在其它永久數(shù)據(jù)結(jié)構(gòu)中,只要它們是根據(jù)其關(guān)鍵字的群集,并且支持高效的查尋和掃描訪問方法。文件系統(tǒng)對(duì)象不需要修改作為產(chǎn)生文件系統(tǒng)的邏輯版本的過程的一部分。類似地,當(dāng)去除或復(fù)原文件系統(tǒng)的邏輯版本時(shí),文件系統(tǒng)對(duì)象不需要修改。由于去除或復(fù)原文件系統(tǒng)的邏輯版本的結(jié)果,非引用對(duì)象被去除,但是這是由獨(dú)立的后臺(tái)進(jìn)程來實(shí)現(xiàn)的,所述獨(dú)立的后臺(tái)進(jìn)程由去除或復(fù)原過程觸發(fā)。如果在產(chǎn)生文件系統(tǒng)的邏輯版本之后不修改文件系統(tǒng)對(duì)象,則不需要額外的空間來保存邏輯文件系統(tǒng)版本中的對(duì)象。因此,B樹中的單一記錄能夠代表某一對(duì)象的數(shù)量無限的相同實(shí)例,而不需要任何額外的存儲(chǔ)器。
圖8是圖解說明產(chǎn)生文件系統(tǒng)對(duì)象的過程的流程圖170。用兩個(gè)紀(jì)元編號(hào)(一個(gè)出生紀(jì)元編號(hào)和一個(gè)死亡紀(jì)元編號(hào))識(shí)別文件系統(tǒng)中的每個(gè)對(duì)象。產(chǎn)生文件系統(tǒng)對(duì)象的第一步是把出生紀(jì)元編號(hào)分配給該對(duì)象。分配的出生紀(jì)元對(duì)象是文件系統(tǒng)的原始紀(jì)元編號(hào)標(biāo)識(shí)符(步驟172)。分配的死亡紀(jì)元編號(hào)是無窮大(步驟174)。隨后用對(duì)象標(biāo)識(shí)符初始化文件系統(tǒng)對(duì)象(步驟176)。在把出生紀(jì)元編號(hào)和死亡紀(jì)元編號(hào)分配給文件系統(tǒng)對(duì)象和對(duì)象標(biāo)識(shí)符的初始化之后,該文件系統(tǒng)對(duì)象作為記錄被插入B樹中(步驟178)。因此,以B樹中的記錄的形式產(chǎn)生文件系統(tǒng)對(duì)象的過程要求向每個(gè)文件系統(tǒng)對(duì)象分配識(shí)別協(xié)議。
每個(gè)對(duì)象保存在具有一個(gè)兩部分關(guān)鍵字的B樹記錄中。關(guān)鍵字的第一部分是在步驟176初始化的對(duì)象標(biāo)識(shí)符,關(guān)鍵字的第二部分是在步驟172產(chǎn)生的出生紀(jì)元編號(hào)。按升序?qū)?duì)象標(biāo)識(shí)符分類,按降序?qū)Τ錾o(jì)元編號(hào)分類。圖9是圖解說明查尋保存在B樹中的對(duì)象的過程的流程圖。連同是否打算修改搜索的對(duì)象的指示,操作員輸入要搜索的對(duì)象標(biāo)識(shí)符和紀(jì)元編號(hào)作為原始搜索要素。在輸入搜索參數(shù)之后,進(jìn)行測試,以確定正被搜索的紀(jì)元編號(hào)的值是否為0(步驟192)。當(dāng)請(qǐng)求為0的搜索紀(jì)元編號(hào)時(shí),文件系統(tǒng)的紀(jì)元編號(hào)被替換成搜索紀(jì)元編號(hào)值(步驟194)。在步驟194的原始紀(jì)元編號(hào)的替換或者確定紀(jì)元標(biāo)識(shí)符不為0之后,進(jìn)行B樹的掃描(步驟196)。掃描的初始關(guān)鍵字的第一參數(shù)是對(duì)象標(biāo)識(shí)符,第二參數(shù)是搜索紀(jì)元編號(hào)。掃描的終止關(guān)鍵字的第一參數(shù)是對(duì)象標(biāo)識(shí)符,第二參數(shù)為1。向前掃描B樹,并返回對(duì)于對(duì)象標(biāo)識(shí)符找到的第一條記錄。返回的記錄具有對(duì)象的出生紀(jì)元編號(hào)小于或等于搜索紀(jì)元標(biāo)識(shí)符的性質(zhì)。進(jìn)行測試,以確定掃描是否完成(步驟198)。如果對(duì)步驟198的測試的響應(yīng)是否定的,則進(jìn)行后續(xù)測試,以確定返回記錄的死亡紀(jì)元編號(hào)是否小于搜索紀(jì)元標(biāo)識(shí)符(步驟200)。對(duì)步驟198或200的測試的肯定響應(yīng)表示在步驟196提供的掃描范圍內(nèi),沒有找到記錄(步驟202)。但是,對(duì)步驟200的測試的否定響應(yīng)表示返回的對(duì)象有效,返回的對(duì)象在步驟204進(jìn)行復(fù)原處理。因此,查尋B樹中某一記錄的過程的第一部分是復(fù)原在輸入?yún)?shù)內(nèi)識(shí)別的對(duì)象。
在步驟204復(fù)原識(shí)別的對(duì)象之后,進(jìn)行測試,以確定是否提供了調(diào)用者(caller)將修改返回對(duì)象的指示符(步驟206)。對(duì)步驟206的測試的否定響應(yīng)表示操作員希望查找指定對(duì)象的位置,但是不需要對(duì)其的任何修改。如果不需要對(duì)該對(duì)象的任何修改,則完成對(duì)象定位和復(fù)原(步驟208)。但是,對(duì)步驟206的測試的肯定響應(yīng)將導(dǎo)致確定返回的記錄是否描述唯一對(duì)象的參考計(jì)數(shù)(步驟210)。在計(jì)算參考計(jì)數(shù)的過程中,已知對(duì)象的出生紀(jì)元編號(hào)和死亡紀(jì)元編號(hào)。進(jìn)行從出生紀(jì)元編號(hào)到死亡紀(jì)元編號(hào)的所有版本表?xiàng)l目的存儲(chǔ)器內(nèi)掃描,提供該范圍內(nèi)條目數(shù)目的計(jì)數(shù),稱為參考計(jì)數(shù)。如果參考計(jì)數(shù)大于1,則該記錄并不描述唯一的對(duì)象,在能夠修改該記錄之前,需要寫時(shí)復(fù)制過程(步驟212)。因此,修改步驟204的返回對(duì)象的過程需要計(jì)算參考計(jì)數(shù),以確定返回的記錄是否描述唯一的對(duì)象,因?yàn)橹挥忻枋鑫ㄒ粚?duì)象的記錄才能被修改。
如圖8和9中所示,文件系統(tǒng)的每條記錄被保存為B樹中的一條記錄。在復(fù)原具體的邏輯文件系統(tǒng)版本或去除具體的邏輯文件系統(tǒng)版本的過程中,啟動(dòng)從B樹去除非引用對(duì)象的后臺(tái)進(jìn)程。例如,在圖7中,原像已被復(fù)原之后,容納對(duì)象記錄的B樹將包含不存在的對(duì)象實(shí)例的記錄。B樹不受這些記錄的影響,因?yàn)樵诓閷み^程中并不讀取這些記錄。圖11是圖解說明在如圖7的步驟154和圖6的步驟126所示的文件系統(tǒng)的邏輯版本的準(zhǔn)瞬時(shí)去除或復(fù)原過程中,從永久存儲(chǔ)器去除文件系統(tǒng)對(duì)象的非引用邏輯版本s的過程的流程圖260。通過掃描永久存儲(chǔ)器中所有邏輯文件系統(tǒng)版本的全部記錄,啟動(dòng)該過程(步驟262)。之后,進(jìn)行測試,以確定掃描是否返回了某一對(duì)象(步驟264)。如果未返回任何對(duì)象,則結(jié)束掃描(步驟266)。但是,如果掃描返回了某一對(duì)象,則對(duì)于該對(duì)象計(jì)算參考計(jì)數(shù)(步驟268)。為0的參考計(jì)數(shù)表示該對(duì)象未被其它對(duì)象引用,該記錄被刪除(步驟274)。之后,過程返回步驟262,繼續(xù)進(jìn)行掃描過程。但是,如果參考計(jì)數(shù)在步驟268返回引用所識(shí)別對(duì)象的至少一個(gè)對(duì)象,則被引用對(duì)象被復(fù)原(revert)(步驟270),并用出生紀(jì)元編號(hào)替換引用的對(duì)象記錄(步驟272)。之后,過程返回步驟262,繼續(xù)進(jìn)行掃描過程。如果響應(yīng)復(fù)原過程,啟動(dòng)圖11中所示的文件系統(tǒng)的非引用邏輯版本的去除,則在完成圖11中的過程之前,不會(huì)產(chǎn)生文件系統(tǒng)的任何另外的邏輯版本。這種要求防止錯(cuò)誤的B樹記錄出現(xiàn)為原像的一部分。另一方面,如果響應(yīng)文件系統(tǒng)的邏輯版本的準(zhǔn)瞬時(shí)去除過程,啟動(dòng)圖11中所示的文件系統(tǒng)的非引用邏輯版本的去除,則會(huì)產(chǎn)生文件系統(tǒng)的另外的邏輯版本。因此,去除文件系統(tǒng)的非引用對(duì)象的過程去除B樹中出生紀(jì)元編號(hào)大于在復(fù)原指定邏輯文件系統(tǒng)版本之后當(dāng)前文件系統(tǒng)的紀(jì)元編號(hào)的所有記錄。
除了如圖11中所示,去除非引用文件系統(tǒng)對(duì)象的版本之外,還可修改引用的文件系統(tǒng)對(duì)象。但是,只能修改唯一的那些文件系統(tǒng)對(duì)象。在進(jìn)行修改之后,在多個(gè)文件系統(tǒng)版本中有效的文件系統(tǒng)對(duì)象必須通過寫時(shí)復(fù)制過程。圖10是圖解說明對(duì)在圖9的步驟212中識(shí)別的,不描述唯一對(duì)象的記錄進(jìn)行寫時(shí)復(fù)制過程的流程圖220。該過程要產(chǎn)生識(shí)別對(duì)象的二個(gè)或三個(gè)記錄,以便保留非原像(non-primary image)中的數(shù)據(jù)。當(dāng)本發(fā)明要修改保留的非原像時(shí),產(chǎn)生三個(gè)記錄。通常可不修改非原像,因?yàn)闉榱司S持文件系統(tǒng)的邏輯版本的完整性,必須保留它們的內(nèi)容。但是,在生產(chǎn)系統(tǒng)中,需要臨時(shí)維護(hù),并提供對(duì)非原像進(jìn)行寫時(shí)復(fù)制的支持以便于這種維護(hù)??墒褂闷涞睦邮俏募到y(tǒng)檢查和修復(fù),或者更新具有駐留在已發(fā)生故障的永久存儲(chǔ)器中的數(shù)據(jù)塊的文件對(duì)象。寫時(shí)復(fù)制過程中的第一步是對(duì)識(shí)別的對(duì)象分配給一個(gè)局部變量新的出生紀(jì)元編號(hào)(初始對(duì)象的出生紀(jì)元編號(hào)的值),以及分配給一個(gè)局部變量新的死亡紀(jì)元編號(hào)(初始對(duì)象的死亡紀(jì)元編號(hào)的值)(步驟222)。隨后計(jì)算具有第一參數(shù)(出生紀(jì)元編號(hào))和第二參數(shù)(搜索紀(jì)元編號(hào)減1)的參考計(jì)數(shù),稱為以前記錄(before record)。在內(nèi)存中產(chǎn)生具有等于初始出生紀(jì)元編號(hào)的出生紀(jì)元編號(hào)以及等于搜索紀(jì)元編號(hào)減1的死亡紀(jì)元編號(hào)的以前記錄,并被寫入永久存儲(chǔ)器中(步驟226)。由于以前記錄的出生紀(jì)元編號(hào)未被改變,因此已存在具有以前記錄的關(guān)鍵字的B樹記錄,于是,使用替換記錄操作,替換記錄操作修改和預(yù)先存在的關(guān)鍵字相關(guān)的數(shù)據(jù)。之后,新的出生紀(jì)元編號(hào)被賦予搜索紀(jì)元編號(hào)。在步驟228的分配之后,或者在對(duì)步驟224的值不大于0的參考計(jì)數(shù)的響應(yīng)之后,隨后在步驟230進(jìn)行具有被加1的第一參數(shù)(搜索紀(jì)元編號(hào))和第二參數(shù)(死亡紀(jì)元編號(hào))的參數(shù)計(jì)數(shù)。步驟230的值大于0的參考計(jì)數(shù)會(huì)導(dǎo)致產(chǎn)生第三記錄,稱為以后記錄(after record)。在內(nèi)存中產(chǎn)生具有等于搜索紀(jì)元編號(hào)加1的出生紀(jì)元編號(hào),和等于初始死亡紀(jì)元編號(hào)的死亡紀(jì)元編號(hào)的以后記錄,并將其寫入永久存儲(chǔ)器中(步驟232)。由于以后記錄的出生紀(jì)元編號(hào)具有新的值,B樹中不應(yīng)存在具有以后記錄的關(guān)鍵字的任何記錄,于是使用插入記錄操作插入新的B樹記錄和關(guān)鍵字。之后,一個(gè)新的死亡紀(jì)元編號(hào)被賦予搜索紀(jì)元編號(hào)的整數(shù)值(步驟234)。流程圖的剩余部分(236、238、240和242)涉及中間記錄的產(chǎn)生。最后產(chǎn)生中間記錄,因?yàn)橹虚g記錄是調(diào)用者打算修改的記錄。中間記錄將具有等于在步驟22或228分配的新的出生紀(jì)元編號(hào)的出生紀(jì)元編號(hào)。中間記錄將具有等于在步驟222或234分配的新的死亡紀(jì)元編號(hào)的死亡紀(jì)元編號(hào)。在步驟234的分配或步驟230的值大于0的參考計(jì)數(shù)之后進(jìn)行測試136,以確定初始記錄的出生紀(jì)元編號(hào)是否等于在步驟222分配的新的出生紀(jì)元編號(hào)。對(duì)步驟236的測試的肯定響應(yīng)會(huì)導(dǎo)致具有新的出生紀(jì)元編號(hào)和新的死亡紀(jì)元編號(hào)的現(xiàn)有記錄的替換(步驟238)。另一方面,對(duì)步驟236的測試的否定響應(yīng)將以把具有新的出生紀(jì)元編號(hào)和新的死亡紀(jì)元編號(hào)的參數(shù)的記錄插入B樹中的形式,導(dǎo)致中間記錄的產(chǎn)生(步驟240)。產(chǎn)生中間記錄的過程會(huì)導(dǎo)致把新記錄插入B樹中,或者導(dǎo)致現(xiàn)有記錄的替換。步驟238或240的第二記錄的產(chǎn)生會(huì)導(dǎo)致把新的出生紀(jì)元編號(hào)分配為出生紀(jì)元編號(hào),把新的死亡紀(jì)元編號(hào)分配為死亡紀(jì)元編號(hào)(步驟242)。因此,寫時(shí)復(fù)制過程使得識(shí)別的要修改的對(duì)象記錄可被分成兩個(gè)或三個(gè)副本,從而保留(preserve)文件系統(tǒng)對(duì)象在文件系統(tǒng)的在先邏輯版本中出現(xiàn)的初始狀態(tài)。
和現(xiàn)有技術(shù)相比的優(yōu)點(diǎn)一旦產(chǎn)生了文件系統(tǒng)的邏輯版本,則邏輯版本表現(xiàn)為文件系統(tǒng)根目錄的一部分,并且可被備份實(shí)用程序用于當(dāng)文件系統(tǒng)仍然在線時(shí),產(chǎn)生第二存儲(chǔ)器備份。另外,可參考文件系統(tǒng)的邏輯版本,以便實(shí)現(xiàn)文件恢復(fù)或者保持文件系統(tǒng)的歷史。這里公開的產(chǎn)生文件系統(tǒng)的邏輯版本的準(zhǔn)瞬時(shí)過程在存儲(chǔ)空間方面效率較高。在產(chǎn)生文件系統(tǒng)的邏輯版本之后,對(duì)文件系統(tǒng)對(duì)象的更新導(dǎo)致發(fā)生寫時(shí)復(fù)制過程,從而保持邏輯文件系統(tǒng)版本之前的文件系統(tǒng)對(duì)象的初始狀態(tài)。只有在獲得邏輯文件系統(tǒng)版本之后發(fā)生變化的文件系統(tǒng)對(duì)象需要額外的存儲(chǔ)空間。如果在產(chǎn)生邏輯文件系統(tǒng)版本之后,文件系統(tǒng)對(duì)象未被修改,則不需要額外的存儲(chǔ)空間來保存文件系統(tǒng)的邏輯版本。單一記錄可代表對(duì)象的數(shù)量無限的相同實(shí)例,而不需要額外的存儲(chǔ)空間。另外,不需要額外的后臺(tái)處理來保持文件系統(tǒng)的原像或文件系統(tǒng)的邏輯版本。從而,不存在與訪問和在文件系統(tǒng)的邏輯版本中引用的對(duì)象比較的原像的對(duì)象相關(guān)的任何額外的成本要求。因此,在保持系統(tǒng)的初始狀態(tài)的同時(shí),文件系統(tǒng)的邏輯版本及相關(guān)對(duì)象的組織和維護(hù)保持了文件系統(tǒng)的邏輯版本。
備選實(shí)施例顯然雖然這里出于舉例說明的目的,說明了本發(fā)明的具體實(shí)施例,不過在不脫離本發(fā)明的精神和范圍的情況下可做出各種修改。特別地,當(dāng)文件系統(tǒng)的復(fù)原邏輯版本變成文件系統(tǒng)的新原像時(shí),連帶著復(fù)原特定的邏輯文件系統(tǒng)版本,文件系統(tǒng)的邏輯版本中的引用對(duì)象可具有重置為無窮大的死亡紀(jì)元編號(hào)。具有原像文件系統(tǒng)的紀(jì)元編號(hào)的任意對(duì)象具有無窮大的死亡紀(jì)元編號(hào)。圖12是圖解說明重置引用對(duì)象的死亡紀(jì)元編號(hào)的步驟的流程圖280。在步驟282進(jìn)行測試,以確定對(duì)象的出生紀(jì)元編號(hào)是否小于或等于文件系統(tǒng)的邏輯版本的紀(jì)元編號(hào)。對(duì)步驟282的測試的肯定響應(yīng)將導(dǎo)致在步驟284進(jìn)行測試,以確定對(duì)象的死亡紀(jì)元編號(hào)是否大于或等于文件系統(tǒng)的邏輯版本的紀(jì)元編號(hào)。如果對(duì)步驟282或284的響應(yīng)是否定的,則死亡紀(jì)元編號(hào)不需被重置(步驟288)。但是,對(duì)步驟282和284的肯定響應(yīng)會(huì)導(dǎo)致把對(duì)象的死亡紀(jì)元編號(hào)重置成無窮大。當(dāng)訪部記錄時(shí),對(duì)于出生紀(jì)元編號(hào)小于或等于邏輯文件系統(tǒng)版本的紀(jì)元編號(hào),并且死亡紀(jì)元編號(hào)大于或等于邏輯文件系統(tǒng)版本的紀(jì)元編號(hào)的記錄,發(fā)生在圖12中略述的過程。最后,紀(jì)元值可以是任意可遞增的值,例如字母或原始字節(jié)-不必只是數(shù)字。因此,本發(fā)明的保護(hù)范圍只由下述權(quán)利要求及其等同限定。
權(quán)利要求
1.一種管理文件系統(tǒng)的邏輯版本的方法,包括(a)向所述文件系統(tǒng)的邏輯版本分配一個(gè)紀(jì)元值;(b)向文件系統(tǒng)對(duì)象分配一對(duì)紀(jì)元值;(c)保持所有有效的文件系統(tǒng)紀(jì)元值的版本表,每個(gè)列出的紀(jì)元值對(duì)應(yīng)于文件系統(tǒng)的一個(gè)有效邏輯版本;和(d)通過把所述文件系統(tǒng)的所述邏輯版本的當(dāng)前紀(jì)元值保存在永久存儲(chǔ)器中的所述版本表中,并單調(diào)遞增當(dāng)前文件系統(tǒng)紀(jì)元值,在單一時(shí)刻產(chǎn)生所述文件系統(tǒng)的準(zhǔn)瞬時(shí)邏輯版本。
2.按照權(quán)利要求1所述的方法,其中所述對(duì)象紀(jì)元值對(duì)確定其中所述對(duì)象有效的邏輯文件系統(tǒng)版本的范圍。
3.按照權(quán)利要求1所述的方法,其中產(chǎn)生文件系統(tǒng)的準(zhǔn)瞬時(shí)邏輯版本的步驟包括把所述邏輯版本的額外空間限制于所述文件系統(tǒng)中多重引用的變化后的文件系統(tǒng)對(duì)象。
4.按照權(quán)利要求1所述的方法,還包括在保留所述文件系統(tǒng)的初始狀態(tài)的同時(shí),保持文件系統(tǒng)的邏輯版本。
5.按照權(quán)利要求1所述的方法,還包括所述文件系統(tǒng)的所述邏輯版本的準(zhǔn)瞬時(shí)去除。
6.按照權(quán)利要求5所述的方法,其中所述文件系統(tǒng)的所述邏輯版本的所述準(zhǔn)瞬時(shí)去除步驟包括從所述永久存儲(chǔ)器中的所述版本表中去除所述版本的相應(yīng)紀(jì)元值。
7.按照權(quán)利要求6所述的方法,還包括去除與所述去除的版本相關(guān)的非引用對(duì)象。
8.按照權(quán)利要求1所述的方法,還包括所述文件系統(tǒng)的現(xiàn)有邏輯版本的準(zhǔn)瞬時(shí)復(fù)原。
9.按照權(quán)利要求8所述的方法,其中所述文件系統(tǒng)的現(xiàn)有邏輯版本的所述準(zhǔn)瞬時(shí)復(fù)原步驟包括去除永久存儲(chǔ)器中所述版本表中的所有插入條目,并把文件系統(tǒng)紀(jì)元值設(shè)置成和所述復(fù)原的邏輯文件系統(tǒng)版本對(duì)應(yīng)的紀(jì)元值。
10.按照權(quán)利要求1所述的方法,還包括通過響應(yīng)多重引用的文件系統(tǒng)對(duì)象的修改,執(zhí)行寫時(shí)復(fù)制過程,保留文件系統(tǒng)的初始狀態(tài)。
11.按照權(quán)利要求10所述的方法,其中執(zhí)行所述寫時(shí)復(fù)制過程的步驟包括響應(yīng)屬于所述文件系統(tǒng)的非原始邏輯版本的多重引用文件系統(tǒng)對(duì)象的修改,把所述文件系統(tǒng)對(duì)象分成三個(gè)副本。
12.一種數(shù)據(jù)存儲(chǔ)系統(tǒng),包括由一個(gè)紀(jì)元值識(shí)別的文件系統(tǒng)版本;由一對(duì)紀(jì)元值識(shí)別的文件系統(tǒng)對(duì)象;適合于保持所有有效的文件系統(tǒng)紀(jì)元值的列表的版本表,其中列出的每個(gè)紀(jì)元值對(duì)應(yīng)于所述文件系統(tǒng)的一個(gè)有效邏輯版本;和適合于在單一時(shí)刻產(chǎn)生所述文件系統(tǒng)的準(zhǔn)瞬時(shí)邏輯版本的版本管理器,其中與所述文件系統(tǒng)的當(dāng)前邏輯版本相關(guān)的當(dāng)前紀(jì)元值適合于保持在永久存儲(chǔ)器中的所述版本表中,當(dāng)前文件系統(tǒng)紀(jì)元值被單調(diào)增大。
13.按照權(quán)利要求12所述的系統(tǒng),其中所述復(fù)制管理器把所述邏輯版本中的額外空間限制于所述文件系統(tǒng)中的改變后的對(duì)象。
14.按照權(quán)利要求12所述的系統(tǒng),其中所述版本管理器適合于保持所述文件系統(tǒng)的邏輯版本,同時(shí)保留所述文件系統(tǒng)的初始狀態(tài)。
15.按照權(quán)利要求12所述的系統(tǒng),其中對(duì)象紀(jì)元值對(duì)適合于確定其中所述對(duì)象有效的所述文件系統(tǒng)的邏輯版本的范圍。
16.按照權(quán)利要求12所述的系統(tǒng),還包括適合于準(zhǔn)瞬時(shí)地去除所述文件系統(tǒng)的所述邏輯版本的所述版本管理器。
17.按照權(quán)利要求16所述的系統(tǒng),其中所述版本管理器適合于準(zhǔn)瞬時(shí)地從所述永久存儲(chǔ)器去除所述版本的對(duì)應(yīng)紀(jì)元值。
18.按照權(quán)利要求17所述的系統(tǒng),其中所述版本管理器去除與所述去除的版本相關(guān)的非引用對(duì)象。
19.按照權(quán)利要求12所述的系統(tǒng),還包括適合于準(zhǔn)瞬時(shí)地復(fù)原所述文件系統(tǒng)的已有邏輯版本的所述版本管理器。
20.按照權(quán)利要求19所述的系統(tǒng),其中所述版本管理器適合于去除永久存儲(chǔ)器中所述版本表中的插入條目,并把所述文件系統(tǒng)紀(jì)元值設(shè)置成與所述復(fù)原的邏輯文件系統(tǒng)版本相關(guān)的紀(jì)元值。
21.按照權(quán)利要求12所述的系統(tǒng),還包括適合于響應(yīng)多重引用的文件系統(tǒng)對(duì)象的修改,進(jìn)行寫時(shí)復(fù)制過程的記錄管理器。
22.按照權(quán)利要求21所述的系統(tǒng),其中所述記錄管理器響應(yīng)屬于所述文件系統(tǒng)的非原始邏輯版本的多重引用文件系統(tǒng)對(duì)象的修改,把所述記錄分成三個(gè)副本。
23.一種產(chǎn)品,包括計(jì)算機(jī)可讀信號(hào)承載介質(zhì);介質(zhì)中的向文件系統(tǒng)的邏輯版本分配一個(gè)紀(jì)元值的單元;介質(zhì)中的向文件系統(tǒng)對(duì)象分配一對(duì)紀(jì)元值的單元;介質(zhì)中的保持所有有效文件系統(tǒng)紀(jì)元值的版本表的單元,每個(gè)列出的紀(jì)元值對(duì)應(yīng)于文件系統(tǒng)的一個(gè)有效邏輯版本;介質(zhì)中的通過把所述文件系統(tǒng)的所述邏輯版本的當(dāng)前紀(jì)元值保存在永久存儲(chǔ)器中的所述版本表中,并單調(diào)遞增當(dāng)前文件系統(tǒng)紀(jì)元值,在單一時(shí)刻產(chǎn)生所述文件系統(tǒng)的準(zhǔn)瞬時(shí)邏輯版本的單元。
24.按照權(quán)利要求23所述的產(chǎn)品,其中所述介質(zhì)選自包含可記錄的數(shù)據(jù)存儲(chǔ)介質(zhì)和調(diào)制的載波信號(hào)的組。
25.按照權(quán)利要求23所述的產(chǎn)品,其中所述對(duì)象紀(jì)元值對(duì)確定其中所述對(duì)象有效的邏輯文件系統(tǒng)版本的范圍。
26.按照權(quán)利要求23所述的產(chǎn)品,還包括介質(zhì)中的準(zhǔn)瞬時(shí)地去除所述文件系統(tǒng)的所述邏輯版本的單元,其中所述單元包括適合于從永久存儲(chǔ)器中的所述版本表中去除所述文件系統(tǒng)版本的對(duì)應(yīng)紀(jì)元值的版本管理器。
27.按照權(quán)利要求26所述的產(chǎn)品,還包括介質(zhì)中的用于去除與所述去除的版本相關(guān)的非引用對(duì)象的單元。
28.按照權(quán)利要求23所述的產(chǎn)品,還包括介質(zhì)中的用于準(zhǔn)瞬時(shí)地復(fù)原所述文件系統(tǒng)的現(xiàn)有邏輯版本的單元,其中所述單元包括適合于去除永久存儲(chǔ)器中所述版本表中的所有插入條目,并把所述文件系統(tǒng)紀(jì)元值設(shè)置成與所述復(fù)原的邏輯版本對(duì)應(yīng)的紀(jì)元值的版本管理器。
29.按照權(quán)利要求23所述的產(chǎn)品,還包括介質(zhì)中的響應(yīng)多重引用文件系統(tǒng)對(duì)象的修改進(jìn)行寫時(shí)復(fù)制過程的單元,其中所述單元包括適合于響應(yīng)屬于所述文件系統(tǒng)的非原始邏輯版本的多重引用文件系統(tǒng)對(duì)象的修改,把所述文件系統(tǒng)對(duì)象分成三個(gè)副本的記錄管理器。
30.按照權(quán)利要求23所述的產(chǎn)品,其中介質(zhì)中的在單一時(shí)刻產(chǎn)生所述文件系統(tǒng)的準(zhǔn)瞬時(shí)邏輯版本的單元是適合于把所述邏輯版本中的額外空間限制于所述文件系統(tǒng)中的改變后的對(duì)象的版本管理器。
31.按照權(quán)利要求23所述的產(chǎn)品,還包括介質(zhì)中的保持所述文件系統(tǒng)的邏輯版本,同時(shí)保留所述文件系統(tǒng)的初始狀態(tài)的單元。
32.一種管理文件系統(tǒng)的邏輯版本的方法,包括(a)把文件系統(tǒng)邏輯嵌入運(yùn)行單一操作系統(tǒng)實(shí)例的節(jié)點(diǎn)的服務(wù)器軟件內(nèi),其中所述邏輯適合于與所述節(jié)點(diǎn)的本地存儲(chǔ)介質(zhì)的元數(shù)據(jù)空間通信;(b)向所述文件系統(tǒng)的邏輯版本分配一個(gè)紀(jì)元值;(c)向文件系統(tǒng)對(duì)象分配一對(duì)紀(jì)元值;(d)保持所有有效文件系統(tǒng)紀(jì)元值的版本表,每個(gè)列出的紀(jì)元值對(duì)應(yīng)于文件系統(tǒng)的一個(gè)有效邏輯版本;和(e)通過把所述文件系統(tǒng)的所述邏輯版本的當(dāng)前紀(jì)元值保存在所述本地存儲(chǔ)介質(zhì)的永久存儲(chǔ)器中的所述版本表中,并單調(diào)遞增當(dāng)前文件系統(tǒng)紀(jì)元值,在單一時(shí)刻產(chǎn)生所述文件系統(tǒng)的準(zhǔn)瞬時(shí)邏輯版本。
33.按照權(quán)利要求32所述的方法,其中所述對(duì)象紀(jì)元值對(duì)確定其中所述對(duì)象有效的邏輯文件系統(tǒng)版本的范圍。
34.按照權(quán)利要求32所述的方法,其中產(chǎn)生文件系統(tǒng)的準(zhǔn)瞬時(shí)邏輯版本的步驟包括把所述邏輯版本的額外空間限制于所述文件系統(tǒng)中多重引用的變化后的文件系統(tǒng)對(duì)象。
35.按照權(quán)利要求32所述的方法,還包括所述文件系統(tǒng)的所述邏輯版本的準(zhǔn)瞬時(shí)去除,其中從所述本地存儲(chǔ)介質(zhì)的永久存儲(chǔ)器中的所述版本表中去除所述版本的對(duì)應(yīng)紀(jì)元值,并且去除與所述去除的版本相關(guān)的非引用對(duì)象。
36.按照權(quán)利要求32所述的方法,還包括所述文件系統(tǒng)的現(xiàn)有邏輯版本的準(zhǔn)瞬時(shí)復(fù)原,其中從所述本地存儲(chǔ)介質(zhì)的永久存儲(chǔ)器中去除所述版本表中的所有插入條目,所述文件系統(tǒng)紀(jì)元值被設(shè)置成和所述復(fù)原的邏輯文件系統(tǒng)版本對(duì)應(yīng)的紀(jì)元值。
37.按照權(quán)利要求32所述的方法,還包括通過響應(yīng)多重引用的文件系統(tǒng)對(duì)象的修改,進(jìn)行寫時(shí)復(fù)制過程,保留文件系統(tǒng)的初始狀態(tài)。
38.一種數(shù)據(jù)存儲(chǔ)系統(tǒng),包括嵌入適于運(yùn)行單一操作系統(tǒng)實(shí)例的節(jié)點(diǎn)的服務(wù)器軟件內(nèi)的文件系統(tǒng)邏輯,其中所述邏輯適合于與所述節(jié)點(diǎn)的本地存儲(chǔ)器的元數(shù)據(jù)通信;由一個(gè)紀(jì)元值識(shí)別的文件系統(tǒng)版本;由一對(duì)紀(jì)元值識(shí)別的文件系統(tǒng)對(duì)象;適合于保持所有有效文件系統(tǒng)紀(jì)元值的列表的版本表,其中列出的每個(gè)紀(jì)元值對(duì)應(yīng)于所述文件系統(tǒng)的一個(gè)有效邏輯版本;和適合于在單一時(shí)刻產(chǎn)生所述文件系統(tǒng)的準(zhǔn)瞬時(shí)邏輯版本的版本管理器,其中與所述文件系統(tǒng)的當(dāng)前邏輯版本相關(guān)的當(dāng)前紀(jì)元值適合于保持在所述本地存儲(chǔ)介質(zhì)的永久存儲(chǔ)器中的所述版本表中,當(dāng)前文件系統(tǒng)紀(jì)元值被單調(diào)遞增。
39.按照權(quán)利要求38所述的系統(tǒng),其中所述對(duì)象紀(jì)元值對(duì)適合于確定其中所述對(duì)象有效的文件系統(tǒng)邏輯版本的范圍。
40.按照權(quán)利要求38所述的系統(tǒng),還包括適合于準(zhǔn)瞬時(shí)地去除所述文件系統(tǒng)的所述邏輯版本的所述版本管理器,其中所述版本管理器適合于從所述本地存儲(chǔ)介質(zhì)的永久存儲(chǔ)器中的所述版本表中去除所述版本的對(duì)應(yīng)紀(jì)元值,并去除與所述去除的版本相關(guān)的非引用對(duì)象。
41.按照權(quán)利要求38所述的系統(tǒng),還包括適合于準(zhǔn)瞬時(shí)地復(fù)原所述文件系統(tǒng)的現(xiàn)有邏輯版本的所述版本管理器,其中所述版本管理器適合于去除所述本地存儲(chǔ)介質(zhì)的永久存儲(chǔ)器中所述版本表中的插入條目,并把所述文件系統(tǒng)紀(jì)元值設(shè)置成與所述復(fù)原的邏輯版本對(duì)應(yīng)的紀(jì)元值。
42.按照權(quán)利要求38所述的系統(tǒng),還包括適合于響應(yīng)多重引用文件系統(tǒng)對(duì)象的修改,進(jìn)行寫時(shí)復(fù)制過程的記錄管理器。
43.按照權(quán)利要求42所述的系統(tǒng),其中所述記錄管理器響應(yīng)屬于所述文件系統(tǒng)的非原始邏輯版本的多重引用文件系統(tǒng)對(duì)象的修改,把所述記錄分成三個(gè)副本。
44.一種產(chǎn)品,包括計(jì)算機(jī)可讀信號(hào)承載介質(zhì);介質(zhì)中的運(yùn)行在運(yùn)行單一的操作系統(tǒng)實(shí)例的節(jié)點(diǎn)的服務(wù)器軟件內(nèi)的文件系統(tǒng)邏輯的單元,其中所述邏輯適合于與所述節(jié)點(diǎn)的本地存儲(chǔ)介質(zhì)的元數(shù)據(jù)通信;介質(zhì)中的向文件系統(tǒng)的邏輯版本分配一個(gè)紀(jì)元值的單元;介質(zhì)中的向文件系統(tǒng)對(duì)象分配一對(duì)紀(jì)元值的單元;介質(zhì)中的保持所有有效文件系統(tǒng)紀(jì)元值的版本表的單元,每個(gè)列出的紀(jì)元值對(duì)應(yīng)于文件系統(tǒng)的一個(gè)有效邏輯版本;介質(zhì)中的通過把所述文件系統(tǒng)的所述邏輯版本的當(dāng)前紀(jì)元值保存在所述本地存儲(chǔ)介質(zhì)的永久存儲(chǔ)器中的所述版本表中,并單調(diào)遞增當(dāng)前文件系統(tǒng)紀(jì)元值,在單一時(shí)刻產(chǎn)生所述文件系統(tǒng)的準(zhǔn)瞬時(shí)邏輯版本的單元。
45.按照權(quán)利要求44所述的產(chǎn)品,其中所述介質(zhì)選自包含可記錄的數(shù)據(jù)存儲(chǔ)介質(zhì)和調(diào)制的載波信號(hào)的組。
46.按照權(quán)利要求44所述的產(chǎn)品,還包括介質(zhì)中的準(zhǔn)瞬時(shí)地去除所述文件系統(tǒng)的所述邏輯版本的單元,其中所述單元包括適合于從所述本地存儲(chǔ)介質(zhì)的永久存儲(chǔ)器中的所述版本表中,去除所述文件系統(tǒng)版本的對(duì)應(yīng)紀(jì)元值的版本管理器。
47.按照權(quán)利要求44所述的產(chǎn)品,還包括介質(zhì)中的用于準(zhǔn)瞬時(shí)地復(fù)原所述文件系統(tǒng)的現(xiàn)有邏輯版本的單元,其中所述單元包括適合于去除所述本地存儲(chǔ)介質(zhì)的永久存儲(chǔ)器中所述版本表中的所有插入條目,并把所述文件系統(tǒng)紀(jì)元值設(shè)置成與所述復(fù)原的邏輯文件系統(tǒng)版本對(duì)應(yīng)的紀(jì)元值的版本管理器。
48.按照權(quán)利要求44所述的產(chǎn)品,還包括介質(zhì)中的響應(yīng)屬于所述文件系統(tǒng)的非原始邏輯版本的多重引用對(duì)象的修改,進(jìn)行寫時(shí)復(fù)制過程的單元。
49.按照權(quán)利要求48所述的產(chǎn)品,其中所述寫時(shí)復(fù)制單元包括適合于響應(yīng)屬于所述文件系統(tǒng)的非原始邏輯版本的多重引用文件系統(tǒng)對(duì)象的修改,把所述文件系統(tǒng)對(duì)象分成三個(gè)副本的記錄管理器。
50.按照權(quán)利要求44所述的產(chǎn)品,其中介質(zhì)中的在單一時(shí)刻產(chǎn)生所述文件系統(tǒng)的準(zhǔn)瞬時(shí)邏輯版本的單元是適合于把所述邏輯版本中的額外空間限制于所述文件系統(tǒng)中改變后對(duì)象的版本管理器。
51.一種管理文件系統(tǒng)的邏輯版本的方法,包括(a)把文件系統(tǒng)邏輯嵌入與共享存儲(chǔ)系統(tǒng)通信的服務(wù)器節(jié)點(diǎn)的服務(wù)器軟件內(nèi),其中所述邏輯適合于與所述共享存儲(chǔ)系統(tǒng)的元數(shù)據(jù)通信;(b)向所述文件系統(tǒng)的邏輯版本分配一個(gè)紀(jì)元值;(c)向文件系統(tǒng)對(duì)象分配一對(duì)紀(jì)元值;(d)保持所有有效文件系統(tǒng)紀(jì)元值的版本表,列出的每個(gè)紀(jì)元值對(duì)應(yīng)于文件系統(tǒng)的一個(gè)有效邏輯版本;和(e)通過把所述文件系統(tǒng)的所述邏輯版本相關(guān)的當(dāng)前紀(jì)元值保存在所述共享存儲(chǔ)系統(tǒng)的永久存儲(chǔ)器中的所述版本表中,并單調(diào)遞增當(dāng)前文件系統(tǒng)紀(jì)元值,在單一時(shí)刻產(chǎn)生所述文件系統(tǒng)的準(zhǔn)瞬時(shí)邏輯版本。
52.按照權(quán)利要求51所述的方法,其中所述對(duì)象紀(jì)元值對(duì)確定其中所述對(duì)象有效的邏輯文件系統(tǒng)版本的范圍。
53.按照權(quán)利要求51所述的方法,其中產(chǎn)生文件系統(tǒng)的準(zhǔn)瞬時(shí)邏輯版本的步驟包括把所述邏輯版本的額外空間限制于所述文件系統(tǒng)中改變后的對(duì)象。
54.按照權(quán)利要求51所述的方法,還包括所述文件系統(tǒng)的所述邏輯版本的準(zhǔn)瞬時(shí)去除,其中從所述共享存儲(chǔ)系統(tǒng)的永久存儲(chǔ)器中的所述版本表中去除所述版本的相應(yīng)紀(jì)元值,并去除與所述去除的版本相關(guān)的非引用對(duì)象。
55.按照權(quán)利要求51所述的方法,還包括所述文件系統(tǒng)的現(xiàn)有邏輯版本的準(zhǔn)瞬時(shí)復(fù)原,其中從所述共享存儲(chǔ)系統(tǒng)的永久存儲(chǔ)器中去除所述版本表中的所有插入條目,并把所述文件系統(tǒng)紀(jì)元值設(shè)置成和所述復(fù)原的邏輯文件系統(tǒng)版本對(duì)應(yīng)的紀(jì)元值。
56.按照權(quán)利要求51所述的方法,還包括通過響應(yīng)多重引用文件系統(tǒng)對(duì)象的修改執(zhí)行寫時(shí)復(fù)制過程,保留文件系統(tǒng)的初始狀態(tài)。
57.一種數(shù)據(jù)存儲(chǔ)系統(tǒng),包括嵌入與共享存儲(chǔ)系統(tǒng)通信的服務(wù)器的服務(wù)器軟件內(nèi)的文件系統(tǒng)邏輯,其中所述邏輯適合于與共享存儲(chǔ)系統(tǒng)的的元數(shù)據(jù)通信;由一個(gè)紀(jì)元值識(shí)別的文件系統(tǒng)版本;由一對(duì)紀(jì)元值識(shí)別的文件系統(tǒng)對(duì)象;適合于保持所有有效的文件系統(tǒng)紀(jì)元值的列表的版本表,其中列出的每個(gè)紀(jì)元值對(duì)應(yīng)于所述文件系統(tǒng)的一個(gè)有效邏輯版本;和適合于在單一時(shí)刻產(chǎn)生所述文件系統(tǒng)的準(zhǔn)瞬時(shí)邏輯版本的版本管理器,其中與所述文件系統(tǒng)的當(dāng)前邏輯版本相關(guān)的當(dāng)前紀(jì)元值適合于保存在所述共享存儲(chǔ)系統(tǒng)的永久存儲(chǔ)器中的版本表中,并且當(dāng)前文件系統(tǒng)紀(jì)元值被單調(diào)遞增。
58.按照權(quán)利要求57所述的系統(tǒng),其中所述對(duì)象紀(jì)元值對(duì)適合于確定其中所述對(duì)象有效的所述文件系統(tǒng)的邏輯版本的范圍。
59.按照權(quán)利要求57所述的系統(tǒng),還包括適合于準(zhǔn)瞬時(shí)地去除所述文件系統(tǒng)的所述邏輯版本的所述版本管理器,其中所述版本管理器適合于從所述共享存儲(chǔ)系統(tǒng)的永久存儲(chǔ)器中的所述版本表中去除所述版本的對(duì)應(yīng)紀(jì)元值,并去除與所述去除的版本相關(guān)的非引用對(duì)象。
60.按照權(quán)利要求57所述的系統(tǒng),還包括適合于準(zhǔn)瞬時(shí)地復(fù)原所述文件系統(tǒng)的現(xiàn)有邏輯版本的所述版本管理器,其中所述版本管理器適合于去除所述共享存儲(chǔ)系統(tǒng)的永久存儲(chǔ)器中所述版本表中的插入條目,并把所述文件系統(tǒng)紀(jì)元值設(shè)置成與所述復(fù)原的邏輯版本對(duì)應(yīng)的紀(jì)元值。
61.按照權(quán)利要求57所述的系統(tǒng),還包括適合于響應(yīng)多重引用文件系統(tǒng)對(duì)象的修改,進(jìn)行寫時(shí)復(fù)制過程的記錄管理器。
62.按照權(quán)利要求61所述的系統(tǒng),其中所述記錄管理器響應(yīng)屬于設(shè)置成要修改的所述文件系統(tǒng)的非原始邏輯版本的多重引用文件系統(tǒng)對(duì)象的修改,把所述記錄分成三個(gè)副本。
63.一種產(chǎn)品,包括計(jì)算機(jī)可讀信號(hào)承載介質(zhì);介質(zhì)中的運(yùn)行與共享存儲(chǔ)系統(tǒng)通信的服務(wù)器節(jié)點(diǎn)的服務(wù)器軟件內(nèi)的文件系統(tǒng)邏輯的單元,其中所述邏輯適合于與所述共享存儲(chǔ)系統(tǒng)的元數(shù)據(jù)通信;介質(zhì)中的向文件系統(tǒng)的邏輯版本分配一個(gè)紀(jì)元值的單元;介質(zhì)中的向文件系統(tǒng)對(duì)象分配一對(duì)紀(jì)元值的單元;介質(zhì)中的保存所有有效文件系統(tǒng)紀(jì)元值的版本表的單元,每個(gè)列出的紀(jì)元值對(duì)應(yīng)于文件系統(tǒng)的一個(gè)有效邏輯版本;介質(zhì)中的通過把所述文件系統(tǒng)的所述邏輯版本的當(dāng)前紀(jì)元值保存在所述共享存儲(chǔ)系統(tǒng)的永久存儲(chǔ)器中的所述版本表中,并單調(diào)遞增當(dāng)前文件系統(tǒng)紀(jì)元值,在單一時(shí)刻產(chǎn)生所述文件系統(tǒng)的準(zhǔn)瞬時(shí)邏輯版本的單元。
64.按照權(quán)利要求63所述的產(chǎn)品,其中所述介質(zhì)選自包含可記錄的數(shù)據(jù)存儲(chǔ)介質(zhì)和調(diào)制的載波信號(hào)的組。
65.按照權(quán)利要求63所述的產(chǎn)品,其中所述對(duì)象紀(jì)元值對(duì)確定其中所述對(duì)象有效的邏輯文件系統(tǒng)版本的范圍。
66.按照權(quán)利要求63所述的產(chǎn)品,還包括介質(zhì)中的準(zhǔn)瞬時(shí)地去除所述文件系統(tǒng)的所述邏輯版本的單元,其中所述單元包括適合于從所述共享存儲(chǔ)系統(tǒng)的永久存儲(chǔ)器中的所述版本表中,去除所述文件系統(tǒng)版本的對(duì)應(yīng)紀(jì)元值的版本管理器。
67.按照權(quán)利要求63所述的產(chǎn)品,還包括介質(zhì)中的用于準(zhǔn)瞬時(shí)地復(fù)原所述文件系統(tǒng)的現(xiàn)有邏輯版本的單元,其中所述單元包括適合于去除所述共享存儲(chǔ)系統(tǒng)的永久存儲(chǔ)器中所述版本表中的所有插入條目,并把所述文件系統(tǒng)紀(jì)元值設(shè)置成與所述復(fù)原的邏輯文件系統(tǒng)版本對(duì)應(yīng)的紀(jì)元值的版本管理器。
68.按照權(quán)利要求63所述的產(chǎn)品,還包括介質(zhì)中的響應(yīng)屬于所述文件系統(tǒng)的非原始邏輯版本的多重引用對(duì)象的修改,進(jìn)行寫時(shí)復(fù)制過程的單元。
69.按照權(quán)利要求68所述的產(chǎn)品,其中所述寫時(shí)復(fù)制單元包括適合于響應(yīng)屬于所述文件系統(tǒng)的非原始邏輯版本的多重引用文件系統(tǒng)對(duì)象的修改,把所述文件系統(tǒng)對(duì)象分成三個(gè)副本的記錄管理器。
70.按照權(quán)利要求63所述的產(chǎn)品,其中介質(zhì)中的在單一時(shí)刻產(chǎn)生所述文件系統(tǒng)的準(zhǔn)瞬時(shí)邏輯版本的單元是適合于把所述邏輯版本中的額外空間限制于所述文件系統(tǒng)中改變后對(duì)象的版本管理器。
全文摘要
提供一種管理通過準(zhǔn)瞬時(shí)復(fù)制過程產(chǎn)生的文件系統(tǒng)的邏輯版本的系統(tǒng)和方法。文件系統(tǒng)的每個(gè)邏輯版本(包括原始版本)被賦予一個(gè)唯一的紀(jì)元編號(hào)或者其它識(shí)別值,每個(gè)文件系統(tǒng)對(duì)象被賦予兩個(gè)紀(jì)元編號(hào),所述兩個(gè)紀(jì)元編號(hào)定義對(duì)象所存在的邏輯版本的空間。在版本表中保存所有有效的紀(jì)元編號(hào)的列表。文件系統(tǒng)的邏輯版本的準(zhǔn)瞬時(shí)產(chǎn)生需要把唯一的紀(jì)元編號(hào)條目插入版本表中(106)以及下一邏輯版本的下一紀(jì)元編號(hào)。通過對(duì)被邏輯文件系統(tǒng)版本引用的文件系統(tǒng)對(duì)象應(yīng)用寫時(shí)復(fù)制過程,保留系統(tǒng)的初始狀態(tài)(120)。因此,文件系統(tǒng)版本被保持,并且邏輯文件系統(tǒng)版本的在先狀態(tài)的初始狀態(tài)被保留。
文檔編號(hào)G06F12/00GK1622087SQ200410038688
公開日2005年6月1日 申請(qǐng)日期2004年4月27日 優(yōu)先權(quán)日2003年4月29日
發(fā)明者賈森·C·揚(yáng), 拉賈格帕·阿納薩拉納拉亞南, 羅伯特·M·里斯, 戴維·M·沃爾夫, 拉爾夫·A·貝克-澤恩迪, 小詹姆斯·J·西格, 達(dá)雷爾·D·E·龍, 蘭德爾·C·伯恩斯 申請(qǐng)人:國際商業(yè)機(jī)器公司