SMB経由のrsyncの高速化


8

LinuxボックスをSMB経由でNASにバックアップしています。NASをローカルにマウントしてから、大量のデータ(100GB程度)をrsyncします。それを実行するには、非常に長い時間がかかっていると思います:12時間以上。すべてがコピーされると、毎日ほとんど何も変更されないため、はるかに高速になると予想されます。

これをスピードアップする方法はありますか?

rsyncはローカルのハードディスクで機能していて、時間/サイズの比較ではなくチェックサムを使用しているとrsyncが考えていると思いましたか?しかし、時間と日付の比較を強制する方法が見つかりませんでした。他に確認できることはありますか?


私が気づいた(そして多分それはちょうど私です)、それはより速くthaのサンバだという-私はまた、代わりにSMB foはNFSを見てお勧めしたい
ウォーレン

残念ながら、このNASにはNFSがなく、今のところ、私はそれにこだわっています。
pupeno

nmapなどのポートマッパーを使用して、NASの機能を確認します。ドキュメントには何も記載されておらず、設定にも記載されていなかったにもかかわらず、ネイティブのrsyncサービスを実行するNASユニットに遭遇しました。
Kyle__

また、[ "NASコピーのすべてたびにrsyncの"]このスレッドを確認してください[1] [1]:serverfault.com/questions/262411/...
dtoubelis

また、[NASコピーのすべてに毎回のrsync]このスレッドを確認してください[1] [1]:serverfault.com/questions/262411/...
dtoubelis

回答:


28

rsyncアルゴリズムとツールの適用方法について誤解していると思います。

Rsyncのパフォーマンス上の利点は、デルタ転送を行うこと、つまり、ファイル内の変更されたビットのみを移動することから得られます。変更されたビットを特定するには、ソースホストと宛先ホストがファイルを読み取り、ブロックのチェックサムを比較して、変更されたビットを特定する必要があります。これは、rsyncの「魔法の」部分、つまりrsyncアルゴリズム自体です。

SMBでデスティネーションボリュームをマウントし、rsyncを使用して、Linuxがローカルソースおよびローカルデスティネーション(両方ともそのマシンにマウントされている)として認識しているものからファイルをコピーすると、最新のrsyncバージョンのほとんどが「ファイル全体」コピーモードに切り替わります、デルタコピーアルゴリズムをオフにします。差分コピーアルゴリズムがオンの場合、rsyncは宛先ファイル全体を(NASからネットワーク経由で)読み取り、ファイルのどのビットが変更されたかを判断するため、これは「勝利」です。

rsyncを使用する「正しい方法」は、1つのマシンでrsyncサーバーを実行し、他のマシンでrsyncクライアントを実行することです。各マシンは、独自のローカルストレージ(非常に高速である必要があります)からファイルを読み取り、変更されたファイルのビットについて合意し、それらのビットのみを転送します。彼らはあなたがrsync量の切り捨てられた 'cp'を使用しているようにしています。あなたは 'cp'で同じことを達成することができ、それはおそらくより速いでしょう。

NASデバイスがrsyncサーバー(またはクライアント)の実行をサポートしている場合は、ビジネスに参加しています。SMB経由でソースマシンにマウントする場合は、 'cp'を使用してファイルをコピーすることもできます。


7
おお!反対票!技術的に正確であることを考慮して、なぜ回答に反対票を投じたのか知りたいと思います。
エヴァンアンダーソン

NASでrsyncサーバーを実行できません。それ以外の場合はそうします。rsyncサーバーを使用しない場合、rsyncはチェックサムまたはサイズと日時を使用して、ファイルが変更されたかどうかを確認できます。マニュアルページによると、デフォルトではサイズと日時が使用されますが、私の経験ではそうではなく、強制する方法がありません。チェックサムを強制する方法しかわかりません。--checksum:このオプションを使用しない場合、rsyncは「クイックチェック」を使用して、デフォルトで各ファイルのサイズと最終変更時刻が送信者と受信者の間で一致するかどうかをチェックします。
プペノ2009

エヴァン、コメントを書いてみてください。
プペノ2009

2
ファイルがチェックサムされていることを示しているのはどのような動作ですか。「クイックチェック」動作はデフォルトの動作であるため、「強制」する方法はありません。NASでrsyncを実行できない場合は、 'cp'を使用してください。それは同じくらい速くなるでしょう。
エヴァンアンダーソン

