最近,我剛從ReiserFS檔案系統轉到了ext3記錄檔系統。我是一個ReiserFS的忠實追隨者,並且直到現在我也沒有改變我對該檔案系統的看法。我之所以轉而使用ext3,初衷是想花一些時間看看ext3中有什麼我喜歡的東西。 ext3是由自由社團開發的日誌式檔案系統,它被設計成ext2的升級版本,儘可能地方便使用者從ext2向ext3遷移。ext3在ext2的基礎上加入了記錄中繼資料的日誌功能,努力保持向前和向後的相容性,所以把這個檔案系統稱為ext2的新版本更恰當一些。 ReiserFS是Hans Reiser領導下的開發小組開發和發展的,SuSE Linux也對它的發展起了很大的作用。現在,它已經發展成一個高效、可靠的檔案系統。
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秒的時間。事實上,大部分人選擇使用微軟的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的網站(http://www.ReiserFS.org/) 就會發現,ReiserFS對空間利用率和速度非常在意,因此,它在磁碟利用率和效能方面都非常出色。當我把檔案系統從ReiserFS轉換到ext3 時,發現我的可用空間變少了。不過這沒有關係,因為現在的磁碟空間和記憶體的價格都非常便宜。此外,ReiserFS還在平衡樹方面下了很大的功夫。 ReiserFS是基於平衡樹的檔案系統結構,這使得其在處理大量檔案的巨型檔案系統,如伺服器上的檔案系統時效能要好得多。
ReiserFS突出的地方還在於其設計上著眼於實現一些未來的外掛程式程式,這些外掛程式程式可以提供存取控制清單、超級連結,以及一些其它非常不錯的功能。在這一點上,ReiserFS的開發人員要比ext3做得好,因為他們已經事先考慮到了所要實現的功能。這樣在真正要增加這些功能時,其穩定性肯定要比 ext3好。據資料顯示,在設計ext2時,並沒有人計劃要為其設計日誌功能。日誌功能是後來匆忙補充上去的。當然,這並不能說是什麼壞事,但至少在你使用時,總會有一種不安全的感覺。所以,如果著眼於將來擴充性方面的考慮,選擇ReiserFS應該說是一明智之舉。
總的看來,這兩個檔案系統都比較優秀,並且誰也沒有絕對的優勢可以壓倒對方。如果你現在使用的是ext2檔案系統,並且對資料安全性要求很高,那麼可以考慮使用ext3。如果你更在意檔案系統的速度及可擴充性,或者想嘗試使用ext2以外的檔案系統,那麼ReiserFS應該是首選。