データ損失に対する耐性を高めるためにファイル システムを調整するにはどうすればよいですか?

データ損失に対する耐性を高めるためにファイル システムを調整するにはどうすればよいですか?

さまざまなファイル システムでフォーマットされた多数のパーティションを持つディスクがあるとします。

これにデータを書き込むことはほとんどありませんが、そこからデータを読み取ることは非常に頻繁にあります。

今、私は、停電という非常に特殊なケースでデータ損失を回避するために、FS レベルまたは OS レベル (読み取り専用...) で何ができるかを知りたいだけです。UPS はありません。

ボーナスの質問ですが、FSに関する私の知識は乏しいので、特定のファイル システムをデータ破損に対してより耐性のあるものにするにはどうすればよいでしょうか? 参考文献はあると思いますが、ファイル システム全般に関するものは見つかりませんでした。

答え1

ファイルシステムを調整するにはどうすればよいでしょうか? おそらくそれはできません。

電源喪失だけを懸念する場合は、すべてのファイル システムを読み取り専用としてマウントします。電源喪失時の問題のほとんどは未完了の書き込みによるもので、何も書き込まれていない場合は発生しません。

さらに必要な場合は、読み取り時にデータをチェックするファイル システムを使用できます。問題は、冗長性がまったくない場合、エラーが検出されても、データを復元する手段がないことです。エラーがあることだけがわかります。

したがって、破損に備えてデータを冗長的に保存する必要があります。同じドライブに同じファイルの複数のコピーを保存できるファイル システムもありますが、これはあまりお勧めできません。したがって、複数のドライブを使用する必要があります。

ドライブがもっと多い場合はRAIDを使用することもできますが、RAIDでは複数のドライブ上のデータが異なる場合、どれが正しいのかを知る方法がありません。現代のファイルシステムは、すべてのファイル(またはファイルの一部)のハッシュコードを計算し、読み取り時に比較します。ハッシュが一致しない場合は、ファイルは別の場所から読み込まれ、おそらくまだ正しいものであり、間違ったデータが置き換えられます。したがって、このファイル システムは自動的に修復されます。

これをサポートするファイル システムは、ZFS、BtrFS、ReFS などです。私はこれまで ZFS のみを使用しました。

関連情報