1

IISを実行している10台を超えるWebサーバーで負荷分散された環境があります。すべてのWebサイトは、すべての画像をホストする単一のファイルストレージにアクセスしています。現在、200GBの画像があります。ディレクトリごとに1000枚の画像のディレクトリに保存しています。現在、すべてのイメージは、ファイルサーバーとして機能する単一のサーバーに接続された単一のストレージデバイス(RAID 10)にあります。すべてのWebサーバーは、同じLAN上のファイルサーバーに接続されています。単一障害点が発生しないように、アーキテクチャを改善したいと考えています。私は2つの選択肢を検討しています:

  1. ファイルストレージをすべてのWebサーバーに複製して、すべてのWebサーバーがローカルでデータにアクセスできるようにします。
  2. ファイルストレージを別のストレージに複製して、現在のストレージに何かが起こった場合に、そのストレージに切り替えることができるようにします。

明らかに、ファイルストレージで行われる主な操作は読み取りですが、書き込み操作もたくさんあります。推奨される方法は何だと思いますか?他のアイデアはありますか?

現在、CDNの使用は除外しています。これは、現在アプリケーションでアーキテクチャを変更する必要があるためです。

4

3 に答える 3

0

ストレージ内のデータが非常に少ないため、いくつかの大きな HD を購入するか、Web サーバーの空き領域を使用してコピーを保持することは理にかなっています. バックエンド ストレージ システムの負担を軽減し、障害が発生した場合でもユーザーにコンテンツを配信できます。さらに良いことに、スケーリングする必要がある場合 (より多くのダウンロード)、単に新しいサーバーを追加するだけで、バックエンドのストレスはほとんど変わりません.

これを行う必要がある場合は、rsyncまたはunisonを使用して、イメージ ファイルがストレージ デバイス上にある Web サーバー上のまったく同じスペースにイメージ ファイルをコピーします (この方法で、コピーをネットワーク ファイル システムと交換できます)。いつでもマウントできます)。

ときどき rsync を実行します (たとえば、アップロード後または夜に 1 回。どのサイズが最適かをよりよく知ることができます)。

より用途の広いソリューションは、Bittorreent のような P2P プロトコルを使用することです。このようにして、ストレージ バックエンドのすべての変更を Web サーバーに公開すると、更新が自動的に最適化されます。

于 2009-02-16T13:43:43.930 に答える
0

この種の企業向け ソリューションがいくつかあります。しかし、それらが高価であることは間違いありません。NAS はうまく拡張できません。そして、良くない単一障害点があります。

これを支援するコードを作成する方法がいくつかあります。画像が初めて要求されたときに Web サーバーに画像をキャッシュすることができます。これにより、画像サーバーの負荷が軽減されます。

マスター スレーブをセットアップして、1 つのメイン イメージ サーバーと、そこからコピーする他のサーバーを用意することができます。これらの負荷を分散し、コードにロジックを追加して、スレーブにイメージのコピーがない場合にマスターをチェックすることができます。また、マスターが使用できない場合に最初のスレーブがマスターになるように、これらを優先順位で割り当てることもできます。

于 2009-02-16T13:16:47.973 に答える
0

アーチの変更に行く前に私が通常考慮する特定のことは、

  1. 現在のアーチの問題は何ですか
  2. 現在のアーキテクチャで何が間違っているのですか (これがしばらく機能していた場合、通常、マイナーな調整で多くの問題が解決します)。
  3. 簡単に成長できますか(ここには常に上限があります)。データの過去の増加に基づいて、効果的に計画を立てることができます。
  4. 信頼性
  5. 保守/監視/トラブルシューティングが容易
  6. 料金

200GB は大量のデータではありません。自家製のソリューションを使用するか、NAS のようなものを使用して、後で拡張することができます。そして、そのホットスワップ可能なレプリカを用意してください。

すべての Web サーバーのストレージに複製するのは非常にコストのかかる設定であり、多くの書き込み操作があると述べたように、すべてのサーバーに複製する際に大きなオーバーヘッドが発生します (サーバーの数とデータの増加に伴って増加するだけです)。 )。また、古いデータが他のノードの 1 つによって提供されるという問題もあります。それとは別に、レプリケーションの問題のトラブルシューティングは、10 個以上のノードで混乱します。ファイルの検索/読み取り/書き込みが非常にタイム クリティカルでない限り、すべての Web サーバーに複製することはお勧めできません。(Web の) ユーザーは、読み込み時間の 100 ミリ秒と 200 ミリ秒の違いにほとんど気付かないでしょう。

于 2009-02-16T12:48:30.350 に答える