ファイル破損の防止

ファイル破損の防止

FSの特定のディレクトリにファイルを書き込むアプリケーションがあります。システムは、どのような状況でも作成されたファイルを失うことはありません。

不良ブロックやブロックビットマップの違いなどのハードドライブの問題に直面すると、新しいファイルや既存のファイルも破損する可能性がありますが、バックアップはrsync正常.tarに機能し、ファイルを開こうとしたときにのみファイルに質問があることがわかります。

ファイルが破損したら、ファイルが破損したかどうかを知る方法が必要です。さらに、ファイルが破損する前にディスクに問題があるかどうかを知る方法が必要です。

各ファイルのハッシュをファイルとしてアーカイブして毎日確認したいのですが、今よりも時間がかかるようです。もう1つのアイデアは、これらのファイルをSGDBに配置することですが、この問題を解決するより良い方法があるかどうか疑問に思います。

私は何かを見逃していると確信していますが、目が遠かったです。

システム:Debian 6Debian 7 32bit64bitアプリケーションは複数の場所にインストールされます)。すべてのシステムはext4(より信頼できる他のシステムがありますか?)

答え1

セクタが破損する直前または破損したときに簡単に検出できた場合、その時点でそのセクタがファイルシステムに統合されているはずです。エラーの性質上、通常はサイレント状態のままです。チェックサムを実行できるファイルシステムが必要です。 GNU/Linux では、BTRFS が良いオプションになる可能性があります。オンラインで確認してみると、Debian 6でサポートが導入されたようです。

デフォルトでは、チェックサム+ raid(何らかの形)が必要です。ファイルシステムは、RAID設定に少なくとも2つの脚がある場合にのみ自動修正が可能です。 2番目の足がなければ、検証可能な文書の良いコピーを見つける場所はありません。幸いなことに、同じディスク(または利用可能な論理ボリューム)にある2つの異なるパーティションを使用してRAID1アレイを作成できます。

ここに画像の説明を入力してください。

明らかに、同じディスク上にある場合、ディスク全体の障害から保護されるのではなく、セクタ障害から保護されます。失敗したセクタのシミュレーションは、SEの回答に投資するよりも多くの作業かもしれませんが、この男(テストは24:30に始まります。)あなたのためのデモです。

デフォルトでは、BTRFSはファイルを不透明に復元し、ユーザースペースは何が起こったのかわかりません。これを使用してbtrfs scrubエラーを検出できます。 cronjobで実行し、ローカルアカウントの1つに電子メールを送信することができます。その後、/etc/aliasesコマンド出力が実際の電子メールアカウントに転送されるように設定できます。

答え2

SMARTモニタリングツールをインストールして設定できます。 Debian ではこのパッケージと呼ばれますsmartmontools。これはディスク障害から保護しませんが、ディスク障害の原因を特定するのに役立ちます。

パッケージのインストールには設定がないため、まずファイルでSMART監視を有効にする必要があります/etc/default/smartmontools

# uncomment to start smartd on system startup
start_smartd=yes

次に設定ファイルを編集します/etc/smartd.conf

# The word DEVICESCAN will cause any remaining lines in this
# configuration file to be ignored [...]
# [...] Most users should comment out DEVICESCAN and explicitly
# list the devices that they wish to monitor.
#DEVICESCAN -d removable -n standby -m root -M exec /usr/share/smartmontools/smartd-runner


# Short test nightly, Long test on Sunday mornings; append "-m [email protected]" to email errors
/dev/sda -a -s (S/../.././02|L/../../6/03)
/dev/sdb -a -s (S/../.././04|L/../../6/05)
/dev/sdc -a -s (S/../.././06|L/../../6/07)
# /dev/sdd -a -s (S/../.././06|L/../../6/07) -m [email protected]

最後に、監視サブシステムを起動しますinvoke-rc.d smartmontools start

とても良い答えもあります高可用性ソフトウェアRAID 1サーバーでsmartd(smartmontools)を使用してディスクの状態を監視する

答え3

ディスクがいつどこで破損するかを予測できないため、破損したコピーがバックアップを上書きするのを防ぐ最も簡単な方法は循環バックアップを実行することです。

したがって、デフォルトでは毎日別の場所にバックアップできます。ディスク障害を検出し、回復に使用できる複数のバックアップがある場合、最後のバックアップも破損したバックアップで上書きされました。

cronとの使用は簡単な作業でなければならず、rysncこの目的のためにいくつかのスクリプトがあります。

答え4

この種のセキュリティはいいえファイルシステムの上から最初から実装してみてください。代わりに、システムを再構成してZFSを使用することをお勧めします。 ZFSを使用すると、すべての整合性がファイルシステムレベルで処理されるため、チェックサムなどを追跡したり、すべてのアクセスまたはファイルにアクセスするすべてのツールでファイルの状態を明示的に確認したりする必要はありません。

関連情報