專利名稱:捕獲和傳送文件系統(tǒng)的密集診斷數(shù)據(jù)的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般地涉及維護(hù)和改善文件系統(tǒng)完整性。更具體地說,本發(fā)明涉及獲得密集格式的文件系統(tǒng)元數(shù)據(jù)以便可以離站傳送此類數(shù)據(jù)以供專家檢查和修復(fù)的方法、裝置和計(jì)算機(jī)可用代碼。
背景技術(shù):
在計(jì)算中,文件系統(tǒng)是用于存儲(chǔ)和組織計(jì)算機(jī)文件和它們包含的數(shù)據(jù)以使查找和訪問所述文件變得容易的結(jié)構(gòu)。文件系統(tǒng)可以使用諸如硬盤或CD-ROM之類的存儲(chǔ)設(shè)備并且涉及維護(hù)文件的物理位置。替代地,文件系統(tǒng)可以是虛擬文件系統(tǒng)。虛擬文件系統(tǒng)僅作為對(duì)虛擬數(shù)據(jù)或網(wǎng)絡(luò)上的數(shù)據(jù)的訪問方法存在。
文件系統(tǒng)包括兩類數(shù)據(jù)。通常占絕大多數(shù)的第一類數(shù)據(jù)是用戶數(shù)據(jù)。例如,用戶數(shù)據(jù)的內(nèi)容類型可以例如是文本、圖形、音樂和計(jì)算機(jī)指令。第二類數(shù)據(jù)是文件系統(tǒng)元數(shù)據(jù)。文件系統(tǒng)元數(shù)據(jù)是用戶數(shù)據(jù)之外的所有數(shù)據(jù)。元數(shù)據(jù)通知處理系統(tǒng)包含用戶數(shù)據(jù)的文件的統(tǒng)計(jì)信息和結(jié)構(gòu)。
文件系統(tǒng)元數(shù)據(jù)包括超級(jí)塊,所述超級(jí)塊提供文件系統(tǒng)概要并包括指向其他信息的指針。inode是與每個(gè)文件關(guān)聯(lián)的文件系統(tǒng)元數(shù)據(jù)。inode表示文件的長度(以字節(jié)為單位)、關(guān)聯(lián)的設(shè)備標(biāo)識(shí)符、用戶標(biāo)識(shí)符、組標(biāo)識(shí)符、可以是唯一的inode號(hào)、文件模式、時(shí)間戳以及引用計(jì)數(shù)。
塊是可以分配給文件的磁盤存儲(chǔ)的最小單位。例如,處理器可以在特定的文件系統(tǒng)上建立一個(gè)1024字節(jié)的塊。這意味著文件幾乎總是填滿一個(gè)或多個(gè)塊,且最后一個(gè)塊只部分地由數(shù)據(jù)占據(jù)。
文件的各部分可以駐留在許多塊中,有時(shí)分散在磁盤驅(qū)動(dòng)器中。inode可在inode內(nèi)列出若干塊。對(duì)于較大的文件,inode可以包括一個(gè)間接塊,該間接塊可以指向其他塊的列表。通常這導(dǎo)致指向塊的相繼更深層的間接塊的多級(jí)樹狀結(jié)構(gòu)。
文件系統(tǒng)通常是非常大的數(shù)據(jù)結(jié)構(gòu)。當(dāng)處理器對(duì)文件系統(tǒng)做出更改時(shí),處理器通常需要許多單獨(dú)的寫入操作。有時(shí),錯(cuò)誤或其他故障中斷了寫入序列,例如,可能出現(xiàn)電源故障。
當(dāng)處理器在這種情況下遇到錯(cuò)誤時(shí)可能會(huì)出現(xiàn)競爭條件。競爭條件實(shí)質(zhì)上是當(dāng)電子設(shè)備中的兩個(gè)事件彼此競爭以查看哪個(gè)事件將影響設(shè)備的狀態(tài)或輸出時(shí)所出現(xiàn)的情況,其中到達(dá)的第一個(gè)事件或信號(hào)會(huì)控制設(shè)備的狀態(tài)。在文件系統(tǒng)(如日記文件系統(tǒng))的上下文中,當(dāng)更新文件系統(tǒng)時(shí)出現(xiàn)兩個(gè)步驟1)刪除文件的目錄表項(xiàng);以及2)在空閑空間映射中將文件的inode標(biāo)記為空閑空間。
如果電源出現(xiàn)故障,并且步驟1在崩潰之前立即發(fā)生,則將出現(xiàn)孤立的inode,并且分配給存儲(chǔ)的塊將顯得比實(shí)際分配的塊要多。如果步驟2在崩潰之前立即發(fā)生,則尚未刪除的inode將被標(biāo)記為空閑并且可能被其他內(nèi)容覆蓋。
日記文件系統(tǒng)(一種特殊類型的文件系統(tǒng))具有其他故障模式。除了上面提到的兩個(gè)步驟之外,日記文件系統(tǒng)具有提交對(duì)事務(wù)所做更改的第三個(gè)步驟。當(dāng)一切正常運(yùn)行時(shí),處理器或者向日記日志提交所有事務(wù)或者不提交任何事務(wù)。在日記文件系統(tǒng)中,處理器可以重放日記日志以在一致的狀態(tài)下建立元數(shù)據(jù)。但是,日記文件系統(tǒng)可以在I/O錯(cuò)誤處理失敗時(shí)變得不一致,如在寫入失敗但是處理器將事務(wù)的其他部分寫入日記日志時(shí)所發(fā)生的。
涉及遠(yuǎn)程外包文件系統(tǒng)的維護(hù)和恢復(fù)的危害是傳送的文件系統(tǒng)的詳細(xì)信息可能被截取。通過互聯(lián)網(wǎng)傳送數(shù)據(jù)時(shí)尤其如此。一旦被截取,即使加密的數(shù)據(jù)也會(huì)泄漏。因此,長期存在的愿望是盡可能避免通過互聯(lián)網(wǎng)傳送敏感信息。
發(fā)明內(nèi)容
本發(fā)明的各方面提供了用于生成文件系統(tǒng)元數(shù)據(jù)的計(jì)算機(jī)實(shí)現(xiàn)的方法、計(jì)算機(jī)可用代碼和裝置。處理器標(biāo)識(shí)文件系統(tǒng)中的每個(gè)數(shù)據(jù)單元。所述處理器判定所述數(shù)據(jù)單元是否包含文件系統(tǒng)元數(shù)據(jù)。如果所述處理器判定所述數(shù)據(jù)單元包含文件系統(tǒng)元數(shù)據(jù),則所述處理器將元數(shù)據(jù)的數(shù)據(jù)單元寫入診斷文件。然后所述處理器判定所述數(shù)據(jù)單元是否包含用戶數(shù)據(jù)。如果所述數(shù)據(jù)單元包含用戶數(shù)據(jù),則所述處理器將稀疏對(duì)象寫入所述診斷文件。
在所附權(quán)利要求中說明了被認(rèn)為是本發(fā)明特性的新穎特征。但是,當(dāng)結(jié)合附圖閱讀時(shí),通過參考以下對(duì)本發(fā)明示例性實(shí)施例的詳細(xì)說明,可以最佳地理解發(fā)明本身及其優(yōu)選使用方式、進(jìn)一步的目的和優(yōu)點(diǎn),這些附圖是圖1示出了其中可以實(shí)現(xiàn)本發(fā)明的實(shí)施例的數(shù)據(jù)處理系統(tǒng)的方塊圖;圖2示出了根據(jù)本發(fā)明的示例性實(shí)施例的客戶系統(tǒng)如何與專家系統(tǒng)交互;圖3示出了根據(jù)本發(fā)明的示例性實(shí)施例的操作系統(tǒng)調(diào)解源文件系統(tǒng)到診斷文件的轉(zhuǎn)換的操作;圖4A示出了根據(jù)本發(fā)明的示例性實(shí)施例的傳統(tǒng)文件格式的實(shí)例;圖4B示出了根據(jù)本發(fā)明的示例性實(shí)施例的稀疏文件格式的實(shí)例;圖5A示出了根據(jù)本發(fā)明的示例性實(shí)施例的獲得與文件系統(tǒng)有關(guān)的診斷數(shù)據(jù)的初始步驟;圖5B示出了根據(jù)本發(fā)明的示例性實(shí)施例的封裝和傳送與文件系統(tǒng)有關(guān)的診斷數(shù)據(jù)的步驟;圖6示出了根據(jù)本發(fā)明的示例性實(shí)施例的使用增強(qiáng)的文件一致性檢查軟件來獲得診斷數(shù)據(jù)的詳細(xì)步驟;以及圖7示出了根據(jù)本發(fā)明的示例性實(shí)施例的在AIX操作系統(tǒng)的命令行處輸入的命令的實(shí)例。
具體實(shí)施例方式
現(xiàn)在參考附圖,具體地說,參考圖1,圖1示出了其中可以實(shí)現(xiàn)本發(fā)明的實(shí)施例的數(shù)據(jù)處理系統(tǒng)的方塊圖。在所示實(shí)例中,數(shù)據(jù)處理系統(tǒng)100使用集線器體系結(jié)構(gòu),所述集線器體系結(jié)構(gòu)包括北橋和存儲(chǔ)器控制器集線器(MCH)108以及南橋和輸入/輸出(I/O)控制器集線器(ICH)110。處理單元102、主存儲(chǔ)器104和圖形處理器118連接到北橋和存儲(chǔ)器控制器集線器(MCH)108。圖形處理器118可以通過加速圖形端口(AGP)或圖形處理器118連接到北橋和存儲(chǔ)器控制器集線器108。
在所示實(shí)例中,局域網(wǎng)(LAN)適配器112、音頻適配器116、鍵盤和鼠標(biāo)適配器120、調(diào)制解調(diào)器122、只讀存儲(chǔ)器(ROM)124、通用串行總線(USB)端口和其他通信端口132以及PCI/PCIe設(shè)備134通過總線138連接到南橋和I/O控制器集線器110。PCI/PCIe設(shè)備可以包括例如以太網(wǎng)適配器、插卡以及用于筆記本計(jì)算機(jī)的PC卡。PCI使用卡總線控制器,而PCIe并不使用卡總線控制器。ROM 124可以例如是閃速二進(jìn)制輸入/輸出系統(tǒng)(BIOS)。
硬盤驅(qū)動(dòng)器126和CD-ROM驅(qū)動(dòng)器130通過總線140連接到南橋和I/O控制器集線器110。硬盤驅(qū)動(dòng)器126和CD-ROM驅(qū)動(dòng)器130可以例如使用集成驅(qū)動(dòng)電子(IDE)或串行高級(jí)技術(shù)附件(SATA)接口。超級(jí)I/O(SIO)設(shè)備136可被連接到南橋和I/O控制器集線器110。
操作系統(tǒng)在處理器102上運(yùn)行并協(xié)調(diào)和控制圖1中的數(shù)據(jù)處理系統(tǒng)100內(nèi)的各種組件。操作系統(tǒng)可以是可從市場(chǎng)上購買的操作系統(tǒng),如可從IBM公司購買的高級(jí)交互執(zhí)行(AIX)。AIX是IBM公司的注冊(cè)商標(biāo)。
本發(fā)明的各種實(shí)施例允許僅傳送文件系統(tǒng)不一致的細(xì)節(jié)而無需傳送麻煩的用戶數(shù)據(jù)。用戶數(shù)據(jù)通常包括文件系統(tǒng)數(shù)據(jù)的主要部分,因此不被發(fā)送(除非以保留位置的形式)。文件系統(tǒng)一致性檢查程序標(biāo)識(shí)文件系統(tǒng)中的多個(gè)數(shù)據(jù)單元。標(biāo)識(shí)的一種方法是文件系統(tǒng)一致性檢查程序通過從一個(gè)數(shù)據(jù)單元移到另一個(gè)數(shù)據(jù)單元來標(biāo)識(shí)文件系統(tǒng)的樹狀結(jié)構(gòu)。某些實(shí)施例可以使用像塊一樣小的數(shù)據(jù)單元。其他實(shí)施例可以使用更大的數(shù)據(jù)單元(如扇區(qū))。如果數(shù)據(jù)單元包含一個(gè)或多個(gè)文件系統(tǒng)元數(shù)據(jù),則軟件將該元數(shù)據(jù)單元寫入或復(fù)制到可以是診斷文件系統(tǒng)的一部分的診斷文件。如果數(shù)據(jù)單元包含用戶數(shù)據(jù),則軟件將稀疏對(duì)象寫入或復(fù)制到診斷文件。以后,備份或以其他方式合并診斷文件的步驟將稀疏對(duì)象看作原始用戶數(shù)據(jù)的精簡版本,但完全為空且未被寫入。稀疏對(duì)象可以是文件的元數(shù)據(jù)中的空指針。因?yàn)樵撝羔樜粗赶蛉魏我?,所以沒有存儲(chǔ)基礎(chǔ)數(shù)據(jù)-僅表現(xiàn)為空或全部為‘0’的數(shù)據(jù)單元。因此,此類稀疏對(duì)象在某種意義上作為位置保留符(place-keeper)進(jìn)行操作,代替包括文件系統(tǒng)的盤或其他介質(zhì)上的數(shù)據(jù)單元中的少量‘0’。因此,與源文件系統(tǒng)相比,處理系統(tǒng)可以以極大地簡化的形式傳送每個(gè)稀疏對(duì)象。
圖2示出了根據(jù)本發(fā)明的示例性實(shí)施例的客戶系統(tǒng)201如何與專家系統(tǒng)205交互??蛻粝到y(tǒng)201可以使用例如圖1的處理系統(tǒng)100來運(yùn)行。管理員可以判定文件系統(tǒng)行為異常。作為響應(yīng),管理員可以運(yùn)行客戶系統(tǒng)201來生成包含密集診斷數(shù)據(jù)的密集診斷文件。
專家系統(tǒng)205可以從客戶系統(tǒng)201接收診斷文件系統(tǒng)。專家系統(tǒng)205維護(hù)診斷文件系統(tǒng)以形成已維護(hù)的文件系統(tǒng)。專家系統(tǒng)205可以使用例如圖1的處理系統(tǒng)100來運(yùn)行。維護(hù)可以包括例如對(duì)診斷文件系統(tǒng)進(jìn)行維護(hù)以形成已維護(hù)的文件系統(tǒng)。此外,維護(hù)可以包括對(duì)診斷文件系統(tǒng)執(zhí)行恢復(fù)操作。計(jì)費(fèi)系統(tǒng)207可以監(jiān)視診斷文件系統(tǒng)上的活動(dòng)。計(jì)費(fèi)系統(tǒng)207可以監(jiān)視專家系統(tǒng)205上的活動(dòng),以便計(jì)費(fèi)系統(tǒng)207可以為在維護(hù)診斷文件系統(tǒng)時(shí)提供的維護(hù)對(duì)客戶計(jì)費(fèi)。專家系統(tǒng)205將已維護(hù)的文件系統(tǒng)返回客戶系統(tǒng)201。
密集文件格式是壓縮稀疏文件時(shí)產(chǎn)生的結(jié)果。管理員可以在命令行編輯器處輸入命令,以便執(zhí)行如下所述的減少用戶數(shù)據(jù)的文件一致性檢查。由于處理器可以將用戶數(shù)據(jù)減少到甚至隱藏其中存儲(chǔ)的內(nèi)容的類型,所以生成的一個(gè)或多個(gè)文件是密集的并具有與文件系統(tǒng)錯(cuò)誤的源更直接相關(guān)的元數(shù)據(jù)。因此,術(shù)語密集診斷數(shù)據(jù)被應(yīng)用于說明從本發(fā)明的各種示例性實(shí)施例產(chǎn)生的一個(gè)或多個(gè)精簡的文件。換句話說,密集診斷數(shù)據(jù)是通過丟棄用戶數(shù)據(jù)或使用位置保留符代替用戶數(shù)據(jù),然后壓縮一個(gè)或多個(gè)結(jié)果文件來創(chuàng)建的。
客戶系統(tǒng)201通過網(wǎng)絡(luò)(例如,因特網(wǎng)203)傳送密集診斷數(shù)據(jù)。密集診斷數(shù)據(jù)到達(dá)專家系統(tǒng)205。專家系統(tǒng)205可以在數(shù)據(jù)恢復(fù)專家的控制下。系統(tǒng)恢復(fù)專家可以沒有與管理員建立信任關(guān)系。此外,因特網(wǎng)203被認(rèn)為是不可靠的傳送數(shù)據(jù)的方法。
圖3示出了根據(jù)本發(fā)明的示例性實(shí)施例的操作系統(tǒng)調(diào)解源文件系統(tǒng)到診斷文件的轉(zhuǎn)換的操作。操作系統(tǒng)301可以在處理器(例如,圖1的處理器102)上運(yùn)行。源文件系統(tǒng)303可以例如存儲(chǔ)在圖1的硬盤驅(qū)動(dòng)器126上。管理員可以使用命令行編輯器311將命令分別輸入操作系統(tǒng)301。一個(gè)或多個(gè)命令可以生成診斷文件305。此外,實(shí)用程序可用于替代命令行編輯器311,其中實(shí)用程序?qū)⒚顚懭氩僮飨到y(tǒng)。
圖4A示出了傳統(tǒng)文件格式的實(shí)例。分配給文件411的每個(gè)位被設(shè)置為‘0’,盡管文件指針使用查找命令忽略物理盤地址(例如,‘0’塊413)。在此格式中,處理器物理地寫入文件的所有已分配的位和塊,并且沒有在物理級(jí)別使用壓縮。
圖4B示出了可以與診斷文件關(guān)聯(lián)的稀疏文件格式(有時(shí)稱為稀疏對(duì)象)的實(shí)例。此格式涉及處理器執(zhí)行對(duì)每一位的邏輯寫入,但實(shí)際上,處理器僅將數(shù)據(jù)物理地存儲(chǔ)在文件指針指示的位置。文件指針是在該處發(fā)生下一次物理寫入的位置。對(duì)于處理器允許在文件寫入之間存在間隔的情況,將在元數(shù)據(jù)中做出記號(hào)(例如,塊指針表414)。處理器通過在邏輯地記錄了‘0’塊處建立空指針415、416、417和418來在對(duì)塊指針表414做出記號(hào)。換句話說,每個(gè)空指針都作為否則將被物理寫入硬盤驅(qū)動(dòng)器的‘0’塊的某種類型的占位符來操作。該格式是稀疏的,因?yàn)榭梢栽诤罄m(xù)讀取時(shí)檢索到大量‘0’。此外,文件元數(shù)據(jù)是保存對(duì)每個(gè)‘0’塊的引用的位置,而不是將這些‘0’存儲(chǔ)在用戶數(shù)據(jù)中。大量的‘0’(或‘0’塊)由稀疏對(duì)象來表示,并且某些文件系統(tǒng)可以在操作系統(tǒng)的普通操作期間(例如,當(dāng)程序要求操作系統(tǒng)進(jìn)行讀取時(shí))從稀疏對(duì)象讀取大量的‘0’。
密集文件格式是壓縮稀疏文件時(shí)出現(xiàn)的結(jié)果。處理器可以顯著壓縮每個(gè)‘0’塊。同樣將壓縮包括某種程度上隨機(jī)順序的‘1’和‘0’的數(shù)據(jù),盡管可能不那么顯著。因此,將‘0’塊和某種程度上隨機(jī)的數(shù)據(jù)一起壓縮,以便以壓縮形式物理地寫入文件的所有部分。一旦完成壓縮,作為診斷數(shù)據(jù)出現(xiàn)的一個(gè)或多個(gè)文件會(huì)成為密集診斷數(shù)據(jù)。
圖5A示出了根據(jù)本發(fā)明的示例性實(shí)施例的獲得與文件系統(tǒng)有關(guān)的診斷數(shù)據(jù)的初始步驟。管理員可以通過輸入命令行以命令操作系統(tǒng)執(zhí)行每個(gè)步驟來指示處理器執(zhí)行這些步驟。同樣適用的是將所有步驟合并為按順序自動(dòng)運(yùn)行的命令腳本。例如,操作系統(tǒng)可以是圖3的操作系統(tǒng)301。處理器接收命令以創(chuàng)建診斷文件系統(tǒng)(步驟501)。診斷文件系統(tǒng)可以與圖3的診斷文件305相關(guān)聯(lián)。在類似Unix的系統(tǒng)中,可能需要命令來使操作系統(tǒng)可以訪問最新創(chuàng)建的文件系統(tǒng)。在當(dāng)前的示例性實(shí)施例中,該命令為‘安裝’。處理器接收安裝命令以安裝診斷文件系統(tǒng)(步驟503)。診斷文件系統(tǒng)現(xiàn)在已準(zhǔn)備就緒以便收集數(shù)據(jù)。處理器接收命令以將元數(shù)據(jù)提取到診斷文件(步驟505)。此命令可以例如是文件系統(tǒng)一致性檢查(fsck)。診斷文件可以包括稀疏對(duì)象。診斷文件可以通過成為診斷文件系統(tǒng)的組件來與診斷文件系統(tǒng)關(guān)聯(lián)。
Fsck生成大量數(shù)據(jù),所述數(shù)據(jù)可能完全占用處理器創(chuàng)建診斷文件系統(tǒng)時(shí)分配的存儲(chǔ)。因此,處理器進(jìn)行測(cè)試以查看診斷文件系統(tǒng)是否可以容納提取的元數(shù)據(jù)(步驟507)。如果處理器做出否定的判定,則處理器可以接收命令以創(chuàng)建更大的診斷文件系統(tǒng)(步驟509)。處理在步驟509后可以進(jìn)行安裝診斷文件系統(tǒng)和其他步驟。
如果處理器判定診斷文件系統(tǒng)可以容納提取的元數(shù)據(jù),則處理通過連接符‘A’繼續(xù)到圖5B。
存在創(chuàng)建文件系統(tǒng)和安裝文件系統(tǒng)的替代操作。例如,可以存在用于記錄診斷數(shù)據(jù)的專用文件系統(tǒng),并且可以在將密集診斷數(shù)據(jù)寫入該專用文件系統(tǒng)的操作之前將其刪除。
恢復(fù)數(shù)據(jù)處理系統(tǒng)的一種方法是在處理器接著安裝文件系統(tǒng)時(shí)完整地通過或遍歷文件系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)。遍歷以及其他步驟可以檢測(cè)和更正任何不一致性。用于執(zhí)行此修復(fù)的一種工具是文件一致性檢查或fsck命令。其他文件一致性檢查程序包括Microsoft‘chkdsk’(也稱為“檢查磁盤”)程序。計(jì)算機(jī)管理員在采用具有文件系統(tǒng)的操作系統(tǒng)的計(jì)算機(jī)中使用fsck。此類操作系統(tǒng)包括例如AIX和Linux,它們?cè)诓僮魃吓cUnix類似。Linux是Linus Torvalds的注冊(cè)商標(biāo)。UNIX是Open Group的注冊(cè)商標(biāo)。其他操作系統(tǒng)類包括MicrosoftTM公司的各代WindowsTM操作系統(tǒng),以及AppleTM公司的Mac操作系統(tǒng)。文件系統(tǒng)的實(shí)例包括諸如IBM的增強(qiáng)的日記文件系統(tǒng)或JFS2之類的日記文件系統(tǒng)。
類似Unix的操作系統(tǒng)中的文件系統(tǒng)提供了存儲(chǔ)冗余數(shù)據(jù)的便利方法,其在某些方面表現(xiàn)為似乎存儲(chǔ)是為所述冗余對(duì)象分配的。所述方法包括創(chuàng)建至少合適大小的塊的稀疏對(duì)象。當(dāng)處理系統(tǒng)第一次打開文件時(shí),處理器可以創(chuàng)建指向文件起始位置的文件指針。文件指針用作位置保留符以指示處理器接著應(yīng)寫入數(shù)據(jù)的位置,其中處理器將文件視為線性的。換句話說,下一次處理器執(zhí)行寫入命令時(shí),處理器將在文件指針?biāo)诘奈恢眠M(jìn)行寫入。如果處理器在沒有寫入命令的情況下前移文件指針,則存在由文件系統(tǒng)為文件保留的空間,但是沒有相應(yīng)地將塊分配給文件。相反,文件系統(tǒng)元數(shù)據(jù)以幾個(gè)字節(jié)的形式將擴(kuò)展的空頭的存在存儲(chǔ)到文件,但是處理器并不將任何數(shù)據(jù)單元標(biāo)記為已用。數(shù)據(jù)單元可以例如是塊。如果按此方法將許多塊標(biāo)記為已用,則會(huì)出現(xiàn)實(shí)際已用磁盤空間的大量節(jié)約,因?yàn)閿?shù)個(gè)字節(jié)可以表示許多塊。將文件指針向前移動(dòng)和向其他方向移動(dòng)的通用方法是使用lseek系統(tǒng)調(diào)用,此調(diào)用一般存在于類似Unix的系統(tǒng)上。其他系統(tǒng)上存在其他的文件指針移動(dòng)命令。
文件一致性檢查要查找的事項(xiàng)之一是數(shù)據(jù)結(jié)構(gòu)中的不一致。文件一致性檢查軟件通過導(dǎo)航文件系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)來查找不一致。文件系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)包括具有根和一個(gè)或多個(gè)來自所述根的分支的樹。例如,目錄結(jié)構(gòu)開始于根,并且可以在根下?lián)碛幸粋€(gè)或多個(gè)目錄。類似地,每個(gè)文件使其組成部分存儲(chǔ)在同樣可以具有多個(gè)分支和層的塊中,其中塊是在每個(gè)分支點(diǎn)處的節(jié)點(diǎn)。包括指針或?qū)ζ渌麎K的引用的塊將此類指針存儲(chǔ)為元數(shù)據(jù)。
文件一致性檢查軟件通過從數(shù)據(jù)單元遍歷到數(shù)據(jù)單元來導(dǎo)航樹,其中每個(gè)數(shù)據(jù)單元都可以是塊。遍歷意味著文件一致性檢查軟件檢查塊下的其他分支的存在,并且如果存在一些分支,則軟件依次檢查每個(gè)分支,直到窮盡所有分支為止。檢查意味著許多事項(xiàng)。通常,檢查意味著處理器沿其他分支查找其他引用或指針。
在一致的文件系統(tǒng)中,每個(gè)數(shù)據(jù)單元僅具有單個(gè)對(duì)數(shù)據(jù)單元的引用,這意味著處理器將僅遍歷數(shù)據(jù)單元一次。再次地,數(shù)據(jù)單元可以例如是塊。但是,在不一致的文件系統(tǒng)中,可以多次引用塊。軟件可以通過遍歷來標(biāo)識(shí)文件的各單元。例如,文件一致性檢查軟件可以遍歷第一個(gè)文件并且標(biāo)記塊被分配給第一個(gè)文件。所述軟件可以遍歷第二個(gè)文件,并且標(biāo)記同一個(gè)塊也被分配給第二個(gè)文件。實(shí)質(zhì)上,文件系統(tǒng)偶然將同一個(gè)塊分配了兩次,并且可能使用第二個(gè)文件的數(shù)據(jù)覆蓋了第一個(gè)文件的數(shù)據(jù)。通過遍歷所有文件,文件一致性檢查可以發(fā)現(xiàn)許多問題。
文件一致性檢查可以修復(fù)問題以便以問答的形式響應(yīng)與用戶的交互。但是,此功能可以如此復(fù)雜和專業(yè),以致文件系統(tǒng)的管理員可以請(qǐng)求來自專家的外來幫助以在最大程度上恢復(fù)數(shù)據(jù)。遺憾的是,盡管許多專家都可以勝任,但是在文件系統(tǒng)管理員與專家之間可能沒有建立信任。換句話說,需要一種機(jī)制來保護(hù)文件系統(tǒng)中的用戶數(shù)據(jù)免于泄漏。
軟件開發(fā)人員可以將代碼添加到fsck和其他文件一致性檢查器中。所述附加的代碼在遍歷每個(gè)文件的已分配的塊時(shí)采取額外的步驟。除了標(biāo)記不一致性之外,fsck可以寫入每個(gè)文件的某些方面的副本。在以上圖5A的步驟505中執(zhí)行遍歷和寫入的過程。所述副本可能完全占用處理器創(chuàng)建診斷文件系統(tǒng)時(shí)分配的存儲(chǔ)。
圖5B示出了根據(jù)本發(fā)明的示例性實(shí)施例的封裝和傳送與文件或文件系統(tǒng)有關(guān)的診斷數(shù)據(jù)的步驟。操作系統(tǒng)(如圖3的操作系統(tǒng)301)可以執(zhí)行圖5B中的步驟。替代地,通過實(shí)用程序可以實(shí)現(xiàn)圖5B中的步驟,其中實(shí)用程序?qū)⒚顚懭氩僮飨到y(tǒng)。通常,圖5B中的步驟完成創(chuàng)建更小并更適于通過網(wǎng)絡(luò)或其他裝置進(jìn)行傳送的數(shù)據(jù)結(jié)構(gòu)的常規(guī)功能。初始地,操作系統(tǒng)備份或以其他方式將診斷文件系統(tǒng)合并到單個(gè)文件中(步驟511)。操作系統(tǒng)然后可以壓縮所述文件(步驟513)。當(dāng)操作系統(tǒng)進(jìn)行壓縮時(shí),這意味著處理器利用重復(fù)和冗余來概括數(shù)據(jù)并存儲(chǔ)已縮短的概要。例如,不同于示出所有4096個(gè)‘0’,描述4096個(gè)‘0’的塊的另一種方法是只電子地存儲(chǔ)4096x0,這要短得多。此外,由于元數(shù)據(jù)中可能已存在空指針,所以只存儲(chǔ)空指針如同壓縮那樣工作。甚至可以壓縮較大序列的空指針。例如,描述1000個(gè)空指針的序列(而不是物理地存儲(chǔ)每個(gè)空指針)的另一種方法是電子地存儲(chǔ)1000×null。操作系統(tǒng)然后傳送已壓縮的文件或密集診斷數(shù)據(jù)(步驟515)。因此,操作系統(tǒng)將用戶數(shù)據(jù)轉(zhuǎn)換為密集診斷數(shù)據(jù)。估計(jì)具有許多小文件的1024千兆字節(jié)增強(qiáng)的日記文件系統(tǒng)(JFS2)文件系統(tǒng)可被轉(zhuǎn)換為大約160兆字節(jié)的密集診斷數(shù)據(jù)-6,000倍的壓縮。
圖6示出了使用增強(qiáng)的文件一致性檢查軟件來獲得診斷數(shù)據(jù)的詳細(xì)步驟。增強(qiáng)的文件一致性檢查可以是某一版本的fsck。Fsck遍歷文件系統(tǒng)中的每個(gè)數(shù)據(jù)單元(步驟621)。運(yùn)行fsck的處理器可以判定數(shù)據(jù)單元是否包含文件系統(tǒng)元數(shù)據(jù)(步驟623)?!馕吨鴶?shù)據(jù)單元包括組成文件系統(tǒng)的所有元數(shù)據(jù)的至少一部分。Fsck寫入元數(shù)據(jù)單元以響應(yīng)判定所述數(shù)據(jù)單元是文件系統(tǒng)元數(shù)據(jù)(步驟625)。否則,步驟623和625繼續(xù)到步驟627。Fsck判定所述數(shù)據(jù)單元是否包含用戶數(shù)據(jù)(步驟627)。Fsck將稀疏對(duì)象寫入診斷文件以響應(yīng)判定所述數(shù)據(jù)單元是用戶數(shù)據(jù)(步驟629)。寫入稀疏對(duì)象可以包括處理器在元數(shù)據(jù)中寫入空指針。空指針可以例如是圖4B的塊指針表414的空415。Fsck判定是否存在要遍歷的其他數(shù)據(jù)單元(步驟631)。步驟625和629的每次寫入都可以是到診斷文件,其中所述診斷文件可以與圖3的診斷文件系統(tǒng)305關(guān)聯(lián)。稀疏對(duì)象與非稀疏對(duì)象的不同之處在于到盤的寫入并不更改數(shù)據(jù),除了標(biāo)記塊為空或者被無效的數(shù)據(jù)填充以外。Fsck并不占用整個(gè)塊,而是只是生成與元數(shù)據(jù)關(guān)聯(lián)的所有稀疏對(duì)象的列表。替代地,fsck只是使用lseek系統(tǒng)調(diào)用來向前移動(dòng)為寫入而打開的文件的文件位置。Lseek系統(tǒng)調(diào)用是存在于類似Unix的操作系統(tǒng)上的文件處理系統(tǒng)調(diào)用。實(shí)質(zhì)上,lseek命令告知操作系統(tǒng)將文件位置移過文件的當(dāng)前結(jié)尾。如果lseek系統(tǒng)調(diào)用將文件位置向前移過整個(gè)塊,則操作系統(tǒng)記錄該塊是稀疏塊或稀疏對(duì)象,而不分配盤驅(qū)動(dòng)器上的存儲(chǔ)的物理塊。稀疏對(duì)象是虛擬的存儲(chǔ)塊,但是不占用物理存儲(chǔ)的完整塊的空間。相反,元數(shù)據(jù)則標(biāo)識(shí)與文件關(guān)聯(lián)的此類塊的數(shù)量。盡管如此,在列出目錄期間確定文件占用的總空間時(shí),處理器將此類稀疏對(duì)象添加到總計(jì)。
圖7示出了根據(jù)本發(fā)明的示例性實(shí)施例的在AIX操作系統(tǒng)的命令行處輸入的命令的實(shí)例。尖括號(hào)<>括起來的文本表示用戶指定的串。例如,<newfilesystem size>711可以是指定要分配給新文件系統(tǒng)的512字節(jié)塊數(shù)的數(shù)目。
第一個(gè)語句使用crfs命令701來創(chuàng)建文件系統(tǒng)。標(biāo)志如下-v jfs2 703指定虛擬文件系統(tǒng)類型;-g rootvg 505指定在其上生成文件系統(tǒng)的現(xiàn)有卷組。卷組是一個(gè)或多個(gè)物理卷的集合;-m/newfs 707指定安裝點(diǎn),所述安裝點(diǎn)是將在該處使文件系統(tǒng)可用的目錄;以及-a size=<new filesystem size>709以512字節(jié)塊為單位指定JFS2的大小,其中,如果指定的大小不能被物理分區(qū)大小整除,則處理器將四舍五入到最接近整除的數(shù)。
診斷文件系統(tǒng)可以是圖3的診斷文件系統(tǒng)305。
Mount/newfs 721指示處理器安裝文件系統(tǒng)。
接著是文件一致性檢查并使用fsck 722命令,所述命令包含下列標(biāo)志-n 723指示處理器以非交互模式執(zhí)行文件一致性檢查,即,不詢問用戶是否要修復(fù),并且不更改已指定的文件系統(tǒng);-o metacapture=/newfs/out1 725標(biāo)識(shí)指示處理器將元數(shù)據(jù)的副本和稀疏對(duì)象寫入具有稀疏對(duì)象的文件的參數(shù),其中文件位于/newfs/out1或其他用戶指定的目錄中;<file system mount point>735是處理器要執(zhí)行診斷的文件系統(tǒng)的標(biāo)識(shí)。
處理器基于其余兩行進(jìn)行合并。備份739指示處理器將所有在fsck722中創(chuàng)建的文件置于單個(gè)文件中。即,將診斷文件系統(tǒng)置于單個(gè)文件中。備份739包括下列標(biāo)志-f<destination filename>741標(biāo)識(shí)一個(gè)或多個(gè)要存儲(chǔ)輸出的設(shè)備;以及-o/newfs 743指定用于備份的源文件系統(tǒng)。
壓縮751是使用壓縮標(biāo)記替換稀疏對(duì)象的步驟。壓縮751獲取的唯一參數(shù)是在該處存儲(chǔ)密集診斷數(shù)據(jù)的文件<destination filename>。
可以理解,合并還可以通過獲得由文件一致性檢查提供的單個(gè)文件并壓縮每個(gè)文件來實(shí)現(xiàn)。然后每個(gè)文件變成密集診斷數(shù)據(jù),并且添加到文件的主體的每個(gè)后續(xù)文件都將添加到密集診斷數(shù)據(jù)。
因此,本發(fā)明的各方面提供了計(jì)算機(jī)實(shí)現(xiàn)的方法、裝置以及計(jì)算機(jī)可用程序代碼,以便獲取有關(guān)文件系統(tǒng)不一致性的詳細(xì)信息,其方式為用戶數(shù)據(jù)是安全的,即使對(duì)指派修復(fù)文件系統(tǒng)不一致性的專家也是如此。此外,本發(fā)明的各方面可以允許文件系統(tǒng)開發(fā)者診斷正在開發(fā)的軟件中的問題,其中正在開發(fā)的軟件可能促成了文件系統(tǒng)不一致性。此外,可以將稀疏對(duì)象發(fā)送到服務(wù)組,所述服務(wù)組可以將所述稀疏對(duì)象提取到邏輯卷中,或者可以直接查看所述稀疏對(duì)象以調(diào)試文件系統(tǒng)問題。
本發(fā)明可以采取完全硬件實(shí)施例、完全軟件實(shí)施例或同時(shí)包含硬件和軟件元素的實(shí)施例的形式。在優(yōu)選實(shí)施例中,本發(fā)明以軟件來實(shí)現(xiàn),所述軟件包括但不限于固件、駐留軟件、微編碼等。
此外,本發(fā)明可以采取計(jì)算機(jī)程序產(chǎn)品的形式,所述計(jì)算機(jī)程序產(chǎn)品可從提供程序代碼以供或結(jié)合計(jì)算機(jī)或任何指令執(zhí)行系統(tǒng)使用的計(jì)算機(jī)可用或計(jì)算機(jī)可讀介質(zhì)來訪問。出于此描述的目的,計(jì)算機(jī)可用或計(jì)算機(jī)可讀介質(zhì)可以是任何可以包含、存儲(chǔ)、傳送、傳播或傳輸程序以供或結(jié)合指令執(zhí)行系統(tǒng)、裝置或設(shè)備使用的裝置。
所述介質(zhì)可以是電、磁、光、電磁、紅外線或半導(dǎo)體系統(tǒng)(或裝置或設(shè)備)或傳播介質(zhì)。計(jì)算機(jī)可讀介質(zhì)的實(shí)例包括半導(dǎo)體或固態(tài)存儲(chǔ)器、磁帶、可移動(dòng)計(jì)算機(jī)盤、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、硬磁盤和光盤。光盤的當(dāng)前實(shí)例包括光盤-只讀存儲(chǔ)器(CD-ROM)、光盤-讀/寫(CD-R/W)和DVD。
適合于存儲(chǔ)和/或執(zhí)行程序代碼的數(shù)據(jù)處理系統(tǒng)將包括至少一個(gè)通過系統(tǒng)總線直接或間接地連接到存儲(chǔ)器部件的處理器。所述存儲(chǔ)器部件可以包括在程序代碼的實(shí)際執(zhí)行期間使用的本地存儲(chǔ)器、大容量存儲(chǔ)裝置以及對(duì)至少某些程序代碼提供臨時(shí)存儲(chǔ)以便減少在執(zhí)行期間必須從大容量存儲(chǔ)裝置檢索代碼的次數(shù)的高速緩沖存儲(chǔ)器。
輸入/輸出或I/O設(shè)備(包括但不限于鍵盤、顯示裝置、指點(diǎn)設(shè)備等)可以直接或通過中間I/O控制器與所述系統(tǒng)相連。
網(wǎng)絡(luò)適配器也可以與所述系統(tǒng)相連以便使所述數(shù)據(jù)處理系統(tǒng)能夠通過中間專用或公共網(wǎng)絡(luò)與其他數(shù)據(jù)處理系統(tǒng)或遠(yuǎn)程打印機(jī)或存儲(chǔ)設(shè)備相連。調(diào)制解調(diào)器、電纜調(diào)制解調(diào)器以及以太網(wǎng)卡只是少數(shù)幾種當(dāng)前可用的網(wǎng)絡(luò)適配器類型。
出于示例和說明目的給出了對(duì)本發(fā)明的描述,并且所述描述并非旨在是窮舉的或是將本發(fā)明限于所公開的形式。對(duì)于本領(lǐng)域的技術(shù)人員來說,許多修改和變化都將是顯而易見的。本發(fā)明的示例性實(shí)施例的選擇和描述是為了最佳地解釋本發(fā)明的原理、實(shí)際應(yīng)用,并且當(dāng)適合于所構(gòu)想的特定使用時(shí),使得本領(lǐng)域的其他技術(shù)人員能夠理解本發(fā)明的具有各種修改的各種實(shí)施例。
權(quán)利要求
1.一種計(jì)算機(jī)實(shí)現(xiàn)的用于生成文件系統(tǒng)元數(shù)據(jù)的方法,所述方法包括標(biāo)識(shí)文件系統(tǒng)中的多個(gè)數(shù)據(jù)單元;判定所述多個(gè)數(shù)據(jù)單元中的一個(gè)數(shù)據(jù)單元是否包含文件系統(tǒng)元數(shù)據(jù);將所述文件系統(tǒng)元數(shù)據(jù)從所述數(shù)據(jù)單元寫入診斷文件系統(tǒng),以響應(yīng)判定所述數(shù)據(jù)單元包含所述文件系統(tǒng)元數(shù)據(jù);判定所述數(shù)據(jù)單元是否包含用戶數(shù)據(jù);以及將稀疏對(duì)象寫入診斷文件,以響應(yīng)判定所述數(shù)據(jù)單元包含用戶數(shù)據(jù),其中所述診斷文件與所述文件系統(tǒng)元數(shù)據(jù)關(guān)聯(lián)。
2.根據(jù)權(quán)利要求1的計(jì)算機(jī)實(shí)現(xiàn)的用于生成文件系統(tǒng)元數(shù)據(jù)的方法,還包括將所述診斷文件與所述診斷文件系統(tǒng)關(guān)聯(lián);以及安裝所述診斷文件系統(tǒng)。
3.根據(jù)權(quán)利要求1的計(jì)算機(jī)實(shí)現(xiàn)的用于生成文件系統(tǒng)元數(shù)據(jù)的方法,還包括將所述診斷文件合并到密集診斷數(shù)據(jù)中。
4.根據(jù)權(quán)利要求3的計(jì)算機(jī)實(shí)現(xiàn)的用于生成文件系統(tǒng)元數(shù)據(jù)的方法,其中合并還包括將所述診斷文件存儲(chǔ)在所述診斷文件系統(tǒng)中;以及壓縮所述診斷文件系統(tǒng)。
5.根據(jù)權(quán)利要求3的計(jì)算機(jī)實(shí)現(xiàn)的用于生成文件系統(tǒng)元數(shù)據(jù)的方法,還包括傳送所述密集診斷數(shù)據(jù)。
6.根據(jù)權(quán)利要求5的計(jì)算機(jī)實(shí)現(xiàn)的用于生成文件系統(tǒng)元數(shù)據(jù)的方法,其中合并還包括將所述診斷文件系統(tǒng)存儲(chǔ)為文件;以及壓縮所述文件以形成所述密集診斷數(shù)據(jù)。
7.根據(jù)權(quán)利要求5的計(jì)算機(jī)實(shí)現(xiàn)的用于生成文件系統(tǒng)元數(shù)據(jù)的方法,還包括創(chuàng)建所述診斷文件系統(tǒng);以及安裝所述診斷文件系統(tǒng)。
8.根據(jù)權(quán)利要求7的計(jì)算機(jī)實(shí)現(xiàn)的用于生成文件系統(tǒng)元數(shù)據(jù)的方法,其中合并還包括將所述診斷文件系統(tǒng)存儲(chǔ)為文件;以及將所述文件壓縮到密集診斷數(shù)據(jù)。
9.根據(jù)權(quán)利要求8的計(jì)算機(jī)實(shí)現(xiàn)的用于生成文件系統(tǒng)元數(shù)據(jù)的方法,其中數(shù)據(jù)單元包括塊。
10.根據(jù)權(quán)利要求1的計(jì)算機(jī)實(shí)現(xiàn)的用于生成文件系統(tǒng)元數(shù)據(jù)的方法,其中為所述多個(gè)數(shù)據(jù)單元中的每個(gè)數(shù)據(jù)單元重復(fù)所述判定步驟和所述寫入所述稀疏對(duì)象的步驟。
11.一種計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包括計(jì)算機(jī)可用介質(zhì),所述計(jì)算機(jī)可用介質(zhì)具有用于生成文件系統(tǒng)元數(shù)據(jù)的計(jì)算機(jī)可用程序代碼,所述計(jì)算機(jī)程序產(chǎn)品包括用于執(zhí)行根據(jù)權(quán)利要求1-10中的任一權(quán)利要求的方法中的步驟的計(jì)算機(jī)可用程序代碼。
12.一種數(shù)據(jù)處理系統(tǒng),所述數(shù)據(jù)處理系統(tǒng)包括總線;連接到所述總線的存儲(chǔ)設(shè)備,其中計(jì)算機(jī)可用代碼位于所述存儲(chǔ)設(shè)備中;連接到所述總線的通信單元;連接到所述總線的處理單元,其中所述處理單元執(zhí)行所述計(jì)算機(jī)可用代碼來生成文件系統(tǒng)元數(shù)據(jù),所述處理單元還執(zhí)行所述計(jì)算機(jī)可用代碼以執(zhí)行以下操作標(biāo)識(shí)文件系統(tǒng)中的多個(gè)數(shù)據(jù)單元;判定數(shù)據(jù)單元是否包含文件系統(tǒng)元數(shù)據(jù);將所述文件系統(tǒng)元數(shù)據(jù)從所述數(shù)據(jù)單元寫入診斷文件系統(tǒng),以響應(yīng)判定所述數(shù)據(jù)單元包含所述文件系統(tǒng)元數(shù)據(jù);判定所述數(shù)據(jù)單元是否包含用戶數(shù)據(jù);以及將稀疏對(duì)象寫入所述診斷文件,以響應(yīng)判定所述數(shù)據(jù)單元包含用戶數(shù)據(jù),其中所述診斷文件與所述文件系統(tǒng)元數(shù)據(jù)關(guān)聯(lián)。
13.根據(jù)權(quán)利要求12的數(shù)據(jù)處理系統(tǒng),其中所述處理單元還執(zhí)行所述計(jì)算機(jī)可用代碼以將所述診斷文件與所述診斷文件系統(tǒng)關(guān)聯(lián);以及安裝所述診斷文件系統(tǒng)。
14.根據(jù)權(quán)利要求12的數(shù)據(jù)處理系統(tǒng),其中所述處理單元還執(zhí)行所述計(jì)算機(jī)可用代碼以將所述診斷文件合并到密集診斷數(shù)據(jù)中。
15.根據(jù)權(quán)利要求14的數(shù)據(jù)處理系統(tǒng),其中在執(zhí)行所述計(jì)算機(jī)可用代碼以進(jìn)行合并中,所述處理單元還執(zhí)行所述計(jì)算機(jī)可用代碼以將所述診斷文件存儲(chǔ)在所述診斷文件系統(tǒng)中;以及壓縮所述診斷文件系統(tǒng)。
16.根據(jù)權(quán)利要求14的數(shù)據(jù)處理系統(tǒng),其中所述處理單元還執(zhí)行所述計(jì)算機(jī)可用代碼以傳送所述密集診斷數(shù)據(jù),并且其中在執(zhí)行所述計(jì)算機(jī)可用代碼以進(jìn)行合并中,所述處理單元還執(zhí)行所述計(jì)算機(jī)可用代碼以將所述診斷文件系統(tǒng)存儲(chǔ)為文件;以及壓縮所述文件以形成密集診斷數(shù)據(jù)。
17.根據(jù)權(quán)利要求16的數(shù)據(jù)處理系統(tǒng),其中所述處理單元還執(zhí)行所述計(jì)算機(jī)可用代碼以創(chuàng)建診斷文件系統(tǒng);以及安裝所述診斷文件系統(tǒng)。
18.根據(jù)權(quán)利要求17的數(shù)據(jù)處理系統(tǒng),其中在執(zhí)行所述計(jì)算機(jī)可用代碼以進(jìn)行合并中,所述處理單元還執(zhí)行所述計(jì)算機(jī)可用代碼以將所述診斷文件系統(tǒng)存儲(chǔ)為文件;以及將所述文件壓縮到密集診斷數(shù)據(jù)。
19.根據(jù)權(quán)利要求12的數(shù)據(jù)處理系統(tǒng),其中所述處理單元還執(zhí)行所述計(jì)算機(jī)可用代碼以重復(fù)地執(zhí)行為所述多個(gè)數(shù)據(jù)單元中的每個(gè)數(shù)據(jù)單元做出判定的所述計(jì)算機(jī)可用代碼;以及重復(fù)地執(zhí)行從所述數(shù)據(jù)單元寫入文件系統(tǒng)元數(shù)據(jù),以響應(yīng)判定所述數(shù)據(jù)單元包含所述文件系統(tǒng)元數(shù)據(jù)的所述計(jì)算機(jī)可用代碼。
20.一種用于生成文件系統(tǒng)元數(shù)據(jù)的裝置,所述裝置包括用于標(biāo)識(shí)文件系統(tǒng)中的多個(gè)數(shù)據(jù)單元的裝置;用于判定所述數(shù)據(jù)單元是否包含文件系統(tǒng)元數(shù)據(jù)的裝置,該裝置與用于遍歷的裝置相連;用于將所述文件系統(tǒng)元數(shù)據(jù)從所述數(shù)據(jù)單元寫入診斷文件系統(tǒng)的裝置,以響應(yīng)所述用于判定所述數(shù)據(jù)單元包含所述文件系統(tǒng)元數(shù)據(jù)的裝置;用于判定所述數(shù)據(jù)單元是否包含用戶數(shù)據(jù)的裝置,該裝置與用于將元數(shù)據(jù)單元寫入診斷文件的裝置相連;以及用于將稀疏對(duì)象寫入診斷文件的裝置,以響應(yīng)所述用于判定所述數(shù)據(jù)單元包含用戶數(shù)據(jù)的裝置,其中所述診斷文件與所述文件系統(tǒng)元數(shù)據(jù)關(guān)聯(lián)。
21.根據(jù)權(quán)利要求20的用于生成文件系統(tǒng)元數(shù)據(jù)的裝置,還包括用于將所述診斷文件與所述診斷文件系統(tǒng)關(guān)聯(lián)的裝置;以及用于安裝所述診斷文件系統(tǒng)的裝置。
22.根據(jù)權(quán)利要求20的用于生成文件系統(tǒng)元數(shù)據(jù)的裝置,還包括用于將所述診斷文件合并到密集診斷數(shù)據(jù)中的裝置。
23.根據(jù)權(quán)利要求22的用于生成文件系統(tǒng)元數(shù)據(jù)的裝置,其中用于合并的裝置還包括用于將所述診斷文件存儲(chǔ)在所述診斷文件系統(tǒng)中的裝置;以及用于將所述診斷文件系統(tǒng)壓縮到所述密集診斷數(shù)據(jù)的裝置。
24.根據(jù)權(quán)利要求22的用于生成文件系統(tǒng)元數(shù)據(jù)的裝置,還包括用于傳送所述密集診斷數(shù)據(jù)的裝置。
25.根據(jù)權(quán)利要求24的用于生成文件系統(tǒng)元數(shù)據(jù)的裝置,其中用于合并的裝置還包括用于將所述診斷文件系統(tǒng)存儲(chǔ)為文件的裝置;以及用于壓縮所述文件以形成所述密集診斷數(shù)據(jù)的裝置。
26.根據(jù)權(quán)利要求24的用于生成文件系統(tǒng)元數(shù)據(jù)的裝置,還包括用于創(chuàng)建所述診斷文件系統(tǒng)的裝置;用于安裝所述診斷文件系統(tǒng)的裝置;并且其中用于合并的裝置還包括用于將所述診斷文件系統(tǒng)存儲(chǔ)為文件的裝置;以及用于將所述文件壓縮到密集診斷數(shù)據(jù)的裝置。
27.根據(jù)權(quán)利要求20的用于生成文件系統(tǒng)元數(shù)據(jù)的裝置,還包括重復(fù)地使用所述用于判定的裝置和所述用于寫入所述稀疏對(duì)象的裝置的裝置。
28.一種用于維護(hù)文件系統(tǒng)的方法,所述方法包括將用于從所述文件系統(tǒng)生成診斷文件系統(tǒng)的計(jì)算機(jī)可用程序代碼發(fā)送給客戶,其中所述計(jì)算機(jī)可用程序代碼將文件系統(tǒng)元數(shù)據(jù)從每個(gè)包含所述文件系統(tǒng)元數(shù)據(jù)的數(shù)據(jù)單元寫入到診斷文件系統(tǒng);以及對(duì)于每個(gè)包含用戶數(shù)據(jù)的數(shù)據(jù)單元,將稀疏對(duì)象寫入診斷文件,其中所述診斷文件與所述文件系統(tǒng)元數(shù)據(jù)關(guān)聯(lián);從客戶接收所述診斷文件系統(tǒng);維護(hù)所述診斷文件系統(tǒng)以形成已維護(hù)的文件系統(tǒng);以及將所述已維護(hù)的文件系統(tǒng)返回給所述客戶。
29.根據(jù)權(quán)利要求28的方法,其中所述維護(hù)步驟包括對(duì)所述診斷文件系統(tǒng)進(jìn)行維護(hù)以形成已維護(hù)的文件系統(tǒng)。
30.根據(jù)權(quán)利要求28的方法,其中所述維護(hù)步驟包括對(duì)所述診斷文件系統(tǒng)執(zhí)行恢復(fù)操作以形成已維護(hù)的文件系統(tǒng)。
31.根據(jù)權(quán)利要求28的方法,還包括為在維護(hù)所述診斷文件系統(tǒng)中所提供的維護(hù)對(duì)所述客戶計(jì)費(fèi)。
全文摘要
處理器選擇文件系統(tǒng)元數(shù)據(jù)。處理器標(biāo)識(shí)文件系統(tǒng)中的每個(gè)數(shù)據(jù)單元。所述處理器判定所述數(shù)據(jù)單元是否包含文件系統(tǒng)元數(shù)據(jù)。如果所述處理器判定所述數(shù)據(jù)單元包含文件系統(tǒng)元數(shù)據(jù),則所述處理器將元數(shù)據(jù)的數(shù)據(jù)單元寫入診斷文件。然后所述處理器判定所述數(shù)據(jù)單元是否包含用戶數(shù)據(jù)。如果所述數(shù)據(jù)單元包含用戶數(shù)據(jù),則所述處理器將稀疏對(duì)象寫入所述診斷文件。
文檔編號(hào)G06F17/30GK1940927SQ200610115770
公開日2007年4月4日 申請(qǐng)日期2006年8月16日 優(yōu)先權(quán)日2005年9月27日
發(fā)明者J·E·阿德金斯, M·A·格拉布斯 申請(qǐng)人:國際商業(yè)機(jī)器公司