ビット破損からデータを保護

ビット破損からデータを保護

私はすべての写真をビットの破損から保護する必要があることに気づきました(ハードドライブやネットワーク転送エラーによってランダムに発生するファイルの破損)。

私は最近、重複ファイルを生成し、ファイルの破損を検出して修復する機能を提供する素晴らしいプログラムpar2を見つけました。

私はジャーナリングされたファイルシステムが正しい解決策だとは思わない。これは、ファイルを新しいノートブックに移行するときに、保護されたファイルをファイルと共にバックアップに保存したいからです。

だから私の考えでは、cronjobで一度に一度実行できるスクリプトが必要なようです。ファイルが追加または変更された場合(ファイルの編集タイムスタンプが重複アーカイブよりも最新の場合)、保護する必要があるすべてのファイルを調べて、ファイルが破損している場合(ファイルが変更された場合)、重複ファイルを更新します。ただし、編集済み)まだ更新されていないファイルタイムスタンプが変更されます。

これを実行できるスクリプトやプログラムはありますか?それとも別の方法で問題を解決するプログラムがありますか?それとも、そのようなスクリプトを自分で書く必要がありますか?

答え1

標準的なソリューションは、チェックサムをサポートし、定期的にバックアップするファイルシステムを使用することです。

これに加えて、可能であれば、ファイルシステム層でRAID(冗長ストレージソリューション)を使用して、時間のかかるバックアップの復元を避けることもできます。

これらのファイルシステムの例は次のとおりです。ZFSまたはBTRFS

これらのファイルシステムのチェックサム機能は、暗号化ハッシュ機能を使用して実装されます。したがって、ストレージスタックのビットエラーダウンストリームは、損傷を検出する能力が同じであるため、検出される可能性が非常に高いですpar2

これらのファイルシステムには、RAIDレベルに似た冗長ストレージ機能も含まれています。従来の階層型RAIDアプローチとの違いは、破損​​が検出された場合にファイルシステムが「正しい」部分、つまり正しいチェックサムを持つブロックを返すRAIDミラー側を選択できることです。

答え2

これは古い質問ですが、2019年にはまだ関係があります。

はい、パリティファイルはビット破損のための実行可能なソリューションです。

ファイルシステムレベルではないパリティチェックには欠点もありますが、次のような大きな利点もあります。

移植性。

理論的には、世界で最もエキゾチックなファイルシステムベースのエラーチェックはデータを永久にビット破損なしに維持することができますが、保護はそのファイルシステムにロックされています。ファイルが出ると保護されません。

「重すぎる」渡すブラブスライセンス付きCC BY-NC 2.0 (彼はデータを入れる前に実際にZFSとRooftopに切り替える必要があります)

隣にパリティファイルがある画像は、USBドライブに移動し、パケットロス接続を介して転送、圧縮、別のメディアへの個別のバックアップなど、私が考えることができる他の何百ものタスクを実行できます。

また、誤ったプログラムによる変更を防ぎます(たとえば、メタデータアナライザが誤って誤ったメタデータを作成するなど)。

PAR2 はパリティ・ファイルに対して実行可能なオプションです。

PAR2ファイルは特にクロスプラットフォームであり、最大の欠点は大容量の写真を保護するユースケースでは実際には問題になりません(例えば、PAR2はサブフォルダをサポートせず、<1KBファイルを効率的に処理できません)。

しかし、PARファイル自体は完全なバックアップソリューションではありません。

特に、変更履歴のないPARファイルの場合、「防弾」するには3つのコピーバックアップ戦略の一部である必要があります。変更が有効であることが検出され、パリティファイルが再生成された場合、別のバックアップは実行されません。参照されています(ここでは、変更履歴が埋め込まれたオフサイトバックアップソリューションが勝ちます)。

次のステップ

「[パリティファイルの作成とメンテナンスを自動化できる]スクリプトやプログラムはありますか?」という元の質問に対する答えは、2019年にまだ「いいえ」ですが、スクリプトを自分で作成したり他の人に作成したりすることはかなり簡単です。 。私がこの方法を選ぶときに私ができる最善のアドバイスは、考えられるすべての極端なケースを含むテスト環境を作成し、それを信頼する前にすべてのテストでスクリプトを実行することです。

そして誰かがこの記事を読むならするこの道を進み、皆の利益のためにオープンソースにすることを検討してください。

編集された付録:PARファイルに使用される技術は次のとおりです。https://en.wikipedia.org/wiki/Reed–Solomon_error_ 訂正PARの開発が中断されましたが、ファイルレベルのデータ整合性/回復にReed-Solomonを使用するプロジェクトは何百ものではありませんが、数十があります。

答え3

私はビットロットを検出するための軽いツールを作成しました。chkbit

データに従うファイルシステムに依存しないハッシュを生成します。これによりchkbit、プライマリシステム、バックアップメディア、およびリカバリ後にデータの整合性を確認できます。

chkbit はデータ復旧を許可しないため、まだ 1 つ以上のバックアップが必要です。

関連情報