Samsungのエンジニアは 、Linuxカーネル開発者のメーリングリストで、SSD、eMMC、SDカードなどのNANDフラッシュドライブで使用するために特別に設計された新しいF2FS(Flashフレンドリーファイルシステム)の実装を含むパッチセットを発表しました。 Linuxカーネルのパッチに加えて、f2fs-toolsパッケージの最初のリリースも公開され 、F2FSパーティションを処理するためのユーティリティのコレクションが含まれています(これまではmkfs.f2fsのみが含まれていますが、近い将来fsckユーティリティとデバッグツールのセットを追加する予定です)。 すべてのコンポーネントコードはGPLv2ライセンスの下で配布されます。
汎用ファイルシステムとは異なり、F2FSプロジェクトは、NANDフラッシュの特定の機能を考慮して特別に設計されており、一定のアクセス時間でメモリに最適化されています。 F2FSでのデータの上書きを最小限に抑えるために、ログブロック構造を使用してデータブロックを均一に使用し、NANDフラッシュの摩耗を減らします。 F2FSの開発中に、ログ型構造に基づいて以前に利用できた特殊なFSの問題が考慮され、高メモリ消費、クリーニング操作中の高オーバーヘッド、放浪樹の雪玉効果などの既知の欠点を排除するためにあらゆる努力が払われたことが注目されます(新しい要素が上書きされる代わりに(ブロック番号が変更される)状況では、親ノードが子ノードを参照するツリーの場合、ノードを変更すると、すべてのオーバーレイの再構築が行われます xノード)。 従来のUNIXベースのアクセス制御スキームに加えて、F2FSはxattrやPOSIX ACLなどのメカニズムを提供します。
F2FSパーティションは、サイズが2 MBのセグメントから形成され、セグメントはセクションにグループ化され、さらにセクションに結合されます。 F2FSを、内部ジオメトリと制御スキームによって特性が異なるさまざまなタイプのNANDフラッシュに適合させるために、セクション内のデータ分散構造を制御するための幅広いパラメーターが提供され、さまざまなクリーニングおよびブロック割り当てアルゴリズムを選択する機会が提供されます。 クリーニング操作を実行するために、システムのダウンタイム中にバックグラウンドで実行される特別なガベージコレクターが実装されています。 整合性を確保するために、コントロールポイントの固定と、問題が発生した場合のロールバック変更(ロールバック)の可能性を備えたモデルが使用されます。 操作中の操作を高速化するために、データの分布に関する情報を持つメインインデックスがRAMに保存されます。
EXT4およびNILFS2ファイルシステムのパフォーマンス評価の結果を、サムスンが開発したフラッシュドライブ用の新しいファイルシステムであるF2FSと比較して示します。 テストは、CPU Core i5 2500を搭載した通常のPCと、Android 4.0.4ベースのファームウェアを搭載したGalaxy S3スマートフォンの両方で実施されました。 両方の構成で、トランセンド16GBクラス10 SDカードを使用しました。
F2FSのパフォーマンスは、ランダムおよびシーケンシャルバッファ書き込み、fsync経由のフラッシュバッファ書き込み、およびランダム読み取りデータのテストで、競合他社よりも高いことが判明しました。 マウント時間を評価するとき、リーダーはFS EXT4で、F2FSは2位でした。
バッファ書き込み(1GBファイル)
デスクトップPC | Galaxy-S 3 | |||
---|---|---|---|---|
順次(MB / s) | ランダム(IOPS) | 順次(MB / s) | ランダム(IOPS) | |
EXT4 | 7.1 | 1073 | 6.7 | 1073 |
NILFS2 | 6.8 | 1462 | 4.0 | 1272 |
F2fs | 10.6 | 2675 | 6.9 | 1682 |
書き込み+ fsync(100MBファイル)
デスクトップPC | Galaxy-S 3 | |||
---|---|---|---|---|
シーケンシャル(KB / s) | ランダム(IOPS) | シーケンシャル(KB / s) | ランダム(IOPS) | |
EXT4 | 511.8 | 125 | 383.4 | 119 |
NILFS2 | 545.2 | 112 | 356.7 | 72 |
F2fs | 1057.9 | 240 | 772.3 | 184 |
実装時間
デスクトップPC | Galaxy-S 3 | |||
---|---|---|---|---|
フォーマット後の最初のマウント(ミリ秒) | 再起動後(ミリ秒) | フォーマット後の最初のマウント(ミリ秒) | 再起動後(ミリ秒) | |
EXT4 | 11 | 20 | 20 | 40 |
NILFS2 | 920 | 1013 | 1680 | 1630 |
F2fs | 1486 | 161 | 2280 | 1570 |
バッファ読み取り(1GBファイル)
デスクトップPC | Galaxy-S 3 | |||
---|---|---|---|---|
順次(MB / s) | ランダム(IOPS) | 順次(MB / s) | ランダム(IOPS) | |
EXT4 | 16.4 | 1568 | 9.6 | 1395 |
NILFS2 | 16.6 | 1609 | 9.6 | 1440 |
F2fs | 16.8 | 1643 | 9.7 | 1499 |
追加:別に、VFATとF2FSのパフォーマンス比較が実行されました 。
バッファ書き込み(1GBファイル)、4Kバイト書き込み
デスクトップPC | Galaxy-S 3 | |||
---|---|---|---|---|
順次(MB / s) | ランダム(IOPS) | 順次(MB / s) | ランダム(IOPS) | |
EXT4 | 7.1 | 1073 | 6.7 | 1073 |
NILFS2 | 6.8 | 1462 | 4.0 | 1272 |
F2fs | 10.6 | 2675 | 6.9 | 1682 |
Vfat | 7.3 | 1108 | 7.3 | 1075 |
書き込み+ fsync(100MBファイル)、4KByte書き込み
デスクトップPC | Galaxy-S 3 | |||
---|---|---|---|---|
順次(MB / s) | ランダム(IOPS) | 順次(MB / s) | ランダム(IOPS) | |
EXT4 | 511.8 | 125 | 383.4 | 119 |
NILFS2 | 545.2 | 112 | 356.7 | 72 |
F2fs | 1047.9 | 240 | 772.3 | 184 |
Vfat | 356.5 | 260 | 474.4 | 373 |
バッファ読み取り(1GBファイル)、4Kバイト読み取り
デスクトップPC | Galaxy-S 3 | |||
---|---|---|---|---|
順次(MB / s) | ランダム(IOPS) | 順次(MB / s) | ランダム(IOPS) | |
EXT4 | 16.4 | 1568 | 9.6 | 1395 |
NILFS2 | 16.6 | 1609 | 9.6 | 1440 |
F2fs | 16.8 | 1643 | 9.7 | 1499 |
Vfat | 16.6 | 1592 | 9.6 | 1501 |
ソース:opennet.ru
PS Archlinuxには既にAURにパッケージがあります 。
PSS誰かが、異なるfsの複数のフラッシュドライブを持ち運ぶ必要があると言うかもしれません。 現在どこでもサポートされているわけではありませんが、現時点では、このfsは静止したssdディスクではそれほど悪くは使用できません。