Citrix ADC

接続のフェイルオーバー

接続フェイルオーバーは、分散環境にデプロイされたアプリケーションへのアクセスが中断されるのを防ぐのに役立ちます。Citrix ADC高可用性(HA)セットアップでは、 接続フェイルオーバー(または 接続ミラーリング -CM )は、フェイルオーバー が発生したときに、確立されたTCPまたはUDP接続をアクティブに保つことを指します。新しいプライマリCitrix ADCアプライアンスは、フェイルオーバー前に確立された接続に関する情報を保持し、それらの接続を処理し続けます。フェイルオーバー後も、クライアントは同じ物理サーバに接続されたままになります。新しいプライマリアプライアンスは、新しいセカンダリアプライアンスと情報を同期します。L2Conn パラメータが設定されている場合、レイヤ 2 接続パラメータもセカンダリと同期されます。

注:

HA セットアップについて考えてみます。クライアントはプライマリノードとのセッションを確立し、プライマリノードがバックエンドサーバーとのセッションを確立します。この状態でフェールオーバーがトリガーされると、既存のクライアントおよびサーバノードから新しいプライマリで受信されたパケットは古いパケットとして扱われ、クライアントとサーバの接続がリセットされます。一方、ステートレス接続フェールオーバーが有効になっている場合(USIP がオン)、フェールオーバー後、クライアントまたはサーバーノードからパケットを受信しても、接続がリセットされません。代わりに、クライアント接続とサーバー接続は動的に作成されます。

接続フェールオーバーは、ステートレスモードまたはステートフルモードのいずれかで設定できます。ステートレス接続フェールオーバーモードでは、HA ノードはフェールオーバーされた接続に関する情報を交換しません。このメソッドには、実行時のオーバーヘッドはありません。

ステートフル接続フェイルオーバーモードでは、プライマリアプライアンスはフェールオーバー接続のデータを新しいセカンダリアプライアンスと同期します。

接続のフェイルオーバーは、デプロイメントに長期間接続がある場合に役立ちます。たとえば、FTP 経由で大きなファイルをダウンロードしていて、ダウンロード中にフェールオーバーが発生した場合、接続が切断され、ダウンロードが中止されます。ただし、ステートフルモードで接続フェールオーバーを設定すると、フェールオーバー後もダウンロードが継続されます。

Citrix ADCアプライアンスでの接続フェイルオーバーの仕組み

ステートレス接続フェールオーバーでは、新しいプライマリアプライアンスは、受信したパケットに含まれる情報に基づいてパケットフローを再作成しようとします。

ステートフルフェールオーバーでは、ミラーリングされた接続に関する最新の情報を維持するために、プライマリアプライアンスはセカンダリアプライアンスにメッセージを送信します。セカンダリアプライアンスは、パケットに関連するデータを保持しますが、フェールオーバーの場合にのみ使用します。フェイルオーバーが発生すると、新しいプライマリ(古いセカンダリ)アプライアンスは、ミラーリングされた接続に関する保存されたデータを使用してトラフィックを受け入れます。移行期間中、クライアントとサーバーで短時間の中断と再送信が発生する可能性があります。

注:

プライマリアプライアンスがセカンダリアプライアンスで自分自身を認証できることを確認します。パスワードの正しい設定を確認するには、コマンドラインから show rpcnodeコマンドを使用するか、GUI の [ ネットワーク ] メニューの [RPC] オプションを使用します。

接続フェイルオーバーを使用する基本的な HA 設定には、次の図に示すエンティティが含まれます。

図1:接続フェールオーバーエンティティの図

接続フェイルオーバー

次のいずれかのイベントが発生すると、接続フェールオーバーはサポートされません。

- An upgrade to a later release.
- An upgrade to a later build within the same release, if the new build uses a different HA version.

サポートされているセットアップ

接続フェイルオーバーを構成できるのは、ロードバランシング仮想サーバだけです。コンテンツスイッチング仮想サーバーでは構成できません。コンテンツスイッチング仮想サーバーに接続されている負荷分散仮想サーバーで接続のフェールオーバーを有効にすると、負荷分散仮想サーバーは最初にトラフィックを受け入れないため、接続のフェールオーバーは機能しません。

