Skip to main content

本文出處為http://sysdevlabs.kinja.com/reiserfs-is-it-worth-a-try-1797967838
原作者 Maria.pohrebna 為東歐sysdevlabs資料恢復公司員工

 

無論您是新手入門,還是有經驗老手,每個人都有自己需求跟習慣選擇OS與檔案系統,多年來,在網路上討論文件系統有各種凶猛筆戰。 雖然在linux上 最高普遍性的檔案系統是ext (順便說一下,ext是主流是因為歷史因素,不是因為它是最好的文件系統),還是有很多文件系統可以選擇。

ReiserFS像所有的文件系統一樣,它也有一些特殊功能。 你可能想瞭解它的運作方式及其主要的優點和缺點。

ReiserFS是由Hans Reiser和他的團隊在2001年 Namesys公司開發的。他們想做一個革命性的文件系統的想法,並且大量接受一般用戶意見。 在Linux 2.41 內核開始引入 Reiser FS,ReiserFS默認情況下在Elive,Xandros,Slackware,Linspire和YOPER發行版中都有。 它也曾經是SUSE Linux Enterprise的主要文件系統,但是在2006年Novell決定改成ext3。

任何ReiserFS格式化的分區被劃分成許多固定大小的塊。 文件系統本身由系統和數據兩個方面組成。 系統區域包括具有關於整個分區(例如,塊大小)的最重要細節的超級塊,該位圖包含關於空閒塊和日誌的信息,其描述對文件系統的所有修改。

 

數據區域被組織成一個稱為平衡樹或簡單的B +樹的特殊鏈接結構。 這樣一棵樹由節點組成,每個節點表示磁盤上的一個塊。 節點可以有兩種類型:內部和葉子。 內部節點只包含指向其子節點的指針。 葉節點位於樹的最底層(即沒有自己的子節點),並且包含保存實際數據的“項目”:在所有文件和目錄之前使用stat項,並用於元數據,目錄項描述目錄,直接項目保留適合單個塊的小文件,而間接項包含屬於較大文件的塊的指針。 任何項目都有自己的唯一鍵,有助於識別并快速找到它在樹中。 每個節點,無論其類型如何,都從一個塊頭開始,該塊頭包含有關它所指的塊中的項目數量,剩下的可用空間以及可以找到的樹的哪個級別的信息。

小於單個塊的文件稱為尾部。 這樣的尾巴被打包在一起並存儲在一個塊中,使得它們可以填滿其整個空間,每個空間佔據其所需的準確量:與其他文件系統相反,其中,無論文件如何多少,文件將消耗至少一個塊通過“後綴包裝(Tail Packing)”,ReiserFS可以節省數百個存儲空間,並在處理小文件時保持高性能。 此文件系統的其他優點是:

1.更快的磁盤訪問 : 作為保存小文件的直接項目和描述它們的統計項目彼此相鄰存儲,可以通過單個輸入/輸出操作讀取這些文件,因此,僅檢索磁盤必須訪問的所有必需信息一旦。

2.崩潰後立即恢復:所有元數據更改都將寫入系統日誌,因此,在系統關閉或系統關閉後,文件系統的一致性可以在幾秒鐘內恢復。

3.數據安全 :除了元數據日記功能,ReiserFS還支持用戶數據日記功能,但默認情況下不會啟用該功能,因為它可能會降低系統的運行時間。 然而,當使用日記用於用戶數據時,可以保證不僅元數據而且您的文件都保持在一致的狀態。 除此之外,如果您不小心刪除了重要的內容或重新格式化分區 這點比ext 好太多.

4.現場調整大小: ReiserFS格式的分區可以在使用時調整大小。

5.高性能的大目錄 :在ReiserFS中使用B +樹結構可以提高其在處理非常大的目錄的情況下的性能,並消除單個目錄可以包含的文件數量的限制。

 

當然,像任何技術一樣,ReiserFS也有其弱點:

速度 :後綴包裝(Tail Packing)會引起明顯的性能下降,當文件被修改時,數據需要重新打包。 因此,此功能可以關閉,但是您將犧牲存儲容量及增加檔案破碎狀況。

缺乏維護:ReiserFS是一個相對較舊的文件系統。 排除重大錯誤修復和安全更新,其開發於2004年停止,有利於Reiser4。 Reiser4旨在與其前身基本不同,並添加了許多缺少的功能,例如延遲分配和允許豐富其功能(即啟用壓縮或加密)的插件的支持。 該項目非常有希望,但在文件系統甚至被添加到主內核之前
其首席設計師Hans Reiser被判犯有謀殺罪,並於2008年被送往監獄。 Namesys公司已不存在,雖然有些志願者繼續更新Reiser4,但被併入Linux內核主線機會不大,特別是沒有公司贊助。

總而言之,當需要存儲和處理大量小文件時,Reiser文件系統在速度和空間利用方面是無與倫比的。 然而,Reiser FS 文件系統的未來有點暗淡,主要是因為其作者的法律問題,所以只有時間才能知道是否會在主內核或歷史中出現 。

Thx Chang

Author Thx Chang

More posts by Thx Chang