LoginSignup
4
1

More than 5 years have passed since last update.

F2FSの更新履歴を追ってみた

Last updated at Posted at 2018-09-26

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を発行しないようにする

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1