Kernel3.8で採用されたF2FSの更新履歴を
Kernelのドキュメントにあることから注目すべきだと思ったものを書いてみる
推奨バージョンは性能からは4.8、TRIMの視点からすると4.9、4.15でしょうか。
3.11 f2fs: support xattr security labels
f2fsのセキュリティラベルのサポートを追加します
AppArmor, SELinuxに対応
3.13 F2FS Introduce CONFIG_F2FS_CHECK_FS to disable BUG_ONs which check the file system consistency in runtime and cost performance
この設定は、潜在的にパフォーマンスを低下させる非常に多くのBUG_ONを削除するオプションをサポートします。
F2FS_CHECK_FS
3.14 Improve write performance under frequent fsync calls commit
頻繁なfsync呼び出しのコミット時の書き込みパフォーマンスの向上
3.15introduce large directory support
大きなディレクトリサポートを導入する
3.18 support atomic writes
一貫性のある書き込みサポートのために非常に限定された機能を導入します
3.18 support large sector size
ブロックサイズが512バイトだったのを4096まで拡張
3.19 Add "dirsync" to allow sync operation on directory operations
マウントオプションにディレクトリに対してcheckpointを呼び出すdirsyncを追加
4.0 Introduce a batched trim
分割trimのためのバッチによるトリミング機能
fstrimが0からデバイスの終わりまでの範囲でトリガされた場合、
すべてのチェックポイント関連のミューテックスが発生し、非常に長い待ち時間が発生するため
4.1 Add an optional rb-tree based extent cache
多くのマッピング情報をキャッシュできるextent_cacheオプションの追加
4.2 Support encryption of f2fs files and directories
ファイルとディレクトリの暗号化サポート
4.2 Recovers a broken superblock with the other valid one
破損したスーパーブロックを他の有効なスーパーブロックで回復します。
4.3 Enhance multithread performance
マルチスレッドのパフォーマンスを改良
4.8 Add lazytime mount option
lazytime対応に
4.8 Add nodiscard mount option
nodiscard対応に。TRIMが自動実行されなくなる
4.8 Introduce mode=lfs mount option
このマウントオプションは、オリジナルのログ構造ファイルシステムを強制的に有効にするためのオプションです。
したがって、メイン領域のランダム書き込みは行われません。
4.8 Enable flush_merge option by default (can be disabled with noflush_merge option)
デバイスがcache_flushコマンドを早く処理出来ない場合に処理をまとめるflush_mergeがデフォルトONに
4.9 Support async discard
ほとんどのファイルシステムはdiscardを同期処理するためfstrimコマンドでパフォーマンスが低下する
discardの非同期をサポート
4.10 support multiple devices
F2FSでデバイスをまとめてフォーマットして1つの大きいF2FSとして表示
4.11 コードから調査分
オプションでio_bitsが追加された
4.11 Support IO alignment for DATA and NODE writes
DATAとNODEのダミーブロックを埋めることでIOアライメントをサポートし
MLCまたはTLCの部分的に書き込まれたページを閉じる
4.12 enable small discard by default
TRIMがリアルタイムで行われる場合に有効な4K単位のTRIMを有効に
4.12 write small sized IO to hot log
(アーカイブログの一部である)ホットログで小さいサイズもサポート
4.14 f2fs: support inode checksum
f2fsのinodeにチェックサムをサポート
4.14 Enhance on-disk inode structure scalability
inodeのオンディスク構造を拡張
4.15 Support issuing/waiting discard in range
fstrimはTRIMを以前にもマークされた全部に対して行うため、
追跡のためfstrim_listを追加し無駄なTRIMを発行しないようにする