ルートファイルシステムにinitramfsを使用している組み込みセットアップがありますが、コンパクトフラッシュにマウントされたカスタムext3パーティションを使用していますIDEドライブ。停電に直面した場合のデータの整合性が最も重要な要素であるためセットアップ全体で、次のオプションを使用してマウントしました(以下は/etc/fstab
ファイルのエントリです)
<file system> <mount pt> <type> <options> <dump><pass>
/dev/sda2 /data ext3 auto,exec,relatime,sync,barrier=1 0 2
私はインターネットで本を読んでこれらのオプションを見つけました。私が心配しているのは、/proc/mounts
の内容が以下を与えることです:
/dev/sda2 /data ext3 rw,sync,relatime,errors=continue,user_xattr,acl,
barrier=1,data=writeback 0 0
私が周りを読んで理解したことから、マウントにdata=journal
オプションを使用したいと思います。これは、データ破損に対する最高の保護を提供するためです。ただし、mount
の特定のext3オプションのマニュアルページから、ライトバックオプションについて次のように述べています。
データの順序は保持されません。メタデータがジャーナルにコミットされた後、データはメインファイルシステムに書き込まれる可能性があります。
これは、最高のスループットオプションであると噂されています。 内部ファイルシステムの整合性が保証されます、ただし、クラッシュやジャーナルのリカバリ後に古いデータがファイルに表示される可能性があります。
私はこれについて非常に混乱しています-マニュアルページはファイルシステムの整合性のためにdata=writeback
オプションをmount
に指定したいことを示唆しているようです)data=journal
を使用することをお勧めします。私が使用する最善のアプローチは何ですか?書き込み速度はまったく問題ではありません-データの整合性は問題ではありません。
writeback
だけがinternal filesystem integrity
について言及しているという事実に惑わされないでください。ext3
では、journal
、ordered
またはwriteback
を使用するかどうかにかかわらず、ファイルシステムメタデータは常に journalled およびこれは、内部ファイルシステムの整合性を意味します。
データモードは、ordinaryデータがファイルシステムに書き込まれます。writeback
モードでは、メタデータの変更が最初にジャーナルに記録され、コミットブロックが書き込まれます。ジャーナルが更新された後、メタデータとデータの書き込みが続行される場合があります。data=writeback
は、重大なセキュリティリスクになる可能性があります。ファイルへの追加中、メタデータがコミットされた(および追加のデータブロックが割り当てられた)後、データが書き込まれる(データブロックが新しいデータで上書きされる)前に、ジャーナルリカバリの後、そのファイルには以前のデータで満たされたブロックが含まれる場合があります。削除されたファイル–任意のユーザーから1。
したがって、データの整合性が主な関心事であり、速度が重要でない場合は、data=journal
が適しています。
すでにお気づきのように、重要な点は、ファイルシステムがあらゆる種類のクラッシュを防ぐことはできないということです。
あなたができること:
最後に、偏執狂的なマウントオプションは次のようになります。
auto,exec,relatime,sync,barrier=1,commit=1,data=ordered,data_err=abort,noatime,
また、起動ごとに自動fsckを使用してデータの整合性を確保することもできます。
マニュアルページのどの部分を強調するかを変更してみてください。
書き戻し
データの順序は保持されません-メタデータがジャーナルにコミットされた後、データがメインファイルシステムに書き込まれる場合があります。これは、最高のスループットオプションであると噂されています。内部のファイルシステムの整合性を保証しますただし、クラッシュとジャーナルの回復後に古いデータがファイルに表示される可能性があります。
Don_crisstiが指摘したように、他のモードには「しかしながら」はありません。