Junos Space高可用性ソフトウェア・アーキテクチャの概要
Junos Spaceプラットフォームは、以下の機能で構成されるクラスター化された複数階層の分散型アーキテクチャにより、99.9999%の可用性を保証するように設計されています。
ブラウザーベースの標準 Web 2.0 GUI クライアントと REST/HTTPS ベースの NBI クライアント
トップレベルのロードバランサーとしてのApache Load Balancer
J2EE 技術をベースにした JBoss アプリケーション サーバーでアプリケーション フレームワークを提供
永続的データを管理するための MySQL データベース
Junos Spaceアプリケーションのデバイスイメージファイルとファイルを保存するためのCassandra分散ファイルシステム
以下のセクションでは、Junos Space アーキテクチャについて説明し、Junos Space クラスター内のノード間の通信に関する基本的な要件を示します。
Junos Spaceソフトウェアアーキテクチャ
図 1 は、Junos Space ソフトウェア アーキテクチャの概要を示しています。Junos Spaceサービスは、クラスタの単一の仮想IPアドレスを使用して、GUIおよびNBIクライアントからアクセスできます。
クライアントからのリクエストは、Apache HTTPロードバランサーを通じて、クラスタ内の複数のノード間で負荷分散されます。このリクエストは、クラスタ内の2つのノード上のアクティブホットスタンバイ設定に展開されます。仮想IP(VIP)アドレスを所有するノード上のロードバランサーは、アクティブなインスタンスとして機能します。VIP アドレスを現在所有しているノードがダウンした場合、Linux 仮想サーバー(LVS)クラスタ内の他のノードがこの障害を検出し、自動的に VIP アドレスを引き継ぐことになります。HTTP要求は、ラウンドロビンアルゴリズムを使用して、クラスタ内のすべてのアクティブなJBossサーバーで負荷分散されます。
クラスター内のアクティブな JBoss サーバーは、以下のサービスを含む Junos Space アプリケーションのアプリケーション フレームワークを提供します。
アプリケーションと関連ビジネス ロジックのホスティング
クラスター内のアプリケーション・レベルのロード・バランシング
アプリケーションの監視と自動回復
クラスター ノードの監視と自動回復
JDBC を介して MySQL DB に直接アクセスできるデータベース・サービス
デバイス仲介論理のホスティング
ロードバランシングアーキテクチャ
Junos Space クラスターには、次の 2 種類の負荷が表示されます。
GUI および NBI クライアントからの受信リクエスト
管理対象デバイスとの通信
Junos Space は、クラスター内のすべてのアクティブ ノードで受信要求の負荷分散を行えるように設計されています。GUIおよびNBIクライアントからのリクエストは、Apache HTTPロードバランサーのアクティブインスタンスが処理するHTTPリクエストとして到着します。ロード バランサーは、ラウンドロビン アルゴリズムを使用して、クラスター内のすべてのアクティブな JBoss サーバーにリクエストを分散します。スティッキーセッションは、特定のGUIセッションに関連付けられたすべてのHTTPリクエストが、そのセッションのライフタイム中に同じJBossサーバーによって提供されるようにするために使用されます。JBoss のビジネス ロジックは、アプリケーション レベルのロード バランシングを目的として、複雑なリクエストを、クラスタ内の複数のノードに分散する一連のサブジョブとして処理します。たとえば、100 台のデバイスを再同期する 4 つのノード Space クラスターへの単一の要求は、4 つの異なるノードで実行される 4 つのサブジョブに分割され、各ノードは 25 台のデバイスを再同期します。ロードバランシングの詳細な概要については、 Junos Spaceクラスタ内の論理クラスタについてのトピックを参照してください。
デバイスレベルのロードバランシングを実行するために、Junos SpaceはDML(デバイス仲介レイヤー)でロジックを採用し、クラスタ内のすべてのアクティブノードにデバイス接続が均等に分散されるようにします。デバイスレベルのロードバランシングは、個々のノードが提供するデバイス接続数を比較し、最小ロードされたノードを選択することで、デバイス検出中に実行されます。ノードがダウンすると、関連するすべてのデバイス接続がクラスタ内の残りのアクティブノードに分散されるため、ノードの停止がデバイス接続に影響を与えるのを防ぎます。デバイス接続管理の詳細な概要については、「 DMI 接続の高可用性管理について」のトピックを参照してください。
データベース アーキテクチャ
MySQL Enterprise Edition は、プラットフォームとアプリケーションの両方の永続データを管理するためのデータベース サービスを提供するために使用されます。MySQL DB サーバーは、アクティブスタンバイ構成のクラスター内の 2 つのノードで実行されています。データベーストランザクションは、ほぼリアルタイムで 2 つの MySQL サーバー間で複製されます。各 Junos Space クラスター内で形成される MySQL クラスターについては、「 Junos Space クラスター 内の論理クラスターについて」を参照してください。
Junos Space プラットフォームには障害およびパフォーマンス管理のためのネットワーク監視機能も組み込まれており、障害およびパフォーマンス関連データを格納するために PostgreSQL リレーショナル データベース サービスを使用します。PostgreSQL サーバーは、アクティブ/アクティブ構成の Space クラスター内の 2 つのノードで実行され、リアルタイム レプリケーションにより、障害データとパフォーマンス データが維持されます。ノードの 1 つに障害が発生しても、そのデータを引き続き使用できます。詳細については、「 ネットワーク監視の高可用性」を参照してください。
Junos Spaceクラスタ内のノード間通信
Spaceクラスタ内のノード間のシームレスな通信を容易にし、クラスタの最適なパフォーマンスを実現するには、以下を確認する必要があります。
Junos Spaceクラスター内のすべてのノードには、同じサブネット内のIPアドレスが設定されています。これは、VIP スイッチオーバー メカニズムが正しく動作することが重要です。
Spaceクラスタ内のすべてのノードは、1 Gbpsまたは100 Mbpsのローカルネットワークで接続され、遅延は無視できます。
Junos Space クラスタ内の JBoss サーバーは、UDP マルチキャストを使用して通信し、論理クラスタを形成します。
メモ:UDP マルチキャスト トラフィックは、クラスタ内のノード内で許可する必要があります。つまり、クラスタを相互接続するスイッチで IGMP スヌーピングを無効にするか、ノード間で UDP マルチキャストを許可するように明示的に設定する必要があります。