F2FS
F2FSはボリューム全体を多数のセグメントに分割する。各セグメントのサイズは2MB固定である。連続する複数セグメントをまとめてセクションが定義され、セクションの集合としてゾーンが定義される。デフォルト設定では、セクションとゾーンは同じサイズに設定されるが、ユーザはmkfsを用いて簡単にサイズを変更できる。
F2FSはボリューム全体を6個のエリアに分割する。以下に記述するように、スーパーブロックエリアを除き、各エリアは複数のセグメントから構成される。
F2FSには、以下の機能が実装されている。
マルチヘッドログ
マルチレベルハッシュテーブル
静的/動的なホットデータとコールドデータの分離
Adaptive logging scheme
Configurable operational units
二重チェックポイント
巻き戻しと前進復帰の対応
ヒープ形式のブロック割り当て
TRIM / FITRIMのサポート
オンラインデフラグメンテーション
インライン拡張属性
インラインデータ
インラインディレクトリ
オフラインファイルシステムチェック
Atomic operations
ファイルシステム全体の暗号化
オフラインでのファイルシステムのサイズ変更
キャッシュ (コンピュータシステム)の定期的な書き込み
Extent cache
Move_file_range
Host-managed SMR
複数のデバイスに対応
Large IO submission
Disk Quota (user/group)
また、以下の機能の実装が予定されている。
FS Fuzzing (AFL)
16 TiB以上のサポート
Open-channel SSD/ lightNVM FTL
スナップショット
トランザクションのサポート
透過圧縮
Tiered storages
Reflink, copy_file_range, clone_file_range
cgroups
DAX
重複排除(英語版)
Better direct I/O
リムーバブルメディアのサポート
Windows向けデバイスドライバの開発
マルチチャネルSSD
OrangeFS(英語版)
GRUB 2への対応
F2FS (Flash-Friendly File System) は、サムスン電子の金載極 (朝: 김재극、英: Jaegeuk Kim) によって開発されたLinux向けのフラッシュファイルシステムである。
NANDフラッシュメモリベースのストレージは、スマートフォン・タブレットからサーバまで、様々な種類のコンピュータで利用されている。F2FSはこれらのストレージの特性を考慮したファイルシステムとして設計が行われている。
F2FSはログ構造ファイルシステムを、NANDフラッシュメモリベースのストレージに適したものにして取り入れている。F2FSでは、従来のログ構造ファイルシステムの問題点であるガベージコレクションの負荷の高さなどを解消している。NANDフラッシュメモリベースのストレージではフラッシュ変換レイヤ (英: Flash Translation Layer、FTL) が実装されており、フラッシュメモリの特性の隠蔽とHDDのエミュレートを行い、SATAなどのインタフェースで利用ができるようにしている。F2FSはFTLの存在を前提として、NANDフラッシュメモリベースのストレージの性能を引き出すことができるように設計されている。
パーティションの先頭に配置される。ファイルシステムが壊れないよう、2つのコピーが作られる。スーパーブロックはパーティションの基本情報とF2FSのデフォルトパラメータを持つ。