XFS 由 SGI 開發,為 64 位元可擴展日誌檔案系統,支援 EB 級容量、百萬級目錄項目、近裸裝置 I/O 效能,極適合大型資料倉儲、串流媒體、高效能運算等場景。本文記錄在 Linux 2.4 核心系列上編譯支援 XFS、安裝 xfsprogs 管理工具、建立與掛載檔案系統的完整流程。
| 特性 | 說明 |
|---|---|
| 資料完整性 | 中繼資料日誌,掉電後秒級回放恢復,零資料損毀風險 |
| 擴展性 | 全 64-bit,單一檔案 9 EB、單一檔案系統 18 EB,B+ 樹索引確保百萬檔案目錄 O(log n) 操作 |
| 效能 | 單檔案系統吞吐 7 GB/s,單檔案讀寫 4 GB/s,延遲極低且不隨目錄規模退化 |
| 線上擴容 | xfs_growfs 支援掛載狀態下無縫擴充 |
| 配額管理 | 原生專案/使用者/群組配額,硬/軟限制 |
xfs-1.1-2.4.18-all.patch (對應核心版本)。cd /usr/src/linux patch -p1 < /path/to/xfs-1.1-2.4.18-all.patch
make menuconfig):File systems → [*] SGI XFS filesystem support (建議編譯為模組 M) [*] Enable XFS DMAPI (儲存管理 API) [*] Enable XFS Quota (磁碟配額)make bzImage make modules make modules_install make install更新 bootloader (LILO/GRUB) 並重啟載入新核心。
提示:若不想自行編譯,可直接從 SGI 下載預編譯 RPM 核心 (2.4.18-xfs),分 SMP/UP 兩種封裝。
tar xvf xfsprogs-2.0.3.tar.gz cd xfsprogs-2.0.3 make && make install # mkfs.xfs、xfs_db、xfs_repair、xfs_growfs、xfs_quota 等將安裝至 /sbin
# 1. 建立 (假設 /dev/sdb1 為目標分區) mkfs.xfs -f -l size=128m,version=2 /dev/sdb1 # -l 指定日誌大小與版本,大日誌利於高並發中繼資料操作 # 2. 掛載 (建議掛載選項) mount -o noatime,nodiratime,logbufs=8,logbsize=256k,allocsize=64m /dev/sdb1 /data # noatime/nodiratime 減少存取時間更新開銷 # logbufs/logbsize 增加日誌緩衝提升中繼資料吞吐 # allocsize 預分配單位,適合大檔案循序寫入場景
xfs_growfs /data (需底層區塊裝置已擴充,如 LVM lvextend 或 RAID 陣列擴容)。xfs_repair /dev/sdb1,掛載狀態下禁止修復。uquota,gquota,用 xfs_quota -x -c 'limit bsoft=100g bhard=120g user1' /data 設定。xfs_db -r /dev/sdb1 進入互動模式檢視超級區、inode、B+樹結構。mkfs.xfs -l logdev=/dev/nvme0n1,size=512m /dev/sdb1noatime,nodiratime。allocsize=1g (最大 1GB)。logbufs=8 logbsize=256k。XFS 以卓越的大檔案/大目錄效能、線上擴容與企業級可靠性,成為 Linux 下大型儲存的首選。掌握核心編譯、工具鏈部署與掛載參數調校,即可釋放硬體極致吞吐,為資料密集型應用奠定堅實基石。