Linux
文件系統類型介紹
以超級用戶權限登陸
Linux,進入/Lib/modules/2.4.18-6mdk/kernel/fs
目錄執
行命令(不同
Linux 發行版本的
Fs 目錄有些不同你可以用查找
FS 文件夾的方法找到
它):
#ls
Mandrake Linux
支持的文件系統類型
/Lib/modules/2.4.18-6mdk/kernel/fs
中查出當前系統所支持的文件系統種類。從
圖-1
中可以看到筆者使用的
Mandrake Linux 8.2 支持的文件系統非常多。Linux
系統
核心支持十多種文件系統類型:jfs、
ReiserFS、ext、ext2、ext3、iso9660、xfs、
minx
、msdos、umsdos、Vfat、NTFS、Hpfs、Nfs、smb、sysv、proc
等。
這裡我們對最常用的幾個文件系統的發展情況和優缺點作詳細介紹:
ext、ext2、ext3、jsf、
、xfs、ReiserFS。
一、
ext
ext
是第一個專門為
Linux 的文件系統類型,叫做擴展文件系統。它在
1992
年 4
月
完成的。它為
Linux 的發展取得了重要作用。但是在性能和兼容性上存在許多缺陷。現在已
經很少使用了。
二、
ext2
ext2
是為解決
ext 文件系統的缺陷而設計的可擴展的高性能的文件系統。又被稱為
二級擴展文件系統。它是在
1993 年發布的,設計者是
Rey Card。
ext2
是 Linux
文件系統
類型中使用最多的格式。並且在速度和
CPU 利用率上較突出,是
GNU/Linux 系統中標准
的文件系統,其特點為存取文件的性能極好,對於中小型的文件更顯示出優勢,這主要
得利於其簇快取層的優良設計。Ext2
可以支持
256 字節的長文件名,其單一文件大小與
文件系統本身的容量上限與文件系統本身的簇大小有關,在一般常見的
Intel x86 兼容處
理器的系統中,簇最大為
4KB, 則單一文件大小上限為
2048GB, 而文件系統的容量上限
為
6384GB。盡管
Linux 可以支持種類繁多的文件系統,但是
2000
年以前幾乎所有的
Linux
發行版都用 ext2
作為默認的文件系統。
ext2
的缺點:ext2
的設計者主要考慮的是文件系統性能方面的問題。
ext2
在寫入文
件內容的同時並沒有同時寫入文件的
meta-data (和文件有關的信息,例如:權限、所
有者以及創建和訪問時間)。換句話說,Linux
先寫入文件的內容,然後等到有空的時候
才寫入文件的
meta- data。這樣若出現寫入文件內容之後但在寫入文件的
meta-data
之
前系統突然斷電,就可能造成在文件系統就會處於不一致的狀態。在一個有大量文件 操作
的系統中出現這種情況會導致很嚴重的後果。另外但由於目前核心
2.4 所能使用的單一分
割區最大只有
2048GB,盡管文件系統的容量上限為
6384G 但是實際上能使用的文件
系統容量最多也只有
2048GB。
三、
ext3
ext3
是由開放資源社區開發的日志文件系統,主要開發人員是
Stephen
tweedie
。 ext3
被設計成是 ext2
的升級版本,盡可能地方便用戶從 ext2fs
向 ext3fs
遷
移。
ext3 在
ext2 的基礎上加入了記錄元數 據的日志功能,努力保持向前和向後的兼容性。
這個文件系統被稱為
ext2 的下一個版本。也就是在保有目前
ext2 的格式之下再加上日
志功能。ext3
是一種日志式文件系統。日志式文件系統的優越性在於:由於文件系統都有
快取層參與運作,如不使用時必須將文件系統卸 下,以便將快取層的資料寫回磁盤中。 因
此每當系統要關機時,必須將其所有的文件系統全部卸下後才能進行關機。如果在文件系
統尚未卸下前就關機
(如停電)
時,下次重開機後會造成文件系統的資料不一致,故這時
必須做文件系統的重整工作,將不一致與錯誤的地方修復。然而,此一重整的工作是相當
耗時的,特別是容 量大的文件系統,而且也不能百分之百保證所有的資料都不會流失。 故
這在大型的伺服器上可能會造成問題。
ext3
的缺點:其最大的缺點是沒有現代文件系統所具有的能提高文件數據處理速度
和解壓的高性能,另外使用
ext3 文件系統時要注意硬盤限額問題,在這個問題解決之前,
不推薦在重要的企業應用上采用
ext3+disk quota(磁盤配額)。
四、
jsf
jsf
提供了基於日志的字節級文件系統,該文件系統是為面向事務的高性能系統而開
發的。jsf(Journaled File System Technology for Linux)的開發者包括
AIX(IBM
的
Unix)的
jsf 的主要開發者。在
AIX 上,jfs
已經經受住了考驗。它是可靠、快速和容易
使用的。2000
年
2 月,ibm
宣布在一個開放資源許可證下,移植
linux 版的
JSF 文件系
統。
JSFs 也是一個有大量用戶安裝使用的企業級文件系統。它具有可伸縮性和 健壯性,與
非日志文件系統相比,它的優點是其快速重啟能力:Jfs
能夠在幾秒或幾分鐘內就把文件
系統恢復到一致狀態。雖然
jsf 主要是為滿足服務器(從單處理器系統到高級多處理器和
群集系統)的高吞吐量和可靠性需求而設計的,jsf
還可用於想得到高性能和可靠性的客
戶機配置因為在系統崩潰時,jsf
能提供快速文件系統重啟時間,所以它是因特網文件服
務器的關鍵技術。使用數據庫日志處理技術,jsf
能在幾秒或幾分鐘之內把文件系統恢復
到一致狀態。而在非日志文件系統中,文件恢復可能花費幾小時或幾天。
jsf
的缺點:使用
jsf 日志文件系統,性能上會有一定損失,系統資源占用的比率也
偏高。是因為當它保持一個日志時,系統需要寫許多數據。
五、ReiserFS
ReiserFS
的第一次公開亮相是在
1997 年
7 月
23 日,Hans Reiser
把他的基於平
衡樹結構的
ReiserFS 文件系統在網上公布。ReiserFS 3.6.x(作為
Linux 2.4
一部分的
版本)是由
Hans Reiser 和他的在
Namesys 的開發組共同開發設計的。Hans
和他的
組員們相信最好的文件系統是那些能夠有助於創建獨立的共享環境或者命名空間的文件
系統,應用程序可以在其中更直接、有效和有力地相互作用。為了實現 這一目標,文件系
統就應該滿足其使用者對性能和功能方面的需要。那樣,使用者就能夠繼續直接地使用文
件系統,而不必建造運行在文件系統之上(如數據庫之 類)的特殊目的層。ReiserFS
使
用了特殊的優化
b* 平衡樹(每個文件系統一個)來組織所有的文件系統數據。這為其自
身提供了非常不錯的性能改進,也能夠減輕文件系統設計上的人為約束。例如,現在一個
目錄下 可以容納
ext00,000 個子目錄。另一個使用
b* 樹的好處就是
ReiserFS 能夠像
大多其它的下一代文件系統一樣,根據需要動態地分配索引節,而不必在文件系統創建
時建立固定的索引節。這有助於文件系統更靈活地適應其面臨的各種存 儲需要,同時提供
附加的空間有效率。
Reiserfs
被看作是一個更加激進和現代的文件系統。傳統的
UNIX
文件系統是按盤塊
來進行空間分配的,對於目錄和文件等的查找使用了簡單的線性查 找。這些設計在當時是
合適的,但隨著磁盤容量的增大和應用需求的增加,傳統文件系統在存儲效率,速度和
功能上已顯落後。在
reiserfs 的下一版
reiser4 中還提供了對事務的支持。在
http://www.namesys.com/v4/v4.html
中有
reiser4 的介紹和一個簡單的
reiser4
的性能測試。
ReiserFS
的缺點:ReiserFS
一個最受人批評的缺點是每升級一個版本,都將要將
磁盤重新格式化一次。你可以在http://www.namesys.com/
網站了解關於
ReiserFS
的更多信息。
六、Xfs
xfs
是一種非常優秀的日志文件系統,它是
SGI 公司設計的。xfs
被稱為業界最先進
的、最具可升級性的文件系統技術。它是一個全
64 位,快速、 穩固的日 志文件系統,多年用
於
SGI 的
IRIX 操作系統。sgi
決定支持
Linux 社區,將關鍵的基本架構技術授權於
Linux。它以開放資源形式發布了他們自己 擁有的
xfs
的源代碼,並開始進行移植。 此工作
進展得很快,目前已進入
beta 版階段。作為一個
64 位文件系統,xfs
可以支持超大數量
的文件(9g× 1gb,甚至更大的
18g×1gb),可在大型
2d
和 3d
數據方面提供顯著
的性能。xfs
有能力預測其它文件系統薄弱環節,同時
xfs 提供了在不妨礙性能的情況下
增強可靠性和快速的事故恢復。SGI
的
xfs 可為
linux 和開放資源社區帶來的新特性有:
可升級性:xfs
被設計成可升級,以面對大多數的存儲容量和
i/o 存儲需求,可處理大型
文件和包含巨大數量文件 的大型目錄,滿足二十一世紀快速增長的磁盤需求。xfs
有能力
動態地為文件分配索引空間,使系統形成高效支持大數量文件的能力。在它的支持下,用
戶可使用
1exabyte (1g×1gb) 大的文件,遠遠大於現在最大的文件系統。優秀的
i/o
性能:典型的現代服務器使用大型的條帶式磁盤陣列,以提供達數
gb/秒的總帶寬。xfs
可以很好地滿足
I/O 請求的大小和並發
I/O 請求的數量。 xfs
可作為
root 文件系統,並被
lilo
支持.在
NFS
服務器上使用也沒問題.支持軟件磁盤陣列(RAID)和虛擬集群
(LVM)。SGI
最新發布
xfs 為
1.0.1 版.(在:
http://http://oss.sgi.com/projects/xfs/
可以下載它)。
xfs
的缺點:由於
xfs 比較復雜,實施起來有一些難度,所以目前
xfs
主要應用於
Linux
企業應用的高端。
其他文件系統簡介:
Minix:Llnux
支持的第一個文件系統,對用戶有很多限制而且性能低下。有些沒有
時間標記,其文件名最長
l 4 個字符。minix
文件系統最大的缺點是最大只能使用
64M
的硬盤分區,所以在目前已經沒有人使用它了。
Xia:Minix
文件系統修正後的版本。在一定程度上解決了文件名和文件系統大小的
局限。但沒有新的特色,目前很少有人使用。
Msdos:msdos
是在
Dos、Windows
和某些
OS/2 操作系統上使用的一種文件系
統,其名稱采用“8+3”的形式,即
8
個字符的文件名加上 3
個字符的擴展名。
umsdos:
Linux 下的擴展
msdos 文件系統驅動,支持長文件名、所有者、允許權
限、連接和設備文件。允許一個普通的 msdo s
文件系統用於 Linux,而且無須為它建立
單獨的分區。
iso9660: 標准
CDROM 文件系統,通用的
Rock Ridge 增強系統,允許長文件
名。
Vfat:vfat
是 Windows9x
和 Windows NT/2000
下使用的一種 Dos
文件系統,
其在 Dos
文件系統的基礎上增加了對長文件名的支持。
Nfs:
Sun 公司推出的網絡文件系統,允許多台計算機之間共享同一文件系統,易
於從所有這些計算機上存取文件。
Hpfs:
High Performance File System(HPFS) 高性能文件系統(HPFS)
HPFS 是
Microsoft 的
LAN Manager 中的文件系統,同時也是
IBM 的
LAN Server 和
OS/2
的文件系統。HPFS
能訪問較大的硬盤驅動器,提供更多的組織特性並改善了文件
系統的安全特性。
Smb:smb
是一種支持 Windows for workgroups、Windows NT
和 Lan
Manager 的基於
SMB 協議的網絡操作系統。
Sysv: sysv
文件系統實際上是 System V/Coherent
在 Linux
平台上的文件系統。
Ncpfs:ncpfs
是一種 Novell NetWare
使用的 NCP
協議的網絡操作系統。
Proc:proc
是 Linux
系統中作為一種偽文件系統出現的,它用來作為連接內核數據
結構的界面。
NTFS:微軟
Windows NT 內核的系列操作系統支持的、一個特別為網絡和磁盤配額、
文件加密等管理安全特性設計的磁盤格式。