合計100 GBのファイルを合計90 GB転送しようとしています。現在、私はrsyncデーモンを使用していますが、3.4mb / sと遅いため、これを何度も実行する必要があります。インターネットを介して100メガビットの接続を最大化し、非常に信頼性の高いものは何でしょうか。
合計100 GBのファイルを合計90 GB転送しようとしています。現在、私はrsyncデーモンを使用していますが、3.4mb / sと遅いため、これを何度も実行する必要があります。インターネットを介して100メガビットの接続を最大化し、非常に信頼性の高いものは何でしょうか。
回答:
あなたはスニーカーネットを検討しましたか?大規模なデータセットを使用すると、インターネット経由で転送するよりも、夜間に発送する方が速くて安価になることがよくあります。
私が見つけた最速の方法は、以下の組み合わせであるtar
、mbuffer
とssh
。
例えば:
tar zcf - bigfile.m4p | mbuffer -s 1K -m 512 | ssh otherhost "tar zxf -"
これを使用して、1 Gbリンクで950 Mb / s以上の持続的なローカルネットワーク転送を実現しました。各tarコマンドのパスを、転送対象に適したものに置き換えます。
大きなファイルをネットワーク経由で転送する際の最大のボトルネックは、断然、ディスクI / Oです。その答えはmbuffer
またはbuffer
です。それらはほとんど同じですmbuffer
が、いくつかの利点があります。デフォルトのバッファサイズは、の場合は2MB、の場合はmbuffer
1MBですbuffer
。バッファが大きいほど、空になることはありません。ターゲットファイルシステムと宛先ファイルシステムの両方で、ネイティブブロックサイズの最小公倍数であるブロックサイズを選択すると、最高のパフォーマンスが得られます。
バッファリングはすべての違いを生むものです!あればお使いください!お持ちでない場合は、入手してください!(m}?buffer
plus something を使用することは、それ自体を使用するよりも優れています。ほぼ文字通り、遅いネットワークファイル転送の万能薬です。
複数のファイルを転送する場合は、を使用tar
して、それらを1つのデータストリームにまとめます。単一ファイルの場合はcat
、I / Oリダイレクトを使用できます。tar
vs のオーバーヘッドcat
は統計的に重要ではないため、すでにtarballでない限り、常にtar
(またはzfs -send
可能な場合は)使用します。これらのどちらもメタデータを提供することは保証されていません(特に提供されません)。メタデータが必要な場合は、演習として残しておきます。cat
最後に、ssh
トランスポートメカニズムの使用は安全で、オーバーヘッドがほとんどありません。ここでも、ssh
vs nc
。のオーバーヘッドは統計的に重要ではありません。
tar -cf - .|mbuffer -m128k -s 256M -I 9090 & mbuffer -m128k -s 256M -O host:9090 | tar -xf -
ssh
すると、それが簡単になります。またはを使用stunnel
してsocat
もopenssl
機能しますが、単純な転送を設定するのはより複雑です。
「rsync」について言及しているので、Linuxを使用していると思います。
tarまたはtar.gzファイルを作成しないのはなぜですか?1つの大きなファイルのネットワーク転送時間は、多くの小さなファイルよりも高速です。必要に応じて圧縮することもできます...
圧縮なしのタール:
ソースサーバー:
tar -cf file.tar /path/to/files/
次に、受信側で:
cd /path/to/files/
tar -xf /path/to/file.tar
圧縮されたタール:
ソースサーバー:
tar -czf file.tar.gz /path/to/files/
次に、受信側で:
cd /path/to/files/
tar -xzf /path/to/file.tar.gz
rsyncを使用して(tar | tar.gz)ファイルを実際に転送するだけです。
あなたは試みることができるtar
とssh
トリックを説明ここに:
tar cvzf - /wwwdata | ssh root@192.168.1.201 "dd of=/backup/wwwdata.tar.gz"
tar cvzf - /wwwdata | ssh root@192.168.1.201 "tar xvf -"
ただし、その過程での--partial
機能が失わrsync
れます。ファイルが頻繁に変更されない場合、遅いイニシャルを使用rsync
することは、将来的にはるかに速くなるため、非常に価値があります。
rsyncのさまざまな圧縮オプションを使用できます。
-z, --compress compress file data during the transfer
--compress-level=NUM explicitly set compression level
--skip-compress=LIST skip compressing files with suffix in LIST
バイナリファイルの圧縮率は非常に低いため、-skip-compressを使用してそれらのファイルをスキップできます(例:iso、既にアーカイブおよび圧縮されたtarballなど)。
私はSFTPの大ファンです。SFTPを使用して、メインコンピューターからサーバーにメディアを転送します。私はLAN経由で良い速度を得ています。
SFTPは信頼性が高く、簡単に設定でき、場合によっては高速になる可能性があるため、試してみます。