一連のファイル(それぞれ数GBのサイズ)およびそれぞれが毎日少しずつ(最後に追加される情報だけでなく、ランダムな場所で)変更される場合、どのように効率的にコピーできますか?つまり、ファイル全体ではなく、変更された部分のみが更新されるという意味です。これは、あちこちにいくつかのKBをコピーするか、一部のGBをコピーするかの違いを意味します。
diff
違いを報告できるかもしれませんが、ここで問題は小さな違いをコピーすることです。
rsync
ました
一連のファイル(それぞれ数GBのサイズ)およびそれぞれが毎日少しずつ(最後に追加される情報だけでなく、ランダムな場所で)変更される場合、どのように効率的にコピーできますか?つまり、ファイル全体ではなく、変更された部分のみが更新されるという意味です。これは、あちこちにいくつかのKBをコピーするか、一部のGBをコピーするかの違いを意味します。
diff
違いを報告できるかもしれませんが、ここで問題は小さな違いをコピーすることです。
rsync
ました
回答:
rsyncプログラムがあることを正確に行います。manページから:
これは、デルタ転送アルゴリズムで有名です。これは、ソースファイルと宛先の既存のファイルの違いのみを送信することにより、ネットワーク経由で送信されるデータの量を削減します。Rsyncは、バックアップとミラーリング、および日常的に使用するための改善されたコピーコマンドとして広く使用されています。
rsync -av --progress --partial --inplace arch-test1.qcow2.bak arch-test1.qcow2
おそらく、最新の重複排除バックアッププログラムが必要です。BorgBackupをチェックしてください。
これにより、大容量ファイルの各バージョンの複数のバックアップが作成されますが、異なるバージョン間で共通のコンテンツが共有されるため、大容量ファイルの特定のバージョンに使用される合計容量は、単一のファイルの合計ディスク容量よりもわずかに多くなりますバージョン、異なるバージョンがわずかに異なると仮定します。
何らかの方法でIO制限がある場合は、何をすべきかなどのファイルの違いを見つける必要なく、増分バックアップを直接サポートするBTRFSやZFSなどのファイルシステムを使用しますrsync
。
使用rsync
は遅くなり、IO集約型になります。
ファイルへの変更を書き込んでいるアプリケーションが何らかの方法でIO制限されている場合、使用するrsync
とアプリケーションからかなりのIOサイクルが奪われるため、ファイルが存在するのはそのためです。また、バックアッププロセスまたはシステムがIOに制限されている場合rsync
は、利用可能なバックアップ帯域幅からIOサイクルが奪われます。
グーグルだけで「rsyncは遅い」。例: nfs-shareからローカルディレクトリにファイルをコピーする際のcpと比較して、rsyncは非常に遅い(係数8〜10)
diff
それを行います