高速で待ち時間の長いWANリンクを介して単一の大きなファイルを転送する最良の方法は何ですか?


21

これはこれに関連しているように見えますが、多少異なります。

2つの企業サイト間にこのWANリンクがあり、1つの非常に大きなファイル(Oracleダンプ、最大160 GB)を転送する必要があります。

完全な100 Mbpsの帯域幅(テスト済み)がありますが、TCPの仕組み(ACKなど)により、単一のTCP接続では最大にならないようです。リンクをiperfでテストし、TCPウィンドウサイズを大きくすると結果が劇的に変化します。基本設定では最大5 Mbpsのスループットが得られ、より大きなWSでは最大で最大45 Mbpsが得られますが、それ以上は得られません。ネットワーク遅延は約10ミリ秒です。

好奇心から、1つ以上の接続を使用してiperfを実行しましたが、4つの接続を実行すると、実際にはそれぞれ〜25 Mbpsの速度に達し、利用可能なすべての帯域幅がいっぱいになることがわかりました。そのため、複数の同時転送を実行することが重要になります。

FTPでは、事態はさらに悪化します。最適化されたTCP設定(高いウィンドウサイズ、最大MTUなど)でも、1回の転送で20 Mbpsを超えることはできません。いくつかの大きなファイルを同時にFTPで送信しようとしましたが、実際には1つのファイルを転送する場合よりもはるかに良くなりました。しかし、その後、犯人はディスクI / Oになりました。これは、同じディスクの4つの大きなファイルの読み込みと書き込みがすぐにボトルネックになるためです。また、少なくとも1つの大きなファイルを小さなファイルに分割してから、少なくとも許容時間内にマージして戻すことはできないようです(明らかに、ファイルのスプライシング/マージバックに相当する時間を費やすことはできません)転送)。

ここでの理想的なソリューションは、ファイルのさまざまなチャンクを同時に転送できるマルチスレッドツールです。eMuleやBitTorrentのようなピアツーピアプログラムのようなものは既にありますが、単一のソースから単一の宛先までです。理想的には、このツールを使用すると、使用する並列接続の数を選択でき、もちろん、ファイルのさまざまなセクション間で狂ったように(あまりにも)ジャンプしないようにディスクI / Oを最適化できます。

誰でもそのようなツールを知っていますか?

または、誰もがより良い解決策や私たちがまだ試みていない何かを提案できますか?

PSすでにテープ/ディスクにバックアップし、宛先に物理的に送信することを考えました。WANがそれを削減しない場合、それは私たちの極端な測定値になりますが、AS Tanenbaumが言ったように、「高速道路を疾走するテープでいっぱいのステーションワゴンの帯域幅を過小評価しないでください」。


1
好奇心から、時間がかかるのは本当に重要ですか?また、160Gbの転送中にリンクが飽和状態になっても、ネットワークの残りの部分に影響はありませんか?
ブライアン

6
'99年に、いくつかのDLTオートローダーと数百のカートリッジを顧客に配送したことを覚えています。約6.3TBで、約200個のDLT IVカートリッジを搭載した私の車の未加工容量(それぞれ35GBの未加工容量)を計算しました。私は約55分でオフィスから顧客のサイトに移動し、「州間高速道路で走り回るようなジオメトロのエバン」バックアップトランスポートメカニズムに約118 GB /分の有効なスループットを与えました。スループットは良好ですが、レイテンシはキラーでした...>笑顔<
エヴァンアンダーソン

ブライアン:はい、時間は重要です(標準FTPおよび標準ネットワーク設定では約20時間かかります)。いいえ、転送は勤務時間外にスケジュールされるため、リンクが飽和状態になることはありません。
マッシモ

エヴァン:それがまさに私が意味したことです;-)
マッシモ

WANリンクを飽和させることができる唯一の方法がFTPを使用することを除いて、SQL.bakの最大200GBで同様の状況を扱ってきました。最終的に圧縮なしの7-zipを使用して512MBのチャンクに分割しました。「圧縮」および「解凍」の時間は、かなり短いものでした。全国の物理的なメディアをシャベルで切るよりもはるかに優れています。(サイトは米国の反対側の海岸にあります)
エイドリアン

回答:


15

「高遅延ファイル転送」を検索すると、多くの興味深いヒットが発生します。明らかに、これはCompSciコミュニティと商業コミュニティの両方が考え込んだ問題です。

法案に合うように見えるいくつかの商用製品:

  • FileCatalystには、UDPまたは複数のTCPストリームのいずれかを使用して、高遅延ネットワークでデータをストリーミングできる製品があります。他にも多くの機能があります(オンザフライ圧縮、デルタ転送など)。

  • Asperaからのfaspファイル転送「テクノロジー」は、あなたが探しているものの法案にも適合するようです。

