データの損失や破損を最小限に抑えるために、ext3ファイルシステムに使用するマウントオプションは何ですか?


15

ルートファイルシステムにinitramfsを使用し、コンパクトフラッシュIDEドライブにマウントされたカスタムext3パーティションを使用する組み込みセットアップがあります。電力損失に直面した場合のデータの整合性は、セットアップ全体で最も重要な要素であるため、次のオプションを使用してマウントしました(以下は/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、マウントにオプションを使用したいということは、これがデータ破損に対する最高の保護を提供するからです。ただし、特定のext3オプションのマニュアルページにはmount、ライトバックオプションについて次のように記載されています。

データの順序は保持されません-メタデータがジャーナルにコミットされた後、データはメインファイルシステムに書き込まれます。
これは、最高のスループットオプションであると噂されています。内部ファイルシステムの整合性を保証しますが、クラッシュおよびジャーナルの回復後に古いデータをファイルに表示できるようにします。

私はこれについて非常に混乱しています-ファイルシステムの整合性のためにdata=writebackオプションを指定したいことをmanページが示唆しているようですmountが、私が見つけた他のほとんどの参考文献(組み込みLinuxに関する出版された本を含む)は私が使用すべきだと示唆していdata=journalます。私にとって最適なアプローチは何ですか?書き込み速度はまったく問題ではありませんが、データの整合性は重要です。


1
data = journalに関するいくつかのガイダンスを提供します。RHはそのタイプの順序のみをサポートしているため、他のものよりもそれを使用する傾向があります。
slm

2
@sim実際には言うdata=ordered:p
sourcejedi

回答:


7

writeback言及しているだけの事実に惑わされないでくださいinternal filesystem integrity。あなたが使用しているかどうか、、またはファイルシステムのメタデータは常にされ、支承手段内部ファイルシステムの整合性という。
ext3journalorderedwriteback

データモードは、どのようにオーバー制御の方法を提供通常のファイルシステムに書き込まれたデータを。
ではwritebackモード、メタデータの変更は、最初のジャーナルに記録され、ブロックが書き込まれているコミットされています。ジャーナルが更新された後、メタデータとデータの書き込みが続行される場合があります。 data=writeback 深刻なセキュリティリスクになる可能性があります。ファイルへの追加中にシステムがクラッシュした場合、メタデータがコミットされた後(および追加のデータブロックが割り当てられた後)、データが書き込まれる前(データブロックが新しいデータで上書きされる)、ジャーナル後そのファイルには、以前に削除されたファイル(任意のユーザー1)からのデータで満たされたブロックが含まれている可能性があります

したがって、データの整合性が主な関心事であり、速度が重要でない場合data=journalは、その方法です。


4

すでにお気付きのように、主なポイントは、ファイルシステムをあらゆる種類のクラッシュから防ぐことはできないということです。

できること:

  1. ソフトウェア側では、使用することができますfdatawritesを各重要な操作の後に(参照してください。この2003セオドアT'so、メインのLinux FSカーネル開発者からの。それはまだ本当です。もあります。この1のext4の古いバージョンに隠された主要なデータの損失については)
  2. コミット間隔を1秒に短縮します(commit = 1)(LWNのこの記事を参照してください。ext4についてですが、ext3に関する本当に役立つ情報が含まれています)。注意:syncを使用する必要はありません。
  3. simが指摘したRHEL docが言ったように、* data_err = abort *とdata = orderedを使用します
  4. noatimeはファイルシステムでの無駄な操作を減らします
  5. すでにお気付きのように、データの損失を最小限に抑えるにはbarrier = 1が適しています(この投稿を参照)
  6. そしてシンクは、もちろん、「私は私のデータを失いたくない」選択肢の一つです。

最後に、妄想的なマウントオプションは次のようになります。

auto,exec,relatime,sync,barrier=1,commit=1,data=ordered,data_err=abort,noatime,

また、ブートごとに自動fsckを使用してデータの整合性を確保することもできます。


2

マニュアルページのどの部分を強調するかを変更してみてください。

返事を書く

データの順序は保持されません -メタデータがジャーナルにコミットされた後、データはメインファイルシステムに書き込まれます。これは、最高のスループットオプションであると噂されています。内部ファイルシステムの整合性を保証しますが、クラッシュおよびジャーナルの回復後に古いデータをファイルに表示できるようにします。

don_crisstiが指摘したように、他のモードには「しかし」はありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.