ギガビットLANで約9 TBを転送しています。これをできるだけ迅速に行うために(私は願っています)、宛先をNFS経由でソースにマウントし、rsyncを実行しました。
これが私のマウントオプションです:x.x.x.x:/mnt on /mnt type nfs (rw,noatime,nodiratime,vers=3,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=x.x.x.x,mountvers=3,mountport=56548,mountproto=udp,local_lock=none,addr=x.x.x.x)
これが私のrsyncコマンドです:rsync -avWH --progress ./ /mnt/
単一ファイルのnloadを見ると、最大900MBpsに急上昇し、KBpsの範囲の数値に低下してから、バックアップする速度がわかります。これはnloadからのグラフィックで、転送が停止しているように見えることがわかります、midfile。ファイルのサイズは通常5〜6 GBです。 MTUは9000です。スイッチは、十分なバックプレーン速度を備えたCisco 3750xです。これらは、2つの異なるホスト上のesxi 6.7ゲストです。ネットワークリソースを争う他のゲストは存在しません。
この画像は1つのファイルが送信されています
基本的に、設定が間違っているか、転送速度をある程度一定に保つために変更できるものがあることを願っています。
ソースのCPU使用率は約10%、宛先では約10%です。奇妙なことに、宛先では、iotopはnfsdから99%のI/O(時々)を示し、ソースは60-80%を示しますIO rsyncから。これらは7200RPM WD赤いドライブです。w
残念ながら、あなたができる最悪のことは、NFS全体でrsync
を使用することです。 (またはローカルシステムにマウントされているリモートファイルシステムに対して)これにより、rsync
がわかっているほとんどすべての効率向上がオフになります。
この大量のデータの場合、システム間でデータを転送する最も速い方法の1つは、ターゲットシステムに何が存在しているかを考慮せずにnencrypted接続を介してデータをダンプすることです。
少なくとも部分的なコピーができたら、2つのホスト間でrsync
を使用するのが最善の方法です。これにより、rsync
が各ホストで1つのプロセスを実行して、違いを検討および比較できます。 (rsync
は、同じサイズと変更日を持つファイルを完全にスキップします。他のファイルの場合、クライアントおよびサーバーコンポーネントはローリングチェックサムを実行して、転送する必要があるブロックを決定します。)
高速ダンプ。この例では、認証も暗号化もまったく使用していません。ただし、圧縮は適用されますが、両方の-z
フラグを省略して削除できます。
これを宛先マシンで実行して、リスニングサーバーを起動します。
cd /path/to/destination && nc -l 50505 | pax -zrv -pe
ソースマシンでこれを実行して、送信クライアントを起動します。
cd /path/to/source && pax -wz . | nc destination_server 50505
nc -l
の一部のバージョンでは、ポートをフラグ付きで指定する必要がある場合があります(nc -l -p 50505
など)。 DebianのOpenBSDバージョン(nc.openbsd
、/etc/alternatives
から/bin/nc
にリンク)はサポートしていません。
転送が遅い。この例では、認証と暗号化を提供するrsync
よりもssh
を使用しています。ソースパスの末尾のスラッシュ(/
)をお見逃しなく。圧縮が必要ない場合は、-z
フラグを省略します。
rsync -avzP /path/to/source/ destination_server:/path/to/destination
Rootとしてdestination_serverにログインできるように、SSH証明書を設定する必要がある場合があります。ハードリンクを処理する必要がある場合は、-H
フラグを追加します。
可能であれば、2つのホスト間で直接rsyncを使用することをお勧めします。 rsyncは、ネットワークを最適化するように構築されているIO増加したディスクIOを犠牲にしてください。NFSファイルシステムでrsyncを使用する場合、ディスクIOはネットワークIOに変換されます。また、rsyncがソースと宛先の両方がローカルであると判断した場合、差分のみを送信する差分アルゴリズムを使用する代わりに、最適化をオフにしてファイル全体を毎回転送します。
ソースと宛先の間でデータの1%のみが異なる5GBファイルがあるとします。
NFSファイルシステムを提供するホストに直接rsyncを使用できる場合、それを実行すると、パフォーマンスが大幅に向上します。