Open棟梁Project - マイクロソフト系技術情報 Wiki
目次 †
概要 †
- ステートレス・システムの負荷分散が可能。
- 負荷分散装置等のフロントのアプライアンスが不要。
方式 †
要約していうと、
- (後述の)分散処理方式によりパケットをWebファームのNICに重複して着信させ、
- (後述の)ハッシュ関数で着信したパケットをフィルタする
という方式である。
(後述の)ハッシュ関数の再構築による)フェイル・オーバーも可能になっている。
分散処理方式 †
パケットをWebファームのNICに重複して着信させる分散処理の方式に以下の2つがある。
ハッシュ関数 †
NLBのハッシュ関数は、パーシステンスの種類として、
以下のサイトで説明されている、
- ロードバランサ - パーシステンスの種類
http://www.infraexpert.com/study/loadbalancer5.html
- Source address affinity persistence
- Cookie persistence
- SSL persistence
- Destination address affinity persistence
- Hash persistence
- SIP persistence
- Universal persistence
- Microsoft Remote Desktop Protocol persistence
Source address affinity persistence
を採用している。
プロトコル †
がある。
分散処理方式 †
分散処理方式に
が存在する。
ユニキャスト・モード †
ユニキャスト・モードの分散処理方式
- サーバの物理ノードに同じIPアドレス(MACアドレス)を付与し、
- 全ての物理ノードでパケットを受信。
- 次いで、ハッシュ関数を使用して要求フィルタする。
マルチキャスト・モード †
マルチキャスト・モードの分散処理方式
- サーバの物理ノードに異なるIPアドレスを付与し、
- マルチ・キャストを使用して全ての物理ノードでパケットを受信。
- 次いで、ハッシュ関数を使用して要求フィルタする。
ハッシュ関数 †
アフィニティ †
Source address affinity persistenceのaffinityとして、
が存在する。
単一モード †
ハッシュ関数は、クライアントのIPアドレスから物理ノードが選択する。
- クライアントは、常に同じノードに振り分けられる。
- プロキシサーバーを経由すると、偏りが発生することがある。
なしモード †
ハッシュ関数は、クライアントのIPアドレス+ポートから物理ノードが選択する。
∴ クライアントのTCP/IP接続が異なると、異なるノードに振り分けられる。
その他 †
ASP.NETでは、SessionState?を使用するステートフルなアプリケーションでも、
ステートサーバやSQL Serverに状態を一時退避する事で、以下を可能にしている。
- [なしモード]での負荷分散([単一モード]なら不要)
- [単一モード]でフェイル・オーバした後の業務続行(不可能なら不要)
- ただし、ステートサーバやSQL Serverはシングル・ポイントになり得る。
参考 †