2

企業の「エクストラネット」(基本的には専用回線やVPNなどのさまざまなプライベートメカニズムを使用して接続された少数のLAN)上のすべてのマシンに、バンドルあたり約500MBのファイルのバンドルを配布できるようにしたいと考えています。

ホストの総数は約100であり、目標は、バンドルのコピーを1つのホストから他のすべてのホストに確実に、迅速に、そして効率的に取得することです。重要な問題の1つは、一部のホストが単一の高速LANでグループ化されていることです。この場合、ネットワークI / Oは、あるグループから次のグループに1回実行し、次にすべてのピア間の各グループ内で実行する必要があります。これは、複数のホストがそれぞれ低速リンクを介して同じバン​​ドルをフェッチする可能性がある厳密な中央サーバーシステムとは対照的です。

新しいバンドルは数日ごとに作成され、古いバンドルは削除されることがあります(ただし、この問題は個別に解決できます)。

問題のマシンはたまたま最近のLinuxを実行していますが、ボーナスポイントは、少なくともある程度クロスプラットフォームのソリューションに適用されます(この場合、バンドルはプラットフォームごとに異なる可能性がありますが、同じメカニズムを使用できる可能性があります)。

それはほとんどそれです。私はこれを処理するためのコードを書くことに反対していませんが、bash、Python、Ruby、Lua、C、またはC++のいずれかであることが望ましいでしょう。

4

3 に答える 3

0

rsyncはどうですか?

于 2010-03-26T22:47:26.157 に答える
0

compie の rysnc のアイデアを使用してファイルをコピーすることをお勧めします。この場合、任意のスクリプト言語を使用できます。

伝播システムでは、ホストの表現の何らかの形式と、速度で重み付けされたそれらの間のマトリックスを含むスクリプトが必要になります。次に、その情報から最小スパニング ツリーを計算する必要があります。そこから、伝搬先のシステムにメッセージを送信して、取得する MST とバンドルの詳細を伝えることができます。これにより、スクリプト/デーモンが転送を開始します。そのホストは、最速のリンクを介してホストに接続します...

bashで実装できます-pythonの方が良いか、カスタムCデーモンです。

ネットワークを更新するときは、最新の情報に基づいてマトリックスを更新する必要があります。

参照:プリムのアルゴリズム.

于 2010-03-26T23:07:49.573 に答える
0

これらの問題はすべて、p2p ネットワーキングに関する最新の研究によって解決され、適切にパッケージ化されていると思います。少しのスクリプトと少しの torrent がこれらの問題を解決するはずです。最新のすべての OS にトレント クライアントが存在し、各マシンにスクリプトがあり、新しいトレント ファイルの場所を確認し、DL を開始し、DL が終了したら古いバンドルを削除します。

于 2010-03-27T21:17:53.663 に答える