web-dev-qa-db-ja.com

rsyncの実行中にHDDを使用しても安全ですか?

大容量HDDをrsyncでバックアップする予定で、数日かかると予想しています。 rsyncが動作している間、元のHDD(ファイルの追加)を使用しても安全ですか?または、rsyncが終了するまでHDDをそのままにしておく方が良いでしょうか?

27
Googlebot

他の人がすでに指摘したように、rsyncの実行中にソースディスクから読み取るか、ターゲットディレクトリの外でターゲットディスクを使用しても安全です。特に、ターゲットディレクトリがrsyncの実行によってのみ占有されている場合は、ターゲットディレクトリ内でreadしても安全です。

Rsyncの実行中に一般的に安全ではないとは、ソースディレクトリ内にを書き込むことです。 「書き込み」とは、ソースディレクトリまたはそのサブディレクトリの内容を変更するものであり、ファイルの更新、削除、作成などが含まれます。

そうすることは実際にはbreak何もしませんが、変更は実際にターゲットの場所にコピーするためにrsyncによって取得されるかもしれません。これは、変更の種類、rsyncがその特定のディレクトリをまだスキャンしているかどうか、およびrsyncが問題のファイルまたはディレクトリをまだコピーしているかどうかによって異なります。

しかし、それを回避する簡単な方法があります:終了したら、同じパラメーターを使用してrsyncを再度実行します(ファンキーな削除パラメーターがない限り、そうする場合は、もう少し注意してください。 )これを行うと、ソースが再スキャンされ、元の実行中に取得されなかった差異が転送されます。

2回目の実行では、前回のrsync実行中に発生したonlyの違いだけが転送されるため、完了までの時間が大幅に短縮されます。したがって、次のことができます最初の実行中はコンピュータを自由に通常どおり使用できますが、2回目の実行中にソースに変更を加えることはできるだけ避けてください可能であれば、強く検討してくださいソースファイルシステムを読み取り専用で再マウント 2回目のrsync実行を開始する前。 (何かのようなもの mount -o ro,remount /media/sourceは行う必要があります。)

34
a CVn

これは、使用するバックアップシステムによって異なりますが、一般に、バックアップ中にデバイスのコンテンツmodifyを使用することはお勧めできません。ただし、readの内容は可能です。プロセスを遅くする場合でも、それは安全な操作です。

あなたの場合、rsyncはファイルリストを作成し、バックアップを開始します。したがって、バックアップの開始後にソースHDDに追加したファイルはnotがコピーされます。

私がしていることは、バックアップ中にデバイスをまったく使用しないことです。これは、高速で一貫性のあるバックアップを取得するためのより安全な方法です。

22
dr_

rsyncの動作中にソース領域からデータを読み取るのは安全ですが、何かを更新すると、rsyncが作成/更新するコピーに一貫性がなくなる可能性があります。

  1. Rsyncがすでにスキャンしたファイルを更新すると、今後実行するまで更新は表示されません。ファイルを更新した場合、まだスキャンしていないため、宛先で変更が尊重されます。スキャン済みのファイルとスキャンされていないファイルの両方を更新すると、宛先に古いバージョンと新しいバージョンが混在することになります。

  2. 既にスキャンされたディレクトリにファイルを追加すると、今回は宛先コピーから失われます。スキャン済みのディレクトリからファイルを削除すると、今回はコピー先に残ります。 rsyncの起動方法に応じて、ツリー全体が最初にスキャンされる場合と、同期プロセスが発生したときに増分スキャンされる場合があります。

  3. 場合によっては、rsyncが不整合を検出して警告を表示します。既にそれ自体がスキャンされているが、その内容がスキャンされていないディレクトリからファイルまたはサブディレクトリを削除すると、オブジェクトが見つからないというエラーメッセージが表示されます。同様の状況で、(サイズやタイムスタンプが変更された場合に)スキャン中にファイルが変更されることについて警告することもあります。

一部のバックアップでは、この不整合は大きな問題ではないかもしれませんが、ほとんどの場合はそうなるため、アクティブに変化するソースを同期しないことをお勧めします。

LVMを使用してストレージシステムを分割する場合は、一時スナップショットを使用して、ポイントインタイムバックアップを作成できます。これには、スナップショットが必要な期間に発生するすべての変更を保持するのに十分な大きさのスナップショットボリュームを作成するために、ボリュームグループに十分なスペースが必要です。詳細については、LVMのドキュメント(または多くのオンライン例の1つ:「LVMスナップショットバックアップ」などで検索)を確認してください。

LVMがなくても、一部のファイルシステムはスナップショット自体をサポートしています。そのため、このオプションも検討する必要があります。

大規模なアクティブボリュームを長いダウンタイムなしでバックアップし、スナップショットを使用できない場合は、「ライブ」スキャンを完了まで実行してから、ボリュームへのアクセスを停止し、はるかに短い時間で実行できる別のrsyncプロセスを実行するだけで十分な場合があります(変更されたものはほとんどなく、ディレクトリツリーをスキャンしてから、更新されたファイルをいくつかスキャンします。このようにして、変更を避ける必要のある期間を大幅に短縮できます。

15
David Spillett
  • ソースHDDは、rsync中に何でも読み取ることができます。

  • ソースHDDは、rsyncコンテンツに関連しないコンテンツを書き込むことができます。

  • 宛先HDDは、rsync中に何でも読み取ることができます。

  • 同期先のHDDは、同期されたコンテンツ用に十分なスペースが確保されるという条件で、rsync中に何でも書き込むことができます。

もちろん、いずれの場合でも、パフォーマンスは低下します。

11
Overmind

現在の答えはすべて、一貫性の観点からデータの安全性について話し、完璧なハードウェアを想定しています。

考慮すべきもう1つのことは、ハードウェアの安全自体です。故障の危機に瀕している可能性があるバックアップされていないハードドライブがあり(まだ知らない場合もあります)、initialを作成している場合包括的なバックアップはそれを使用しません。データが重要な場合はマウントしないでください。 dd などのツールを使用して、ディスクをブロックデバイスとして複製できます。ディスクヘッドにシークさせたくないもの、およびバックアップの作成中に書き込みを行う可能性があるもの。さらに、ddは、ビットを順番にコピーするだけなので、初期バックアップの方が高速です(ドライブがほとんどいっぱいでない場合、最初のケースでもrsyncが勝つと思います)。

後続の増分バックアップでは、rsyncが最適な選択肢であり、他の回答にも100%同意します。

0
Zak