パーシステンス プロファイルは、クライアントが指定された期間同じサーバに接続し続けるように強制するための設定を制御します。これはスティッキー接続と呼ばれることもあります。

デフォルトでは、ロード バランシングによって、クライアントが仮想サービスに接続するたびにクライアントを別のサーバに送信できます。サーバ パーシステンスは、パーシステンスが有効である限り、クライアントが仮想サービスに接続するたびに同じサーバに再接続することを保証します。パーシステンス プロファイルを有効にすると、クライアントは毎回、または少なくとも必要な期間、同じサーバに再接続します。クライアントのセッション情報をローカルで維持するほとんどのサーバにとって、パーシステント接続は重要です。

すべてのパーシステンス方法は同じ原則に基づいています。つまり、クライアントの一意の識別子を見つけて、必要な期間それを記憶することです。パーシステンス情報は、Vantage サービス エンジンにローカルで保存することも、Cookie や TLS チケットなどを通じてクライアントに送信することもできます。その後、クライアントはその識別子を SE に提示します。これは、SE に対して正しいサーバにクライアントを送信するように指示します。

パーシステンスはオプションのプロファイルで、[テンプレート] > [プロファイル] > [パーシステンス プロファイル] 内で構成されます。プロファイルが作成されると、1 つ以上のプールに接続することができます。

パーシステンスのタイプ

NSX Advanced Load Balancer は、いくつかのパーシステンス テンプレートを使用して構成できます。

  • HTTP Cookie パーシステンスNSX Advanced Load Balancer は HTTP 応答に Cookie を挿入します。

  • アプリケーション Cookie パーシステンスNSX Advanced Load Balancer は、既存のサーバ Cookie または JSessionID などの URI に埋め込まれたデータを読み取ります。

  • HTTP カスタム ヘッダー パーシステンス:管理者は、特定のサーバへのヘッダー値のカスタムの静的マッピングを作成できます。

  • クライアント IP パーシステンス:クライアントの IP アドレスは識別子として使用され、サーバにマッピングされます。

  • TLS パーシステンス:パーシステンス情報はクライアントの SSL/TLS チケット ID に組み込まれています。

  • GSLB サイトの Cookie パーシステンス:トランザクションが開始されたサイトに保持するように GSLB アプリケーションを構成できます。(『VMware NSX Advanced Load Balancer GSLB ガイド』の「GSLB サイトの Cookie パーシステンス」セクションを参照)

パーシステンス プロファイルの外部では、他の 2 種類のパーシステンスを使用できます。

  • DataScript:一意のパーシステンス識別子の DataScript を使用して、カスタム パーシステンスを作成できます。

  • コンシステント ハッシュ:ロード バランシング アルゴリズムとパーシステンス方法を組み合わせたもので、キーとして使用される複数の異なる識別子に基づいて指定できます。

パーシステンス ミラーリング

パーシステンス データは、NSX Advanced Load Balancer サービス エンジンにローカルで保存されるか、クライアントに送信されて保存されます。

HTTP Cookie、HTTP ヘッダー マッピング、コンシステント ハッシュを含むクライアントに保存されたパーシステンスは、サービス エンジンでローカルに保持されません。クライアントによって提示された Cookie などの受信されたデータには、クライアントのパーシステンス サーバの IP アドレスとポートが含まれます。パーシステンスをミラーリングするためにローカル ストレージやメモリが使用されることはありません。ローカルで維持されているテーブルがないため、パーシステンス テーブルのサイズは無制限になる場合があります。

HTTP アプリケーションの Cookie、TLS、クライアント IP アドレス、DataScript、NSX Advanced Load Balancer SE を含むローカルに保存されたパーシステンス方法は、ローカル テーブル内にパーシステンス マッピングを維持します。このテーブルは、仮想サービスとコントローラをサポートする他のすべてのサービス エンジンに自動的にミラーリングされます。SE フェイルオーバーでは、パーシステンス マッピングが失われることはありません。より大きなパーシステンス テーブルをサポートするには、サービス エンジンと [SE グループ] > [接続テーブル設定] により多くのメモリを割り当てます。

パーシステンス プロファイル設定

[テンプレート] > [プロファイル] > [パーシステンス] を選択して、[パーシステンス プロファイル] タブを開きます。

  • [検索]:オブジェクトのリスト全体を検索します。

  • [作成][新しいパーシステンス プロファイル] 画面を開きます。

  • [編集]:既存のプロファイルの [パーシステンス プロファイルの編集] 画面を開きます。

  • [削除]:プロファイルは、現在仮想サービスに割り当てられていない場合にのみ削除できます。エラー メッセージは、仮想サービスがプロファイルを参照していることを示します。デフォルトのシステム プロファイルは編集できますが、削除することはできません。

このタブの表には、パーシステンス プロファイルごとに次の情報が表示されます。



フィールド

説明

[パーシステンス名]

プロファイルの名前です。

[タイプ]

パーシステンスの各タイプの詳細については、次のセクションで説明します。パーシステンスのタイプは次のいずれかになります。

  • アプリケーション Cookie

  • クライアント IP アドレス

  • カスタム HTTP ヘッダー

  • GSLB サイト

  • HTTP Cookie

  • TLS

