專利名稱:一種文件系統中實時刪除重復數據的方法
技術領域:
本發明涉及一種文件系統中實時刪除重復數據的方法,屬于計算機數據存儲技術 領域。
背景技術:
隨著數碼設備日新月異的發展,人類社會正全面在進入數字化時代,需要存儲的 數據量也正呈現出爆炸式增長的態勢。在此背景下,為了降低存儲成本和提高存儲系統的 可擴展性,如何能以盡可能少的空間儲存盡可能多的數據就成為存儲領域最炙手可熱的問 題。重復數據刪除技術興起于本世紀初期,近年來得到廣泛普及和應用。重復數據刪 除的基本思想可概述如下首先將存儲系統中的文件都切分成若干數據塊,用數據塊內容 的哈希值為數據塊集合建立索引,每個哈希值對應的數據塊內容都僅被存儲一份;然后,存 儲系統并不是直接記錄每個文件的具體內容,而是記錄每個文件由那些數據塊組成,以及 這些數據塊在每個文件中的位置信息;根據這些信息,存儲系統就能由適當的數據塊內容 重構出每個文件的內容。目前,重復數據刪除技術主要被應用于數據的同步、備份或歸檔階段,典型的代表 有同步備份工具Dropbox以及EMC公司的磁盤備份、歸檔和災難恢復產品Data Domain系 統等。在上述這些方法中,重復數據刪除都不是實時進行的。在Dropbox中,只有當每個 文件被關閉后,才會對整個文件進行切塊,然后再將變化的數據塊傳輸到服務器端。而在 DataDomain系統中,由于每次重復數據刪除都需要掃描整個磁盤,因此只能以較低的頻率 周期性進行。不難理解,這種非實時的重復數據刪除方法存在以下明顯缺點一、重復數據 刪除與數據的讀、寫操作在不同階段各自獨立進行,存儲系統為了支持隨機讀寫文件中的 數據,必須在第一級存儲階段保存全部完整數據,而僅能在備份和歸檔的第二級存儲階段 發揮節省存儲空間的作用;二、切塊效率低下,即使只修改極小一部分數據,也需要對一個 文件甚至磁盤中的全部數據都重新進行切塊。
發明內容
本發明的目的是提出一種文件系統中實時刪除重復數據的方法,通過文件系統驅 動模塊截獲來自應用程序的創建文件和向文件中寫入數據的操作命令,然后根據操作命令 提供的信息和數據,實時進行數據切塊和重復數據刪除,并只將新產生的數據塊存儲到磁 盤上,從而在根本上實現以數據塊為基本存儲單元的文件系統及其存儲和組織結構,達到 節省存儲空間的目的。本發明提出的文件系統中實時刪除重復數據的方法,包括以下步驟(1)采用嵌入式數據庫存儲文件系統中的元數據信息,在該嵌入式數據庫中設置 文件元數據表、數據塊索引表和文件組成表;所述的文件元數據表記錄文件系統中每個文 件的元數據,該元數據包括文件標識、文件名、文件所在文件夾的標識、文件大小、文件類型、訪問權限以及文件的創建、修改和訪問時間;所述的數據塊索引表記錄文件系統中文件 的數據塊的標識以及與標識相對應的數據塊的引用次數,其中數據塊的標識為該數據塊內 容的哈希值;所述的文件組成表記錄組成文件系統中的文件的數據塊的信息,包括上述文 件標識、數據塊起始位置、數據塊大小和數據塊標識,由其中的數據塊起始位置和數據塊大 小決定數據區域;(2)通過文件系統的驅動模塊,接收和響應應用程序對文件系統發起的操作命令, 該操作命令包括創建新文件、向已有文件寫入數據、從已有文件讀取數據和刪除已有文件, 具體過程如下(2-1)當文件系統的驅動模塊接收到來自應用程序的創建新文件的操作命令時, 在文件元數據表中記錄被創建文件的元數據;(2-2)當文件系統的驅動模塊接收到來自應用程序的向已有文件寫入數據的操作 命令時,進行以下操作(2-2-1)根據操作命令中被寫文件的文件標識、寫入位置和寫入數據大小,從上述 文件組成表中檢索屬于該被寫文件的兩個數據塊標識,且滿足與該兩個數據塊標識相對應 的兩個數據塊為與被寫入數據區域相互重疊的首、尾兩個數據塊;(2-2-2)根據檢索到的數據塊標識,從存儲設備中讀取與該數據塊標識相對應的 數據塊內容;(2-2-3)將讀出的數據塊內容中與被寫入數據區域不重疊的數據拼接到被寫入數 據的兩側,得到拼接后的數據及數據區域;(2-2-4)從上述文件組成表中檢索與屬于該被寫文件、且數據塊起始位置位于上 述步驟(2-2-3)數據區域之內的數據塊相對應的數據塊標識;(2-2-5)將與從上述數據塊索引表中檢索到的數據塊標識相對應的數據塊的引用 次數減1,當引用次數不為O時,進行步驟(2-2-6),當引用次數成為0時,從數據塊索引表 中刪除該數據塊標識及與該數據塊標識相對應的數據塊引用次數,并從存儲設備上刪除該 數據塊內容,進行步驟(2-2-6);(2-2-6)將上述步驟(2-2-3)拼接后的數據切分成一組新數據塊;(2-2-7)從上述數據塊索引表中分別搜索與上述一組新數據塊相對應的每個數據 塊標識若該數據塊標識已存在,則在數據塊索引表中將與該數據塊標識相對應的數據塊 的引用次數加1,若該數據塊標識為新標識,則在數據塊索引表中添加該新數據塊標識,并 將與該新數據塊標識相對應的數據塊的引用次數設置為1,并將與該新數據塊標識相對應 的新數據塊內容存儲到存儲設備上;在上述文件組成表中記錄被寫文件的文件標識、該新 數據塊的起始位置、該新數據塊的大小以及該新數據塊的標識;(2-2-8)根據向已有文件寫入數據的操作命令更新上述文件元數據表中被寫文件 的元數據;(2-3)當文件系統的驅動模塊接收到來自應用程序的從文件系統中的已有文件中 讀取數據的操作命令時,進行以下操作(2-3-1)根據操作命令,在計算機內存中分配與待讀取數據的大小相等的內存空 間,并將該內存空間初始化為空白;(2-3-2)根據操作命令中的被讀文件的文件標識和讀取位置,從上述文件組成表
5中檢索屬于該被讀文件的數據塊標識,且滿足與該數據塊標識相對應的數據塊是起始位置 處于讀取位置之前的最后一個數據塊,若檢索到該數據塊標識,且該數據塊區域與待讀取 數據區域存在重疊,則讀取該數據塊內容,并將該讀取的內容與待讀取數據區域的重疊部 分寫入上述步驟(2-3-1)的內存空間的頭部,進行步驟(2-3-3),若檢索不到該數據塊標 識,或者與檢索到的數據標識相對應的數據塊區域與待讀取數據區域不存在重疊,則進行 步驟(2-3-3);(2-3-3)根據操作命令,從上述文件組成表中檢索屬于該被讀文件的數據塊標識, 且滿足與該數據塊標識相對應的數據塊的起始位置處于待讀取數據區域內;讀取與檢索到 的所有數據塊標識相對應的數據塊的內容,并將讀出的數據塊內容中與待讀取數據區域的 重疊部分寫入上述步驟(2-3-1)的內存空間中;(2-3-4)根據操作命令,更新上述文件元數據表中被讀文件的元數據;(2-3-5)將上述步驟(2-3-1)的內存空間中的數據通過文件系統的驅動模塊返回 給應用程序;(2-4)當文件系統的驅動模塊接收到來自應用程序的刪除文件系統中的已有文件 的操作命令時,進行以下操作(2-4-1)從上述文件組成表中檢索屬于被刪除文件的數據塊標識;(2-4-2)在上述數據塊索引表中將與檢索到的每個數據塊標識相對應的數據塊的 引用次數減1,當引用次數變為0時,從數據塊索引表中刪除該數據塊標識及與該數據塊標 識相對應的數據塊引用次數,從存儲設備上刪除該數據塊內容,并進行步驟(2-4-3),當引 用次數未變為0時,進行步驟(2-4-3);(2-4-3)從上述文件組成表中刪除被刪除文件的所有記錄;(2-4-4)從上述文件元數據表中刪除被刪除文件的元數據。本發明提出的文件系統中實時刪除重復數據的方法,具備以下優點1、利用本發明的方法,可以刪除文件系統中的重復數據,因此節省存儲空間。2、利用本發明的方法,將在進行文件讀取、寫入的同時,對被修改的文件數據進行 切塊與拼接操作,而無須處理未被修改的數據,因此極大提高了文件處理的效率。3、本發明方法同時支持定長和不定長的文件分塊方法,能夠顯著改善重復數據的 去除效果,提高存儲空間的利用效率。4、與已有技術相比,本發明方法使得重復數據的刪除過程對應用程序和用戶完全 透明,對新打開的文件可立即實現隨機讀、寫操作,無須等候拼接臨時文件,因此能夠無縫 兼容現有各種應用程序的文件操作,幾乎不會對用戶感受造成任何負面影響。5、由于本方法能夠刪除文件系統中的重復數據,因此能夠在備份文件系統中的數 據時,能夠減少需要復制的數據量,縮短備份時間,并節省備份計算和存儲資源開銷。
圖1是本發明方法的系統結構圖。圖2是本發明方法中文件系統的驅動模塊接收到來自應用程序的向已有文件寫 入數據的操作命令時的流程框圖。圖3是本發明方法中向已有文件寫入數據的過程示意圖。
圖4是本發明方法中文件系統的驅動模塊接收到來自應用程序的從文件系統中 的已有文件中讀取數據的操作命令時的流程框圖。圖5是本發明方法中計算待讀取數據區域及計算向內存空間的起始寫入位置示 意圖。圖6是本發明方法中從已有文件讀取數據的過程示意圖。圖7是本發明方法中文件系統的驅動模塊接收到來自應用程序的刪除文件系統 中的已有文件的操作命令時的流程框圖。
具體實施例方式下面結合附圖,詳細介紹本發明提出的文件系統中數據的實時去重和傳輸方法(1)如圖1所示,本方法通過在操作系統的文件系統虛擬層之下注冊文件系統驅 動模塊,接收和響應應用程序對文件系統發起的操作命令,由文件系統實時重復數據刪除 管理進程負責將元數據信息和數據塊內容存儲到存儲設備中。具體地,本方法在存儲設備 中采用嵌入式數據庫存儲文件系統中的元數據信息。在該嵌入式數據庫中設置文件元數據 表、數據塊索引表和文件組成表;所述的文件元數據表記錄文件系統中每個文件的元數據, 該元數據包括文件標識、文件名、文件所在文件夾的標識、文件大小、文件類型、訪問權限以 及文件的創建、修改和訪問時間;所述的數據塊索引表記錄文件系統中文件的數據塊的標 識以及與標識相對應的數據塊的引用次數,其中數據塊的標識為該數據塊內容的哈希值; 所述的文件組成表記錄組成文件系統中的文件的數據塊的信息,包括上述文件標識、數據 塊起始位置、數據塊大小和數據塊標識,由其中的數據塊起始位置和數據塊大小決定數據 區域。(2)通過文件系統的驅動模塊,接收和響應應用程序對文件系統發起的操作命令, 該操作命令包括創建新文件、向已有文件寫入數據、從已有文件讀取數據和刪除已有文件, 具體過程如下(2-1)當文件系統的驅動模塊接收到來自應用程序的創建新文件的操作命令時, 在文件元數據表中記錄被創建文件的元數據。(2-2)當文件系統的驅動模塊接收到來自應用程序的向已有文件寫入數據的操作 命令時,參見圖2所示的流程框圖,進行以下操作(2-2-1)根據操作命令中被寫文件的文件標識、寫入位置和寫入數據大小,從上述 文件組成表中檢索屬于該被寫文件的兩個數據塊標識,且滿足與該兩個數據塊標識相對應 的兩個數據塊為與被寫入數據區域相互重疊的首、尾兩個數據塊,具體過程可參見圖3。從 圖3中,可以看出,文件系統中存在文件標識分別為1和2的兩個文件,文件標識為1的文 件由5個數據塊組成,該5個數據塊對應的數據塊標識分別為A、B、C、D、E,文件標識為2的 文件由3個數據塊組成,該3個數據塊對應的數據塊標識分貝為A、D、F,文件組成表中記錄 了文件的組成信息。上述兩個文件存在重復數據,導致該兩個文件都含有數據塊標識分別 為A和D的兩個數據塊,由于這兩個數據塊的內容只被存儲一次,因此實現了數據去重的目 的。如圖3所示,操作命令中被寫文件的文件標識為1,根據該文件標識,同時根據操作命令 中的寫入位置和寫入數據大小可計算出被寫入數據區域,在文件組成表中檢索屬于該被寫 文件的兩個數據塊標識,且滿足與該兩個數據塊標識相對應的兩個數據塊為與被寫入數據區域相互重疊的首、尾兩個數據塊,就會得到數據塊標識B和數據塊標識D。(2-2-2)根據檢索到的數據塊標識,從存儲設備中讀取與該數據塊標識相對應的 數據塊內容;對應圖3,就是讀出數據塊標識分別為B和D的兩個數據塊的內容。(2-2-3)將讀出的數據塊內容中與被寫入數據區域相不重疊的數據拼接到被寫入 數據的兩側,得到拼接后的數據及拼接后的數據區域;拼接過程、拼接后的數據及拼接后的 數據區域,如圖3所示。(2-2-4)從上述文件組成表中檢索與屬于該被寫文件、且數據塊起始位置位于上 述步驟(2-2-3)數據區域之內的數據塊相對應的數據塊標識;在如圖3所示例中,該檢索將 得到的3個數據塊標識,分別為B、C和D。(2-2-5)將與從上述數據塊索引表中檢索到的數據塊標識相對應的數據塊的引用 次數減1,當引用次數不為0時,進行步驟(2-2-6),當引用次數成為0時,從數據塊索引表 中刪除該數據塊標識及與該數據塊標識相對應的數據塊引用次數,并從存儲設備上刪除該 數據塊內容,進行步驟(2-2-6)。(2-2-6)將上述步驟(2-2-3)拼接后的數據切分成一組新數據塊;數據切分的方 法可以使用基于用戶或系統設定的數據塊大小的定長切分和基于內容指紋的不定長切分, 本發明的一個實施例中,使用了 Muthitacharoen等人提出的基于Rabin指紋的可變長切分 方法;如圖3所示,拼接后的數據被切分成兩個新的數據塊,根據數據塊內容的哈希值,該 兩個數據塊的數據塊標識分別為G和H。(2-2-7)從上述數據塊索引表中分別搜索與上述一組新數據塊相對應的每個數據 塊標識若該數據塊標識已存在,則在數據塊索引表中將與該數據塊標識相對應的數據塊 的引用次數加1,若該數據塊標識為新標識,則在數據塊索引表中添加該新數據塊標識,并 將與該新數據塊標識相對應的數據塊的引用次數設置為1,并將與該新數據塊標識相對應 的新數據塊內容存儲到存儲設備上;在上述文件組成表中記錄被寫文件的文件標識、該新 數據塊的起始位置、該新數據塊的大小以及該新數據塊的標識。(2-2-8)根據向已有文件寫入數據的操作命令,更新上述文件元數據表中被寫文 件的元數據。(2-3)當文件系統的驅動模塊接收到來自應用程序的從文件系統中的已有文件中 讀取數據的操作命令時,參見圖4所示的流程框圖,進行以下操作(2-3-1)根據操作命令,在計算機內存中分配與待讀取數據的大小相等的內存空 間,并將該內存空間初始化為空白;如圖5所示。(2-3-2)根據操作命令中的被讀文件的文件標識和讀取位置,從上述文件組成表 中檢索屬于該被讀文件的數據塊標識,且滿足與該數據塊標識相對應的數據塊是起始位置 處于讀取位置之前的最后一個數據塊,若檢索到該數據塊標識,且該數據塊區域與待讀取 數據區域存在重疊,則讀取該數據塊內容,并將該讀取的內容與待讀取數據區域的重疊部 分寫入上述步驟(2-3-1)的內存空間的頭部,進行步驟(2-3-3),具體過程可參見圖6。從圖 6中,可以看出,文件系統中存在文件標識分別為1和2的兩個文件,文件標識為1的文件由 5個數據塊組成,該5個數據塊對應的數據塊標識分別為A、B、C、D、E,文件標識為2的文件 由3個數據塊組成,該3個數據塊對應的數據塊標識分貝為A、D、F,文件組成表中記錄了文 件的組成信息。在圖6中,操作命令中被讀文件的文件標識為1,根據該文件標識,同時根據操作命令中的讀取位置,從文件組成表中檢索屬于該被讀文件的數據塊標識,且滿足與該 數據塊標識相對應的數據塊是起始位置處于讀取位置之前的最后一個數據塊,就會得到數 據塊標識B,而且與數據塊標識B相對應的數據塊區域與待讀取數據區域存在重疊,因此, 就要從存儲設備中讀取與B相對應的數據塊的內容,并將讀取的數據塊內容與待讀取數據 區域的重疊部分寫入圖6中所示的內存空間的頭部。若檢索不到該數據塊標識,或者與檢 索到的數據標識相對應的數據塊區域與待讀取數據區域不存在重疊,則進行步驟(2-3-3)。(2-3-3)根據操作命令,從上述文件組成表中檢索屬于該被讀文件的數據塊標識, 且滿足與該數據塊標識相對應的數據塊的起始位置處于待讀取數據區域內。在圖5和圖6 所示例中,將會檢索得到數據塊標識C和D。讀取與檢索到的所有數據塊標識相對應的數據 塊的內容,并將讀出的數據塊內容中與待讀取數據區域的重疊部分寫入上述步驟(2-3-1) 的內存空間中。在該內存空間的中的起始寫入位置等于該數據塊的起始位置減去讀取位置 等到的差,以圖6中將數據塊標識為C的數據塊內容寫入該內存空間為例,由于讀取位置為 r,與C相對應的數據塊的起始位置為b,因此,與C相對應的數據塊內容將以b-r為起始寫 入位置被寫入該內存空間中。(2-3-4)根據操作命令,更新上述文件元數據表中被讀文件的元數據,即修改被讀 文件的最近訪問時間。(2-3-5)將上述步驟(2-3-1)的內存空間中的數據通過文件系統的驅動模塊返回
給應用程序。(2-4)當文件系統的驅動模塊接收到來自應用程序的刪除文件系統中的已有文件 的操作命令時,參見圖7所示的流程框圖,進行以下操作(2-4-1)從上述文件組成表中檢索屬于被刪除文件的數據塊標識。(2-4-2)在上述數據塊索引表中將與檢索到的每個數據塊標識相對應的數據塊的 引用次數減1,當引用次數變為0時,從數據塊索引表中刪除該數據塊標識及與該數據塊標 識相對應的數據塊引用次數,從存儲設備上刪除該數據塊內容,并進行步驟(2-4-3),當引 用次數未變為0時,進行步驟(2-4-3)。(2-4-3)從上述文件組成表中刪除被刪除文件的所有記錄。(2-4-4)從上述文件元數據表中刪除被刪除文件的元數據。
9
權利要求
一種文件系統中實時刪除重復數據的方法,其特征在于該方法包括以下步驟(1)采用嵌入式數據庫存儲文件系統中的元數據信息,在該嵌入式數據庫中設置文件元數據表、數據塊索引表和文件組成表;所述的文件元數據表記錄文件系統中每個文件的元數據,該元數據包括文件標識、文件名、文件所在文件夾的標識、文件大小、文件類型、訪問權限以及文件的創建、修改和訪問時間;所述的數據塊索引表記錄文件系統中文件的數據塊的標識以及與標識相對應的數據塊的引用次數,其中數據塊的標識為該數據塊內容的哈希值;所述的文件組成表記錄組成文件系統中的文件的數據塊的信息,包括上述文件標識、數據塊起始位置、數據塊大小和數據塊標識,由其中的數據塊起始位置和數據塊大小決定數據區域;(2)通過文件系統的驅動模塊,接收和響應應用程序對文件系統發起的操作命令,該操作命令包括創建新文件、向已有文件寫入數據、從已有文件讀取數據和刪除已有文件,具體過程如下(2 1)當文件系統的驅動模塊接收到來自應用程序的創建新文件的操作命令時,在文件元數據表中記錄被創建文件的元數據;(2 2)當文件系統的驅動模塊接收到來自應用程序的向已有文件寫入數據的操作命令時,進行以下操作(2 2 1)根據操作命令中被寫文件的文件標識、寫入位置和寫入數據大小,從上述文件組成表中檢索屬于該被寫文件的兩個數據塊標識,且滿足與該兩個數據塊標識相對應的兩個數據塊為與被寫入數據區域相互重疊的首、尾兩個數據塊;(2 2 2)根據檢索到的數據塊標識,從存儲設備中讀取與該數據塊標識相對應的數據塊內容;(2 2 3)將讀出的數據塊內容中與被寫入數據區域不重疊的數據拼接到被寫入數據的兩側,得到拼接后的數據及數據區域;(2 2 4)從上述文件組成表中檢索與屬于該被寫文件、且數據塊起始位置位于上述步驟(2 2 3)數據區域之內的數據塊相對應的數據塊標識;(2 2 5)將與從上述數據塊索引表中檢索到的數據塊標識相對應的數據塊的引用次數減1,當引用次數不為0時,進行步驟(2 2 6),當引用次數成為0時,從數據塊索引表中刪除該數據塊標識及與該數據塊標識相對應的數據塊引用次數,并從存儲設備上刪除該數據塊內容,進行步驟(2 2 6);(2 2 6)將上述步驟(2 2 3)拼接后的數據切分成一組新數據塊;(2 2 7)從上述數據塊索引表中分別搜索與上述一組新數據塊相對應的每個數據塊標識若該數據塊標識已存在,則在數據塊索引表中將與該數據塊標識相對應的數據塊的引用次數加1,若該數據塊標識為新標識,則在數據塊索引表中添加該新數據塊標識,并將與該新數據塊標識相對應的數據塊的引用次數設置為1,并將與該新數據塊標識相對應的新數據塊內容存儲到存儲設備上;在上述文件組成表中記錄被寫文件的文件標識、該新數據塊的起始位置、該新數據塊的大小以及該新數據塊的標識;(2 2 8)根據向已有文件寫入數據的操作命令更新上述文件元數據表中被寫文件的元數據;(2 3)當文件系統的驅動模塊接收到來自應用程序的從文件系統中的已有文件中讀取數據的操作命令時,進行以下操作(2 3 1)根據操作命令,在計算機內存中分配與待讀取數據的大小相等的內存空間,并將該內存空間初始化為空白;(2 3 2)根據操作命令中的被讀文件的文件標識和讀取位置,從上述文件組成表中檢索屬于該被讀文件的數據塊標識,且滿足與該數據塊標識相對應的數據塊是起始位置處于讀取位置之前的最后一個數據塊,若檢索到該數據塊標識,且該數據塊區域與待讀取數據區域存在重疊,則讀取該數據塊內容,并將該讀取的內容與待讀取數據區域的重疊部分寫入上述步驟(2 3 1)的內存空間的頭部,進行步驟(2 3 3),若檢索不到該數據塊標識,或者與檢索到的數據標識相對應的數據塊區域與待讀取數據區域不存在重疊,則進行步驟(2 3 3);(2 3 3)根據操作命令,從上述文件組成表中檢索屬于該被讀文件的數據塊標識,且滿足與該數據塊標識相對應的數據塊的起始位置處于待讀取數據區域內;讀取與檢索到的所有數據塊標識相對應的數據塊的內容,并將讀出的數據塊內容中與待讀取數據區域的重疊部分寫入上述步驟(2 3 1)的內存空間中;(2 3 4)根據操作命令,更新上述文件元數據表中被讀文件的元數據;(2 3 5)將上述步驟(2 3 1)的內存空間中的數據通過文件系統的驅動模塊返回給應用程序;(2 4)當文件系統的驅動模塊接收到來自應用程序的刪除文件系統中的已有文件的操作命令時,進行以下操作(2 4 1)從上述文件組成表中檢索屬于被刪除文件的數據塊標識;(2 4 2)在上述數據塊索引表中將與檢索到的每個數據塊標識相對應的數據塊的引用次數減1,當引用次數變為0時,從數據塊索引表中刪除該數據塊標識及與該數據塊標識相對應的數據塊引用次數,從存儲設備上刪除該數據塊內容,并進行步驟(2 4 3),當引用次數未變為0時,進行步驟(2 4 3);(2 4 3)從上述文件組成表中刪除被刪除文件的所有記錄;(2 4 4)從上述文件元數據表中刪除被刪除文件的元數據。
全文摘要
本發明涉及一種文件系統中實時刪除重復數據的方法,屬于計算機數據存儲技術領域。在文件系統創建階段,在嵌入式數據庫中設置文件元數據表、數據塊索引表和文件組成表;在文件系統使用階段,通過文件系統驅動接收和響應應用程序對文件系統發起的操作命令,包括創建新文件、向已有文件寫入數據、從已有文件讀取數據和刪除已有文件。本發明方法,同時支持定長和不定長的文件分塊方法,可實時刪除文件系統中的重復數據,節省存儲空間,提高存儲設備的利用效率,而且重復數據的刪除過程對應用程序和用戶完全透明,無縫兼容現有各種應用程序的文件操作,幾乎不會對用戶感受造成任何負面影響。
文檔編號G06F17/30GK101908073SQ20101025273
公開日2010年12月8日 申請日期2010年8月13日 優先權日2010年8月13日
發明者唐力, 汪東升 申請人:清華大學