Junos Space高可用性ソフトウェアアーキテクチャの概要
Junos Spaceプラットフォームは、以下の機能で構成されるクラスター化された多層分散アーキテクチャにより、99.9999%の可用性を実現するように設計されています。
標準のブラウザベースの Web 2.0 GUI クライアントおよび REST/HTTPS ベースの NBI クライアント
トップレベルのロードバランサーとしてのApacheロードバランサー
J2EE技術をベースにしたJBossアプリケーションサーバでアプリケーションフレームワークを提供
永続データを管理するためのMySQLデータベース
Cassandra分散ファイルシステムにより、デバイスイメージファイルとJunos Spaceアプリケーションのファイルを保存する
以下のセクションでは、Junos Spaceのアーキテクチャについて説明し、Junos Spaceクラスタ内のノード間の通信に関する基本的な要件を示します。
Junos Spaceソフトウェアアーキテクチャ
図1 に、Junos Spaceソフトウェアアーキテクチャの概要を示します。Junos Space サービスは、クラスタの単一の仮想 IP アドレスを使用して、GUI および NBI クライアントからアクセスできます。
クライアントからの要求は、クラスター内の 2 つのノード上のアクティブ/ホット スタンバイ構成でデプロイされる Apache HTTP ロード バランサーを介して、クラスター内の複数のノード間で負荷分散されます。仮想 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 クラスタへの 1 つのリクエストは、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サーバーは、スペースクラスター内の2つのノードでアクティブ-アクティブ構成でリアルタイムレプリケーションで実行され、これらのノードのいずれかに障害が発生した場合でも障害データとパフォーマンスデータを引き続き使用できるようにします。詳細については、「 ネットワーク監視の高可用性」を参照してください。
Junos Spaceクラスタ内のノード間のノード間通信
Space クラスタ内のノード間のシームレスな通信を容易にし、クラスタの最適なパフォーマンスを実現するには、次のことを確認する必要があります。
Junos Spaceクラスタ内のすべてのノードは、同じサブネット内のIPアドレスを使用して設定されます。これは、VIP スイッチオーバー メカニズムが正しく機能するために重要です。
Spaceクラスタ内のすべてのノードは、1Gbpsまたは100Mbpsのローカルネットワークによって接続されており、レイテンシはごくわずかです。
Junos Space クラスタ内の JBoss サーバーは、UDP マルチキャストを使用して通信し、論理クラスタを形成します。
メモ:クラスタ内のノード内では UDP マルチキャスト トラフィックを許可する必要があります。これは、クラスタを相互接続するスイッチで IGMP スヌーピングを無効にするか、ノード間の UDP マルチキャストを許可するように明示的に設定する必要があることも意味します。