パーシステンス プロファイルの作成

[新しいパーシステンス プロファイル] 画面と [パーシステンス プロファイルの編集] 画面では、同じインターフェイスが共有されます。



パーシステンス プロファイルを作成または編集するには、次の手順を実行します。

フィールド

説明

[名前]

[名前] フィールドにパーシステンス プロファイルの一意の名前を入力します。

[タイプ]

[タイプ] プルダウン メニューを使用してパーシステンス タイプを選択します。次の使用可能なオプションがあります。

  • [アプリケーション Cookie]NSX Advanced Load Balancer がパーシステンス用に新しい Cookie を挿入するのではなく、NSX Advanced Load Balancer がサーバによって挿入された既存の Cookie を使用します。Cookie が存在しない場合、NSX Advanced Load Balancer は同じ名前の URI クエリを検索し、その値を保持します。通常、このパーシステンスは ASP または Java セッション ID で実行されます。

  • [クライアント IP アドレス]NSX Advanced Load Balancer はこのプロファイルのパーシステンス タイムアウトで定義された時間の間、クライアントの送信元 IP アドレスをテーブルに記録します。IP アドレスはテーブルに残りますが、ユーザーによる新しい接続は同じサーバに送信されます。クライアント IP アドレス パーシステンス テーブルは、サービス エンジンのメモリに格納され、この仮想サービスをサポートするコントローラおよびその他のすべてのサービス エンジンに自動的にミラーリングされます。

    注:

    この機能は、NSX Advanced Load Balancer の IPv6 でサポートされています。パーシステンス タイプには IPv4 と IPv6 の両方のタイプの IP アドレスを使用できます([クライアント IP アドレス])。

  • [カスタム HTTP ヘッダー]:このメソッドでは、パーシステンスに対する HTTP ヘッダーを指定できます。サービス エンジンは、定義されたヘッダーの値を検査し、プール内の各サーバの静的に割り当てられたヘッダー フィールドに対して値を照合します。一致する場合、クライアントは保持されます。サーバのヘッダー フィールドは、プールの [サーバを編集] ページで構成され、そこで新しいサーバが追加されます。

    • [ヘッダー名]:値がパーシステンス参照に使用される HTTP ヘッダーを指定します。

  • [GSLB サイト]:これにより、グローバル アプリケーションの特定のクライアントが転送先の最初のサイトで永続化されます。

  • [HTTP Cookie]:HTTP アプリケーション プロファイルが接続された仮想サービスに適用されます。NSX Advanced Load Balancer は送信 HTTP 応答に Cookie を挿入し、受信要求の Cookie を読み取ります。Cookie はセッション ベースです。つまり、クライアントがブラウザを開いたままにしている限り、Cookie パーシステンスは有効なままです。ブラウザを閉じると、クライアント ブラウザによって保存された Cookie が削除され、接続とパーシステンスの両方が破棄されます。Cookie は各クライアントを一意に識別します。これは、複数のユーザーが同じ IP アドレスから仮想サービスにアクセスしている場合に便利です。クライアントはパーシステンス情報を保存するため、サービス エンジンのメモリを消費しません。

    • [HTTP Cookie 名]:HTTP Cookie 名を指定します。このフィールドを空白のままにすると、ランダムな 8 文字の Cookie 名が生成されます。

  • [TLS]:SSL または TLS を終了している仮想サービスに適用されます。この方法では、TLS セッションのチケット フィールド内にユーザーのパーシステンス情報を組み込みます。古い SSL v3 とネゴシエートしているクライアントは、SSL セッション ID にパーシステンス情報を挿入するバリエーションを使用します。NSX Advanced Load Balancer では、クライアントがセッションの再ネゴシエーションを行うことを許可しません。これにより安全性が高まり、NSX Advanced Load Balancer はセッション ID の再ネゴシエーションと再作成を行うかどうか、およびそのタイミングを制御するため、パーシステンスを維持できます。

[パーシステント サーバ停止時に新規サーバを選択]

NSX Advanced Load Balancer がサーバに対してクライアントを永続化している間に健全性モニターがサーバを「停止」とマークした場合に、このプロファイルが状態を処理する方法を決定します。

  • [即時]NSX Advanced Load Balancer は即時に新しいサーバを選択し、停止しているサーバを置き換え、パーシステンス エントリを新しいサーバに切り替えます。

  • [なし]:置き換えサーバは選択されません。パーシステント エントリには、パーシステンス タイプに基づいて正常に期限切れになることが要求されます。

[パーシステンス タイムアウト]

[パーシステンス タイムアウト] フィールドに、クライアントの IP アドレスを保持する時間を分単位で入力します。0 を入力すると、パーシステンスが無効になり、新しいサーバへの新しい接続をすぐにロード バランシングできます。タイムアウトは、同じ送信元 IP アドレスから仮想サービスへのすべての接続が終了すると、カウント ダウンを開始します。このフィールドは、クライアント IP のパーシステンスにのみ適用されます。