NFSを介したrsync - 速度が一貫していない

NFSを介したrsync - 速度が一貫していない

ギガビットLANで約9TBのデータを転送しています。これをできるだけ早く完了することを望むように、ソースの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を見てみると、単一ファイルの速度が最大900 MBpsまで急増し、KBpsの範囲の数に落ちて再バックアップされることがわかります。以下は、転送がファイルの途中で停止しているように見えることを確認できるnloadのグラフです。これらのファイルのサイズは通常5〜6GBです。 MTUは9000です。スイッチは適切なバックプレーン速度を備えたcisco 3750xです。これらは2つの異なるホストのesxi 6.7ゲストです。ネットワークリソースを置いて競う他のゲストはありません。

ジム

画像は転送中のファイルです

デフォルトでは、設定の1つが間違っているか、転送速度を一定に保つためにいくつかの設定を変更できることを願っています。

CPU使用率はソースで約10%、ターゲットで約10%です。奇妙なことに、ターゲットでは、iotopはnfsdで99%のI / Oを示し、時々ソースではrsyncで60〜80%のIOを表示します。 7200RPM WDレッドハードドライブ。勝つ

ベストアンサー1

残念ながら起こりうる最悪の状況は、rsyncNFS全体でこれを使用することです。 (またはローカルシステムにマウントされたリモートファイルシステム。)これにより、既知のrsync効率向上機能がほぼすべてオフになります。

データが多すぎる場合、システム間でデータを転送する最速の方法の1つは、データを別のシステムにダンプすることです。暗号化されていないターゲットシステムにすでに何があるかに関係なく接続します。

少なくとも部分的なレプリカがある場合、最良のオプションはrsync2つのホスト間でそれらを使用することです。これにより、rsync各ホストで 1 つのプロセスを実行して、相違点を考慮して比較できます。 (rsyncサイズと変更日が同じファイルは完全にスキップされます。他のファイルの場合、クライアントとサーバーコンポーネントはローリングチェックサムを実行して、まだ転送するブロックを決定します。)

  1. クイックダンプ。この例では、認証や暗号化をまったく使用しません。ただし、圧縮が適用され、-z次の2つのフラグを省略して圧縮を削除できます。

    受信サーバーを起動するには、ターゲットマシンで次のコマンドを実行します。

    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そうではありません。

  2. 転送速度が遅くなります。この例では、認証と暗号化を提供するrsyncover を使用します。ソースパスの末尾のスラッシュ()をssh見逃さないでください。圧縮したくない場合は、このフラグを省略してください。/-z

    rsync -avzP /path/to/source/ destination_server:/path/to/destination
    

Destination_server へのルートログインを許可するには、SSH 証明書を設定する必要があります。-Hハードリンクを処理する必要がある場合は、このフラグを追加してください。

おすすめ記事