私がrsyncの動作をどのように理解しているかに従って、ローカルの日付と時刻、リモートの日付と時刻をチェックし、それらが一致するかどうかを確認してファイルをコピーしません。つまり、ファイルの99%をコピーするべきではありませんが、60GBで12時間以上かかるという事実は、すべてをコピーしていることを示しています(これは、cpがより高速になると言っていることを意味しているようです)または、それは実際にはチェックサムです。つまり、すべてをコピーするのではなく、すべてをダウンロードしています。
プペノ2009

6

このページが関連しているように、タイムスタンプが問題のようです:

http://www.goodjobsucking.com/?p=16

提案されたソリューションは追加することです

--modify-window=1

rsyncパラメータに。


4

はい、スピードアップできます。ソースまたは宛先のいずれかをリモートマシンのようにする必要がありlocalhost:ます。たとえば、アドレスを " "と指定します。

SMB共有をローカルにマウントすると述べました。これにより、ソースまたは宛先がrsyncへのローカルパスのように見えます。rsyncのマニュアルページには、コピー元とコピー先がローカルパスである場所にコピーすると、ファイル全体がコピーされると記載されています。これは、manページの「--whole-file」オプションの段落で説明されています。したがって、デルタアルゴリズムは使用されません。" localhost:"回避策を使用すると、デルタアルゴリズム機能が復元され、転送が高速化します。


1
私はそれがどういう意味をなすべきか疑問に思います... rsyncファイルを更新する必要があるかどうかを確認するために日時スタンプを使用します。更新が必要な場合、rsyncはファイルをチャンクに分割し、チェックサムを比較します。つまり、ファイル全体を読み取ってそれを行うことができます。したがって、リモートで実行されているrsyncデーモンがない場合は、とにかくファイル全体を転送してチャンキングとチェックサムを実行する必要があるため、すぐに転送できます。したがって、ここで説明する「回避策」は、実際にはこのシナリオでは何も買いません。
TylerDurden

3

ここに2pを投げると思いました。

弟がオフィスのネットワークにバッファローNASをインストールしたところです。彼は現在、オフサイトのバックアップを検討しているため、オフィスが焼け落ちても、少なくとも数百マイル離れた場所に、すべてのビジネスドキュメントが残っています。

私の最初のハードルは、彼が持っているVPS(小さなLinux仮想プライベートサーバー、あまりにも頑丈なもの)をVPNユーザーとして彼のブロードバンドルーター(彼はこのためにDrayTekを使用しています)にダイヤルインして、それ自体が彼のVPNを使用すると、安全な方法でNASに直接アクセスできます。見事にソートされて機能しています。

次の問題は、NASからVPSサーバーにファイルを転送することでした。私はSambaマウントを行うことから始め、あなたが説明したのとまったく同じ(またはさらに悪い)問題に遭遇しました。私は模擬rsyncを実行しましたが、転送するファイルを特定するのに1時間30分以上かかりました。この方法では、Evanが言うように、もう一方の端はrsyncではないため、多くのファイリングを行う必要があります。 Sambaマウントでのシステム呼び出し/読み取り(往復時間が約40ミリ秒のPPTP /トンネル接続を介して)。完全に機能しません。

バッファローが実際にrsyncデーモンを実行していることを少しも知りませんでした。そのため、代わりにそれを使用すると、総容量50Gbの87kファイルの場合、ドライラン全体で1分30秒しかかかりません。明らかに、50Gbのファイルを転送する(送信帯域幅が100k /秒のブロードバンドリンク上にあるNASから)ことはまったく別の問題です(これには数日かかります)が、最初のrsyncが完了すると、増分バックアップはグリースの軽量化(彼のデータは毎日大きく変化することはありません)。

私の提案は、Evanが上で述べた理由から、rsyncをサポートする適切なNASを使用することです。それはあなたのすべての問題を解決します。


Buffalo NASがrsyncを実行していることを認識させるための+1-ありがとう!
Michael

0

安価なNASを持っているようなにおいがします。また、ネットワーク帯域幅が原因である可能性もあります...

「標準」のコンシューマNASは、ここで実行しようとしている大量のIOに関しては非常に脆弱です。また、PCとNASを接続する安価なスイッチで、すべてのパケットを正しく処理するのに十分な強度がない場合もあります。


同じNAS、同じスイッチ、別のコンピューター、Windowsを実行し、4時間以内にさらに多くの情報をバックアップします。
プペノ2009


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.