新四季網

用於文件系統快照持久性的方法和裝置的製作方法

2023-10-08 12:14:44 1

專利名稱:用於文件系統快照持久性的方法和裝置的製作方法
技術領域:
本發明通常涉及改進型數據處理系統,特別是,用於處理數據的方法和裝置。更具體而言,本發明提供了一種用於管理文件系統的方法,裝置和計算機指令背景技術文件系統是用於在盤上存儲和檢索文件的機制。文件系統定義了用於跟蹤文件的目錄結構和訪問文件所需的路徑語法。文件系統也定義了命名文件的方式,以及文件或卷的最大文件尺寸。文件系統通常由兩個不同的部分組成,即文件集合和目錄結構。在文件集合中的每個文件存儲有關的數據。目錄結構組織並提供有關文件系統中文件的信息。
關於文件系統的某些問題涉及文件系統中出現的損壞和錯誤。採用文件系統快照來建立在某一時間點處文件系統的一致塊級映像。塊表示同時一起發送或處理的數據組。塊也被稱之為數據塊。例如,塊的大小可為1K字節。文件系統快照用於創建文件系統的備份。
這些快照用於重構文件系統。目前的快照對於數據處理系統崩潰不具有持久性(persistence)。本發明認識到當前可獲得的快照系統在文件系統恢復操作期間並不會被保持。從而,這些類型的快照在系統重新啟動期間不具持久性。
因此,提供用於創建和管理文件系統快照的改進型方法,裝置,和計算機指令將是有益的。

發明內容
本發明提供了一種用於在數據處理系統中管理文件系統中的數據的方法,裝置和計算機指令。在文件系統恢復期間,檢測用於修改文件系統中數據塊的請求。當檢測到該請求時,將描述數據塊的元數據寫入快照映像。將文件系統中數據塊的數據拷貝到快照映像。當將該數據拷貝到快照映像中之後修改文件系統中的數據塊。該快照映像可用於將文件系統返回到修改文件系統中的數據塊之前的狀態。


