ReiserFS是一種新型的文件系統,它通過一種與眾不同的方式--完全平衡樹結構來容納數據,包括文件數據,文件名以及日志支持。ReiserFS還以支持海量磁盤和磁盤陣列,并能在上面繼續保持很快的搜索速度和很高的效率。
ReiserFS的特點(與ext2的對比)
ReiserFS相對于Linux上傳統的文件系統--Ext2有很多優點,在下面一一介紹。
ReiserFS有先進的日志(Journaling/logging)功能 機制。日志機制保證了在每個實際數據修改之前,相應的日志已經寫入硬盤。文件與數據的安全性有了很大提高。
高效的磁盤空間利用
Reiserfs對一些小文件不分配inode。而是將這些文件打包,存放在同一個磁盤分塊中。而其它文件系統則為每個小文件分別放置到一個磁盤分塊中。這意味著:如果有10000個小文件,就要占用10000個分塊。想想看這多浪費磁盤空間。
獨特的搜尋方式
ReiserFS基于快速平衡樹(balanced tree)搜索,平衡樹在性能上非常卓越,這是一種非常高效的算法。ReiserFS搜索大量文件時,搜索速度要比Ext2快得多。Reiserfs文件系統使用B*Tree存儲文件,而其它文件系統使用B+Tree樹。B*Tree查詢速度比B+Tree要快很多。Reiserfs在文件定位上速度非常快。
在實際運用中,ReiserFS 在處理小于 1k 的文件時,比ext2 快 8 到 15 倍!ReiserFS 幾乎在各個方面都優于 ext2。
支持海量磁盤
ReiserFS是一個非常優秀的文件系統,可輕松管理上百G的文件系統,ReiserFS文件系統最大支持的文件系統尺寸為16TB。這非常適合企業級應用中。
優異的性能
由于它的高效存儲和快速小文件I/O特點,使用ReiserFs文件系統的PC,在啟動X窗口系統時,所花的時間要比在同一臺機器上使用ext2文件系統少1/3。另外,ReiserFS文件系統支持單個文件尺寸為4G的文件,這為大型數據庫系統在Linux上的應用提供了更好的選擇。
搜尋方式
ReiserFS是基于平衡樹(STree)的文件系統結構,尤其對于大量文件的巨型文件系統,如服務器上的文件系統,搜索速度要比ext2快;Ext2使用局部的二分查找法,綜合性能比不上ReiserFS。
在Reiser4中還運用了文件即是目錄的設計來管理meta-data,并且運用了Hans Reiser自己發明的Dancing B-tree,效率提升非常明顯。
空間分配和利用情況
ReiserFS里的目錄是完全動態分配的,因此不存在ext2中常見的無法回收巨型目錄占用的磁盤空間的情況。ReiserFS里小文件(< 4K)可以直接存儲進樹,小文件讀取和寫入的速度更快,樹內節點是按字節對齊的,小的文件可共享同一個硬盤塊,節約大量空間。Ext2使用固定大小的塊分配策略,也就是說,不到4K的小文件也要占據4K的空間,導致的空間浪費比較嚴重。
缺點
出現異常斷電的時候,會出現大量的未寫入完全的數據。ReiserFS會在恢復的時候進行rebuild-tree。而這個過程是非常慢的。在ReiserFS的升級版本Reiser4中有所改觀。
ReiserFS的起源與未來
在1997年7月23日,Hans Reiser把他的基于平衡樹結構的ReiserFS文件系統在網上公布。這是ReiserFS的第一次公開亮相。此后,ReiserFS一直在Hans Reiser和領導下的開發小組下開發和發展,SuSE Linux也對它的發展起了重大的幫助。由于ReiserFS有一些很有用的特性,更主要的是它比Ext2fs要快得多,所以它很快被很多人使用。Novell收購SUSE公司以后停止了對Namesys的資助。但是在2001年,Namesys的ReiserFS受到了五角大樓60萬美元的資助。
2008年,由于ReiserFS的創始人Hans Reiser的謀殺罪名成立,Namesys可能面臨倒閉或被收購的危險,但是Namesys的工作人員稱,即使Namesys倒閉也不會停止Reiser4的繼續完善和開發。
ReiserFS與EXT3的比較
ReiserFS與ext3主要不同
就技術而言,兩個文件系統有很多的不同,但是對于多數人來說,只需關心其中的幾點即可。第一是你可以很方便地從Ext2格式進行升級,因為到目前為止,很多Linux發行套件仍然在使用這種文件系統。第二就是ext3不僅可以記錄數據日志(這在ext2中就已經具備),而且在此基礎上還可以記錄元數據 (Metadata)日志。現在的ReiserFS則只有日志元數據。第三就是文件系統的可擴展性。在介紹第三點以前,讓我們先來看一看前兩個不同點,因為第三點值得我們特別關注。就ext3來說,它可以方便地從ext2文件系統進行升級轉換是其一大優勢。當然,對于一直使用ReiserFS的人來說,這沒有什么意義。但是,大多數用戶并不愿意嘗試使用Ext3以外的任何一種日志文件系統。原因很簡單,把Ext2轉換到ext3要比轉換成其它任何一種文件系統更簡單、快捷。
和ext2相比,ext3提供了更佳的安全性,這就是數據日志和元數據日志之間的不同。在兩臺不同的電腦上,其中一臺使用數據日志,另外一臺使用數據和元數據日志。啟動一些應用程序,并對一些數據文件進行適當的改動,然后撥掉電源。當啟動第一臺機器時,它可以很快地把文件系統恢復到穩定的狀態。但是可以肯定,剛才你對數據文件所做的改動,已經由于掉電而丟失。第二臺機器也可以很快地將文件系統恢復到穩定的狀態,并且可以保留掉電前你對數據所做的所有改動。
很顯然,對于大多數計算機用戶來說,一般都愿意使用后者。不過,除非真的有此需求,否則應該慎重考慮。在數據日志上增加了元數據日志后,會使系統速度受到嚴重的影響。在大多數情況下,ReiserFS已經比沒有日志功能的Ext2快了很多。并且,在一般情況下,ReiserFS要比具有元數據日志功能的ext3快得多。如果你同時選擇了數據和元數據日志功能,那么ReiserFS要比Ext3快得多。
速度不是選擇文件系統的關鍵
上面說到ReiserFS的速度要快得多,不過在現實中,人們關心的往往并不是速度(我指的是感覺不是特別明顯的速度上的差異)。作為一個用戶,很難想象他會在意打開一個Word文件,或者Excel表單需要2.5秒還是4秒的時間。事實上,大部分人選擇使用微軟的Microsoft Office,并不是基于速度方面的考慮,而是因為大家都在使用該辦公套件。
這種現象并不僅僅發生在Windows領域。KWord或者AbiWord的加載速度要比staroffice快得多,但是,很多Linux用戶一邊等著 StarOffice緩慢地啟動,一邊還在對其大加贊賞。一般情況下,他們并不會因為StarOffice的速度上有欠缺而放棄它,因為,他們已經習慣了。
可見,雖然速度較慢,但是只要其還在人們可以容忍的限度之內,一般人是不會介意的。我們一般喜歡把速度慢的原因歸咎于硬件,而不是軟件。比如說,眾多骨灰級的游戲玩家一般會購買最新的芯片和顯卡,來運行自己鐘愛的游戲,而不會根據自己現有的硬件配置來購買可以運行的游戲。
在此,我必須澄清,我并不認為因為可以使用更快的處理器,以及更大的內存,所以Linux就可以采用那些很慢的、臃腫的程序代碼(當然Linus Torvalds也不會答應這么做)。我只是覺得在做某些事情時,完全可以采取或者選擇一種合適的方式來完成。如果有人要享受Ext3提供的數據日志的安全功能,并且又不想因此而在速度上有所損失的話,完全可以買一個更快的處理器來彌補該文件系統性能上的不足。
當然,ReiserFS文件系統也有類似的問題。所以,如果你要想使用ReiserFS,而又擔心自己的數據丟失,那么你可以關閉驅動器的寫緩沖功能。根據所使用的系統不同,關閉該功能的命令可能也會有所不同,但可能都和以下所示的命令類似:
/sbin/hdparm -wo /dev/had
以上命令是要關閉系統中的第一個IDE驅動器的寫緩沖功能。需要引起注意的是,這樣做將會使系統性能受到很大影響。當然,既然你可以忍受Ext3元數據日志功能帶來的系統速度下降,這樣做又有何不可呢?在我的機器上,由于害怕丟失一些重要數據,我就關閉了其中一個驅動器的寫緩沖功能,性能下降得很厲害,但我認為這種代價還是值得的。
說了那么多,我只是想說明一件事,也就是說對于大多數使用電腦的人而言,選擇ReiserFS還是ext3,速度并不是決定性的因素。只有少數的用戶和一些對速度要求非常苛刻的特殊環境,才會關心二者的速度差異。此外,ext3有一個獨特的功能,它可以在每一個載入點讓用戶控制數據日志功能。換句話說,你可以從一個驅動器上載入多個分區,并且每一個分區都可以決定是否使用數據日志功能。當然,如果把整個驅動器的寫緩沖功能都關閉了,那么也就沒有這個選項了。
在現實中,大多數人既不會考慮性能的因素,也不會考慮安全的因素,而總是希望采用一種最方便和最熟悉的途徑。在各種途徑的選擇中,一個取決定性的因素就是用戶目前正在使用什么系統。不過,在以后我們選擇使用的Linux套件中,不管你是重新安裝,還是進行升級,各Linux發行公司都會把文件系統的選擇過程變得非常簡單。
文件系統的可擴展性
現在讓我們來看一看關鍵的第三個因素:可擴展性。如果你訪問一下ReiserFS的站點就會發現,ReiserFS對空間利用率和速度非常在意,因此,它在磁盤利用率和性能方面都非常出色。當我把文件系統從ReiserFS轉換到ext3 時,發現我的可用空間變少了。不過這沒有關系,因為現在的磁盤空間和內存的價格都非常便宜。此外,ReiserFS還在平衡樹方面下了很大的功夫。 ReiserFS是基于平衡樹的文件系統結構,這使得其在處理大量文件的巨型文件系統,如服務器上的文件系統時性能要好得多。
ReiserFS突出的地方還在于其設計上著眼于實現一些未來的插件程序,這些插件程序可以提供訪問控制列表、超級鏈接,以及一些其它非常不錯的功能。在這一點上,ReiserFS的開發者要比Ext3做得好,因為他們已經事先考慮到了所要實現的功能。這樣在真正要增加這些功能時,其穩定性肯定要比 ext3好。據資料顯示,在設計Ext2時,并沒有人計劃要為其設計日志功能。日志功能是后來匆忙補充上去的。當然,這并不能說是什么壞事,但至少在你使用時,總會有一種不安全的感覺。所以,如果著眼于將來擴展性方面的考慮,選擇ReiserFS應該說是一明智之舉。
總的看來,這兩個文件系統都比較優秀,并且誰也沒有絕對的優勢可以壓倒對方。如果你現在使用的是ext2文件系統,并且對數據安全性要求很高,那么可以考慮使用Ext3。如果你更在意文件系統的速度及可擴展性,或者想嘗試使用Ext2以外的文件系統,那么ReiserFS應該是首選。
安裝
從namesys下載reiserfs的補丁程序,要確保下載的補丁版本和你的kernel版本是一致的。
下載后用root身份登錄進入系統,切換至/usr/src/linux目錄,執行命令:
#gunzip /path/to/linux-2.2.16-reiserfs-3.5.22-Patch.gz #patch -p1 -i /path/to/linux-2.2.16-reiserfs-3.5.22-patch
在做完上面的兩步后,重新編譯kernel,將reiserfs編譯進kernel或做成一個模塊。
Reiserfs的相關應用程序在 /usr/src/linux/fs/reiserfs/utils 目錄下。你可以用下面方法安裝它們:
#mkdir bin #make #make install
最后,你可以用"fdisk"命令重新分區或用"mkreiserfs"命令重新格式化一個已經存在的分區。指定reiserfs類型加載這個分區,如"mount -t reiserfs /dev/hda2 /download",這樣你就可以使用這個新的分區了。
新聞報道
Hans Reiser被宣布謀殺罪名成立
reiserfs是Linux操作系統上面性能最好、設計最先進的文件系統,特別是reiserfs4 版本具備了很多領先的文件系統特性。reiserfs的作者是Hans Reiser,Hans是從俄裔美國人,他領導的Namesys公司致力于開發和維護reiserfs文件。特別值得一提的是reiserfs開發團隊的大多數人都是在俄國國內的開發人員。
本來reiserfs是Linux平臺最有前途的文件系統,JavaEye的服務器也一直使用reiserfs,非常滿意于reiserfs的穩定性和高性能,但是所有這一切在2006年被改變。
后續報道
2006年9月Hans離異的妻子Nina Reiser失蹤,隨后警方在Hans的住所發現了Nina的血跡,Hans被指控謀殺了他的妻子。據悉,HANS離異的妻子和Hans的好友兼公司合伙人關系密切,而Hans已經因為公司財務問題和合伙人關系破裂,此時Nina和他的合伙人走到了一起,可能引發了Hans的報復心理。
經過長達一年半的審訊,2008年4月28日,加利福尼亞州奧克蘭法庭宣判,Hans Reiserfs一級謀殺罪名成立,現年44歲的Hans Reiserfs將面臨25年的牢獄生涯。
參考資料 >