オープンソースの世界では、uftpプロジェクトは有望に見えます。マルチキャスト機能は特に必要ありませんが、受信者にファイルを吹き飛ばし、転送の最後に失われたブロックのNAKを受信し、NAKされたブロックを吹き飛ばす(泡立て、すすぎ、繰り返し)という基本的な考え方ファイル転送が一度完了するまで、受信者からのACK(またはNAK)がないため、必要なことを行うように聞こえます。ネットワークが潜在的であり、損失がないと仮定すると、これも必要なことを実行できます。


uftpは本当に有望に見えますが、2台のデスクトップコンピューター間で30 Mbpsを達成することができました(ディスクパフォ​​ーマンスは決してそれほど優れていません)。「実際の」サーバーですぐにテストします。登録フォームにバグがあるためFileCatalystデモライセンスを取得できませんでした(リクエスト番号が既に使用されていると言われ続けています)。faspは提供していません。
マッシモ

適切なディスクと大きな受信バッファーを備えた2台のコンピューター間で60 Mbps。すばらしいです!
マッシモ

私は無料/オープンソースソフトウェアが大好きです!> smile <間違いなく、私がやっているいくつかのことでuftpを試してみるつもりです。数年前に「udpcast」を使ってまとめたLinuxベースのマルチキャストディスクイメージングソリューションでどのように機能するのか疑問に思っています。
エヴァンアンダーソン

バックしながら、私は尋ねたserverfault.com/questions/173358/multicast-file-transfersを最終的に私はUFTPとmrsyncは選択肢の道具だったという結論に達しました。uftpで何か便利なことをするなら、コメントを投稿してください。今年もどちらかを使用します(会議の準備)。
ジェドダニエルズ

2
UFTP、UDT、およびTsunami UDPを使用していたとき、UFTPのパフォーマンスは3つの中で最悪でした。もちろん、おそらく最も成熟したプロトコルです。UDTは単純な転送プロトコルのみを提供し、カスタムソフトウェアを開発するためのライブラリとして機能するように設計されました。津波の開発者は時間不足のため最近積極的に開発されていないため、津波の著者は実際にUDTを指摘しました。
トーマスオーエンズ

9

これは本当に奇妙な提案です。ネットワーク上でファイルをホストする単純なWebサーバーをセットアップし(偶然nginxをお勧めします)、もう一方の端にfirefoxを搭載したPCをセットアップし、DownThemAll拡張機能をインストールします。

これは、チャンク化と再アセンブリをサポートするダウンロードアクセラレータです。
再ダウンロードのために各ダウンロードを10のチャンクに分割することができます。これにより、実際に処理が速くなります。

(注意:160GBの大きさでも試したことはありませんが、20GBのisoファイルでうまく動作します)


同じコンピューター間で40 Mbps。本当によさそうだ。
マッシモ

1
firefoxをaxel.alioth.debian.orgに置き換えてください。それほど悪い提案ではありません。
ジャスティン

7

UDTの輸送は、おそらく長い待ち時間通信のための最も人気のあるトランスポートです。これは、セクター/スフィアと呼ばれる他のソフトウェアの「高性能分散ファイルシステムおよび並列データ処理エンジン」につながります。


1
待ち時間が長く、パケット損失が大きいネットワークを介した転送のために、UDTでいくつかの作業を行いました。UDTは、特にネットワークトポロジに合わせて輻輳制御アルゴリズムを変更した場合、TCPベースのプロトコルよりも遅延とパケット損失に対してはるかに回復力があります。
トーマスオーエンズ

UDTが組み込まれたrsyncのバージョンもあり、「UDR」と呼ばれます。github.com/LabAdvComp/UDR
最大値

5

私の答えは少し遅れていますが、私はこの質問を見つけました。その検索中に、私はこれも見つけました:http : //tsunami-udp.sourceforge.net/、「Tsunami UDPプロトコル」。

彼らのウェブサイトから:

同じネットワーク上でTCPを使用した場合よりも高いスループットを提供するように設計された、非常に高速な長距離ネットワーク(1 Gbps以上、10 GE以上)での転送にTCP制御とUDPデータを使用する高速ユーザースペースファイル転送プロトコル。ネットワーク。

速度に関する限り、このページにはこの結果が記載されています(フィンランドのヘルシンキからドイツのボンまで、1GBitのリンクを使用して:

図1-インターネット経由の国際転送、平均800 Mbit /秒

ダウンロードアクセラレータを使用する場合は、lftpをご覧ください。これは、私の知る限り、再帰ミラーを実行できる唯一のダウンロードアクセラレータです。


1
先にSteve-oの回答でコメントしたプロジェクトでは、UDT、Tsunami UDP、およびUFTPのベンチマークを行いました。遅延はパフォーマンスに大きな影響を与えましたが、パケット損失はそうではありませんでした(Tsunamiのドキュメントとは異なります)。テストネットワークに100ミリ秒のレイテンシを追加すると、津波のパフォーマンスが約250メガビット/秒から約50メガビット/秒に低下しました(数字と単位は正しいと思います-しばらくはありましたが、大幅に低下しました)。一方、最小遅延ネットワークなしで10%のパケット損失を追加すると、パフォーマンスは250Mビット/秒から約90Mビット/秒に低下しました。
トーマスオーエンズ

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