看作是本發明特性的新穎特徵由所附權利要求給出。不過,結合附圖,參照以下示意性實施例的詳細描述,將更好地理解本發明本身,優選實施方式,及其他目的和優點,其中圖1為根據本發明優選實施例可實現本發明的數據處理系統的示意圖;圖2為可實現本發明的數據處理系統的框圖;圖3表示根據本發明優選實施例用在創建和管理文件系統快照中的示意性部件;圖4表示根據本發明優選實施例的快照元數據;圖5表示根據本發明優選實施例、文件系統快照的開始部分的示意圖;圖6表示根據本發明優選實施例、快照映像中的快照映像組的示意圖;圖7表示根據本發明優選實施例、快照映像組中的快照映像頁的示意圖;圖8表示根據本發明優選實施例的分段的示意圖;圖9A和9B表示根據本發明優選實施例、用於更新文件系統快照的流程圖;圖10表示根據本發明優選實施例、用於啟動恢復過程的過程;圖11表示根據本發明優選實施例、用於檢查文件系統的過程;圖12表示根據本發明優選實施例、用於對文件系統執行文件系統檢查恢復過程的過程;
圖13表示根據本發明優選實施例、用於對寫有日誌的文件系統執行日誌重寫恢復過程的過程。
具體實施例方式
現在參照附圖,具體參照圖1進行描述,其中,圖1表示根據本發明優選實施例可實現本發明的數據處理系統的示意圖。所示計算機100包括系統單元102,視頻顯示終端104,鍵盤106,存儲設備108(存儲設備108可包括軟盤驅動器以及其他類型的永久和可移動存儲介質),和滑鼠110。個人計算機100還可包括附加輸入設備,如操縱杆,觸摸板,觸控螢幕,跟蹤球,麥克風等。計算機100可使用任何合適的計算機實現,如IBM eServer計算機或IntelliStation計算機(它們是處於紐約Armonk的IBM公司的產品)。儘管所述表示示出為計算機,然而還可以用其他類型的數據處理系統,如網絡計算機,來構成本發明的其他實施例。計算機100還優選包括圖形用戶接口(GUI),在計算機100的運行操作中,圖形用戶接口可通過駐留在計算機可讀介質中的系統軟體來實現。
現參照圖2,圖2表示可實現本發明的數據處理系統的框圖。數據處理系統200是計算機的示例,如圖1中的計算機100,其中,可設置有用於實現本發明的過程的代碼或指令。數據處理系統200採用外設部件接口(PCI)局部總線體系結構。雖然所述示例採用PCI總線,但也可採用其他總線體系結構,如加速圖形埠(AGP)和工業標準體系結構(ISA)。處理器202和主存儲器204通過PCI橋208與PCI局部總線206連接。PCI橋208還可包括用於處理器202的集成存儲器控制器和高速緩存。通過直接部件互連或通過內插(add-in)連接器可構成到PCI局部總線206的附加連接。在所述示例中,區域網(LAN)適配器210,小型計算機系統接口SCSI主機總線適配器212,和擴展總線接口214通過直接部件連接與PCI局部總線206連接。與之相反,音頻適配器216,圖形適配器218,和音頻/視頻適配器219通過插入到擴展槽中的內插板與PCI局部總線206連接。擴展總線接口214為鍵盤和滑鼠適配器220,數據機222,和附加存儲器224提供連接。SCSI主機總線適配器212為硬碟驅動器226,磁帶驅動器228,和CD-ROM驅動器230提供連接。典型的PCI局部總線的實現將支持三或四個PCI擴展槽或內插連接。
作業系統運行在處理器202上,用於協調和控制如圖2所示數據處理系統200內的各種部件。作業系統可為市場上可獲得的作業系統,如Windows XP(可從微軟公司獲得)。面向對象的編程系統,如Java,可結合作業系統運行,並提供從數據處理系統200上執行的Java程序或應用對作業系統的調用。「Java」為Sun Microsystems公司的商標。用於作業系統的指令,面向對象的編程系統,以及應用或程序置於存儲設備上,如硬碟驅動器226上,並可將其載入主存儲器204中以便由處理器202執行。
本領域普通技術人員將會理解,在圖2中的硬體可根據實現方式進行變化。除圖2所示的硬體外,還可使用或代之以使用其他內部硬體或外設,如快擦寫只讀存儲器(ROM),等效非易失性存儲器,或光碟驅動器等。此外,本發明的程序還可應用於多處理器數據處理系統。
例如,對於數據處理系統200,如果可選地配置為網絡計算機,其可不包含SCSI主機總線適配器212,硬碟驅動器226,磁帶驅動器228,和CD-ROM 230。在此情形中,計算機(恰當稱之為客戶機計算機)包括某些類型的網絡通信接口,如LAN適配器210,數據機222等。作為另一示例,數據處理系統200可為獨立系統,其被配置成可在不依賴於某類型網絡通信接口的條件下進行啟動,而不管數據處理系統200是否包括某類型網絡通信接口。作為又一示例,數據處理系統200可為個人數字助理(PDA),且該個人數字助理配置有ROM和/或快擦寫ROM,以提供用於存儲作業系統文件和/或用戶生成的數據的非易失性存儲器。
圖2所述示例以及上述示例並不意在表示對體系結構的限制。例如,除採用PDA的形式外,數據處理系統200還可為筆記本計算機或手持式計算機。數據處理系統200還可為公用信息機(kiosk)或Web電器。
本發明的處理通過處理器202使用計算機實現的指令來執行,指令可設置在諸如主存儲器204,存儲器224之類的存儲器中,或設置在一個或多個外設226-230中。
參看圖3,圖3表示根據本發明優選實施例用在創建和管理文件系統快照中的示意性部件。如此處所使用的,術語「快照」用於表示文件系統的快照,另外還可將其稱為「文件系統快照」。
在該示例中,存在有用戶空間300和內核空間302。快照用戶接口304和恢復用戶接口306處在用戶空間300中。採用這些用戶接口以接收用來創建快照的用戶輸入,以及當要將文件系統恢復到先前狀態時執行恢復處理。具體是,使用快照用戶接口304啟動快照的創建。該接口用於接收諸如創建或刪除查詢之類的命令。用戶可為個人或應用程式。恢復用戶接口306用於在系統崩潰或斷電後啟動文件系統的恢復。
內核空間302包含文件處理線程308,文件系統快照線程310,邏輯卷管理器312,文件系統設備314,和快照設備316。文件系統318處在文件系統設備314內,而快照320處在快照設備316內。在這些示例中,這兩個設備為邏輯卷。文件處理線程308用於數據訪問,如讀操作,寫操作,或安裝驅動操作。對文件系統(如文件系統設備314中的文件系統318)中發現的數據執行這些操作。當在正常文件系統操作期間接收到用於數據訪問的請求時,使用文件處理線程308的處理。
文件系統快照線程310用於實現創建快照(如處在快照設備316中的快照320)的處理。該設備可設置在多個位置。例如,快照320可與文件系統318處在同一物理硬碟驅動器上。或者,快照320可處在另一存儲介質上,如非易失性隨機存取存儲器(NVRAM),另一物理硬碟驅動器,或光學介質上。邏輯卷管理器312用於在文件處理線程308,文件系統快照線程310和邏輯設備,與文件系統設備314和快照設備316之間提供接口。
在運行期間,按照當數據處理系統中出現崩潰時可重構快照320中的狀態的方式,構造快照元數據並將其寫入快照320。在這些說明性示例中,在文件系統恢復或修復期間,在快照設備320中重構的快照通過恢復或修復程序而不斷被更新,從而使重新設置時所重構快照的狀態與重新設置時所修復的文件系統的狀態相一致。當文件系統恢復或修復操作完成後,快照將繼續包含創建快照時刻的文件系統的一致塊級映像。
特別是,當在文件系統中要修改數據時,如將其寫入文件系統318或從文件系統318中將其刪除時,使用來自文件系統的數據來更新快照320。在這些示例中,將所要在文件系統318中修改的數據塊在對其實際進行修改之前將其拷貝到快照320中。除來自數據塊的數據外,還將描述修改之前該數據塊的信息和元數據拷貝或寫入到快照320中。可使用在針對快照320中數據塊的運行期間所產生的元數據和數據,將文件系統318設置到對該數據塊進行修改之前的狀態。
下面參看圖4,圖4表示根據本發明優選實施例的快照元數據。快照元數據400為用於跟蹤文件系統中的文件系統塊的快照元數據的示例,如在圖3中的快照320。快照元數據400通過快照處理(如在圖3中的文件系統快照線程310)來創建。在本發明所示示例中,該快照在數據處理系統的系統重新啟動期間是具有持久性的。在這些示例中,當文件系統恢復或修復操作能夠保持快照映像時,會出現快照的持久性。
在所示示例中,快照元數據400包含快照摘要映像(snapshotsummary map)402,快照映像404,和快照分段406。在快照摘要映像402中的項用於描述在快照映像404中發現的快照映像頁。在這些示例中,在快照摘要映像402中的每個項描述快照映像404中快照映像組的初始化狀態。快照映像組包含32個快照映像頁。在快照映像404中的數據描述在文件系統中每個數據塊的現用(in-use)和拷貝(copied)狀態。快照分段406包含描述拷貝到快照分段406中的數據塊的前映像(before-image)描述符,以及文件系統修改之前的數據塊。
在運行期間,當要對文件系統上的數據塊進行修改時,在快照元數據400中保留盤上(on-disc)結構狀態。這些修改包括寫入時拷貝(COW,copy-on-write)和刪除時拷貝(COD,copy-on-delete)操作。對數據塊的這些狀態的保留使得能夠將文件系統返回到文件系統中的數據塊被修改之前的狀態。對在快照映像404中的快照映像組進行分配,初始化每個快照映像項的現用狀態,並將其同步寫到在快照元數據400中初始化的每個快照映像組的盤上。在運行期間,同步初始化和更新摘要快照映像項。
現在參看圖5,根據本發明優選實施例,給出了文件系統快照的開始部分的示意圖。部分500表示在硬碟驅動器上的包含有快照超級塊502,塊映像Xtree拷貝504,和快照摘要映像506的部分。
快照摘要映像506為快照的開始,如在圖4中的快照元數據400。快照超級塊502用於標識快照的開始,並指向自文件系統最後安裝後所寫入的快照中的快照分段的開始和末尾。當在數據處理系統中文件系統可用於訪問時,文件系統安裝完畢。塊映像X樹(Xtree)拷貝504包含有描述文件系統中不同塊的現用狀態的文件系統結構映像。快照摘要映像506包含有若干項,其中,每個項指向快照分段,該快照分段包含快照映像組,以及該快照映像組中初始化的每個快照映像頁的現用狀態的摘要。
現參看圖6,根據本發明優選實施例,表示出快照映像中的快照映像組。快照映像組600表示設置在快照映像(如圖4所示的快照映像404)中的頁的示例。在這些示例中,快照映像組600包括32個頁,但在該圖中僅顯示出其中的4個頁,快照映像頁602,快照映像頁604,快照映像頁606,和快照映像頁608。將快照組600中的每個快照映像頁初始化為現用狀態,並將其同步寫到對於該頁映射的每個文件系統塊的盤上。文件系統塊的前映像進行拷貝後,將文件系統塊的拷貝狀態異步寫入到快照映像頁中。
現參看圖7,根據本發明優選實施例,表示出快照映像組中的快照映像頁。快照映像頁700表示快照映像頁(如在圖6中的快照映像頁602)的示例。該頁或項包含有與快照分段中的該具體頁相關的每個數據塊的現用狀態的描述。例如,項702,704,706,708,710,712和714描述正處於使用狀態的文件系統數據塊。該示例表示,當創建了快照時,文件系統塊0,1,2,508,509,510和511在文件系統中處於現用(in use)狀態。項716,718和720顯示文件系統塊處理拷貝(copied)狀態。該示例表示,文件系統塊509,510和511已將其前映像拷貝到快照中。項726,728和730顯示在快照中拷貝了文件系統塊的前映像的位置。該示例表示,文件系統塊509的前映像被拷貝到了快照塊516,文件系統塊510的前映像被拷貝到了快照塊517,以及文件系統塊511的前映像被拷貝到了快照塊518。項722和724顯示為既沒有被使用,又沒有被拷貝。在這些示例中,在快照映像頁700中出現有512個項。出於說明目的,在快照映像頁700中僅顯示出數個項。
下面,參看圖8,顯示出根據本發明優選實施例的分段的示意圖。分段頭部800表示處在快照分段(如在圖4中的快照分段406)中的分段頭部的示例。在該示例中,分段頭部800處在分段801中的某個頁中,在該示例中,分段801的長度為128k字節。當然,根據實現方式,可使用任何大小的分段。
分段801包含分段頭部800和248個sLog項,分段頭部800包含連結,自身值,和擴展(extent)數。連結是到下一個分段的地址,自身值是當前分段的地址。擴展數的值表示被拷貝到分段中的擴展的數目。擴展是作為單位分配到文件系統的連續文件系統塊的序列。如圖所示,sLog項804,806和808是用於描述已拷貝到快照中的文件系統前映像的頭部項的示例。每個sLog項包括循環冗餘校驗(CRC)數據,起始數據塊地址,(sAddr)和長度,該長度表示連續數據塊的數量。在該示例中,在部分或擴展810或812中找到前映像文件系統數據塊。在此情形中,「前映像」表示在創建快照時在文件系統中已存在的文件系統塊。當試圖修改塊映像時,該塊映像即成為「前映像」。同時,將新的塊映像稱為「後映像」。快照獲取文件系統塊的前映像的拷貝,然後,文件系統能夠將後映像塊寫入到其設備上。
對於分段,如分段801,將前映像數據塊同步寫入到這些分段中。這些分段在超級塊(如在圖5中的快照超級塊502)中的鍊表中得以描述。該鍊表的最後分段的頭部,總是在僅次於最後的分段的頭部被寫成指向該最後分段之前被初始化。這些分段還包括描述拷貝到分段中的數據塊的前映像描述符。在這些示例中,校驗和欄位,如CRC數據欄位,用於驗證當出現崩潰時最後前映像擴展的換出。
圖9A和9B表示,根據本發明優選實施例,用於更新文件系統快照的流程圖。在圖9A和9B的處理還可在快照過程(如在圖3中文件系統快照線程310)中實現。
處理以接收到用於修改文件系統中數據的請求而開始,例如寫入或刪除請求(步驟900)。接下來,確定是否存在文件系統的快照(步驟902)。如果存在快照,則確定塊X的快照摘要映像(ssMap)項是否已初始化(步驟904)。在這些示例中,ssMap項在ssMap中創建,如在圖4中的快照摘要映像402中創建。塊X用於在文件系統中要被修改的數據塊。如果塊X的ssMap項未被初始化,則對該ssMap項的32個sMap頁進行現用(inUse)狀態的初始化(步驟906)。這些sMap頁例如可為在圖6所示快照映像組600中的頁。
之後,將32個快照映像(sMap)頁同步寫入到快照中(步驟908)。接下來,將ssMap標記為已被初始化,在該項中對sMapGroup的位置進行標記,並將其同步寫入到在快照中的摘要快照映像中(步驟910)。
下面,確定當產生快照時塊X是否處於現用狀態(步驟912)。如果當產生快照時在文件系統中塊X處於現用狀態,則確定塊X是否被拷貝到快照中(步驟914)。如果塊X尚未從文件系統拷貝到快照中,則從文件系統讀取來自文件系統的塊X的前映像(步驟916)。
之後,確定在快照中的當前分段是否已滿(步驟918)。如果當前分段未滿,則使用以下內容修改當前分段頭部塊X的前映像在快照中的位置,該數據塊在文件系統中的位置,以及塊X的前映像的校驗和(步驟920)。接下來,將分段頭部和塊X的前映像同步寫入到快照中(步驟922)。換而言之,將在修改文件系統的數據塊之前從文件系統讀取的對於數據塊的數據寫入到快照中。之後,異步更新sMap頁,以表示塊X已被拷貝到快照中,以及表示塊X的前映像的位置(步驟924)。該快照映像頁例如可為在圖6中的快照映像頁602。下面,執行文件系統修改,如文件系統寫入或刪除操作(步驟926),其後,過程終止。
轉到步驟902,如果快照不存在,則過程進行到如以上所述的步驟926。接下來,回到步驟904,如果塊X的ssMap項已被初始化,則過程直接進行到如以上所述的步驟912。在步驟912中,如果當產生快照時塊X未處於現用狀態,則過程進行到如以上所述的步驟926。回到步驟914,如果塊X未拷貝到快照中,則過程進行到如以上所述的步驟926。
回到步驟918,如果當前分段滿,則在快照中為新分段分配空間(步驟928)。接下來,初始化新分段的頭部,以顯示新分段為空,且目前在快照中是最後的分段(步驟930)。然後,同步寫入新分段頭部(步驟932)。此外,標記前一個分段,以使其指向作為下一個分段的新分段(步驟934)。下面,同步寫入前一個分段的頭部(步驟936)。同步寫入這些分段的頭部,並按這種特定順序,從而確保在它們都被寫入盤上之前不會出現系統崩潰。該文件系統恢復過程依賴於能夠確定在該列表中最後寫入的分段。然後,將新分段標記為當前分段(步驟938)。之後,過程進行到如上所述的步驟920。
圖10-13的流程圖描述了用於將文件系統恢復到一致狀態的恢復過程。本發明的機制提供了用於保留當發生文件系統的恢復或修復時的快照的方法。
通過遍歷(walking)前映像數據分段的鍊表以找出已拷貝到快照中的文件系統塊,從而重構摘要映像頁的拷貝狀態。此外,以下所描述的過程通過恢復或修復過程對文件系統數據塊的任何寫入或刪除執行寫入時拷貝和刪除時拷貝處理。在未安裝文件系統的條件下出現系統崩潰或掉電後,文件系統元數據將處在不一致的狀態。例如,可能已刷新某些塊到盤中,而其他塊未刷新到盤中。使用恢復/修復過程(fsck代碼或日誌重寫(logredo))將系統文件元數據恢復到一致狀態。該狀態不必與當前快照的狀態相同。內核側(kernel-side)代碼不對不一致狀態的文件系統進行處理,從而,文件系統在其能夠被再次安裝前必須進行修復。此外,以下所描述的過程在運行期間保持有盤上結構狀態,以便在中斷時能夠繼續進行恢復和修復。
圖10表示根據本發明優選實施例、用於啟動恢復過程的過程。可在諸如圖3所示恢復UI 306之類的過程中實現該過程。
過程以讀取從超級塊所指向的第一分段頭部而開始(步驟1000)。該超級塊例如為在圖5中的快照超級塊502。其次,選出在分段中未處理的sLog項(步驟1002)。該項等效於如圖8中所示sLog項。然後,確定該選出的分段是否為快照分段表中最後的分段(步驟1004)。如果這就是最後的分段,則通過檢查校驗和來確定是否已拷貝了數據塊(步驟1006)。利用步驟1006確定在系統暫停之前前映像是否完全寫到盤上。例如,如果來自文件系統的數據塊未拷貝到快照,而數據塊的元數據已寫入到快照中且系統崩潰,校驗和將不匹配。在這種情形中,數據塊未拷貝到快照中,而在文件系統上的數據塊保持完整,這是由於在這種情形中數據塊在文件系統上未被修改。由於分段頭部的同步寫入,該校驗只在最後分段上是必需的。
接下來,確定在項中的校驗和是否正確(步驟1008)。如果校驗和正確,則確定數據塊是否標記為在sMap中已拷貝(步驟1010)。如果數據塊當前未標記為在sMap中已拷貝,則現在將該數據塊標記為在sMap中已拷貝(步驟1012)。
此外,確定對該分段是否存在任何附加項(步驟1018)。如果對該分段存在附加項,則確定是否存在另一個未處理的分段(步驟1020)。如果存在另一個未處理的分段,則讀取下一個未處理的分段(步驟1022)。然後,過程進行到以上所述的步驟1002。回到步驟1018,如果對分段存在更多未處理的項,則過程還進行到如上所述的步驟1002。
回到步驟1020,如果不存在另一未處理的分段,則開始進行恢復處理(步驟1014)。其次,啟動運行時處理過程(步驟1016),之後過程終止。步驟1014與圖12中的步驟1208或圖13中的步驟1306相同。步驟1016與圖12中的步驟1214或圖13中的步驟1312相同。
回到步驟1004,如果這不是最後的分段,則過程進行到如上所述的步驟1010。回到步驟1008,如果校驗和不正確,則過程進行到如上所述的步驟1014。在步驟1010中,如果塊被標記為在sMap中已拷貝,則過程進行到如上所述的步驟1018。
下面,參看圖11,根據本發明優選實施例,表示用於檢查文件系統的過程。圖11中的過程可被實現到恢復UI(如在圖3中的恢復UI306)中。該過程表示當啟動文件系統恢復如fsck代碼時的流程。
過程以運行日誌重寫而開始(步驟1102)。用於日誌重寫所執行的步驟在後面的圖13中進行更詳細的描述。其次,確定是否請求了快速文件系統檢查以及文件系統是否標記為乾淨(clean)。檢查文件系統超級塊,以確定文件系統是否乾淨。如果日誌重寫不能修復文件系統,則狀態將被標記為髒(dirty)。如果快速文件系統檢查未被請求或標記為乾淨,則運行文件系統(步驟1106),之後,過程終止。文件系統檢查步驟將在後面的圖12中進行更詳細地描述。回到步驟1104,如果快速文件系統檢查被請求,以及文件系統被標記為髒,則之後過程終止。
在圖12中,根據本發明優選實施例,表示用於對文件系統執行文件系統檢查恢復過程的過程。文件系統檢查恢復過程是通過查看所有系統元數據來驗證和修復文件系統元數據使之具有一致性的方法。該過程還被稱為fsck。在圖12中的過程可被實現到恢復UI(如在圖3中的恢復UI 306)中。
過程以確定文件系統檢查是否具有文件系統寫入許可而開始(步驟1202)。如果文件系統檢查具有文件系統寫入許可,則將運行時結構初始化以與快照連接(步驟1204)。運行時結構是用於保持所要在恢復操作期間寫入到快照中的數據的緩衝區。
接下來,通過遍歷分段表來重構sMap頁(步驟1206)。參照在圖10中的步驟1000-1014以及1018-1022更詳細地描述了步驟1206。由於在運行期間sMap頁被異步寫入,從而恢復sMap頁。sMap頁沒有必要具有文件系統塊的正確拷貝狀態。之後,繼續進行正常的讀/寫(rw)文件系統處理(步驟1208)。在步驟1208期間,fsck代碼查看所有文件系統元數據,並確定在系統文件元數據中是否存在任何不一致性。如果fsck代碼找到任何不一致性,則fsck代碼確定如何修復文件系統元數據。fsck代碼或去除文件系統對象,或嘗試修復文件系統對象的元數據。去除將導致COD,修復將導致COW。
然後,確定文件系統檢查是否通過寫入時拷貝(COW)操作或刪除時拷貝(COD)操作來修改文件系統(步驟1210)。如果文件系統檢查不通過COW操作或COD操作修改文件系統,則通過刷新sMap頁的任何緩衝寫入到盤上而關閉快照(步驟1212),之後,過程終止。
回到步驟1202,如果文件系統檢查不具有文件系統寫入許可,則繼續進行不具有快照交互的只讀文件系統檢查(步驟1216),之後,過程終止。在只讀檢查期間,fsck代碼查看所有文件系統元數據,如果找到任何不一致性,則發出告警消息。它不對文件系統做任何修改。回到步驟1210,如果文件系統檢查通過COW操作或COD操作修改文件系統,那麼,假如文件系統塊已被拷貝到快照中,則執行運行時檢查(步驟1214),然後,過程進行到如上所述的步驟1208。該檢查採用與圖9A和9B所述相同的方式進行。它是在與當前運行在圖3所示恢復UI 306中的fsck代碼過程相同的過程下進行。
下面,參看圖13,根據本發明優選實施例,表示用於對寫有日誌的文件系統執行日誌重寫恢復過程的過程。圖13中的過程可被實現到恢復UI(如圖3中的恢復UI 306)中。
過程以初始化運行時結構以與快照連接而開始(步驟1302)。接下來,通過遍歷分段表來重構sMap頁(步驟1304)。參照在圖10中的步驟1000-1014以及1018-1022更詳細地描述了步驟1304。之後,繼續進行正常的日誌重寫處理(步驟1306)。讀取與文件系統相關的日誌記錄。文件系統使用資料庫日誌技術,以通過在日誌記錄中跟蹤文件系統元數據的變化,從而保持文件系統的結構一致性。重現日誌記錄。每個日誌記錄包含關於文件系統元數據變化的信息。通過重現日誌記錄,根據日誌記錄來修改文件系統元數據。將從日誌結束起始並且反向移動的所有日誌記錄重現,直至到達最近的同步點。其次,確定日誌重寫是否通過COW操作或COD操作來修改文件系統(步驟1308)。如果日誌重寫不通過COW操作或COD操作修改文件系統,則通過刷新sMap頁的任何緩衝寫入到盤上而關閉快照(步驟1310),之後,過程終止。
回到步驟1308,如果日誌重寫通過COW操作或COD操作修改文件系統,那麼,執行運行時檢查以確定文件系統數據塊是否已被拷貝到快照中(步驟1312)。與fsck代碼類似,步驟1312等效於先前在圖9A和9B所述的過程。然後,過程進行到如上所述的步驟1306。
從而,本發明提供了用於從系統崩潰恢復,並保持通過本發明的過程所創建的文件系統快照的改進型方法,裝置和計算機指令。本發明的機制動態更新文件系統的快照。將關於在文件系統中進行修改的數據塊的元數據包括在快照中。在這些示例中,修改為在文件系統中對數據塊的寫入和刪除操作。在文件系統中對數據塊執行修改操作之前,將要經受這樣操作的數據塊拷貝到快照中。此外,在修改之前,將諸如在文件系統中數據塊的位置之類的數據,以及在快照中數據塊的位置,包括在快照中。數據塊被寫入到快照之前,將關於數據塊的元數據寫入到快照中。寫入到快照中的數據塊用於該數據塊的前映像,這是由於在創建快照時它已存在於文件系統中。在文件系統中的數據塊的修改發生在元數據以及數據塊的前映像寫入快照之後。該修改導致數據塊的「後映像」版本。如果想要將文件系統的狀態恢復到創建快照時的狀態,則可使用快照進行恢復。
重要的是應注意,雖然針對全功能的數據處理系統描述了本發明,然而本領域普通技術人員應該理解,本發明的處理能夠以指令的計算機可讀介質的形式以及多種形式分布,並且無論實際用於實現分布的信號承載介質的具體類型如何,本發明均同樣適用。計算機可讀介質的示例包括可記錄型介質,如軟盤,硬碟驅動器,RAM,CD-ROM,DVD-ROM,和傳輸型介質,諸如使用例如無線電頻率和光波傳輸的傳輸形式的數據和模擬通信鏈路,有線或無線通信鏈路。計算機可讀介質可採用編碼格式的形式,該格式在具體數據處理系統中為實際應用而進行解碼。
本發明的描述是出於說明及描述的目的,並不意在以所批露的形式詳盡列舉出本發明或限制本發明。顯而易見,本領域普通技術人員能夠易於想到多種修改和變形。所選及所述實施例是旨在更好地說明本發明的原理以及實際應用,並使本領域其他普通技術人員能夠想到本發明的多種修改的多種實施例,這些修改的實施例適用於他們所想到的具體應用。
權利要求
1.一種在數據處理系統中用於管理文件系統中的數據的方法,所述方法包括檢測用於修改在文件系統中的數據塊的請求;當檢測到所述請求時,將描述文件系統中的數據塊的元數據寫入快照映像中;將文件系統中數據塊的數據拷貝到快照映像中;以及當將數據塊中的數據拷貝到快照映像中之後,修改在文件系統中的數據塊,其中所述快照映像可用於將文件系統返回到修改文件系統中的數據塊之前的狀態。
2.根據權利要求1的方法,其中,拷貝步驟包括將用於定位數據的信息標識存儲在快照映像內的表中,其中,所述表用於定位在文件系統中的不同數據塊。
3.根據權利要求1的方法,其中,快照映像包括快照摘要映像,快照映像和一組分段,且其中摘要映像標識快照映像中快照映像頁的初始化狀態,快照映像包含快照映像頁,所述快照映像頁標識在文件系統中現用的數據塊,所述分段組包括來自文件系統的數據塊的拷貝。
4.根據權利要求1的方法,其中,元數據包括快照摘要映像,摘要映像,和分段頭部。
5.根據權利要求4的方法,其中,所選事件為當在修改文件系統中的數據塊時數據處理系統的失效。
6.根據權利要求4的方法,其中,所選事件為請求將文件系統恢復到一致狀態的用戶輸入。
7.根據權利要求1的方法,其中,寫入步驟包括在由快照映像組所引用的任何前映像數據塊被寫入到快照映像之前,將快照映像組的快照映像項的現用狀態寫入到快照映像中。
8.根據權利要求7的方法,其中,寫入步驟還包括當將快照映像組的數據塊的現用狀態寫入到快照映像後,將摘要快照映像項標記為被初始化,並標記快照映像組的位置。
9.根據權利要求8的方法,其中,寫入步驟還包括在將前一個分段修改為指向分段表中新的最後分段之前,初始化該新的最後分段的分段頭部。
10.根據權利要求4的方法,其中,快照映像包括快照映像頁,且其中在恢復操作期間重構所述快照映像頁。
11.根據權利要求10的方法,其中,由恢復操作處理文件系統中將由恢復操作修改的數據塊的前映像的拷貝。
12.一種用於管理文件系統中的數據的數據處理系統,所述數據處理系統包括檢測裝置,用於檢測修改文件系統中的數據塊的請求;寫入裝置,當檢測到所述請求時,用於將描述文件系統中的數據塊的元數據寫入快照映像中;拷貝裝置,當檢測到所述請求時,用於將文件系統中數據塊的數據拷貝到快照映像中;以及修改裝置,當將數據塊中的數據拷貝到快照映像中之後,用於修改在文件系統中的數據塊,其中,所述快照映像可用於將文件系統返回到修改文件系統中的數據塊之前的狀態。
13.根據權利要求12的數據處理系統,其中,拷貝裝置包括存儲裝置,用於在快照映像內的表中存儲用於定位數據的信息標識,其中,所述表用於定位文件系統中的不同數據塊。
14.根據權利要求12的數據處理系統,其中,快照映像包括快照摘要映像,快照映像,和一組分段,且其中摘要映像標識快照映像中快照映像頁的初始化狀態,快照映像包含快照映像頁,所述快照映像頁標識文件系統中的現用數據塊,所述分段組包括來自文件系統的數據塊的拷貝。
15.根據權利要求12的數據處理系統,其中,元數據包括快照摘要映像,摘要映像,和分段頭部。
16.根據權利要求15的數據處理系統,其中,所選事件為當修改文件系統的數據塊時數據處理系統的失效。
17.根據權利要求15的數據處理系統,其中,所選事件為請求將文件系統恢復到一致狀態的用戶輸入。
18.一種在計算機可讀介質中、用於在數據處理系統中管理文件系統中的數據的電腦程式產品,所述電腦程式產品包括第一指令,用於檢測修改文件系統中的數據塊的請求;第二指令,當檢測到所述請求時,用於將描述文件系統中的數據塊的元數據寫入快照映像中;第三指令,當檢測到所述請求時,用於將文件系統中數據塊的數據拷貝到快照映像中;第四指令,用於當將數據塊中的數據拷貝到快照映像中之後修改文件系統中的數據塊,其中,所述快照映像可用於將文件系統返回到修改文件系統中的數據塊之前的狀態。
19.根據權利要求18的電腦程式產品,其中,第三指令包括子指令,用於在快照映像中的表中存儲用於定位數據的信息標識,其中,所述表用於定位文件系統中的不同數據塊。
20.根據權利要求18的電腦程式產品,其中,快照映像包括快照摘要映像,快照映像,和一組分段,且其中,摘要映像用於標識快照映像中快照映像頁的初始化狀態,快照映像包含快照映像頁,所述快照映像頁標識文件系統的現用數據塊或拷貝到快照中的數據塊,所述分段組包括來自文件系統的數據塊的拷貝。
21.根據權利要求18的電腦程式產品,其中,元數據包括快照摘要映像,摘要映像,和分段頭部。
22.根據權利要求21的電腦程式產品,其中,所選事件為當修改文件系統中的數據塊時數據處理系統的失效。
23.根據權利要求21的電腦程式產品,其中,所選事件為用於將文件系統恢復到一致狀態的用戶輸入。
24.一種數據處理系統,所述數據處理系統包括總線系統;與所述總線系統連接的存儲器,其中,所述存儲器包括一組指令;和與總線系統相連的處理單元,其中處理單元執行一組指令,所述指令用於檢測用於修改文件系統中的數據塊的請求;當檢測到所述請求時,將描述文件系統中的數據塊的元數據寫入快照映像中;當檢測到所述請求時,將文件系統中數據塊的數據拷貝到快照映像中;當將數據塊中的數據拷貝到快照映像中之後修改文件系統中的數據塊,其中,所述快照映像可用於將文件系統返回到修改文件系統中的數據塊之前的狀態。
全文摘要
一種用於在數據處理系統中管理文件系統中的數據的方法,裝置和計算機指令。在文件系統恢復期間,檢測用於修改文件系統中數據塊的請求。當檢測到該請求時,將描述數據塊的元數據寫入快照映像。將用於文件系統中數據塊的數據拷貝到快照映像。當將該數據拷貝到快照映像中之後修改文件系統中的數據塊。該快照映像可用於將文件系統返回到修改文件系統中的數據塊之前的狀態。
文檔編號G06F17/30GK1655146SQ20051000642
公開日2005年8月17日 申請日期2005年1月31日 優先權日2004年2月12日
發明者珍妮特·伊莉莎白·艾德金斯, 喬恩·常 申請人:國際商業機器公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