合計100 GBのファイルを合計90 GB転送しようとしています。現在、私はrsyncデーモンを使用していますが、3.4mb/sと遅いため、これを何度も実行する必要があります。インターネット経由で100メガビットの接続を最大限に活用し、非常に信頼性の高いオプションはありますか。
Sneakernet を検討しましたか?大規模なデータセットを使用すると、インターネット経由で転送するよりも、夜間に発送する方が多くの場合、高速で安価になります。
私が見つけた最速の方法は、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
にはいくつかの利点があります。デフォルトのバッファサイズは、mbuffer
の場合は2MB、buffer
の場合は1MBです。バッファが大きいほど、空になることはありません。ターゲットと宛先の両方のファイルシステムでネイティブブロックサイズの最小公倍数であるブロックサイズを選択すると、最高のパフォーマンスが得られます。
バッファリングは、allの違いを生み出すものです!もしあれば、それを使用してください!お持ちでない場合は、入手してください! _(m}?buffer
_に加えて何でも使用することは、それ自体で何よりも優れています。ほぼ文字通り、遅いネットワークファイル転送の万能薬です。
複数のファイルを転送する場合は、tar
を使用して、それらを1つのデータストリームにまとめます。単一のファイルの場合、cat
またはI/Oリダイレクトを使用できます。 tar
とcat
のオーバーヘッドは統計的に重要ではないので、すでにtarballでない限り、常にtar
(または、可能な場合は_zfs -send
_)を使用します。これらはどちらもメタデータを提供することは保証されていません(特にcat
は提供しません)。メタデータが必要な場合は、演習として残しておきます。
最後に、トランスポートメカニズムにssh
を使用すると、安全でオーバーヘッドもほとんど発生しません。この場合も、ssh
とnc
のオーバーヘッドは統計的に重要ではありません。
「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 [email protected] "dd of=/backup/wwwdata.tar.gz"
これは次のように 書き換え可能にする必要があります :
tar cvzf - /wwwdata | ssh [email protected] "tar xvf -"
ただし、その過程でrsync
の--partial
機能が失われます。ファイルが頻繁に変更されない場合、遅い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など。