JFS (Journaled File System) 由 IBM 研發,初見於 AIX,後移植至 OS/2、Linux。作為完全 64 位元設計的企業級檔案系統,JFS 以「快速重啟恢復」著稱:日誌回放僅需秒至分鐘級即可將檔案系統恢復至一致狀態,大幅縮短大型儲存陣列的 fsck 時間。
為支援 DCE/DFS 分散式檔案系統,JFS 將儲存池管理與命名空間分離:
| 位移 | 結構 | 說明 |
|---|---|---|
| 0 - 32KB | 保留區 | 開機載入器、分區表等 |
| 32KB | 主超級區塊 | Aggregate 級元數據:大小、分配群組大小、區塊尺寸、狀態旗標 |
| 後續 | Aggregate Inode Table (AIT) | Inode 陣列,Inode 0 保留、1 描述 Aggregate 自身、2 區塊對應表、3 內嵌日誌、4 壞區塊、5-15 保留擴展 |
| Inode 16+ | Fileset Inode | 每個 Fileset 佔一個 Inode,指向該 Fileset 專屬的 Inode 表與分配對應表 |
檔案資料以 Extent (區段) 為單位分配:連續區塊序列,用三元組 <邏輯偏移量, 長度, 物理位址> 描述。
| 模式 | 適用規模 | 儲存方式 | 性能特性 |
|---|---|---|---|
| 內嵌模式 | 小目錄 (≤ 8 項,不含 . 和 ..) | 直接儲存在目錄 Inode 內 | 零額外 I/O、零額外空間、極快查找 |
| B+ 樹模式 | 大目錄 | 以檔名為鍵的 B+ 樹 | 查找/插入/刪除 O(log n),優於傳統線性目錄 |
jfs 模組jfsutils (mkfs.jfs, fsck.jfs, logdump, jfs_tune)iocharset=utf8, resize (線上擴容), integrity (強制日誌完整性檢查)acl 但實作不全)、不支援快照、線上縮容不可行JFS 以「動態 Inode、Extent+B+樹、雙模式目錄、快速日誌回放」四大技術支柱,構建了高可靠、高擴展、易管理的企業級檔案系統。雖然在 Linux 生態中較 ext4/XFS/btrfs 少見,但在「海量小檔案、極短 RTO 要求、AIX/Linux 異構共存」場景下,JFS 仍具不可替代優勢。建議儲存架構師在技術選型時納入評估矩陣。