アクティブ-アクティブ展開では、ダウンタイムを防ぐだけでなく、展開環境内のすべてのNetScalerアプライアンスを効率的に使用できます。アクティブ-アクティブ展開モードでは、同じVIPが構成内のすべてのNetScalerアプライアンスに異なる優先順位で設定されるため、特定のVIPは一度に1つのアプライアンスでのみアクティブになります。
アクティブなVIPはマスターVIPと呼ばれ、他のNetScalerアプライアンスの対応するVIPはバックアップVIPと呼ばれます。マスター VIP に障害が発生すると、優先順位が最も高いバックアップ VIP が引き継いでマスター VIP になります。アクティブ/アクティブ展開のすべてのNetScalerアプライアンスは、仮想ルーター冗長プロトコル(VRRP)プロトコルを使用して、VIPとそれに対応する優先順位を定期的にアドバタイズします。
アクティブ/アクティブモードのNetScalerアプライアンスは、NetScalerがアイドル状態にならないように構成できます。この構成では、NetScalerごとに異なるVIPセットがアクティブになります。たとえば、次の図では、VIP1、VIP2、VIP3、VIP4がアプライアンス NS1、NS2、NS3で設定されています。優先順位の関係で、VIP1 と VIP 2 は NS1 でアクティブになり、VIP3 は NS2 でアクティブになり、VIP 4 は NS3 でアクティブになります。たとえば、NS1 に障害が発生すると、NS3 の VIP1 と NS2 の VIP2 がアクティブになります。
図1:アクティブ-アクティブ構成
上の図のNetScalerアプライアンスは、次のようにトラフィックを処理します。
-
クライアント C1 は VIP1 に要求を送信します。リクエストは R1 に達します。
-
R1 には VIP1 の ARP エントリがないため、VIP1 の ARP 要求をブロードキャストします。
-
VIP1 は NS1 でアクティブなので、NS1 は VIP1 に関連付けられた仮想 MAC(仮想 MAC1 など)として送信元 MAC アドレスを、送信元 IP アドレスとして VIP1 を返信します。
-
SW1 は ARP 応答から VIP1 のポートを学習し、ブリッジテーブルを更新します。
-
R1 は仮想 MAC1 と VIP1 を使用して ARP エントリを更新します。
-
R1 は NS1 上の VIP1 にパケットを転送します。
-
NS1の負荷分散アルゴリズムがサーバーS2を選択し、NS1はSNIPアドレスの1つとS2間の接続を開きます。
-
S2はNetScaler 上のSNIPに応答します。
-
NS1 は S2 の応答をクライアントに送信します。応答では、NS1は物理インタフェースのMACアドレスを送信元のMACアドレスとして挿入し、VIP1を送信元のIPアドレスとして挿入します。
-
NS1に障害が発生した場合、NetScalerアプライアンスはVRRPプロトコルを使用して優先順位が最も高いVIP1を選択します。この場合、NS3 の VIP1 がアクティブになり、次の 2 つの手順でアクティブ-アクティブ構成が更新されます。
-
NS3 は VIP1 の GARP メッセージをブロードキャストします。メッセージでは、仮想 MAC1 が送信元 MAC アドレスで、VIP1 が送信元 IP アドレスです。
-
SW1は、GARPブロードキャストから仮想MAC1の新しいポートを学習し、ブリッジテーブルを更新して、VIP1に対するその後のクライアント要求をNS3に送信します。R1 は ARP テーブルを更新します。
VIP の優先度はヘルストラッキングで変更できます。ヘルストラッキングを有効にする場合は、優先度が低い VIP が別の VIP にプリエンプションされるように、プリエンプションも有効にする必要があります。
状況によっては、トラフィックがバックアップ VIP に到達することがあります。このようなトラフィックがドロップされないようにするには、アクティブ/アクティブ構成を作成するときに、ノード単位で共有を有効化できます。または、マスターへのグローバル送信オプションを有効にすることもできます。共有が有効になっているノードでは、マスターへの送信よりも共有が優先されます。