JFS 由IBM 公司開發,最初出現在AIX 操作系統之上,它提供了基於日志的字節級、面向事務的高性能文件系統。它具有可伸縮性和健壯性,與非日志文件系統相比,它的優點是其快速重啟能力:JFS 能夠在幾秒或幾分鐘內就把文件系統恢復到一致狀態。JFS 是完全 64 位的文件系統。所有 JFS 文件系統結構化字段都是 64 位大小。這允許 JFS 同時支持大文件和大分區。 為了支持 DCE DFS(分布式計算環境分布式文件系統),JFS 將磁盤空間分配池(稱為聚集)的概念, 與可安裝的文件系統子樹(稱為文件集)的概念分開。每個分區只有一個聚集;每個聚集可能有多個文件集。在第一個發行版中,JFS 僅支持每個聚集一個文件集;但是,所有元數據都已設計成適用於所有情況。 如圖所示,聚集開始部分是32K的保留區,緊隨其後的是聚集主超級塊。超級塊包含聚集的信息,例如:聚集的大小、分配組的大小、聚集塊的尺寸等等。超級塊位於固定位置,這使得 JFS 不依賴任何其它信息,就能夠找到它們。在聚集中還有一個重要的結構是聚集索引結點表(Aggregate Inode Table)以及用於其映射的聚集索引結點分配映射表(Aggregate Inode Allocation Map)。AIT表中的inode 0 保留,inode 1 描述聚集本身,inode 2 描述聚集塊映射表(block map), inode 3 描述安裝時的內嵌日志,inode 4 描述在聚集格式化期間發現的壞塊,保留inode 5 到 15 以備將來擴展。 從inode 16 開始,每個inode代表一個文件集。文件集中也有索引結點表以及用於其映射的索引結點分配映射表,文件集中的inode 描述文件集中的每一個文件。 JFS磁盤結構JFS 使用基於盤區的尋址結構,連同主動的塊分配策略,產生緊湊、高效、可伸縮的結構,以將文件中的邏輯偏移量映射成磁盤上的物理地址。盤區是象一個單元那樣分配給文件的相連塊序列,可用一個由 <邏輯偏移量,長度,物理地址> 組成的三元組來描述。尋址結構是一棵 B+ 樹,該樹由盤區描述符(上面提到的三元組)填充,根在 inode 中,鍵為文件中的邏輯偏移量。 JFS 按需為磁盤 inode 動態地分配空間,同時釋放不再需要的空間。這一支持避開了在文件系統創建期間,為磁盤 inode 保留固定數量空間的傳統方法,因此用戶不再需要估計文件系統包含的文件和目錄最大數目。另外,這一支持使磁盤 inode 與固定磁盤位置分離。
JFS 提供兩種不同的目錄組織。第一種組織用於小目錄,並且在目錄的 inode 內存儲目錄內容。這就不再需要不同的目錄塊 I/O,同時也不再需要分配不同的存儲器。最多可有 8 個項可直接存儲在 inode 中,這些項不包括自己(.)和父(..)目錄項,這兩個項存儲在 inode 中不同的區域內。第二種組織用於較大的目錄,用按名字鍵控的 B+ 樹表示每個目錄。與傳統無序的目錄組織比較,它提供更快的目錄查找、插入和刪除能力。