檔案系統是包括在存放裝置或分區上的一種目錄結構。通常情況下,一個可應用的存放裝置可以包含一個或多個檔案系統。通俗的說,一個檔案系統是有組織隱藏檔或資料的方法,目的是易於作業系統查詢和存取資料。現在常見的檔案系統有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視窗系統時,所花的時間要比在同一台機器上使用其他檔案系統少很多。