2.19.1 マルチノード機能とは
マルチノード機能とは,複数のHADBサーバを連携することによって,検索系SQL(SELECT文)の処理の負荷分散を実現する機能のことです(スケールアウトによる負荷分散)。
マルチノード機能を使用した負荷分散の例を次の図に示します。
- [説明]
-
上記の例では,5つのHADBサーバで検索系SQLの処理を実行し,負荷分散を行っています。
-
HADBクライアントからのAPの接続要求は,プライマリノードのHADBサーバが受け付けます。
-
プライマリノードのHADBサーバが,負荷分散の制御を行います。プライマリノードのHADBサーバが負荷の少ないセカンダリノードまたはワーカーノードのうちの1つのノードを選択し,そのノードで検索系SQLを実行します。検索系SQLの処理をセカンダリノードまたはワーカーノードに振り分けることで負荷分散を実現しています。
-
上記の図中に出てくる用語について説明します。
-
マルチノード構成
マルチノード機能を使用している複数のHADBサーバから成るシステム構成をマルチノード構成といいます。
-
プライマリノード
マルチノード機能の制御を行うHADBサーバがあるノードをプライマリノードといいます。プライマリノードは必ず1つ必要になります。
プライマリノードのHADBサーバでは,更新系SQL,定義系SQL,一部のコマンドなど,データベースの更新が発生する処理などが実行されます。
また,APまたはコマンドの接続要求は,プライマリノードのHADBサーバが受け付けます。
-
セカンダリノード
検索系SQLを処理するHADBサーバがあるノードをセカンダリノードといいます。セカンダリノードは,1〜3つ設定できます。
セカンダリノードのHADBサーバでは,検索系SQLの処理が実行されます。
また,セカンダリノードは,プライマリノードの予備のノードになります。プライマリノードで障害が発生した場合,HAモニタの制御によってセカンダリノードの1つをプライマリノードに変更して業務を続行します。詳細については,「2.19.4 マルチノード構成からのノードの切り離し(プライマリノード,セカンダリノード)」の「(1) プライマリノードでノード障害が発生した場合」を参照してください。
-
ワーカーノード
検索系SQLを処理するHADBサーバがあるノードをワーカーノードといいます。ワーカーノードは,0~8つ設定できます。
ワーカーノードのHADBサーバもセカンダリノードのHADBサーバと同様に,検索系SQLの処理が実行されます。
ただし,ワーカーノードは,セカンダリノードとは異なり,プライマリノードの予備のノードにはなりません。そのため,プライマリノードで障害が発生しても,ワーカーノードがプライマリノードになることはありません。
- メモ
-
-
セカンダリノードおよびワーカーノードの負荷が高い場合は,プライマリノードでも検索系SQLが実行されます。
-
セカンダリノードおよびワーカーノードのHADBサーバでは,データベースの更新が発生する処理を実行することはできません。そのため,更新系SQL,定義系SQL,およびデータベースの更新が発生するコマンド(adbimportコマンドなど)は,セカンダリノードおよびワーカーノードのHADBサーバでは実行されません。データベースの更新が発生しない一部のコマンドについては,セカンダリノードおよびワーカーノードのHADBサーバで実行できます。
-
-
HAモニタ
マルチノード機能を使用する場合,HAモニタが必要になります。HAモニタは,プライマリノードおよびセカンダリノードの状態を監視し,プライマリノードまたはセカンダリノードに障害が発生した場合,ノードの切り離しを実行する製品です。HAモニタの機能については,「2.19.3 ノードの管理」を参照してください。
HAモニタは,プライマリノードおよびセカンダリノードにインストールします。プライマリノードはHAモニタの実行系として動作し,セカンダリノードはHAモニタの待機系として動作します。
なお,ワーカーノードには,HAモニタをインストールしません(ワーカーノードはHAモニタの管理対象外です)。
- メモ
-
HADBサーバがインストールされているサーバマシンと,そのサーバマシンにインストールされているOS,HADBサーバ,およびHAモニタを包括したものをノードといいます。
マルチノード機能使用時の処理性能は,ハードウェア環境や処理件数に依存します。また,マルチノード機能を使用する場合は,マルチノード機能を使用しない場合に比べて,ノード間の通信処理や同期処理のオーバヘッドによって,SQL文およびコマンドの実行処理に時間が掛かることがあります。