2004年10月23日土曜日

webの負荷分散

Webを一台から二台に負荷分散をさせるということを思い立ち、(俺の自宅サーバじゃないよ)やってみようとしていたのだが、
ある人が選定したcluseringToolsがGlobusToolsKit。

で、もう一人の男前な方が颯爽と格好良く構築されておられました。
で、CA(認証局)が必要なことに疑問を抱き調べてみると、、、
GlobusってGridじゃねえか!!という話w
※参考サイト

で、真面目にOSSのクラスター(負荷分散系)アプリを探してみた。

1,専用のtoolsを使う
Linux-HA Project
Beowulf
BitCluster
IEEE High Availability (HA)

2,リバースプロキシを使う
基本的には、squidなんかと組み合わせることになるのですが

Squid単体
websiteloadbalancing
apache+mod_rewrite+mod_proxy
A Pound

3,秘儀DNSラウンドロビン
DNS(Bindとか)のレコードに二つのIPを書くという秘儀
hogehoge.com A IN 192.168.1.1
hogehoge.com A IN 192.168.1.2

こういうことをすると適当にDNSが1と2で要求リクエストを投げてくれる。

しかし、非常にランダムなので
1,負荷が均等に分散されない
2,セッションを必要とするコネクション(例えばcookie使うような)のは駄目
(1回目は1.1で二回目は1.2となるとゼロからになるので今までの通信が破棄される)
なので、3は動的コンテンツでは使えない為、非現実的かな・・・。

とりあえず、まとめておかないといけないんだが、Clusterとは、
・分散コンピューティングの一種.

・複数台のコンピュータ(サーバ)を相互接続して集合(クラスタ)化し, 各コンピュータ(サーバ)間で常時通信を行なって互いに状態を認識させ緩く連結された構成のこと. その目的は, 信頼性確保のために作られる場合や, 科学技術計算で膨大な計算を行なう時, スパコンの代用的に使われる. 後者はグリッドコンピューティングとも呼ばれる.

・信頼性確保の場合, 常時使用されるプライマリノード(クライアントは通常このノードに接続される)と障害時に業務を引き継ぐ(テイクオーバー)ためのバックアップノードなどで構成され, 両者は常にデータの同期が取られており, プライマリに障害が発生した場合はバックアップが自動的に感知してテイクオーバー(引き継ぎ)手順を実行し, 業務の切り替えを行なう. あるいは複数のサーバで業務を分担して処理する分散環境としても利用される.

・24時間(1kBeat)無停止で運用される業務サーバなどでは障害時の停止は致命的であり, またクリティカルな業務では運用切り替えに必要な時間による損害も多大なものとなる. クラスタリングは信頼性で劣るUNIX系WSサーバなどで汎用機並のフォルトトレラント性を実現するために重要な技術であり, また分散化することでより高い処理性能を持たせることができる.

・テイクオーバー時にはバックアップノードで各アプリケーションが再起動されることになるが, このときに障害発生時点までの状態に復帰する必要があり, この内容の記録と引き継ぎ方法は各アプリケーションによって異なる. このためクラスタリングはハードウェアとOSのサポートだけでは実現できず, サーバ内で運用される業務アプリケーションについても対応製品を用意する必要がある.

・価格性能比から個々の計算機にパソコン(PC)を用いる場合も多く, その場合, 特にPCクラスタと呼ばれる. かつては1?2UのラックマウントPCを用いることが多かったが, 最近ではブレードサーバによる構成もしばしば見られる.


ちゅうことだ!(通信用語の基礎知識よりコピペ)

Cluster技術の応用結果としてGridとLBがあるというわけですな。
��ジョ

0 件のコメント:

コメントを投稿

素材集

FreePhoto