專利名稱:用于訪問文件系統(tǒng)快照和文件系統(tǒng)的方法
技術領域:
本發(fā)明總體涉及改進的文件系統(tǒng)管理。更具體地,本發(fā)明涉及直接訪問文件系統(tǒng)目錄內(nèi)的文件系統(tǒng)快照。
背景技術:
對于終端用戶來說,大部分計算機系統(tǒng)都具有相同的用于存儲和訪問數(shù)據(jù)的總體結(jié)構,這種存儲和訪問是通過將數(shù)據(jù)放置在其名稱具有特定格式的“文件”內(nèi),并將文件放置在“文件夾”或“目錄”內(nèi)以進一步組織這些文件來實現(xiàn)的。這些文件對象被物理編碼到機器的例如硬盤的存儲設備內(nèi)。諸如UNIX或MS-DOS的計算機操作系統(tǒng)使用這一類型的文件編排系統(tǒng)(“UNIX”是UNIX系統(tǒng)實驗公司的商標;MS-DOS是Microsoft公司的商標)。在這些系統(tǒng)中,每個文件都具有唯一的路徑名,該文件名標識該文件在文件結(jié)構內(nèi)的位置。UNIX和MSDOS計算機具有“根”目錄,從該目錄分支出其他目錄或子目錄;在UNIX操作系統(tǒng)內(nèi),根目錄由正斜杠符號(“/”)表示,該符號還用于將路徑名的各部分分隔開。例如,路徑名“/pdir/sdir/myfile”指位于“sdir”子目錄內(nèi)的名為“myfile”的文件,而“sdir”子目錄則位于在根層級的主目錄“pdir”內(nèi)。
進程和用戶使用諸如“打開”、“讀取”和“復制”的一組特定的命令與文件系統(tǒng)交互。更具體地,進程和用戶通過輸入“cd”變換到新目錄而輸入“l(fā)s”獲得當前目錄內(nèi)的文件列表,與基于UNIX的文件系統(tǒng)交互。
支持文件系統(tǒng)的操作系統(tǒng)的一個重要屬性是對文件系統(tǒng)的備份支持。在一個例子中,操作系統(tǒng)的快照功能復制文件系統(tǒng)的全部或部分,并在基于恢復目的而創(chuàng)建文件系統(tǒng)快照時維護反映文件系統(tǒng)狀態(tài)的只讀副本。該快照需要用于存儲被復制的文件的盤空間。
文件系統(tǒng)快照的局限性在于,目前,用于文件系統(tǒng)快照的目錄實際上與文件系統(tǒng)目錄分離地配設。具體地,即使用戶可能會將快照目錄的各目錄認為是文件系統(tǒng)目錄的隱藏子目錄,但實際上,快照目錄與文件系統(tǒng)目錄分離地配設。與文件系統(tǒng)目錄分離地配設快照目錄是有局限性的,這是因為,為了執(zhí)行從快照文件的文件恢復,用戶必須首先具體地配設快照目錄。例如,用戶必須首先輸入“cd snapshot”或“cd/root/snapshot”來配設快照目錄。然后,為了從快照恢復文件系統(tǒng)內(nèi)的特定文件或目錄,用戶遍歷快照目錄以定位文件系統(tǒng)的特定文件或目錄的副本以便進行替換。
因此,鑒于上文,提供這樣一種方法將是有利的,該方法用于將快照目錄直接合并到文件系統(tǒng)目錄內(nèi)以便用戶在搜索快照文件列表時不需要配設單獨的快照目錄。
發(fā)明內(nèi)容
因此,本發(fā)明總體提供一種改進的文件系統(tǒng)備份管理,具體地,提供直接在文件系統(tǒng)目錄內(nèi)訪問文件系統(tǒng)快照。
一種操作系統(tǒng)的文件系統(tǒng)控制器控制文件系統(tǒng)的管理,包括對于至少一個存儲設備的文件系統(tǒng)內(nèi)數(shù)據(jù)的文件系統(tǒng)快照或其他備份副本的創(chuàng)建。另外,該文件系統(tǒng)控制器創(chuàng)建附加于該文件系統(tǒng)的文件系統(tǒng)目錄內(nèi)用于被在快照中復制的數(shù)據(jù)的條目的被命名數(shù)據(jù)流。被命名數(shù)據(jù)流保存對快照在存儲設備內(nèi)的存儲位置的引用。文件系統(tǒng)控制器提供經(jīng)由被命名數(shù)據(jù)流對文件系統(tǒng)快照的訪問。具體地,用戶可輸入列出文件系統(tǒng)目錄的內(nèi)容的單個命令,而文件系統(tǒng)控制器則返回列出用于數(shù)據(jù)和引用該數(shù)據(jù)的快照的被命名數(shù)據(jù)流的條目的單個響應。
當文件系統(tǒng)控制器接收到從文件系統(tǒng)刪除數(shù)據(jù)的命令時,文件系統(tǒng)控制器從存儲設備刪除數(shù)據(jù),將引用快照的任何被命名數(shù)據(jù)流附加于文件系統(tǒng)目錄內(nèi)的前一級目錄,并從文件系統(tǒng)目錄刪除該數(shù)據(jù)的條目。當用戶命令文件系統(tǒng)控制器列出前一級目錄的內(nèi)容時,文件系統(tǒng)控制器作為響應返回附加于該前一級目錄的被命名數(shù)據(jù)流。
作為被命名數(shù)據(jù)流的替代,文件系統(tǒng)控制器可創(chuàng)建附加于用于數(shù)據(jù)的條目的擴展屬性,其中擴展屬性保存對快照在存儲設備內(nèi)的存儲位置的引用。除非特別請求,否則擴展屬性在目錄內(nèi)容的列表內(nèi)隱藏。用戶可根據(jù)諸如保存用于數(shù)據(jù)的條目的目錄和數(shù)據(jù)類型的準則,對于當創(chuàng)建對快照在存儲設備內(nèi)的位置的附加引用時,文件系統(tǒng)控制器是創(chuàng)建被命名數(shù)據(jù)流還是創(chuàng)建擴展屬性而選擇偏好。
文件系統(tǒng)控制器可響應于不同觸發(fā)而創(chuàng)建快照引用。在一個實施例中,在響應于文件的快照的創(chuàng)建或響應于寫文件的命令而創(chuàng)建快照引用時,將快照引用附加于存儲器中文件系統(tǒng)目錄內(nèi)的文件名,并將快照引用轉(zhuǎn)儲到盤空間內(nèi)的文件系統(tǒng)。在另一個實施例內(nèi),文件系統(tǒng)控制器可響應于用戶請求發(fā)現(xiàn)特定目錄或文件的內(nèi)容而動態(tài)地創(chuàng)建快照引用。文件系統(tǒng)控制器確定與該目錄或文件相關聯(lián)的有效快照的位置,并動態(tài)地在存儲器中的文件系統(tǒng)目錄內(nèi)創(chuàng)建快照引用。
在所附權利要求中闡述了被認為是本發(fā)明的特點的新穎特征。但是,結(jié)合附圖參考下面對說明性實施例的詳細描述,將更好地理解本發(fā)明本身及其優(yōu)選使用模式、另外的目的和優(yōu)點,在附圖中圖1是示出其中可實現(xiàn)本發(fā)明的方法、系統(tǒng)和程序的計算機系統(tǒng)的框圖;圖2是示出用于創(chuàng)建和管理文件系統(tǒng)的快照的組件的圖示;圖3是示出關于合并到文件系統(tǒng)目錄內(nèi)的快照的文件系統(tǒng)目錄的圖示;圖4是示出快照引用偏好的圖示;以及圖5是示出用于控制在文件系統(tǒng)目錄內(nèi)創(chuàng)建和管理快照引用的進程和程序的高級邏輯流程圖。
具體實施例方式
現(xiàn)在參照附圖并具體參照圖1,其中示出了通過其可實現(xiàn)本發(fā)明的方法、系統(tǒng)和程序的計算系統(tǒng)的一個實施例。本發(fā)明可在包括多種計算系統(tǒng)和電子設備的多種系統(tǒng)內(nèi)執(zhí)行。
計算機系統(tǒng)100包括用于在計算機系統(tǒng)100內(nèi)傳送信息的總線122或其他通信設備,和用于處理程序代碼和數(shù)據(jù)的連接到總線122的至少一個處理設備,諸如處理器112??偩€122可包括通過橋接器和適配器連接并在計算機系統(tǒng)100內(nèi)被多個總線控制器控制的低等待時間和較長等待時間路徑。處理器112可以是通用處理器,諸如IBM的PowerPC(PowerPC是國際商業(yè)機器公司的注冊商標)處理器。當被實現(xiàn)為服務器系統(tǒng)時,計算機系統(tǒng)100通常包括被設計來改進網(wǎng)絡服務能力的多個處理器。
處理器112通過總線122直接或間接連接到存儲元件。在正常操作期間,處理器112在從存儲元件訪問的程序代碼的控制下處理數(shù)據(jù)。存儲元件可包括在程序代碼的實際執(zhí)行期間使用的本地存儲器,諸如隨機存儲器(RAM)114、諸如海量存儲設備118的大容量存儲器,和提供對至少一些程序代碼的臨時存儲以減少在執(zhí)行期間必須從大容量存儲器檢索代碼的次數(shù)的高速緩沖存儲器(未示出)。在一個示例中,RAM 114內(nèi)的可訪問的程序代碼是操作系統(tǒng)160。操作系統(tǒng)160包括例如經(jīng)由顯示器124和其他輸出接口有助于顯示圖形用戶接口(GUI)的程序代碼。另外,操作系統(tǒng)160包括文件系統(tǒng)控制器170,其是用于創(chuàng)建和管理文件系統(tǒng)的程序代碼。
本發(fā)明可采取完全硬件實施例、完全軟件實施例或者包含硬件和軟件組件的實施例的形式。在優(yōu)選實施例中,本發(fā)明以包括但不局限于固件、常駐軟件、微碼等的軟件實現(xiàn)。例如,在一個實施例中,操作系統(tǒng)160的文件系統(tǒng)控制器170包含這樣的程序代碼,即當在處理器112上執(zhí)行時其通過執(zhí)行例如圖5的流程圖內(nèi)所示的操作和文中所描述的其他操作來創(chuàng)建和管理文件系統(tǒng)??蛇x擇地,本發(fā)明的步驟可由包含用于執(zhí)行該步驟的硬連線邏輯的特定硬件部件執(zhí)行,或由程控的計算機部件和定制的硬件部件的任何組合來執(zhí)行。另外,RAM 114可包括應用程序設計接口,或提供擴展以使應用開發(fā)者能夠開發(fā)擴展操作系統(tǒng)160的功能以包括文件系統(tǒng)控制器170的軟件的其他接口。
另外,本發(fā)明可采取計算機程序產(chǎn)品的形式,該計算機程序產(chǎn)品可以從提供計算機可讀程序代碼的計算機可用或計算機可讀媒體中訪問,該計算機可讀程序代碼由計算機系統(tǒng)100或任何指令執(zhí)行系統(tǒng)使用或與該系統(tǒng)結(jié)合使用?;诒菊f明的目的,計算機可用或計算機可讀媒體可以是能夠包含、存儲、傳送、傳播或傳輸由指令執(zhí)行系統(tǒng)、裝置或設備使用或與該指令執(zhí)行系統(tǒng)、裝置或設備結(jié)合使用的程序的任何裝置。在一個示例中,計算機可用或計算機可讀媒體是參與將程序代碼提供給計算機系統(tǒng)100的處理器112或其他組件以便執(zhí)行的任何裝置。
這樣的媒體可以采取多種形式,包括但不局限于電子、磁、光、電磁、紅外線或半導體系統(tǒng)(或裝置、設備)或傳播媒體。計算機可讀媒體的例子包括但不局限于半導體或固態(tài)存儲器、磁帶、軟磁盤、硬盤、可移動計算機磁盤、隨機存儲器(RAM)114、只讀存儲器(ROM)116、穿孔卡或具有孔的圖案的任何其他物理媒體、剛性磁盤和光盤。光盤的當前例子包括光盤ROM(CD-ROM)、光盤-讀/寫(CD-R/W)和數(shù)字視頻盤(DVD)。在另一個例子中,計算機可讀媒體可包括海量存儲設備118,該設備被示為計算機系統(tǒng)100的內(nèi)部組件,但是其也可被提供為計算機系統(tǒng)100的外部設備。
包括網(wǎng)絡適配器的通信接口132也可連接到該系統(tǒng),以使計算機系統(tǒng)100能夠通過中間專用網(wǎng)絡或公用網(wǎng)絡連接到其他計算機系統(tǒng),這些其他系統(tǒng)諸如服務器140或客戶機150、遠程打印機、或存儲設備。通信接口132內(nèi)的網(wǎng)絡適配器可包括但不局限于調(diào)制解調(diào)器、電纜調(diào)制解調(diào)器和以太網(wǎng)卡。
具體地,通信接口132通過到網(wǎng)絡102的網(wǎng)絡鏈路134,實現(xiàn)到其他設備的連接。例如,局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)和因特網(wǎng)服務提供商(ISP)可有助于網(wǎng)絡鏈路134。網(wǎng)絡鏈路134可提供與諸如網(wǎng)絡102的一個或多個網(wǎng)絡的有線和/或無線網(wǎng)路通信。網(wǎng)絡102可指使用諸如傳輸控制協(xié)議(TCP)和網(wǎng)際協(xié)議(IP)的特定協(xié)議相互通信的網(wǎng)絡和網(wǎng)關的世界范圍的集合。
通常,網(wǎng)絡鏈路134和網(wǎng)絡102均使用承載數(shù)字數(shù)據(jù)流的電、電磁或光信號。承載進出計算機系統(tǒng)100的數(shù)字數(shù)據(jù)的通過各種網(wǎng)絡的信號、和位于網(wǎng)絡鏈路134上以及通過通信接口132的信號是傳送信息的載波的形式的示例。在一個示例內(nèi),諸如服務器140的遠程計算機經(jīng)由網(wǎng)絡鏈路134將本發(fā)明用于請求計算機系統(tǒng)100的程序代碼以包含在載波或其他傳播媒體內(nèi)的數(shù)據(jù)信號的形式傳送到與總線122連接的通信接口132。
當實現(xiàn)為服務器系統(tǒng)時,計算機系統(tǒng)100通常包括可經(jīng)由連接到輸入/輸出控制器的多個外圍部件互連(PCI)總線橋訪問的多個通信接口。以這種方式,計算機系統(tǒng)100允許經(jīng)由網(wǎng)絡102到諸如客戶機150的多個網(wǎng)絡計算機的連接。
另外,計算機系統(tǒng)100通常包括有助于通信并可保存數(shù)據(jù)的輸入/輸出(I/O)設備120(例如多個外圍部件)。這些外圍部件通過與多個輸入/輸出(I/O)控制器、適配器和擴展槽的連接直接或間接地連接到計算機系統(tǒng)100,其中這多個輸入/輸出(I/O)控制器、適配器和擴展槽連接到總線122的多個層級之一。I/O設備120的示例可包括但不局限于用于控制音頻輸入和輸出的音頻I/O設備、用于提供視覺、觸覺或其他圖形表示格式的顯示設備、用于控制指針在顯示設備內(nèi)的位置的光標控制設備,和作為用于對計算機系統(tǒng)100的輸入的接口的鍵盤。另外,I/O設備可包括經(jīng)由I/O控制器、適配器或擴展槽連接到計算機系統(tǒng)100的拇指驅(qū)動器(thumbdrive)或其他便攜式數(shù)據(jù)存儲設備。
本領域的普通技術人員應理解,圖1內(nèi)所示的硬件可變換。此外,本領域的普通技術人員應理解,所示出的示例并不旨在限制本發(fā)明的體系結(jié)構。
現(xiàn)在參照圖2,其示出了用于創(chuàng)建和管理文件系統(tǒng)的快照的組件的圖示。如文中所使用的,術語“快照”用于指文件系統(tǒng)的快照并且其可被稱為“文件系統(tǒng)快照”。
此例示出了用戶空間200、內(nèi)核空間202和盤空間220。應該理解,可實現(xiàn)其他的空間,并且每個空間內(nèi)的組件可分布在其他空間或多個計算機系統(tǒng)內(nèi)。
用戶空間200包括文件系統(tǒng)用戶接口204。文件系統(tǒng)用戶接口204接收來自用戶的用于訪問和控制文件系統(tǒng)的命令。應該理解,用戶可以是個人或應用。
盤空間220包括在邏輯上被視為文件系統(tǒng)222、快照224和快照226的數(shù)據(jù)??煺?24和快照226包括位于文件系統(tǒng)222內(nèi)的數(shù)據(jù)的至少一部分的只讀副本,每個快照具有在不同時間點復制的數(shù)據(jù)。物理上,文件系統(tǒng)222、快照224和快照226可分布在盤空間220內(nèi)的不相鄰的部分內(nèi)。盤空間220可包括多種類型的物理數(shù)據(jù)存儲媒體,諸如海量存儲設備118、RAM 114和可作為I/O設備120訪問的數(shù)據(jù)存儲設備。應該理解,盤空間220可包括除了快照224和快照226之外的快照。另外,應該理解,在其他計算機系統(tǒng)內(nèi),文件系統(tǒng)222、快照224和快照226可在盤空間220內(nèi)合并,并在邏輯上被視為單個邏輯單元。
示出操作系統(tǒng)160的一些功能組件的內(nèi)核空間202包括文件處理線程206、文件系統(tǒng)快照線程208和文件系統(tǒng)目錄210。具體地,文件處理線程206、文件系統(tǒng)快照線程208和文件系統(tǒng)目錄210均代表文件系統(tǒng)控制器170的組件。文件系統(tǒng)目錄210維護對作為文件存儲在文件系統(tǒng)222、快照224和快照226內(nèi)的數(shù)據(jù)的引用目錄。文件系統(tǒng)目錄210可包括多級目錄和子目錄,在每個目錄和子目錄下對文件進行組織。如將進一步描述的,在文件系統(tǒng)目錄210內(nèi)利用文件名引用文件系統(tǒng)222內(nèi)的數(shù)據(jù),在文件系統(tǒng)目錄210內(nèi)利用附加于文件系統(tǒng)222內(nèi)的相關數(shù)據(jù)的文件名的被命名數(shù)據(jù)流引用快照224和快照226內(nèi)的數(shù)據(jù)。
文件處理線程206通過訪問文件系統(tǒng)目錄210以定位引用被請求數(shù)據(jù)的文件,來執(zhí)行文件系統(tǒng)管理功能和數(shù)據(jù)訪問,諸如讀操作、寫操作或配設驅(qū)動器操作。文件系統(tǒng)快照線程208實現(xiàn)創(chuàng)建諸如快照224和快照226的快照的過程。在一個實施例中,每當有一個文件處理線程206要修改數(shù)據(jù),諸如將數(shù)據(jù)寫入文件系統(tǒng)222或從文件系統(tǒng)222刪除時,便有一個文件系統(tǒng)線程快照208被觸發(fā)。文件系統(tǒng)快照線程將文件系統(tǒng)222內(nèi)要被修改的數(shù)據(jù)復制到快照,諸如快照224內(nèi)。應該理解,可實現(xiàn)其他的快照方法;在可選實施例內(nèi),文件系統(tǒng)快照線程208可確定何時根據(jù)特定用戶指定的或特定計算機系統(tǒng)指定的其他準則將數(shù)據(jù)從文件系統(tǒng)222復制到快照內(nèi)。
另外,內(nèi)核空間202包括邏輯卷管理器212。邏輯卷管理器212提供文件處理線程206、文件系統(tǒng)快照線程208與物理盤220之間的接口,其中文件處理線程206和文件系統(tǒng)快照線程208將文件系統(tǒng)222、快照224和快照226的邏輯表示視為文件系統(tǒng)目錄210內(nèi)被引用的。應該理解,盡管是關于在操作系統(tǒng)內(nèi)核和物理存儲設備之間提供接口的邏輯卷管理器212對本發(fā)明進行的描述,但是本發(fā)明的可選實施例可實現(xiàn)其他類型的用于數(shù)據(jù)存儲和訪問的數(shù)據(jù)管理系統(tǒng)。此外,應該理解,盡管文件系統(tǒng)目錄210被示為處于存儲器216內(nèi),但是盤空間220可包括文件系統(tǒng)目錄210的全部或一部分。
根據(jù)一個優(yōu)點,獲得文件系統(tǒng)222的活動快照,文件系統(tǒng)快照線程208還創(chuàng)建對附加于文件系統(tǒng)目錄210內(nèi)的相關文件名的快照的引用。具體地,文件系統(tǒng)快照線程208創(chuàng)建被命名數(shù)據(jù)流形式的引用。被命名數(shù)據(jù)流包括對被復制文件在快照224或226內(nèi)的位置的引用。每一被命名數(shù)據(jù)流的字符屬性指示該被命名數(shù)據(jù)流引用一快照文件。例如,每一被命名數(shù)據(jù)流可在被命名數(shù)據(jù)流名稱的開始包括“~”。在一個示例內(nèi),如果文件系統(tǒng)目錄210內(nèi)的文件路徑是/root/bin/abe,其中該文件名為“abe”,則到引用文件“abe”的快照的位置的被命名數(shù)據(jù)流的文件路徑是/root/bin/~abe。應該理解,可使用其他屬性標識包含對快照的位置的引用的被命名數(shù)據(jù)流。
另外,根據(jù)一個優(yōu)點,當用戶請求列出文件系統(tǒng)目錄210內(nèi)的特定目錄的內(nèi)容時,文件系統(tǒng)處理線程請求并返回包括該特定目錄內(nèi)的文件名和附加于每個文件名后的被命名數(shù)據(jù)流的列表。因此,通過能夠通過被命名數(shù)據(jù)流訪問快照,用戶可訪問特定的快照文件而無需首先配設單獨的快照目錄。而是,由于是從文件系統(tǒng)目錄210內(nèi)的被命名數(shù)據(jù)流引用對特定快照文件的引用,所以用戶可在配設文件系統(tǒng)目錄210的同時通過請求被命名數(shù)據(jù)流來訪問該快照文件。
可選地,文件系統(tǒng)快照線程208可創(chuàng)建擴展屬性而不是被命名數(shù)據(jù)流形式的快照引用。擴展屬性也可以與被命名數(shù)據(jù)流相同的方式附加于文件系統(tǒng)目錄210內(nèi)的文件或目錄并被隱藏,除非被明確地搜索。因此,在使用擴展屬性而不是被命名數(shù)據(jù)流時,目錄的內(nèi)容的列表僅示出文件名。用戶必須明確地在文件系統(tǒng)目錄210的目錄內(nèi)搜索擴展屬性,尤其是引用快照的擴展屬性。應該理解,除了被命名數(shù)據(jù)流和擴展屬性之外,可實現(xiàn)能夠附加到文件系統(tǒng)目錄內(nèi)的文件或目錄的任何其他數(shù)據(jù)引用類型,來保存對快照文件的引用。
此外,根據(jù)一個優(yōu)點,當用戶請求從文件系統(tǒng)222刪除一個文件時,文件系統(tǒng)快照線程208在文件處理線程206刪除該文件之前或同時,將引用快照位置的任何被命名數(shù)據(jù)流加入文件系統(tǒng)目錄210內(nèi)保存將被刪除的文件的目錄中。從而,盡管用戶可從文件系統(tǒng)222刪除文件,但是該文件的快照不會被刪除,且引用該快照的位置的被命名數(shù)據(jù)流仍留在文件系統(tǒng)目錄210內(nèi)。
在一個示例中,響應于快照的創(chuàng)建或響應于寫文件的命令,創(chuàng)建快照引用(例如被命名數(shù)據(jù)流或擴展屬性)并將其附加于文件系統(tǒng)目錄210內(nèi)的文件名。在一個實施例中,當響應于快照的創(chuàng)建或響應于寫文件的命令而創(chuàng)建快照引用時,該快照引用被物理地加入存儲器內(nèi)的文件系統(tǒng)目錄210中,并且還被轉(zhuǎn)儲到盤空間220內(nèi)的文件系統(tǒng)222。應該理解,在文件系統(tǒng)目錄210和文件系統(tǒng)222之間維護數(shù)據(jù)一致性依賴于文件系統(tǒng)結(jié)構。
在另一個示例內(nèi),響應于發(fā)現(xiàn)命令,動態(tài)地創(chuàng)建快照引用并將其附加于文件系統(tǒng)目錄210內(nèi)的文件名。發(fā)現(xiàn)命令的示例包括但不局限于用戶請求列出特定目錄的內(nèi)容并打開特定目錄。當文件系統(tǒng)快照線程檢測到發(fā)現(xiàn)命令時,該線程請求向文件系統(tǒng)222發(fā)送請求以返回被發(fā)現(xiàn)請求的文件的有效快照文件在快照224和226內(nèi)的位置。具體地,文件系統(tǒng)222可維護有效快照文件的目錄,或從快照224和226搜索有效快照文件。在文件系統(tǒng)快照線程從文件系統(tǒng)222檢測到有效快照位置時,文件系統(tǒng)快照線程動態(tài)地創(chuàng)建快照引用,并將該快照引用附加于文件系統(tǒng)目錄210內(nèi)的相關文件名。動態(tài)創(chuàng)建的快照引用僅存在于存儲器內(nèi)的文件系統(tǒng)目錄210內(nèi)。通過根據(jù)用戶發(fā)現(xiàn)請求動態(tài)地創(chuàng)建快照引用,文件系統(tǒng)控制器170僅在被請求時創(chuàng)建快照引用,這可提供包括快照引用創(chuàng)建所需的時間和盤空間最小化的性能好處。
現(xiàn)在參照圖3,該圖示出關于合并到文件系統(tǒng)目錄內(nèi)的快照的文件系統(tǒng)目錄。在該示例中,文件系統(tǒng)目錄210包括根目錄300和包括bin 302、system 304和public 306的子目錄層。
在該示例內(nèi),被名為“abe”的文件308標識的文件系統(tǒng)數(shù)據(jù)位于子目錄bin 302下。另外,名為“~abe.1”的被命名數(shù)據(jù)流310和名為“~abe.2”的被命名數(shù)據(jù)流312附加于文件308。被命名數(shù)據(jù)流310引用由文件308標識的數(shù)據(jù)在第一時間點的快照,被命名數(shù)據(jù)流312引用由文件310標識的數(shù)據(jù)在第二時間點的快照。應該理解,除了被命名數(shù)據(jù)流310和312之外,引用其他快照的另外的被命名數(shù)據(jù)流和引用與文件308相關聯(lián)的其他數(shù)據(jù)的另外的被命名數(shù)據(jù)流或擴展屬性均可附加于文件308。另外,應該理解,包括在引用快照的位置的被命名數(shù)據(jù)流或擴展屬性內(nèi)的數(shù)據(jù)可引用物理位置或邏輯位置,其中邏輯卷管理器將邏輯位置轉(zhuǎn)換成物理位置。
根據(jù)文件系統(tǒng)目錄210內(nèi)的示例目錄結(jié)構,如果用戶提交命令“l(fā)s/root/bin”,則所得到的列表將會包括以下條目“abe”、“~abe.1”和“~abe.2”。因此,使用請求特定目錄或子目錄的內(nèi)容的列表的“l(fā)s”命令,用戶接收到在該目錄下的文件和所附加的引用被命名文件的快照文件的被命名數(shù)據(jù)流的列表。因為快照目錄以附加于文件的被命名數(shù)據(jù)流的形式合并到文件系統(tǒng)目錄內(nèi),所以用戶可在特定時間點定位文件系統(tǒng)文件的快照,而無需配設單獨的快照目錄。
用戶或者操作系統(tǒng)可為引用快照的位置的被命名數(shù)據(jù)流指定命名約定。在該示例中,所應用的命名約定指定,在被命名數(shù)據(jù)流310和312的名稱的開始處的“~”標識被命名數(shù)據(jù)流為對快照的位置的引用。另外,每個被命名數(shù)據(jù)流的名稱包括引用在快照內(nèi)被復制的數(shù)據(jù)的文件的名稱。此外,在該示例中,所應用的命名約定指定,特定文件的隨時間發(fā)展的每個快照實例的被命名數(shù)據(jù)流分別由在名稱結(jié)尾處的“.X”所標識,其中“X”是數(shù)字。應該理解,當對被命名數(shù)據(jù)流進行命名時,文件系統(tǒng)快照線程208可應用其他命名約定。
另外,在該示例中,被命名數(shù)據(jù)流314附加于子目錄public 306上。被命名數(shù)據(jù)流314被命名為“~toc.1”。如由名稱的開始處的“~”所指示的,被命名數(shù)據(jù)流314引用快照文件。但是,被命名數(shù)據(jù)流314附加于子目錄public 306而不是文件上。在一個實施例中,引用快照并附加于子目錄的被命名數(shù)據(jù)流指示被獲取該快照的數(shù)據(jù)已從該子目錄刪除。例如,先前,名為“toc”的文件位于子目錄public 306下,其中該文件包括所附加的名為“~toc.1”的被命名數(shù)據(jù)流,該被命名數(shù)據(jù)流引用由文件“toc”所引用的數(shù)據(jù)在特定時間點的快照。用戶例如通過輸入命令“rm/root/public/toc”刪除文件“toc”。作為響應,文件處理線程被調(diào)用以從public 306和文件系統(tǒng)222刪除名為“toc”的文件,且文件系統(tǒng)快照線程被調(diào)用以將該被命名數(shù)據(jù)流從該文件重新附加于public 306。因此,在刪除之后,如果用戶提交命令“l(fā)s/root/public”,則所得到的列表將包括以下條目“~toc.1”。有利地,由于快照目錄以重新附加于目錄的被命名數(shù)據(jù)流的形式合并到文件系統(tǒng)目錄中,所以當刪除該目錄下的文件時,用戶可快速識別文件系統(tǒng)目錄210內(nèi)余留的被刪除文件的快照。
現(xiàn)在參照圖4,該圖示出快照引用偏好。在一個實施例中,用戶可與圖形用戶接口交互,以在圖4內(nèi)所示的偏好中進行選擇。在另一個實施例中,用戶可輸入命令以在可用的可選偏好中進行選擇。文件系統(tǒng)控制器170可使用偏好400來確定何時觸發(fā)以及如何控制文件處理線程206和文件系統(tǒng)快照線程208。
在該示例中,用戶可選擇快照引用創(chuàng)建偏好。在該示例中,用戶選擇第一偏好402以對于除了public目錄306之外的每個目錄在發(fā)現(xiàn)時動態(tài)地創(chuàng)建快照引用,和第二偏好404以在public目錄306內(nèi)寫文件時自動創(chuàng)建快照引用。應該理解,用戶可選擇另外的快照引用創(chuàng)建偏好,并且可手動地在特定時間點請求進行快照引用。
另外,用戶可根據(jù)目錄、文件類型或其他準則選擇快照引用類型偏好。在該示例內(nèi),用戶選擇第一偏好406以使用被命名數(shù)據(jù)流來引用除了public目錄306之外的所有目錄下的快照。用戶選擇第二偏好408以使用擴展屬性來引用在public目錄306下的快照。在其他示例內(nèi),用戶可根據(jù)文件類型或根據(jù)是基于寫操作還是刪除操作來觸發(fā)快照引用創(chuàng)建,來選擇快照引用類型。
現(xiàn)在參照圖5,該高級邏輯流程圖示出了用于控制在文件系統(tǒng)目錄內(nèi)創(chuàng)建和管理快照引用的過程和程序。如圖所示,該過程在塊500開始,并此后前進到塊502。塊502描述文件系統(tǒng)控制器170啟用對快照引用創(chuàng)建的設置。例如,文件系統(tǒng)控制器170可從快照引用偏好400或從系統(tǒng)管理員設置啟用對快照引用創(chuàng)建的設置。接下來,塊504描述確定文件系統(tǒng)控制器170是否檢測到對于快照引用的創(chuàng)建的觸發(fā)。如果檢測到對于快照引用的創(chuàng)建的觸發(fā),則然后該過程轉(zhuǎn)到塊506。
塊506描述根據(jù)快照偏好400確定被復制文件的快照引用類型。接下來,塊508描述確定檢測到什么類型的觸發(fā)。
在塊508,如果該觸發(fā)是在檢測到快照的創(chuàng)建或檢測到寫文件的命令時自動創(chuàng)建快照引用,則該過程轉(zhuǎn)到塊518。接下來,塊518描述確定是否在有刪除命令時觸發(fā)快照引用創(chuàng)建。
在塊518,如果在有刪除命令時觸發(fā)快照引用創(chuàng)建,則該過程轉(zhuǎn)到塊520。塊520示出將引用快照位置的快照引用類型(例如被命名數(shù)據(jù)流或擴展屬性)附加于保存被復制并且將被刪除的文件的目錄。接下來,塊522描述將任何快照引用(例如被命名數(shù)據(jù)流或擴展屬性)重新附加于保存將被刪除的文件的目錄,并且該過程結(jié)束。應該理解,響應于刪除命令從文件系統(tǒng)對文件名和文件數(shù)據(jù)的實際刪除可根據(jù)具體計算機系統(tǒng)所使用的文件刪除方法而改變。
否則,在塊518,如果在有刪除命令時不觸發(fā)快照引用創(chuàng)建,則該過程轉(zhuǎn)到塊524。塊524描述將引用快照的位置的快照引用(例如被命名數(shù)據(jù)流或擴展屬性)附加于文件系統(tǒng)目錄內(nèi)被該快照所復制的當前文件,且該過程結(jié)束。
返回塊508,如果觸發(fā)是在發(fā)現(xiàn)時創(chuàng)建,則該過程轉(zhuǎn)到塊512。塊512描述向文件系統(tǒng)請求發(fā)現(xiàn)請求內(nèi)的當前文件的有效快照的位置。接下來,塊514示出動態(tài)創(chuàng)建對于已存在于盤空間內(nèi)的當前文件的有效快照的位置的快照引用并然后將其附加于該發(fā)現(xiàn)請求內(nèi)的當前文件,并且該過程結(jié)束。
盡管已參照優(yōu)選實施例具體示出和描述了本發(fā)明,但是本領域內(nèi)的技術人員應該理解,可在其中進行形式和細節(jié)上的各種改變而不會背離本發(fā)明的精神和范圍。
權利要求
1.一種用于訪問文件系統(tǒng)快照的方法,其中所述文件系統(tǒng)快照包括來自計算機系統(tǒng)的至少一個存儲設備內(nèi)的文件系統(tǒng)的數(shù)據(jù)的副本,包括創(chuàng)建附加于所述文件系統(tǒng)的文件系統(tǒng)目錄內(nèi)用于所述數(shù)據(jù)的條目的被命名數(shù)據(jù)流,其中所述被命名數(shù)據(jù)流保存對所述數(shù)據(jù)的所述副本在所述存儲設備內(nèi)的存儲位置的引用;以及使能經(jīng)由所述被命名數(shù)據(jù)流訪問所述文件系統(tǒng)快照。
2.根據(jù)權利要求1的方法,其中創(chuàng)建附加于所述文件系統(tǒng)的文件系統(tǒng)目錄內(nèi)用于所述數(shù)據(jù)的條目的被命名數(shù)據(jù)流進一步包括在創(chuàng)建每一文件系統(tǒng)快照時,使能自動創(chuàng)建所述被命名數(shù)據(jù)流;以及響應于檢測到在所述存儲設備內(nèi)的所述文件系統(tǒng)快照的創(chuàng)建,物理地創(chuàng)建附加于所述文件系統(tǒng)的所述文件系統(tǒng)目錄內(nèi)用于所述數(shù)據(jù)的所述條目的所述被命名數(shù)據(jù)流。
3.根據(jù)權利要求1的方法,其中創(chuàng)建附加于所述文件系統(tǒng)的文件系統(tǒng)目錄內(nèi)用于所述數(shù)據(jù)的條目的被命名數(shù)據(jù)流還包括在檢測到寫文件的命令時,使能為由文件表示的數(shù)據(jù)自動創(chuàng)建所述被命名數(shù)據(jù)流;以及響應于檢測到寫特定文件的命令,創(chuàng)建附加于所述文件系統(tǒng)的所述文件系統(tǒng)目錄內(nèi)用于所述特定文件的所述條目的所述被命名數(shù)據(jù)流。
4.根據(jù)權利要求1的方法,其中創(chuàng)建附加于所述文件系統(tǒng)的文件系統(tǒng)目錄內(nèi)用于所述數(shù)據(jù)的條目的被命名數(shù)據(jù)流還包括在發(fā)現(xiàn)所述文件系統(tǒng)目錄的至少一個特定目錄的內(nèi)容的命令請求時,使能自動創(chuàng)建所述被命名數(shù)據(jù)流;以及響應于檢測到發(fā)現(xiàn)至少一個特定目錄的內(nèi)容的命令,動態(tài)地創(chuàng)建附加于所述文件系統(tǒng)目錄的所述至少一個特定目錄內(nèi)用于特定數(shù)據(jù)的所述條目的所述被命名數(shù)據(jù)流。
5.根據(jù)權利要求4的方法,還包括響應于檢測到所述發(fā)現(xiàn)至少一個特定目錄的內(nèi)容的命令,請求與所述至少一個特定目錄相關聯(lián)的數(shù)據(jù)的所有有效快照在所述存儲設備內(nèi)的位置的列表;以及動態(tài)創(chuàng)建用于引用與所述至少一個特定目錄相關聯(lián)的數(shù)據(jù)的每一有效快照的每一位置的單獨被命名數(shù)據(jù)流。
6.根據(jù)權利要求1的方法,還包括響應于列出所述文件系統(tǒng)目錄的條目的單個命令,在單個響應內(nèi)列出用于所述數(shù)據(jù)和所述被命名數(shù)據(jù)流的所述條目。
7.根據(jù)權利要求1的方法,還包括響應于檢測到從所述文件系統(tǒng)刪除所述數(shù)據(jù)的觸發(fā)從所述存儲設備刪除所述數(shù)據(jù);將所述被命名數(shù)據(jù)流附加于所述文件系統(tǒng)目錄內(nèi)的前一級目錄;以及從所述文件系統(tǒng)目錄刪除用于所述數(shù)據(jù)的所述條目。
8.根據(jù)權利要求1的方法,其中創(chuàng)建附加于所述文件系統(tǒng)的文件系統(tǒng)目錄內(nèi)用于所述數(shù)據(jù)的條目的被命名數(shù)據(jù)流還包括利用將所述被命名數(shù)據(jù)流的類型標識為引用文件系統(tǒng)快照的至少一個字符,創(chuàng)建所述被命名數(shù)據(jù)流。
9.根據(jù)權利要求1的方法,其中所述被命名數(shù)據(jù)流是擴展屬性,其中,除非在發(fā)現(xiàn)命令內(nèi)被特別地搜索,否則擴展屬性被隱藏。
10.一種包括有效文件系統(tǒng)快照的文件系統(tǒng),其中所述文件系統(tǒng)快照包括來自計算機系統(tǒng)的至少一個存儲設備內(nèi)的文件系統(tǒng)的數(shù)據(jù)的副本,所述文件系統(tǒng)包括用于控制所述文件系統(tǒng)的文件系統(tǒng)控制器,其中所述文件系統(tǒng)通過所述計算機系統(tǒng)的存儲器內(nèi)存儲的文件系統(tǒng)目錄被管理;所述文件系統(tǒng)控制器用于創(chuàng)建附加于所述文件系統(tǒng)的文件系統(tǒng)目錄內(nèi)用于所述數(shù)據(jù)的條目的被命名數(shù)據(jù)流,其中所述被命名數(shù)據(jù)流保存對所述數(shù)據(jù)的所述副本在所述存儲設備內(nèi)的存儲位置的引用;以及所述文件系統(tǒng)控制器用于使能經(jīng)由所述被命名數(shù)據(jù)流訪問所述文件系統(tǒng)快照。
11.根據(jù)權利要求10的文件系統(tǒng),其中所述文件系統(tǒng)控制器進一步包括用于在創(chuàng)建每一文件系統(tǒng)快照時使能自動創(chuàng)建所述被命名數(shù)據(jù)流的裝置;以及文件系統(tǒng)快照線程,用于響應于檢測到在所述存儲設備內(nèi)的所述文件系統(tǒng)快照的創(chuàng)建,物理地創(chuàng)建附加于所述文件系統(tǒng)的所述文件系統(tǒng)目錄內(nèi)用于所述數(shù)據(jù)的所述條目的所述被命名數(shù)據(jù)流。
12.根據(jù)權利要求10的文件系統(tǒng),其中所述文件系統(tǒng)控制器還包括用于在檢測到寫文件的命令時使能為由文件表示的數(shù)據(jù)自動創(chuàng)建所述被命名數(shù)據(jù)流的裝置;以及文件系統(tǒng)快照線程,其響應于檢測到寫特定文件的命令被觸發(fā),用于創(chuàng)建附加于所述文件系統(tǒng)的所述文件系統(tǒng)目錄內(nèi)用于所述特定文件的所述條目的所述被命名數(shù)據(jù)流。
13.根據(jù)權利要求10的文件系統(tǒng),其中所述文件系統(tǒng)控制器還包括用于在發(fā)現(xiàn)所述文件系統(tǒng)目錄的至少一個特定目錄的內(nèi)容的命令請求時使能自動創(chuàng)建所述被命名數(shù)據(jù)流的裝置;以及文件系統(tǒng)快照線程,其響應于檢測到發(fā)現(xiàn)至少一個特定目錄的內(nèi)容的命令被觸發(fā),用于動態(tài)地創(chuàng)建附加于所述文件系統(tǒng)目錄的所述至少一個特定目錄內(nèi)用于特定數(shù)據(jù)的所述條目的所述被命名數(shù)據(jù)流。
14.根據(jù)權利要求13的文件系統(tǒng),還包括所述文件系統(tǒng)快照線程響應于檢測到所述發(fā)現(xiàn)至少一個特定目錄的內(nèi)容的命令被觸發(fā),用于請求與所述至少一個特定目錄相關聯(lián)的數(shù)據(jù)的所有有效快照在所述存儲設備內(nèi)的位置的列表;以及所述文件系統(tǒng)快照線程用于動態(tài)創(chuàng)建用于引用與所述至少一個特定目錄相關聯(lián)的數(shù)據(jù)的每一有效快照的每一位置的單獨被命名數(shù)據(jù)流。
15.根據(jù)權利要求10的文件系統(tǒng),其中所述文件系統(tǒng)控制器響應于檢測到列出所述文件系統(tǒng)目錄的條目的單個命令,在單個響應內(nèi)列出用于所述數(shù)據(jù)和所述被命名數(shù)據(jù)流的所述條目。
16.根據(jù)權利要求10的文件系統(tǒng),其中所述文件系統(tǒng)控制器還包括響應于檢測到從所述文件系統(tǒng)刪除所述數(shù)據(jù)的觸發(fā)用于從所述存儲設備刪除所述數(shù)據(jù)的裝置;用于將所述被命名數(shù)據(jù)流附加于所述文件系統(tǒng)目錄內(nèi)的前一級目錄的裝置;以及用于從所述文件系統(tǒng)目錄刪除用于所述數(shù)據(jù)的所述條目的裝置。
17.根據(jù)權利要求10的文件系統(tǒng),其中所述文件系統(tǒng)控制器用于利用將所述被命名數(shù)據(jù)流的類型標識為引用文件系統(tǒng)快照的至少一個字符,創(chuàng)建所述被命名數(shù)據(jù)流。
18.根據(jù)權利要求10的文件系統(tǒng),其中所述被命名數(shù)據(jù)流是擴展屬性,其中,除非在發(fā)現(xiàn)命令內(nèi)被特別地搜索,否則擴展屬性被隱藏。
19.一種用于訪問文件系統(tǒng)的文件系統(tǒng)快照的程序,其中所述文件系統(tǒng)快照包括來自至少一個計算機的至少一個存儲設備內(nèi)的文件系統(tǒng)的數(shù)據(jù)的副本,所述程序包含在計算機可讀介質(zhì)內(nèi),所述程序包括計算機可執(zhí)行指令,該指令使所述計算機執(zhí)行上述方法權利要求中任意一種方法的步驟。
全文摘要
一種操作系統(tǒng)的文件系統(tǒng)控制器控制文件系統(tǒng)的管理,包括對于至少一個存儲設備的文件系統(tǒng)內(nèi)數(shù)據(jù)的文件系統(tǒng)快照或其他備份副本的創(chuàng)建。另外,該文件系統(tǒng)控制器創(chuàng)建附加于該文件系統(tǒng)的文件系統(tǒng)目錄內(nèi)用于在快照中復制的數(shù)據(jù)的條目的被命名數(shù)據(jù)流。被命名數(shù)據(jù)流保存對快照在存儲設備內(nèi)的存儲位置的引用。文件系統(tǒng)控制器提供經(jīng)由被命名數(shù)據(jù)流對文件系統(tǒng)快照的訪問。具體地,用戶可輸入列出文件系統(tǒng)目錄的內(nèi)容的單個命令,而文件系統(tǒng)控制器則返回列出用于數(shù)據(jù)和引用該數(shù)據(jù)的快照的被命名數(shù)據(jù)流的條目的單個響應。
文檔編號G06F17/30GK1900928SQ20061006614
公開日2007年1月24日 申請日期2006年3月24日 優(yōu)先權日2005年7月21日
發(fā)明者G·F·麥克布瑞爾蒂, J·馬里羅, J·M-H·謝, S·P·馬倫, S·M·基奧恩 申請人:國際商業(yè)機器公司