選擇一個日誌文件系統
日誌文件系統是一種特殊類型的文件系統,它記錄一個被稱為日誌的追蹤文件。日誌可以讓系統能夠修復在異常終止時出現的不一致情況。它通過追蹤之前提交到主文件系統的更改。在計算機非正常關機的情況下,任何數據丟失都可被重建。因此,這種文件系統不太可能遭受破壞,並且可以使文件系統快速恢復工作。
為了深入了解日誌文件系統的使用,我們整理出一個首選列表。
現在,讓我們討論一下手邊的日誌文件系統。
- ext3 許多流行的Linux發行版默認的文件系統
- XFS 為高性能和大文件設計的文件系統
- Btrfs 校檢copy-on-write(寫入時複製)文件系統
- ext4 由ext3增加許多顯著特性和擴展進化而來的文件系統
ext3
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
XFS 是一個64位的、高性能的支持文件系統一致性的日誌文件系統,由Silicon Graphics公司所開發。是IRIX5.3和以後版本的默認文件系統,後來又移植到Linux內核。
XFS結合先進的日誌技術和完整的64位定址還有可擴展的數據結構和演算法。
XFS從Linux 2.4開始一直留在官方Linux內核內核樹。所有現代的Linux發行版都支持XFS。
XFS
價格 : 免費下載
協議 : GNU GPL v2
開發者 : Silicon Graphics Inc.
網站 : http://oss.sgi.com/projects/xfs/
支持 : http://XFS.org, FAQ, 郵件列表
特性包括:
- 快速恢復 - 意外中斷後,重新啟動非常快,不受管理文件的數量影響
- 快速事務 - 提供優越的日誌同時盡量減少日誌在讀取和寫入數據事務時對性能的影響
- 大規模的可擴展性 - 支持最大文件系統為8 EiB - 1(1024PiB - 1)
- 有效分配 - 實現極其複雜的空間管理技術
- 出色的帶寬佔用 - 能夠提供非常接近底層的硬體本身I/O性能
- 提供日誌文件系統元數據,在實際磁碟塊更新前首先寫入一個連續的日誌來更新文件系統
- 支持文件系統的掛載卷增長,使文件系統的「凍結」和「解凍」操作支持卷級快照,並提供了一個在線的文件碎片整理工具
- 實現完整的日誌擴展屬性
- 支持ACL語義和在POSIX 1003.1e標準草案的介面描述
- 兼容NFS
- 使用開源的Samba服務導出XFS文件系統到Microsoft Windows系統
- 數據管理API(DMAPI/XDSM的)允許實施不修改內核的分層存儲管理軟體
- 支持「實時子卷」的概念 - 一個獨立的區域只有文件數據存儲的磁碟空間
Btrfs
Btrfs(B-樹文件系統)是一個Linux寫入時複製(Copy on Write)文件系統。寫入時複製(COW)是維護數據集合的副本和使用相同數據處理多個任務時管理資源的優化技術(譯者注:用於保留某些數據的原始副本的一種技術。在寫入操作修改數據時,會複製數據的原始副本)。
這個日誌文件系統的目的是給Linux帶來更高效的存儲管理和更好的數據完整性功能。
Btrfs很好的實現了高級特性,同時保持了容錯性、可擴展性和可靠性。這個文件系統自2007年以來一直在開發,它的基礎代碼現在已經到達了一個成熟的水平,其磁碟格式應該不會改變。基礎代碼還在密集的開發中。
Btrfs 首次亮相在Linux2.6.29發布時。Btrfs可以處理多達264個位元組,少了幾百特殊項。
Btrfs
價格 : 免費下載
協議 : GNU GPL
開發者 : Oracle Corporation
網站 : http://btrfs.wiki.kernel.org
支持 : Btrfs初學者指南, 我如何使用Btrfs先進的功能, Btrfs文件系統入門
選擇評論: Josef Bacik
特性包括:
-
可擴展,64位文件系統能夠跨越卷提供文件,文件系統最大可達16EiB
-
集成了卷管理
-
在線文件系統的碎片整理 - 可用在卷掛載或在線時整理卷碎片
-
離線文件系統檢查
-
在線卷增長和收縮
-
在線塊設備的添加和刪除
-
在線平衡(移動對象在塊設備之間來平衡負載)
-
使用B-樹結構來存儲數據類型和存儲在磁碟上的信息點
-
在線數據擦除發現錯誤和自動修復文件冗餘副本
-
延遲分配以便更好的磁碟分配
-
空間高效的打包小文件
-
空間高效的索引目錄
-
子卷(單獨的內部文件系統root)
-
透明壓縮(zlib和LZO)
-
容易使用的可寫快照,只讀快照。在快照目錄下,快照被看做一般的目錄
-
發送/接收(以二進位流保存快照之間的差別)
-
數據一致性:
-
內置RAID支持(RAID0,RAID1,RAID5,RAID6和RAID10) 。可用於數據擦除,特別是RAID 1
-
故障隔離和校驗和演算法 - 從用戶數據分開存儲的元數據實現故障隔離
-
校驗數據和元數據(CRC- 32C) ,可以選擇關閉數據校驗和
-
即使在一個單一的設備,元數據被冗餘存儲在兩個位置
-
重建次數
-
加密
-
文件克隆(在單個文件寫入時複製,或位元組範圍)
-
原地遷移ext3/4到BTRFS(支持回滾)
-
文件系統seeding
-
SSD (快閃記憶體)識別(TRIM /丟棄報告重用的空閑塊)和優化
-
文件條帶化,文件鏡像化,文件條帶化+鏡像化,單雙奇偶校驗實現條帶化
-
每個子卷分層配額
-
基於擴展的文件存儲
-
提供了用戶最低限度的調整,以防範濫用
ext4
ext4,也叫做第四擴展文件系統,是一個由ext3演變而來的Linux日誌文件系統。它在Linux內核2.6.28很穩定。
ext4的增加了許多重要特性 : 一個單一的連續塊的描述符,而不是傳統的ext2和ext3所使用的塊映射體系。這是一個表示大文件的有效方式,更高效的CPU 利用和更少的元數據的輸入輸出(I/O)。這也使文件系統檢查更快,更加有利的於文件系統規模的增長。
ext4
價格 : 免費下載
協議 : GNU GPL
開發者 :Mingming Cao, Andreas Dilger, Alex Zhuravlev (Tomas), Dave Kleikamp, Theodore Ts'o, Eric Sandeen, others
特性包括:
-
擴展屬性塊和大量的inode
-
基於擴展的磁碟格式
-
在線碎片整理
-
在線文件系統的大小預先調整
-
哈希索引目錄
-
文件/設備都記錄日誌
-
目錄項中記錄文件類型
-
使用日誌恢復
-
文件分配擴展格式
-
支持超過232個文件系統塊
-
靈活的塊組元數據的位置
-
減少塊組的備份
-
減少超級塊的備份
-
文件可大於2GiB
-
組描述符校驗和稀疏inode表
-
超過32000個子目錄
-
inode特性
-
更多的inode
-
inode的預訂
-
納秒級時間戳和創建時間
-
文件可大於2TiB
-
日誌校驗 - 可以校驗日誌數據來判斷日誌塊是否發生故障或損壞
-
可以選擇關閉日誌
-
持久預分配
-
向後兼容ext2和ext3
-
分配方案:
-
持久預分配
-
延遲分配
-
多塊分配
-
條塊化感知分配
-
擴展屬性
-
配額日誌
-
實現 discard/TRIM(譯者注:任務相關教學法)
via: http://www.linuxlinks.com/article/20130927180305497/JournalingFileSystems.html
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive