現在、私はext4に基づく非常に伝統的なバックアップファイルシステム構造を持っています。バックアップが実行されるたびにbackup-DATE
新しいフォルダが作成され、ファイルが再同期されます(ハードリンクを作成するにはrsyncオプションを使用します--link-dest
)。
bitrotについて読んだので、すべてのファイルを透過的にチェックサムしたいと思います。明らかにext4はこれを行うことはできませんが、btrfsはデータチェックサム(組み込みRAID1モードも含む)をサポートします。まず、btrfsをRAID、サブボリュームスナップショット、転送/受信などの高度な機能を使用せずにデータチェックサムをサポートする「愚かな」ファイルシステムとして使用したいと思います。
しかし、彼らのウィキはバックアップの目的でファイルシステムへの信頼を実際に促しません。
「多くの方が安定して使用していますが、まだ問題が発見されています。データをバックアップしておいて、テストしてみて使用できるように準備してください。 -始める
"btrfsは安定していますか?長い答え:[..]何をしても、テストされた良いシステムの外部(および外部)バックアップを維持することをお勧めします。」よくある質問。
私のユースケースは、オフラインバックアップを実行することです。したがって、ディスク使用量(時間単位)は非常に低く、頻繁に接続/分離されます(eSATAまたはUSB 3.0)。安定したファイルシステムを備えることは必須です。停電、異常終了などの点でext4より悪くはありません。
btrfsをバックアップ用のファイルシステムとして使用することは本当にお勧めですか? btrfsをあまり適さないようにする他のプロパティはありますか?
答え1
あまりにも過度な考えだと思うので、短い答えだけをさせていただきます。
メインカーネルウィキを読むとbtrfs(サブ)コマンド、次の2つのコマンドがあることがわかります。
- 「バックアップ」を作る:
btrfs-send
- そしてまた覆う:
btrfs-restore
場合によっては、バックアップではなくスナップショットファイルシステムという意味であり、必要に応じてバックアップではなく「柔軟な」状態にロールバックするのがアイデアです。
したがって、いいえ、バックアップとして使用するのではなく、テストして戻すことができるバージョンを指定されたファイルシステムとして使用してください。それに頼らないでください。
答え2
最近、最新のカーネル4.10.0でbtrfsファイルシステムを使用する際に問題が発生しました。 TRIMがどこかに正しく実装されていないようで、AFAIKがサブボリュームのインデックス番号に関連付けられているため、virtualbox VMのファイルシステムが破損しています。 VMwareに切り替えた後もファイルシステムはまだ破損しており、驚くべきことにbtrfs check
エラーを見つけて修正することはできません。ついにext4に戻りました。
良いことは、データを失わなかったことです。 btrfs は、少なくとも読み取り側では常に一貫しているように見えますが、本番準備状態からは離れていることを示しています。
とにかく、サーバーは重複排除のために牛の複製機能を必要とするので(正確にあなたのユースケース)、これをバックアップボリュームとして使用しています。既存のファイルシステムに比べてデータが大きすぎます。
修正する
私のサーバーにはまだファイルシステムがありますが(上記を参照)、ここに公開した後にファイルシステムが破損しています。今は700Gという大容量の読み取り専用バックアップボリュームを持っているのに使用しようとするとtar|tar
... 最新のカーネルバージョンでは時間が足りなくて余裕があるかどうかは確認できませんでした。実際の問題は、書き込み可能なボリュームをマウントし、そのボリュームを読み取り専用で再マウントしてから約2秒後に発生する「トランザクションの中断」です。元の原因は、おそらくbtrfs-convert
数年前にこの本を作成したときに使用していたバージョンの破損したbtrfs check
バージョンでした。探すボリュームが破損すると、トランザクションが中断されるか、ファイルシステムが正常であること以外の問題が繰り返し発生します。
アップデート2
Pythonスクリプト(OSS重複排除ツールベース)を使用して、すべてを新しいボリュームにコピーして、最終的に問題を解決することができました。チェックサムに基づいてターゲットファイルシステムのファイルプールと連携し、そこから小リンクを生成します。この半効率的なプロセスは2日かかりましたが、新しいクリーンなbtrfsベースのファイルシステムを持つようになり、すべてのデータが復元されました。必要に応じてコードを投稿してください。しかし、完璧で使いやすく、エラー防止ツールを期待しないでください。