通俗的說,計算機的檔案系統就是一個像磁盤這樣的儲存設備如何存儲、檢索以及管理檔案的方式。檔案系統需要記錄的不僅是檔案本身每一個位元組,及其在儲存設備上的位置,還要存儲檔案相關的資訊。比如,也要存儲每個檔案的名字、檔案存放的層次結構(目錄),還有檔案的中繼資料,像檔案的修改時間等。
雖然在linux上可以使用許多不同的檔案系統,但是絕大多數使用者很少去關注使用哪一個,它們通常都被忽視了。選擇使用什麼樣的檔案系統視情況而定,要考慮的相關因素包括相容性、性能、還原能力、使用的媒體、存儲媒體的大小和數量、特性,還有安全考慮等。

日志檔案系統是一種特殊類型的檔案系統,它記錄一個被稱為日志的追蹤檔案。日志可以讓系統能夠修複在異常終止時出現的不一緻情況。它通過追蹤之前送出到主檔案系統的更改。在計算機非正常關機的情況下,任何資料丢失都可被重建。是以,這種檔案系統不太可能遭受破壞,并且可以使檔案系統快速恢複工作。
為了深入了解日志檔案系統的使用,我們整理出一個首選清單。
現在,讓我們讨論一下手邊的日志檔案系統。
<a target="_blank"></a>
ext3,或者叫第三擴充檔案系統,它是一個通常被用于linux核心的日志檔案系統。日志功能意味着不用對fsck等待過久和擔心損壞中繼資料。
它是包括debian在内的許多流行的linux發行版的預設檔案系統。ext3 最初釋出時間是1999年9月。
ext3 預設保留了%5的可用空間,主要的原因是保證超級使用者(root)甚至在檔案系統已滿的情況下能夠登入。
ext3 0.9.18 價格 : 免費下載下傳 大小 : 13.8kb 協定 : gnu gpl 開發者 : stephen tweedie
特性包括:
簡單,健壯,可擴充
核心和使用者空間的代碼已廣泛測試
在ext2上增加的特性
日志 :提高可靠性,并且異常關機後不需要檢查檔案系統
各種日志模式:日志,有序,寫回
檔案系統被重新挂載時自動恢複
所有的vfs操作(包括配額)都會記錄到日志
添加資料的更新也被記錄日志
線上檔案系統的擴容
在大目錄上使用htree索引
擴充屬性塊和大量的inode
支援線上檔案系統的大小調整
哈希索引的目錄
檔案/裝置都支援日志
目錄項中記錄檔案類型
日志恢複依賴
減少塊組的備份
減少超級塊的備份
檔案可大于2gib
易于自ext2遷移檔案系統,而不需要備份,恢複和格式化分區
unix權限, acl和其它的安全屬性
xfs 是一個64位的、高性能的支援檔案系統一緻性的日志檔案系統,由silicon graphics公司所開發。是irix5.3和以後版本的預設檔案系統,後來又移植到linux核心。
xfs結合先進的日志技術和完整的64位尋址還有可擴充的資料結構和算法。
xfs從linux 2.4開始一直留在官方linux核心核心樹。所有現代的linux發行版都支援xfs。
xfs 協定 : gnu gpl v2 開發者 : silicon graphics inc.
快速恢複 - 意外中斷後,重新啟動非常快,不受管理檔案的數量影響
快速事務 - 提供優越的日志同時盡量減少日志在讀取和寫入資料事務時對性能的影響
大規模的可擴充性 - 支援最大檔案系統為8 eib - 1(1024pib - 1)
有效配置設定 - 實作極其複雜的空間管理技術
出色的帶寬占用 - 能夠提供非常接近底層的硬體本身i/o性能
提供日志檔案系統中繼資料,在實際磁盤塊更新前首先寫入一個連續的日志來更新檔案系統
支援檔案系統的挂載卷增長,使檔案系統的“當機”和“解凍”操作支援卷級快照,并提供了一個線上的檔案碎片整理工具
實作完整的日志擴充屬性
支援acl語義和在posix 1003.1e标準草案的接口描述
相容nfs
使用開源的samba服務導出xfs檔案系統到microsoft windows系統
資料管理api(dmapi/xdsm的)允許實施不修改核心的分層存儲管理軟體
支援“實時子卷”的概念 - 一個獨立的區域隻有檔案資料存儲的磁盤空間
btrfs(b-樹檔案系統)是一個linux寫入時複制(copy on write)檔案系統。寫入時複制(cow)是維護資料集合的副本和使用相同資料處理多個任務時管理資源的優化技術(譯者注:用于保留某些資料的原始副本的一種技術。在寫入操作修改資料時,會複制資料的原始副本)。
這個日志檔案系統的目的是給linux帶來更高效的存儲管理和更好的資料完整性功能。
btrfs很好的實作了進階特性,同時保持了容錯性、可擴充性和可靠性。這個檔案系統自2007年以來一直在開發,它的基礎代碼現在已經到達了一個成熟的水準,其磁盤格式應該不會改變。基礎代碼還在密集的開發中。
btrfs 首次亮相在linux2.6.29釋出時。btrfs可以處理多達264個位元組,少了幾百特殊項。
btrfs 開發者 : oracle corporation
可擴充,64位檔案系統能夠跨越卷提供檔案,檔案系統最大可達16eib
內建了卷管理
線上檔案系統的碎片整理 - 可用在卷挂載或線上時整理卷碎片
脫機檔案系統檢查
線上卷增長和收縮
線上塊裝置的添加和删除
線上平衡(移動對象在塊裝置之間來平衡負載)
使用b-樹結構來存儲資料類型和存儲在磁盤上的資訊點
線上資料擦除發現錯誤和自動修複檔案備援副本
延遲配置設定以便更好的磁盤配置設定
空間高效的打包小檔案
空間高效的索引目錄
子卷(單獨的内部檔案系統root)
透明壓縮(zlib和lzo)
容易使用的可寫快照,隻讀快照。在快照目錄下,快照被看做一般的目錄
發送/接收(以二進制流儲存快照之間的差别)
資料一緻性:
内置raid支援(raid0,raid1,raid5,raid6和raid10) 。可用于資料擦除,特别是raid 1
故障隔離和校驗和算法 - 從使用者資料分開存儲的中繼資料實作故障隔離
校驗資料和中繼資料(crc- 32c) ,可以選擇關閉資料校驗和
即使在一個單一的裝置,中繼資料被備援存儲在兩個位置
重建次數
加密
檔案克隆(在單個檔案寫入時複制,或位元組範圍)
原地遷移ext3/4到btrfs(支援復原)
檔案系統seeding
ssd (閃存)識别(trim /丢棄報告重用的空閑塊)和優化
檔案條帶化,檔案鏡像化,檔案條帶化+鏡像化,單雙奇偶校驗實作條帶化
每個子卷分層配額
基于擴充的檔案存儲
提供了使用者最低限度的調整,以防範濫用
ext4,也叫做第四擴充檔案系統,是一個由ext3演變而來的linux日志檔案系統。它在linux核心2.6.28很穩定。
ext4的增加了許多重要特性 : 一個單一的連續塊的描述符,而不是傳統的ext2和ext3所使用的塊映射體系。這是一個表示大檔案的有效方式,更高效的cpu 利用和更少的中繼資料的輸入輸出(i/o)。這也使檔案系統檢查更快,更加有利的于檔案系統規模的增長。
ext4 開發者 :mingming cao, andreas dilger, alex zhuravlev (tomas), dave kleikamp, theodore ts'o, eric sandeen, others
基于擴充的磁盤格式
線上碎片整理
線上檔案系統的大小預先調整
哈希索引目錄
檔案/裝置都記錄日志
使用日志恢複
檔案配置設定擴充格式
支援超過232個檔案系統塊
靈活的塊組中繼資料的位置
組描述符校驗和稀疏inode表
超過32000個子目錄
inode特性
更多的inode
inode的預訂
納秒級時間戳和建立時間
檔案可大于2tib
日志校驗 - 可以校驗日志資料來判斷日志塊是否發生故障或損壞
可以選擇關閉日志
持久預配置設定
向後相容ext2和ext3
配置設定方案:
延遲配置設定
多塊配置設定
條塊化感覺配置設定
擴充屬性
配額日志
實作 discard/trim(譯者注:任務相關教學法)
原文釋出時間為:2013-10-08
本文來自雲栖社群合作夥伴“linux中國”