[發明專利]一種在線收縮ext2/3文件系統的方法無效
| 申請號: | 200910084767.6 | 申請日: | 2009-05-19 |
| 公開(公告)號: | CN101556607A | 公開(公告)日: | 2009-10-14 |
| 發明(設計)人: | 宋振華 | 申請(專利權)人: | 宋振華 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 北京德琦知識產權代理有限公司 | 代理人: | 牛 崢;王麗琴 |
| 地址: | 102208北京市昌平區回龍觀鎮*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 在線 收縮 ext2 文件系統 方法 | ||
技術領域
本發明涉及計算機操作系統領域,特別涉及Linux操作系統中一種在線收縮(online?shrink)ext2/3文件系統的方法。
背景技術
Linux操作系統中最主要的文件系統是ext2或ext3,以下簡稱ext2/3文件系統,它們的硬盤分區組織結構如圖1所示。從圖1中可以看出,ext2/3文件系統對硬盤分區進行組織如下:在分區開始設置一個用于描述分區硬件信息的引導塊,在引導塊之后又將其余部分劃分成若干個塊組(blockgroup),在每個block?group中都保存了ext2/3文件系統的一個數據塊位圖塊(BB)、一個索引節點位圖塊(IB)、若干個索引節點表(IT)和若干個數據塊(DB),同時,在block?group?0以及若干個用于故障恢復的blockgroup,如block?group?1、block?group?3等中還保存了ext2/3文件系統的一個超級塊(SB)和若干個組描述符塊(GDB)。其中,SB用于保存文件系統的元數據信息,如索引節點數、DB數、空閑的索引節點數、空閑的數據塊數等等;GDB用于保存文件系統中所有block?group的元數據信息,如每個block?group的索引節點數,DB數,空閑的索引節點數,空閑的DB數,BB的位置,IB的位置,IT的起始位置等;BB用于描述block?group中哪些DB是有效的;IB用于描述block?group內IT中哪些索引節點是有效的;IT為block?group中所有索引節點的集合,一個索引節點用于描述一個文件,且在每個索引節點中都有一個只包含了15個元素的數組,其中前12個元素用于保存文件中前12個DB的塊號,后三個元素則用于保存文件中其余DB的索引塊的塊號,為了方便起見,后續將索引節點中保存的DB的塊號以及其余DB的索引塊的塊號均稱為索引節點中的數據,同時,將索引到DB的索引節點和所述索引到DB的索引節點的索引塊均稱為所述DB的索引塊,也即DB都存在索引塊;DB中保存的是數據,其中所述數據包含了目錄項。
目前,Linux內核以及文件系統管理工具ext2online僅僅支持在線地(online)或者掛載地(mounted)擴展ext2/3文件系統,ext2resize僅僅支持非在線地(offline)或者卸載地(unmounted)收縮ext2/3文件系統。圖2為采用現有工具offline收縮ext2/3文件系統的方法流程圖,如圖2所示,該方法包括以下步驟:
步驟201:掃描文件系統收縮邊界外的部分,標記出邊界外的有效DB和有效索引節點。
當前采用的收縮文件系統的工具即為前面所提到的ext2resize,采用該工具來收縮文件系統時,首先需要掃描待收縮的文件系統邊界外的部分,查找到邊界外的DB和索引節點,并分別根據保存在block?group中的BB和IB在所述查找到的DB和索引節點中將其中的有效DB和有效索引節點標記出來,以便后續收縮時使用。
步驟202:掃描整個文件系統,找到有效DB的索引塊和有效索引節點的硬鏈接塊。
需要說明的是,前面已經指出了,在ext2/3文件系統中,索引到DB的索引節點和所述索引到DB的索引節點的索引塊均稱為所述DB的索引塊,因此,在后面對DB進行索引的時候均指所述DB的索引塊。
步驟203:找出收縮邊界內的空閑位置,將邊界外的有效DB中的數據和有效索引節點中的數據轉移到邊界內的空閑位置處。
在需要收縮的文件系統邊界內找出空閑的位置用于存儲原本在邊界外的有效DB中的數據和有效索引節點中的數據,并將步驟201中標記出的所有有效DB中的數據和有效索引節點中的數據轉移到所找到的邊界內的空閑位置處。具體如何找出文件系統收縮邊界內的空閑位置為現有技術,這里不再對其進行贅述。還需要說明的是,在這里對數據進行轉移實際上就是對數據進行拷貝。
步驟204:更新有效DB的索引塊到新位置處的DB、有效索引節點的硬鏈接塊到新位置處的索引節點的索引關系,并更新block?group中的相應參數。
在本步驟中,對block?group中的相應參數進行更新是對文件系統SB中文件系統的大小、DB數、索引節點數、空閑的DB數、空閑的索引節點數等進行相應地修改。在完成對所有參數的更新操作后,就完成了對整個文件系統的收縮,也即減小了整個文件系統的大小。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于宋振華,未經宋振華許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200910084767.6/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:對查詢輸入進行基于模式的過濾
- 下一篇:流量控制裝置的檢定方法





