F2FS (Flash-Friendly File System)(エフツーエフエス)
Samsung 2012年公開のフラッシュ (SSD / eMMC / UFS) 最適化Linux ファイルシステム。Android 端末で広く採用、書込増幅低減・性能向上。
概要
F2FS (Flash-Friendly File System) は2012年にSamsung 三星電子のJaegeuk Kim 主導で開発・公開、2012年12月Linux 3.8 でmainline 統合されたフラッシュメモリ最適化ファイルシステム。NAND Flash の物理特性 (シーケンシャル書込好み / Erase Block 単位消去 / Wear Leveling) に最適化したLog-structured FS で、Android デバイスのeMMC / UFS 上で広く採用、書込増幅 (Write Amplification) 低減・読書性能向上を実現。
F2FS 主要機能
| 項目 | 仕様 |
|---|---|
| 構造 | Log-structured + Multi-head Logging |
| 最大ボリューム | 16TB |
| 最大ファイル | 3.94TB |
| Allocation Unit | Section (典型2MB) |
| Hot/Warm/Cold data 分離 | あり |
| Multi-head log (6 logs) | あり (Wear Leveling) |
| TRIM | 標準 |
| Online GC | あり (バックグラウンド GC) |
| Compression | あり (LZ4 / Zstd・2020-) |
| Encryption | 標準 (fscrypt) |
| Online Resize | 拡張+縮小 |
NAND Flash 特性とF2FS 設計
- NAND Flash はByte 上書き不可・Erase Block (128KB-256KB) 単位消去
- 書込増幅 (Write Amplification): 1bit 変更で1ブロック書き換え
- Wear Leveling: 各ブロックの書込回数均等化
- F2FS は Log-structured で常にシーケンシャル書込 → NAND 親和性高
Multi-head Logging
F2FS は最大6つの並列ログ (Hot Node / Warm Node / Cold Node / Hot Data / Warm Data / Cold Data) を保持、データの「温度」(更新頻度) で書込先を分離。Hot は更新多 / Cold は更新少のデータが分離格納される → GC 効率向上・書込増幅低減。
主要採用デバイス
| メーカ | デバイス | 採用 |
|---|---|---|
| Samsung | Galaxy S6+ (一部地域) | 2015-2016 |
| Samsung | Galaxy S8+ 標準 | 2017- |
| Xiaomi | Mi 9 / Mi 10/11 等 | 2019- |
| Huawei | Mate / P シリーズ | 2018- |
| OnePlus | 6T+ | 2018- |
| Pixel | Pixel 7+ | 2022- |
| Synology DSM | 一部モデル | 2020- |
ext4 との比較 (Android)
| 項目 | ext4 | F2FS |
|---|---|---|
| 書込増幅 | 中 | 低 |
| Random Write 性能 | 中 | 高 |
| Sequential Read | 良 | 良 |
| 寿命 (NAND) | 中 | 長 |
| 成熟度 | 高 | 中-高 |
| ファイル数 | 32K subdir | 制限緩い |
実機ベンチでF2FS は Random Write 30-50%・Read 10-20% 高速 (Galaxy S20 ext4 vs F2FS比較・AnandTech)。
関連用語との違い
- vs ext4: F2FS はFlash 最適 / ext4 は汎用
- vs UBIFS: F2FS はFTL (Flash Translation Layer) 付Flash 用 / UBIFS は raw MTD 用
FAQ
Q1: デスクトップSSDで使うべき? A: 不要。デスクトップSSD はFTL 内蔵・OS 側Wear Leveling 配慮済で ext4 / Btrfs で十分。F2FS はeMMC / UFS / SD カードで有意。
Q2: ChromeBook で? A: ChromeOS Flex / ChromeBook はext4 標準・F2FS はオプションとして組込 (Stateful Partition)。
Q3: マイクロSDフォーマット? A: Linux で mkfs.f2fs で作成可・Android Adoptable Storage 推奨。Windows は f2fs-tools 経由でフォーマット可能だが Windowsカーネルは非対応。