次の表に、接続フェイルオーバーでサポートされているセットアップを示します。

表1. 接続フェイルオーバー-サポートされているセットアップ

設定 ステートレス ステートフル
サービスタイプ ANY。 ANY UDP、TCP、FTP、SSL_BRIDGE。
ロード・バランシング方式 サービスタイプ ANY でサポートされているすべてのメソッド。ただし、ソース IP の永続性が設定されていない場合は、SRCIPSRCPORTHASH メソッドを使用する必要があります。 サポートされているサービスタイプに適用可能なすべてのメソッド。
パーシステンスタイプ SOURCEIPの永続性。 サポートされているサービスタイプに適用可能なすべてのタイプがサポートされます。
USIP ONにする必要があります。 制限なし。ONまたはOFFに設定できます。
サービスバインディング サービスは、1 つの仮想サーバーにのみバインドできます。 サービスは、1 つ以上の仮想サーバーにバインドできます。
インターネットプロトコル (IP) のバージョン IPv4 および IPv6 IPV4 とIPv6
冗長性のサポート クラスタリングと高可用性 高可用性

注:

ステートフル接続フェールオーバーは、TCP などの接続ベースのスイッチングサービスでのみサポートされます。HTTP は要求ベースのスイッチングを使用するため、接続のフェールオーバーはサポートされません。SSL では、フェールオーバー後に既存の接続がリセットされます。

接続フェイルオーバーの影響を受ける機能

次の表に、接続フェールオーバーが構成されている場合に影響を受ける機能を示します。

表2. 接続フェイルオーバーがCitrix ADCの機能に与える影響

機能 接続フェイルオーバーの影響
SYN プロテクション どの接続でも、アプライアンスが SYN-ACK を発行した後、最終的な ACK を受信する前にフェールオーバーが発生した場合、接続フェールオーバーによって接続はサポートされません。クライアントは、接続を確立するために要求を再発行する必要があります。
サージ保護 サーバとの接続が確立される前にフェイルオーバーが発生した場合、新しいプライマリアプライアンスはサーバとの接続を確立しようとします。また、サージ保護中に保持されているすべてのパケットを再送信します。
アクセスダウン 有効にすると、アクセスダウン機能は接続のフェールオーバーよりも優先されます。
Application firewall アプリケーションファイアウォール機能はサポートされていません。
INC 独立したネットワーク設定は、ハイアベイラビリティモードではサポートされません。
TCPバッファリング TCP バッファリングは、接続ミラーリングと互換性がありません。
応答時に閉じる フェールオーバー後、応答時に NATPCB が閉じられないことがあります。

GUI を使用して接続のフェールオーバーを構成するには

[ トラフィック管理 ] > [ 負荷分散 ] > [ 仮想サーバー] に移動します。仮想サーバーを開き、[詳細設定] で [保護] をクリックし、[ステートフルとして 接続フェイルオーバー] を選択します。

CLI を使用して接続のフェイルオーバーを構成するには

コマンドプロンプトで、次の操作を行います。

set lb vserver <vServerName> -connFailover <Value>
show lb vserver <vServerName>
<!--NeedCopy-->

例:

set lb vserver Vserver-LB-1 -connFailover stateful
Done
<!--NeedCopy-->

仮想サーバで接続フェイルオーバーを無効にすると、仮想サーバに割り当てられたリソースが解放されます。

CLI を使用して接続のフェイルオーバーを無効にするには

コマンドプロンプトで、次の操作を行います。

set lb vserver <vServerName> -connFailover <Value>
show lb vserver <vServerName>
<!--NeedCopy-->

例:

set lb vserver Vserver-LB-1 -connFailover disable
Done
<!--NeedCopy-->

GUI を使用して接続のフェールオーバーを無効にするには

[トラフィック管理] > [負荷分散] > [仮想サーバー] に移動します。仮想サーバーを開き、[保護] で [接続のフェイルオーバー] を [無効] として選択します。

接続のフェイルオーバー