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はシングル・ポイントになり得る。
 
参考  †