詳解Linux文件系統:VFS、Ext2、Ext3、Ext4、ReiserFS、XFS等

概述

Linux作為開源操作系統,最大的優勢是它可以支持各類文件系統。現代的Linux內核能夠支持 幾乎每種文件系統,從基礎的FAT到高性能的日誌文件系統(JFS)都能可以。


虛擬文件系統

虛擬文件系統(VFS)是一個處於用戶進程和各類文件系統之間的抽象接口層,VFS提供訪問 文件系統對象的通用對象模型(例如,i-node、文件對象、頁緩存、)和方法,它對用戶進程 隱藏了各種文件系統的差別。正是因為有VFS,所以用戶進程不用關心使用的是那種文件系 統,也更不需要知道各個文件系統應該使用哪個系統調用。下圖顯示了VFS的概況。

詳解Linux文件系統:VFS、Ext2、Ext3、Ext4、ReiserFS、XFS等

日誌

在非日誌文件系統上,當執行寫操作時,內核先修改文件系統的元數據,然後寫入實際的用戶數據。這個操作可能會丟失數據的完整性。如果在寫入文件系統元數據的時候系統突然崩 潰,文件系統的一致性就可能被破壞。fsck會在下次啟動時檢查所有的元數據,並修復文件系 統上的不一致,但是如果卷特別大的時候,這個修復過程就會變得很漫長,只能乾等著fsck工 作完之後才能使用這系統。

日誌文件系統解決了這個問題,在寫入實際的文件系統之前,他先把要修改的數據寫入一個 叫做日誌區域(journalarea)的地方。日誌區域可以在文件系統上,也可以不在文件系統 上。寫入日誌區域的數據叫做日誌記錄(joutnallog)。如果系統支持的話,它內容包括文件 系統元數據和真正的文件數據。 因為在寫入真正用戶數據之前要寫記錄日誌,和非日誌文件系統相比會產生性能開銷。維護 數據高度一致性所犧牲的性能開銷大小,取決於在寫入用戶數據之前要寫入多少信息到磁盤 上。

詳解Linux文件系統:VFS、Ext2、Ext3、Ext4、ReiserFS、XFS等

Ext2/Ext3/Ext4區別

詳解Linux文件系統:VFS、Ext2、Ext3、Ext4、ReiserFS、XFS等

詳解Linux文件系統:VFS、Ext2、Ext3、Ext4、ReiserFS、XFS等

ReiserFS

ReiserFS是一個快速的日誌文件系統,具備優化磁盤空間利用率和快速的崩潰恢復功能!在 Novell的幫助下,ReiserFS已經變得十分好用。ReiserFS只在NovellSUSELinux上享受商業 支持!

日誌文件系統

日誌文件系統(JournalFileSystem,JFS)是一個全64位文件系統,能支持超大文件和分 區。JFS起初由IBM為AIX開發,現在已經在GPL許可證下發布。在高性能計算(high performancecomputing,HPC)和數據庫這類需要支持超大分區和文件大小的情況下,JFS 是一個理想的文件系統。

XFS

擴展文件系統(eXtendedFileSystem,XFS)是一個起初由硅圖形公司(SiliconGraphics Incorporated)為他們的IRIX系列系統開發高性能日誌文件系統。它和IBM的JFS的特點較為 相識,也支持超大文件和分區。而且,使用場景也很相似。


篇幅有限,關於linux的文件系統簡單說到這了,後面會分享更多devops和DBA方面的內容,感興趣的朋友可以關注下~

詳解Linux文件系統:VFS、Ext2、Ext3、Ext4、ReiserFS、XFS等


分享到:


相關文章: