Ext3和Reiserfs孰好孰壞的Linux文件系統
對于Linux系統的用戶來說,Ext3和Reiserfs作為Linux文件系統你們一定都不陌生,可大家知道Ext3和Reiserfs文件系統優劣么?本文為你講解Linux文件系統中Ext3和Reiserfs優劣的問題。
文件系統是包括在存儲設備或分區上的一種目錄結構。通常情況下,一個可應用的存儲設備可以包含一個或多個文件系統。通俗的說,一個文件系統是有組織存儲文件或數據的方法,目的是易于操作系統查詢和存取數據。現在常見的文件系統有FAT3、NTFS、Ext3和Reiserfs等等。不過不同的操作系統其支持的文件系統是不同的。以Linux為例,其主要支持Ext2、Ext3和Reiserfs等文件系統。
作為一個Linux系統工程師,必須了解各個文件系統的特點。然后在實際應用中根據應用場景來選擇合適的文件系統。不同的文件系統有不同的特性,這種特性往往決定著在文件系統中文件和目錄的屬性。每個文件系統都有一系列的工具,包括創建、修復、備份等。值得一說的是大多文件系統都有自我修復工具。在您的文件系統意外出現損害的情況下,采用文件系統自帶的修復功能修復等等。筆者在這篇文章中將簡要介紹一下Ext3和Reiserfs 文件系統的特點,并對他們的優劣做一定的分析。希望這可以幫助大家消除在文件系統選擇時的迷惑。
一、 Ext3 文件系統。
Ext2文件系統應該說是Linux正宗的文件系統,早期的Linux都是用ext2。但隨著技術的發展,大多Linux的發行版本目前并不用這個文件系統了,而大多都建議用ext3文件系統。Ext3文件系統是由ext2發展而來的。在Linux所用的Ext3文件系統中,文件是以塊為單位存儲的,默認情況下每個塊的大小是1K,不同的塊以塊號區分。每個文件還有一個節點。節點中包含有文件所有者、讀寫權限、文件類型等有用信息。對于一個小于12個塊的文件,在節點中直接存儲文件數據塊的塊號。如果文件大于12個塊,那么節點在12個塊號之后存儲一個間接塊的塊號。在這個間接塊號所對應的塊中,存儲有256個文件數據塊的塊號。如果有更大的文件,那么還會在節點中出現二級間接塊和三級間接塊。所以Ext3文件系統中是支持大文件的。不過不支持反刪除操作。
二、 Reiserfs 文件系統。
Reiserfs 文件系統是一款優秀的文件系統,它支持大文件,而且還支持反刪除操作。他也是一個比較老的文件系統。但是他并沒有像Ext2文件系統那樣被拋棄。現在這個文件系統應用的仍然很廣泛,很有生命力。這主要是因為這個文件系統有比較出色的表現。
如這個文件系統有比較高級的日志管理機制。它的日志管理機制制保證了在每個實際數據修改之前,相應的日志已經寫入硬盤。如此的話,文件與數據的安全性有了很大提高。如在這種文件系統下,磁盤的利用率是很高的。Reiserfs文件系統對一些小文件并不分配inode。而是將這些文件打包,存放在同一個磁盤分塊中。而其它文件系統則為每個小文件分別放置到一個磁盤分塊中。這也就是說,如果有20000個小文件,就要占用20000個分塊。這很浪費磁盤空間。在這一點上比NTFS文件系統設計的還要好。而且,其還支持海量的硬盤。ReiserFS文件系統可輕松管理上百G的文件,最大支持的文件系統尺寸為16TB。為此在一些大型的Linux服務器中,這個文件系統是首選。
另外,Reiserfs文件系統在性能上也有比較杰出的表現。如文件定位非常的快。Reiserfs文件系統基于快速平衡樹搜索。平衡樹在性能上非常卓越,這是一種非常高效的檢索算法。Reiserfs文件系統在大量文件中搜索文件時,搜索速度要比其他文件系統快得多。Reiserfs文件系統使用B*Tree存儲文件,而其它文件系統使用B+Tree樹。B*Tree查詢速度比B+Tree要快很多。故Reiserfs文件系統在文件定位上速度非常快。 其性能的優越還表現在其存儲上。Reiserfs文件系統,它的數據非常高效、快速,甚至小文件硬盤輸入輸出。使用Reiserfs文件系統的計算機,在啟動X窗口系統時,所花的時間要比在同一臺機器上使用其他文件系統少很多。三、 自動修復能力的比較。
Ext3和Reiserfs 文件系統都能夠自動修復損壞的文件系統。他們的共同點是都會在開機的時候檢測文件系統,若有損壞的話會自動恢復。其實,其他文件系統,如Ext2 或者FAT32等文件系統也都支持這個功能。不過他們性能上有所差異。一般來說,Reiserfs 文件系統要比其他的文件系統表現要好。
如對于Ext3 文件系統,有時候管理員不得不手工采用fsck命令來進行文件系統的修復。如當一開機系統管理員就選擇單用戶模式并且把這個系統放進lost+found目錄。此時如果系統管理員要恢復文件系統的話,則必須要手工采用fsck文件系統修復命令。但是這個文件系統修復命令存在著一定的管理風險。如在修復過程中如果出現意外關機或者斷電,那么很可能會導致一些莫名其妙的問題。另外ext3文件系統還有一些備份的超級塊。系統管理員可以嘗試用備份的超級塊加載 ext3 文件系統和修復 ext3 文件系統。這個操作雖然比較復雜,但是在實際工作中卻非常有用。以后若有機會,筆者會詳細介紹一下如何利用備份的超級塊來恢復這個文件系統。
Reiserfs 文件系統也能自動修復損壞的文件系統。但是他相對來說比較容易操作一點。這個文件系統在自動檢測和修復損壞的文件系統上具有很強的功能。如修復速度上比ext3文件系統要快的多。另外Reiserfs 文件系統對于意外斷電的情況也能夠很好的處理。如筆者做過一個簡單的測試,兩臺同樣的機器,安裝了同樣的Linux操作系統。只是他們所采用的文件系統不一樣。但是在Ext3文件系統下,如果采用直接拔掉電源關機,然后再重新啟動的話,大部分情況需要手工采用fsck 命令來恢復文件系統。但是如果采用Reiserfs 文件系統的話,則基本不用fsck命令就可以自動修復文件系統。
四、 Ext3不支此反刪除操作,安全性相對來說高一點。
年輕人犯錯誤,上帝也會原諒。可惜的某些卻不是上帝。如一旦我們刪除文件同時清空回收站之后,就再也無法恢復被刪除的文件了。這對于像筆者這樣以安裝、刪除、試用軟件為娛樂的人來說實在是一大打擊。不過從另外一個角度講,如果被刪除的文件仍然可以挽救的回來的話,那就會涉及到安全問題。故如果從安全來考慮,可以支持反刪除的文件系統,反而對安全來說是不利的。
而reiserfs文件系統支持反刪除操作。如果企業安全級別比較高,則很可能意味著不安全。因為即使用戶刪除了文件,并且清空了回收站,但是系統管理員仍然可以通過采用一些反刪除工具來恢復刪除了的文件。為此這可能會泄露企業的機密信息。而Ext3文件系統不支持反刪除操作。在ext3文件系統下,一旦用戶刪除某個機密文件,則是不可恢復的。雖然也有人說可以在Ext3 文件系統下恢復被刪除的文家,但是據筆者了解,成功的可能性并不多。故如果從文件的安全性來考慮,還是采用Ext3文件系統為好。
五、 文件系統建立與維護。
硬盤的格式化就是存儲設備建立文件系統的過程。一般的情況下,每個類型的操作系統都有這方面的工具,也有多功能的第三方工具,比如PQ軟件。不過筆者建議系統管理員最好利用操作系統自帶的工具來初始化分區,也就是建立文件系統。如在Linux操作系統中就帶有mkfs工具。它可以幫助系統管理員建立文件系統。
另外,我們還可以利用第三方工具如PQ軟件,先對硬盤進行分區。然后再利用操作系統自帶的格式化工具進行格式化。為了系統的穩定性考慮,筆者強烈建議在安裝Linux系統時無論有沒有格式化化好了的文件系統,最好利用Linux系統自帶的格式化工具再重新格式化一遍。
選擇好的Linux文件系統才能的更好的去學習。
【編輯推薦】