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