XFS (Extents File System)(エックスエフエス)
SGI 1994年IRIX 5.3 で導入した64bit ジャーナリングファイルシステム。大規模並列性能に優秀、RHEL / CentOS 7+ 標準。
概要
XFS (X File System) はSGI (Silicon Graphics・米Mountain View) が1994年にUnix系IRIX 5.3 で導入した64bit ジャーナリングファイルシステム。EFS (旧IRIX デフォルト) の後継として、大規模ファイル / 並列I/O / 連続性能 に最適化された設計。2001年Linux カーネルへポートGPL公開・2014年RHEL 7 でLinux標準FS化、現在もRHEL / CentOS / Rocky / AlmaLinux 9 で標準。
XFS 主要仕様
| 項目 | 仕様 |
|---|---|
| 構造 | 64bit Extent (B+ tree) |
| 最大ボリューム | 8EB |
| 最大ファイル | 8EB |
| ブロックサイズ | 512B-64KB |
| ジャーナル | あり (メタデータのみ) |
| Allocation Group | あり (並列I/O) |
| 動的Inode | あり |
| TRIM | あり |
| Online Defrag | あり (xfs_fsr) |
| Online Resize | 拡張のみ (縮小不可) |
| Snapshot | LVM 経由 |
| 暗号化 | LUKS 等経由 |
Allocation Group (AG)
XFS の独自並列化機構。ディスクを4-1024個のAllocation Group に分割、各AG が独立した空き領域管理・iノード割当を行う。複数CPU からの並列I/O リクエストを独立処理することで、大規模並列I/O 性能を実現する。
XFS vs ext4 性能比較
| ワークロード | XFS | ext4 |
|---|---|---|
| 小ファイル多数 | 中 | 良 |
| 大ファイル順次 | 優 | 良 |
| メタデータ操作 | 良 | 良 |
| ランダム書込 | 良 | 良 |
| 並列I/O | 優 | 良 |
| Online resize | 拡張のみ | 拡張+縮小 |
主要採用先
- IRIX 5.3 - 6.5 (SGI 標準・2006停止)
- RHEL 7 - 10 (2014-現在標準)
- CentOS 7 - 8 (2014-2021)
- Rocky Linux / AlmaLinux 8/9 標準
- SUSE Linux Enterprise Server
- Oracle Database 推奨FS
- 米国LLNL / 日本理研 等の研究機関 PB級
縮小不可問題
XFS は Online (動作中) でのボリューム拡張のみサポート、縮小不可。サイズ縮小したい場合は新ボリューム作成→データコピー→旧削除という運用が必要。LVM + ext4 等の縮小可能構成と比較して制約。
関連用語との違い
- vs ext4: 大規模 / 並列 (XFS) / 一般 (ext4)
- vs ZFS: スナップショット / 圧縮なし (XFS) / あり (ZFS)
- vs Btrfs: 安定性高 (XFS) / 機能性高 (Btrfs)
FAQ
Q1: 個人で使うべき? A: 通常は不要・ext4 で十分。データベース / 大規模ファイルサーバ / RAID 6+ 大容量NAS 等で実利。
Q2: RHEL 7 が ext4 → XFS にした理由? A: 大容量 (16TB+ HDD 時代)・並列I/O・データベース最適性能・SGI 蓄積技術。
Q3: XFS のスナップショット? A: ネイティブ未対応。LVM (Logical Volume Manager) スナップショット機能と組み合わせ。