Citrix TriScale クラスタリング: 技術ノート

Citrix TriScale クラスタリング | ホワイトペーパー
Citrix TriScale
クラスタリング:
技術ノート
www.citrix.co.jp
Citrix TriScale クラスタリング | ホワイトペーパー
2
TriScale クラスタリングによるキャパシティの拡張
Citrix® TriScale™クラスタリングを使⽤すると、最大 32 台の NetScaler アプライアン
ス(物理または仮想)を同時に動作させて 1 つ以上のアプリケーションを配信するこ
とにより、Citrix® NetScaler®のキャパシティを非常に大規模なレベルにまでスケール
アウトできるようになります。また、TriScale クラスタリングは、⾼可⽤性(HA)に
対応したアプリケーションデリバリコントローラー(ADC)アプライアンス導入の代
わりとなるソリューションを提供することで、ネットワークリソースの 100%を⽣産
的な⽤途に利⽤できるようにします。
TriScale クラスタリングに基づく価値ある提案には次のものがあります。
• 1Tbps を超えるスケーリング:2 台〜32 台までの NetScaler アプライアンスをク
ラスタリングすることにより、ADC のキャパシティを 3.5Tbps 超にスケーリング
できます。キャパシティは必要な場合にのみインクリメンタルに追加できるため、
データセンター管理者は、ネットワークのオーバープロビジョニングなしにスケー
リングを実施できます。
• 統一的なクラスタ管理:NetScaler クラスタは、クラスタ全体を可視化できる単一
のポリシー管理ビューを提供します。将来の成⻑に合わせてクラスタが拡張された
場合でも、管理のあらゆる側⾯は同じままです。ポリシーの変更を一度⾏うだけで、
すべてのノードに対してその変更が自動的に適⽤されます。
• 透過性の保証:TriScale は、すべてのユーザーにとって NetScaler アプライアンス
のクラスタが単一のリソース(すなわち単一の仮想 IP アドレス)として⾒えるよ
うにします。これにより、ADC の透過性を確保できます。
• シームレスでリニアなスケーラビリティ:NetScaler クラスタへのノードの追加や
NetScaler クラスタからのノードの削除で発⽣するダウンタイムをゼロにすること
で、結果として、性能およびキャパシティを集積する場合の変化を予測可能でリニ
アなものにできます。クラスタに追加された新しいノードは、自分自身を即座にア
ドバタイズした後、各自の負荷の割り当て分を吸収することを自動的に開始しま
す。
• 組み込み型のフォールトトレランス:TriScale クラスタリングは、信頼性を提供し
ます。ノードに障害が発⽣するかノードが到達不可能になると、そのノードにより
処理されていたトラフィックが、TriScale の正常なトラフィック分散メカニズムを
通じて、残りのアクティブなノードに対して自動的に再分散されます。また、クラ
スタは、スペアノードを使⽤して構成可能です。スペアノードは正常時はパッシブ
なスタンバイモードで動作しますが、現在のアクティブノードに障害が発⽣する
と、そのアクティブノードに自動的に置き換わります。
www.citrix.co.jp
Citrix TriScale クラスタリング | ホワイトペーパー
3
クラスタリングの動作
TriScale テクノロジーは、複数の NetScaler アプライアンスをグループ化してそれら
を同時に動作させることにより、IT 部門が ADC インフラストラクチャーの効率的な
スケーリングを⾏えるようにします。1 つまたは複数のアプリケーションを複数の
NetScaler アプライアンスにより同時にサポートすることで、それらのアプリケー
ションでは、すべてのクラスタノードの合計キャパシティを利⽤できるようになりま
す。1 つのクラスタノードは、まさに単一のノードのように扱うことができます。言
い換えれば、1 つの NetScaler クラスタは、論理的には 1 台の NetScaler デバイスの
ように振る舞います。このことはネットワークの観点からも当てはまります。例えば、
1 つのクラスタ内にある複数の NetScaler アプライアンスで使⽤されるすべてのポー
トは、それらのアプライアンスが 1 つのデバイスであるかのように取り扱うことがで
きます。1 つの NetScaler クラスタは、単一のシステムとして構成や管理が⾏えます。
アプリケーションの終端点を表す仮想 IP(VIP)アドレスは、クラスタ内のすべての
ノード間で共有されます。アプリケーションへの要求トラフィックおよびアプリケー
ションからの応答トラフィックは、すべてのクラスタノード間で公平に分散されます。
クラスタ通信
NetScaler クラスタは、クラスタノードとクライアントサイドの接続デバイス間の物
理接続を通じてアプリケーションクライアントと通信します。これらの物理接続は、
通常、レイヤ 2 スイッチを通じてアグリゲートされます。これらの物理接続の論理的
なグルーピングのことを、クライアントデータプレーンと呼びます。同様に、クラス
タは、クラスタノードとサーバーサイドの接続デバイス間の物理接続を通じてバック
エンドサーバーと通信します。これらの物理接続の論理的なグルーピングのことを、
サーバーデータプレーンと呼びます。
さらに、クラスタノードは、クラスタバックプレーンを通じて互いに通信します。す
べてのクラスタノードは同じサブネット上に存在し、イーサネットバックプレーンを
通じて接続されます。バックプレーンは、各クラスタノードとバックプレーンスイッ
チ間の物理接続を含むものであり、クラスタシステムのバックボーンとなるものです。
バックプレーンは次の 3 つの目的に使⽤されます。
1. すべてのノード間で単一の構成をサポートするために、管理の同期がバックプ
レーンを通じて実施されること。個々の NetScaler ノードは個別には管理され
ません。
2. パーシステンスやヘルスチェック情報の同期により、クラスタプールへの個々
のノードの挿入およびクラスタプールからの個々のノードの削除が⾏えること
を保証すること。
3. クラスタ内のあるノードから別のノードにパケットを転送できるようにするこ
と(あるノードにより接続がトラッキングされているが、その接続⽤のパケッ
トは別のノード上に到着するような事態が発⽣した場合に使⽤します)。
また、冗⻑性を提供するために、バックプレーンを、典型的なスイッチ冗⻑トポロジー
を使⽤してネットワーク上に配置することも可能です。
図 1 に、クライアントデータプレーン、サーバーデータプレーン、クラスタバックプ
レーンを形成する物理接続の論理的なグループを⽰します。
www.citrix.co.jp
Citrix TriScale クラスタリング | ホワイトペーパー
4
NetScalar クラスタ
サーバーデータ
プレーン
クライアントデータ
プレーン
クライアント
ネットワーク
サーバー
ネットワーク
クラスタ
バックプレーン
バックプレーンスイッチ
図 1:クラスタの通信インターフェイス
クラスタリングがもたらすメリット
• レイヤ 2 スケーラビリティ:複数のポート(クラスタ内にある複数の NetScaler ア
プライアンスで使⽤されるもの)を選択することにより、リンクアグリゲーション
グループ(LAG)を形成できます。このグループの動作は、802.1ax/LACP と完全
な互換性があります。同様に、クラスタのもう一方の側は、対応する定義済みの
LAG を含むイーサネットスイッチ上で終端されます。
• レイヤ 3 ルーティングのメリット:NetScaler ノード上のポートは、単一デバイス
構成と同じように使⽤できます。ECMP(equal cost multi-path)ルーティングのよ
うなレイヤ 3 手法を使⽤することにより、着信パケットフローがすべての接続回
線を利⽤できることが保証されます。
• リンクセット:リンクセットを使うと、スイッチ側で LAG を定義することなく、
複数のクラスタポートを同一のブロードキャストドメイン(イーサネットセグメン
ト)に接続できるようになります。NetScaler はブロードキャストトラフィック
(ARP および ARP 応答)の管理を調整し、結果として発⽣する可能性のあるスパ
ニングツリープロトコルのループを抑止します。これにより、LAG に配置される
複数のポートに関するレイヤ 2 スイッチの制限を廃止できます。NetScaler 上で実
⾏される障害を認識できるきめ細かいフロー分散プログラムにより、リンク間でト
ラフィックをどのように分散するかが決定されます。リンクセットを使⽤すると、
LAG のすべてのリンクを公平に使⽤することが可能となります。
www.citrix.co.jp
Citrix TriScale クラスタリング | ホワイトペーパー
5
最も重要なことは、クラスタは外部環境に依拠せずに、クラスタノード間でトラ
フィックを公平に分散するということです。着信トラフィックに対する接続を提供す
る場合、ポートを 1 つまたは複数のノードから選択できます。さらに、トラフィック
が NetScaler アプライアンスに到達する方法には関係なく、クラスタは、各デバイス
またはノード上での公平なワークロード分散を保証します。
クラスタの構成と同期
クラスタノードのうちの 1 つは、構成コーディネータ(CCO)として指定されます。
クラスタ上で構成を同期するにはクラスタノード間での調整を⾏う必要があるため、
CCO は当該クラスタの管理アドレス(これをクラスタ IP アドレスと呼びます)を所
有します。
CCO に対する管理アクセスは、クラスタ IP アドレスを通じて実現されます(図 2 を
参照)
。
NetScalar クラスタ
構成コーディネータ(CCO)
クラスタ IP
アドレス
管理者
クラスタ
バックプレーン
図 2:クラスタ IP アドレスを通じた NetScaler クラスタの構成
クラスタ IP アドレスを通じて実施されたすべての構成変更は、
クラスタバックプレー
ンを通じてすべてのクラスタノードに伝搬されます。
新しいアプライアンスがクラスタに追加されると、そのアプライアンスが持つ構成の
各種設定およびファイル(SSL 証明書、ライセンス、DNS パラメータなど)が自動
的にクリアされ、同アプライアンスはクラスタ構成と同期されます(ポリシー構成情
報の消失を防ぐためには、NetScaler アプライアンスのクラスタに対する再プロビ
ジョニングが⾏われる前に、ポリシー構成を保存しておく必要があります)
。
www.citrix.co.jp
Citrix TriScale クラスタリング | ホワイトペーパー
6
既存のクラスタノードがクラスタに再参加する場合(ノードの障害やノードの意図的
な無効化が発⽣した後などに)、クラスタはそのノードの構成をチェックします。ノー
ドの現在の構成と CCO により管理されるノードの構成との間に不一致が存在しない
場合、そのノードは、次に⽰す手法のいずれかを使⽤して自動的に同期されます。
• 完全な同期:構成間の違いが 256 個以上のコマンドに存在する場合、クラスタに
再参加するノードには、CCO 上で実装されているすべての構成が適⽤されます。
• インクリメンタルな同期:構成間の違いが 255 個以下のコマンドに存在する場合、
クラスタに再参加するノードには、異なっている構成のみが適⽤されます。この場
合、構成間の差分が小さいほど同期がより⾼速になります。
クラスタ IP アドレスを通じて CCO にアクセスすることにより同 CCO 上で実施され
た構成のみが、それ以外のクラスタノードに同期されます。NetScaler IP(NSIP)を
通じてクラスタノードにアクセスすることにより実施された構成は、その他のクラス
タノードには同期されません。
共有および非共有 NetScaler 管理 IP アドレスの使用
クラスタリング環境では、NetScaler 管理 IP(MIP)アドレスとサブネット IP(SNIP)
を、共有(striped)または非共有(spotted)のどちらかに設定できます。
• 共有 IP アドレスは、クラスタ内にあるすべてのノード上でアクティブになります。
オーナーノードを指定せずにクラスタ上で構成された IP アドレスは、すべてのク
ラスタノード上でアクティブになります。
• 非共有 IP アドレスは、単一ノード上でのみアクティブであり、その単一ノードに
より所有されているアドレスです。オーナーノードを指定してクラスタ上で構成さ
れた IP アドレスは、オーナーに指定されたノード上でのみアクティブになります。
図 3 に、
3 ノードクラスタにおける共有 IP アドレスと非共有 IP アドレスを⽰します。
仮想 IP(VIP)アドレス 10.102.29.66 はすべてのクラスタノードで共有されますが、
SNIP アドレス 10.102.29.99 は、NS0、NS1、NS2 の各ノード上でのみアクティブに
なります。
www.citrix.co.jp
Citrix TriScale クラスタリング | ホワイトペーパー
7
NetScalar クラスタ
図 3:共有および非共有 IP アドレスを含む 3 ノードクラスタの例
クラスタ内でのトラフィック分散
外部接続デバイス(レイヤ 2 スイッチなど)からアプリケーションの要求/応答を受
け取る特定の NetScaler ノードのことを、フローレシーバーと呼びます。一方、トラ
フィックフローを実際に処理するノードのことを、フロープロセッサと呼びます。フ
ローレシーバーおよびフロープロセッサは両方とも特定クラスタ内のアクティブ
ノードであり、トラフィックを完全に処理できます。
フローレシーバーとして機能しトラフィックを受信するノードを決定するために、
ECMP ルーティング、クラスタアグリゲーション(CLAG)、リンクセットという 3 つ
のトラフィック分散メカニズムのうちのいずれかが使⽤されます。これらの各メカニ
ズムでは、それぞれ異なるアルゴリズムを使⽤してフローレシーバーを決定します。
こうして決定されたフローレシーバーは、内部的なクラスタロジックを使⽤して、ト
ラフィックを処理するノードであるフロープロセッサを選択します。フロープロセッ
サは、アクティブノードとトラフィックフローに基づいて決定されます。
www.citrix.co.jp
Citrix TriScale クラスタリング | ホワイトペーパー
8
NetScalar クラスタ
フローレシーバー
スイッチ/
ルータ
NS0 は、NS2 がフロープロセッサであると決
定し、クラスタバックプレーンを通じて N2 に
トラフィックを振り向けます
スイッチ/
ルータ
フロープロセッサ
クライアント
ネットワーク
サーバー
ネットワーク
図 4:クラスタ内でのトラフィック分散
図 4 に、NetScaler クラスタを通じたクライアント要求の流れを⽰します。クライア
ントは要求を共有 VIP アドレスに送信します。クライアントデータプレーン上で設定
されたトラフィック分散メカニズムにより、クラスタノードの 1 つのフローレシー
バーとして選択されます。フローレシーバーはトラフィックを受信すると、そのトラ
フィックを処理する必要のある適切なフロープロセッサを決定した後、クラスタバッ
クプレーンを経由して、受け取った要求をフロープロセッサに振り向けます。ただし、
フローレシーバーとフロープロセッサが同じ物理マシン上に存在する場合、要求がク
ラスタバックプレーンを通過することはありません。
クラスタノードの状態
クラスタノードの分類には、管理状態、運⽤状態、ヘルス状態という 3 種類の状態が
含まれます。
管理状態:管理状態は、ユーザーがクラスタにノードを追加する場合に設定されます。
管理状態は、各ノードの目的を⽰すために次の状態へと遷移します。
• アクティブ:この状態にあるノードは、その運⽤状態がアクティブであり、ヘルス
状態がアップである場合にトラフィックを処理します。
• パッシブ:この状態にあるノードはトラフィックを処理しませんが、クラスタと完
全に同期した状態を維持します。パッシブノードは、クラスタからノードを削除す
ることなくノードのアップグレードが可能となるため、保守アクティビティの際に
役⽴ちます。
• スペア:この状態にあるノードはトラフィックを処理しませんが、クラスタと完全
に同期した状態を維持します。スペアノードは、クラスタのバックアップノードと
して動作します。アクティブノードの 1 つが使⽤不可になると、運⽤状態にあるス
ペアノードの 1 つが自動的にアクティブノードとなり、トラフィック処理を開始
します。
www.citrix.co.jp
Citrix TriScale クラスタリング | ホワイトペーパー
9
管理状態がアクティブであり、かつ運⽤状態がアクティブであり、かつヘルス状態が
アップであるノードのみが、トラフィックを処理できます。2 ノードクラスタ内の 1
つのノードのヘルス状態がダウンになると、残りのノードが機能し続けることでトラ
フィックを処理します。
クラスタの調整
調整を⾏うためのクラスタノードを選出し、障害発⽣時に完全な信頼性を保証するた
めに、次のような手法が採⽤されています。
実⾏中のクラスタには、1 つの選出された構成コーディネータ(CCO)があります。
この選出プロセスは自動化されています。選出された CCO は、クラスタ全体が 1 つ
のシステムとして動作するために必要となるあらゆるアクションを取り扱う責任を
負います。このアクションには、クラスタノードの追加や削除、必要に応じたトラ
フィックの再バランス化の処理などが含まれます。
クラスタ内の各ノードは、当該クラスタに関する最新情報を保持しています。クラス
タにはフェイルオーバー機能が組み込まれているため、障害発⽣時には、任意のノー
ドが別のノードのワークロードを引き継ぐことができます。クラスタは、それが提供
するすべてのリンクおよびサービスに関して、トポロジー、接続、到達可能性などの
ステータスを継続的に監視します。
変更(ノードの参加/脱退、ダウンストリームルータの障害など)が検出されると、す
べてのノード上で分散アルゴリズムが実⾏され、最大限に接続されているノードの集
合が⾒つけられます。これにより、最も良い条件で接続されているノードのサブセッ
トが選択され、そのサブセットが当該クラスタを通じてトラフィック処理を実施する
ことが保証されます。接続を失ったノードは、自動的にトラフィック処理担当から外
されます。
クラスタ管理
NetScaler クラスタ導入環境は、クラスタ管理 IP(CLIP)を通じてアクセスできる中
央一元管理型のダッシュボードを通じて管理されます。このダッシュボードは、すべ
てのノードを含むクラスタ環境全体のビューを提供するほか、詳細な監視やトラブル
シューティングを実施するためのノード単位の詳細ビューを提供します。
また、中央での一元的な監視および管理ソリューションである NetScaler Command
Center は、クラスタの監視と管理をサポートしており、次のような運⽤タスクを実施
できます。
• クラスタのセットアップ:既存のクラスタ化されていない NetScaler アプライアン
スを、単一クラスタ内のノードとして再構成できます。
• ノードの追加/削除:ノードを既存のクラスタにインクリメンタルに追加できます。
またはノードを既存のクラスタから削除できます。
• 中央での一元監視:クラスタノードの性能をリアルタイムベースで監視できます。
• レポートやログ情報の収集:すべてのクラスタノードから収集した統計情報やログ
を取得できます。
www.citrix.co.jp
Citrix TriScale クラスタリング | ホワイトペーパー
10
クラスタによる NetScaler 機能のサポート
NetScaler は、最もポピュラーで一般的に導入されている NetScaler の機能をサポー
トしています。これには次の機能が含まれます。
• 負荷分散
• コンテンツ切り替え
• SSL オフローディング
• 圧縮
• ルーティング
• アプリケーションファイアウォール
• ActionAnalytics
• 帯域幅ベースのスピルオーバー
• コンテンツの書き換え
• L4 サービス拒否(DoS)攻撃に対する防御
• Nitro RESTful API
• HTTP DoS 攻撃に対する防御*
• 静的および動的キャッシング*
• DNS キャッシング*
*単一ノードでのみサポート
また、各ノードは同じフォームファクター(NetScaler MPX™物理アプライアンスま
たは NetScaler VPX™仮想アプライアンス)
を持つ必要があるほか、
最大キャパシティ
レーティングが一致していること、同じ NetScaler ソフトウェアのエディションを含
んでいること、同じ NetScaler 機能をライセンスしていることが必要です。
障害管理とフォールトトレランス
NetScaler クラスタリングは、パーシステンス情報や SSL ハンドシェイクなどのセッ
ションベースの情報をレプリケートします。また、ヘルスチェックの応答やサーバー
応答時間などを含めることで、クラスタ全体に関する一定したビューが維持されます。
これにより、例えば、障害後に別のノードに振り向けられる HTTP トランザクション
のリトライが正しく動作し、正しいサーバーに対して負荷分散が⾏われることが保証
されます。
多くの筐体ベースのクラスタリングソリューションでは、単一ノードの障害により全
ノードを通じたすべての接続のドロップが引き起こされる可能がありますが、
NetScaler クラスタリングでは、そのようなソリューションとは異なり、より効果的
な障害時の情報損失対応モデルを実装できます。あらゆるシナリオにおいて、クラス
www.citrix.co.jp
Citrix TriScale クラスタリング | ホワイトペーパー
11
タ内の情報の損失は、発⽣した損失の量に⽐例します。例えば、5 ノードクラスタ内
の 1 つのノードが故障した場合、発⽣する損失は 20 パーセントになります。すべて
の障害シナリオにおいて、クラスタは、ワークロードが残りのノード間で公平に分割
されることを継続して保証します。
クラスタで損失が発⽣した場合や、クラスタがノードの追加や削除により回復を⾏う
場合、NetScaler クラスタリングではリカバリ時に他のクラスタリングよりもコスト
がかかりません。これは非常に重要です。なぜなら、NetScaler クラスタリングを使
⽤しない場合、単一ノードの損失は「カスケード障害」を引き起こす可能性があり、
結果として起こるリカバリフェーズによりさらに多くのノードで障害が引き起こさ
れる可能性があるためです。
例えば、NetScaler クラスタリングでは、1 つのノードに障害が発⽣すると、そのノー
ドが担当していたワークロードは残りのノード間で公平に分割されます。一方、その
他のクラスタリングでは、通常、障害の起きたノードの負荷全体が別の 1 台のノード
に配置されます。これにより、その 2 番目のノードにも同様に障害が発⽣し、結果と
してカスケード障害が引き起こされる可能性があります。
TriScale クラスタリングの実施
クラスタリングを使⽤すると、1 つまたは複数のアプリケーションにサービスを提供
する NetScaler ノードの数を、必要なキャパシティに応じて動的に増減できます。新
しいノードの追加は簡単であり、⽣のトラフィックが導入環境内でやり取りされてい
る間でも実施できます。ノードがクラスタに追加されると、その構成は自動的に CCO
と同期されます。
ノードがアクティブになると、トラフィックが段階的にその新しいノードに分散され
ます。既存の接続は同ノードには移動されません。その代わりに、同ノードは、クラ
スタに振り向けられる新しいトラフィックの自分の割り当て分を処理することによ
り、スケールアップに参加します。
また、NetScaler クラスタはスペアノードという概念をサポートしています。スペア
ノードは、トラフィック処理に参加することなくアクティブなクラスタの一部となる
ことができます。スペアノードの構成は CCO と同期され、アクティブノードの障害
が発⽣した場合にはいつでも、スペアノードは故障したノードや到達できないノード
に置き換わることができます。アクティブノードが何らかの原因でダウンした場合、
スペアノードがアクティブ状態となり、故障したノードに置き換わります。
このような置き換えメカニズムは完全に自動化されており、管理者の介入を必要とし
ません。スペアキャパシティのサポートにより、導入環境に冗⻑性を提供できるほか、
従来型の HA ペア環境に取って代わる有望なソリューションを提供できます。⾼度な
クラスタの信頼性と持続的なキャパシティを保証するために、ベストプラクティスと
して、1 つのクラスタ内では 5〜10 個のアクティブノードにつき 1 個のスペアノード
を導入することを推奨します。
www.citrix.co.jp
12
Citrix について
Citrix(NASDAQ:CTXS)は、企業と人々の新しい働き方を実現するソフトウェア定義型のワークプレース、仮想化統合、モビリティ管
理、ネットワーキング、SaaS ソリューションのリーディングカンパニーです。シトリックスのソリューションは、あらゆるデバイス、
あらゆるネットワーク、あらゆるクラウドからのアプリケーション、デスクトップ、データ、コミュニケーションの迅速な利⽤を可能に
する安全なモバイルワークプレースを実現し、ビジネスにモビリティをもたらします。シトリックスの 2014 年度の年間売上⾼は 31.4 億
ドルで、そのソリューションは世界中の 33 万以上の企業や組織において、1 億人以上の人々に利⽤されています。シトリックスの詳細
については www.citrix.co.jp をご覧ください。
©2015 Citrix Systems, Inc. All rights reserved. Citrix、NetScaler、TriScale、VPX™および MPX は、Citrix Systems, Inc.またはその子会社
の登録商標であり、米国の特許商標局およびその他の国に登録されています。その他の商標や登録商標はそれぞれの各社が所有権を有す
るものです。
E0513/PDF
J0615/PDF
www.citrix.co.jp