ext4 (Fourth Extended Filesystem)(イーエックスティーフォー)
Linux 標準ファイルシステム。2008年Linux 2.6.28 で安定化、ジャーナル + Extent + 16TB+ ファイル / 1EB ボリューム対応。
概要
ext4 (Fourth Extended Filesystem) は2006年からTheodore Ts'o (Linux ext maintainer) らがext3 の改良として開発開始、2008年10月Linux 2.6.28 でstable リリースされたLinux 主流ファイルシステム。ext3 (2001) の互換性を維持しつつ、Extent ベースのブロック割当・遅延割当・最大1EB ボリュームへの拡張等を実現、Ubuntu / Debian / CentOS / Fedora 等の主要Linux Distribution 標準FS。
ext4 主要仕様
| 項目 | ext3 | ext4 |
|---|---|---|
| 最大ボリューム | 32TB | 1EB (= 1024PB) |
| 最大ファイル | 2TB | 16TB |
| ブロック サイズ | 1-4KB | 1-64KB (典型4KB) |
| アロケーション | Block Mapped | Extent (連続ブロック範囲) |
| 遅延割当 | なし | あり |
| Multi-block alloc | なし | あり |
| ジャーナル | あり | あり (改良 Journal Checksum) |
| nanosec timestamp | なし | あり |
| サブディレクトリ数 | 32K | 64K (Hash B-tree) |
| 既存 ext3 マウント | - | 互換 |
Extent 構造
ext3 のBlock Mapped (1ブロック=4KB毎に個別マッピング) を、Extent (連続100ブロックを1Extent としてまとめて表現) に置換。100GB ファイルでメタデータ100MB → 1KB に削減、性能大幅向上。
遅延割当 (Delayed Allocation)
ファイル書込時に即座にブロック割当せず、メモリ上に保留 → flush 時にまとめて割当。連続ブロック確保しやすくフラグメンテーション減少、性能向上。
ジャーナル
- 3モード: writeback / ordered (default) / journal
- ordered: メタデータ + データ順序保証
- journal: メタデータ + データ両方ジャーナル化 (最高信頼性)
- writeback: メタデータのみ (高速・低信頼性)
- Journal Checksum: 破損検知
性能特性
| ワークロード | ext3 | ext4 |
|---|---|---|
| 小ファイル多数 | 良 | 良 |
| 大ファイル順次I/O | 良 | 優 (Extent) |
| ランダム書込 | 中 | 良 |
| メタデータ操作 | 中 | 良 |
| 削除性能 | 遅 | 高速 (Extent) |
主要採用Distro
- Ubuntu (8.04 LTS 2008 以降 ext4 デフォルト)
- Debian
- CentOS / RHEL 6 (2011-) 以降
- Fedora
- Linux Mint
- Android (デバイス依存・F2FS 採用増)
- ChromeOS (一部)
関連用語との違い
- vs ext3: ext4 はExtent / 1EB 対応・ext3 はBlock Mapped / 32TB
- vs Btrfs: ext4 は安定性 / Btrfs はSnapshot / Subvolume 機能
- vs XFS: 大規模並列 (XFS) / 一般用途 (ext4)
FAQ
Q1: ext3 → ext4 移行?
A: マウント時 -t ext4 でread-only mount可。既存ext3 を ext4 機能でmount → tune2fs で extent 有効化可。
Q2: Btrfs に乗り換えるべき? A: 用途依存。スナップショット / 圧縮欲しい→ Btrfs。安定 / 単純性 → ext4。Ubuntu 24.04 LTS でも ext4 が標準維持。
Q3: 1EB ボリュームは現実的? A: 規格上のみ。実用は数TB-100TB レベル。ZFS / Ceph 等が大規模向け。