注意
本機能は、以下の製品で使用可能です。
Interstage Application Server Enterprise Edition
Interstage Application Server Standard-J Edition
IJServerクラスタとWebサーバをそれぞれ別のサーバマシンに分離して負荷分散運用を行う場合に、分散先のIJServerクラスタマシンやWebコンテナの稼動状況を監視し、故障したIJServerクラスタマシンやWebコンテナを自動的に振り分けの対象から除外することや、故障から復旧したIJServerクラスタマシンやWebコンテナを自動的に振り分けの対象に戻すことができます。
Webサーバコネクタの故障監視機能によって振り分けの対象から除外されたIJServerクラスタマシンやWebコンテナに対しては、Webサーバコネクタがリクエストの振り分けを抑止します。
故障監視方式
故障監視機能には、以下の2種類の故障監視方式があります。
IJServerクラスタマシンのIPアドレスに対してping(ICMP ECHO)を発行し、応答(ICMP ECHO REPLY)の有無によって、稼動状況を監視します。
例えば、上図のように、故障監視機能はマシン1とマシン2のIPアドレスに対して定期的(例えば60秒ごと)にpingを発行し、応答があるかどうかを監視します。マシン1のハード故障などによってpingの応答がなくなると、自動的に振り分けの対象から除外され、Webサーバコネクタはマシン1へのリクエストの振り分けを停止します。
故障したマシンを修理して、再びpingの応答が返るようになると、自動的に振り分けの対象に戻され、Webサーバコネクタは再びマシン1へリクエストの振り分けを開始します。
Webコンテナがリクエストを受け付けるTCPポートに対して、socketのconnectによるTCPコネクションの接続可否によって、Webコンテナの稼動状況を監視します。
例えば、上図のように、故障監視機能はマシン1とマシン2上でオープンされているWebコンテナがリクエストを待ち受けているTCPポートに対して定期的(例えば60秒ごと)にconnectを行い、接続できるかどうかを監視します。マシン1のIJServerAの停止などによりWebコンテナがリクエストを待ち受けるTCPポートがクローズし、connectによるTCPコネクション接続ができなくなると、自動的に振り分け対象から除外され、Webサーバコネクタは、マシン1のIJServerAのWebコンテナへのリクエストの振り分けを停止します。
IJServerAを起動して、再びconnectによるTCPコネクション接続ができるようになると、自動的に振り分けの対象に戻され、Webサーバコネクタは再びマシン1のIJServerAのWebコンテナへのリクエストの振り分けを開始します。
事前準備
故障監視機能を使用する場合には、事前に以下の設定が必要です。
故障監視機能は、IJServerクラスタとWebサーバを分離して運用する構成の場合だけ使用できます。Webサーバ用マシンのInterstage管理コンソールで、[システム] > [環境設定]タブ > [Servletサービス詳細設定] > [Webサーバとワークユニットを同一のマシンで運用する]で[運用しない]を選択します。また、isj2eeadminコマンドを使用して設定することもできます。詳細は、「リファレンスマニュアル(コマンド編)」を参照してください。
設定項目
故障監視機能の設定は、[Webサーバ] > 「Webサーバ名」 > [Webサーバコネクタ] > [故障監視設定]タブで行います。また、isj2eeadminコマンドを使用して設定することもできます。詳細は、「リファレンスマニュアル(コマンド編)」を参照してください。
以下の設定項目があります。
項目名 | 意味 |
---|---|
故障監視方式 | 以下のいずれかの監視方法を選択します。
|
故障監視間隔 | ping監視またはポート監視による稼動状況の監視を実施する間隔を設定します。 |
応答待ち時間 | IJServerクラスタマシンにpingまたはconnectを発行してから、応答が返るまでの待ち時間を設定します。 |
故障時のリトライ回数 | IJServerクラスタマシンにpingまたはconnectを発行してから、応答待ち時間を超えても応答がなかった場合のリトライ回数を設定します。 |
起動待ち時間 | Webサーバコネクタ起動時に、故障監視機能が未起動の場合、故障監視機能の起動待ちをする時間を設定します。 |
運用準備の具体例
以下のような運用を行う場合について、具体的な運用手順例を説明します。
2台のIJServerクラスタマシンに負荷分散を行う構成で、IJServerクラスタマシンの稼動状況を監視する
2台のIJServerクラスタマシンに負荷分散を行う構成で、IJServerクラスタマシンの稼動状況およびWebコンテナの稼動状況を監視する
運用準備の具体例1
2台のIJServerクラスタマシンに負荷分散を行う構成で、IJServerクラスタマシンの稼動状況を監視する例を示します。
条件
サーバマシンA(IPアドレス:172.16.30.1) | Webサーバを運用 |
サーバマシンB(IPアドレス:172.16.30.2) | IJServerクラスタを運用 |
サーバマシンC(IPアドレス:172.16.30.3) | IJServerクラスタを運用 |
設定手順
サーバマシンBでIJServerクラスタを作成します。
サーバマシンCでIJServerクラスタを作成します。
サーバマシンAのInterstage管理コンソールで、[Webサーバ] > 「Webサーバ名」 > [Webサーバコネクタ] > [新規作成]タブを選択し、以下の設定内容の接続先情報を作成します。
項目名 | 設定値例 |
---|---|
ワークユニット名 | MyIJServer |
ServletコンテナのIPアドレス:ポート番号 | 172.16.30.2:28090 |
サーバマシンAのInterstage管理コンソールで、[Webサーバ] > 「Webサーバ名」 > [Webサーバコネクタ] > [故障監視設定]タブを選択し、以下の設定内容で故障監視機能を設定します。
項目名 | 設定値例 |
---|---|
故障監視方式 | ping監視 |
故障監視間隔 | 60 |
応答待ち時間 | 10 |
故障時のリトライ回数 | 3 |
サーバマシンAのInterstage管理コンソールで、[サービス] > [Webサーバ] > 「Webサーバ名」 > [状態]タブを選択し、Webサーバを再起動してください。
運用準備の具体例2
2台のIJServerクラスタマシンに負荷分散を行う構成で、IJServerクラスタマシンの稼動状況およびWebコンテナの稼動状況を監視する例を示します。
条件
サーバマシンA(IPアドレス:172.16.30.1) | Webサーバを運用 |
サーバマシンB(IPアドレス:172.16.30.2) | IJServerクラスタを運用 |
サーバマシンC(IPアドレス:172.16.30.3) | IJServerクラスタを運用 |
設定手順
サーバマシンBでIJServerクラスタを2つ作成します。
サーバマシンCでIJServerクラスタを2つ作成します。
サーバマシンAのInterstage管理コンソールで、[Webサーバ] > 「Webサーバ名」 > [Webサーバコネクタ] > [新規作成]タブを選択し、以下の設定内容の、2つの接続先情報を作成します。
項目名 | 設定値例 |
---|---|
ワークユニット名 | MyIJServer1 |
ServletコンテナのIPアドレス:ポート番号 | 172.16.30.2:28090 |
項目名 | 設定値例 |
---|---|
ワークユニット名 | MyIJServer2 |
ServletコンテナのIPアドレス:ポート番号 | 172.16.30.2:28091 |
サーバマシンAのInterstage管理コンソールで、[Webサーバ] > 「Webサーバ名」 > [Webサーバコネクタ] > [故障監視設定]タブを選択し、以下の設定内容で故障監視機能を設定します。なお、ポート監視を選択した場合の監視先は、3の手順の「ServletコンテナのIPアドレス:ポート番号」で設定したすべてのIPアドレス:ポート番号となります。
項目名 | 設定値例 |
---|---|
故障監視方式 | ポート監視 |
故障監視間隔 | 60 |
応答待ち時間 | 10 |
故障時のリトライ回数 | 3 |
サーバマシンAのInterstage管理コンソールで、[サービス] > [Webサーバ] > 「Webサーバ名」 > [状態]タブを選択し、Webサーバを再起動してください。
稼動状況の表示
Webサーバマシンで、以下のコマンドを使用することにより、分散先のIJServerクラスタの稼動状況を表示できます。コマンドの詳細は、「リファレンスマニュアル(コマンド編)」を参照してください。
svmondspstat |
すべてのIJServerクラスタの状態を表示する
オプション指定なしでsvmondspstatコマンドを実行することにより、すべての分散先についてのIJServerクラスタの稼動状況が表示されます。
IJServerクラスタ名がMyIJServer1とMyIJserver2の2つのIJServerクラスタへの振り分け
振り分け先のServletコンテナのIPアドレス:ポート番号が以下の4つ
172.16.30.2:9000
172.16.30.3:9000
172.16.30.2:9001
172.16.30.3:9001
故障監視方式がポート監視
MyIJServer2の172.16.30.2:9001だけ故障中
上記の条件の場合、以下のように表示されます。
Status IP Address : Port Number : WorkUnit Name : WebServer Name --------------------------------------------------------------------- ACTIVE 172.16.30.2 : 9000 : MyIJServer1 : FJapache ACTIVE 172.16.30.3 : 9000 : MyIJServer1 : WEB001 DOWN 172.16.30.2 : 9001 : MyIJServer2 : FJapache ACTIVE 172.16.30.3 : 9001 : MyIJServer2 : WEB001
特定のIJServerクラスタの状態だけを表示する
以下のように、Webサーバコネクタの「ワークユニット名」で設定したワークユニット名を指定してコマンドを実行することにより、特定のIJServerクラスタの稼動状況だけを表示できます。
svmondspstat -i MyIJServer1 |
IJServerクラスタ名がMyIJServer1とMyIJserver2の2つのIJServerクラスタへの振り分け
振り分け先のServletコンテナのIPアドレス:ポート番号が以下の4つ
172.16.30.2:9000
172.16.30.3:9000
172.16.30.2:9001
172.16.30.3:9001
故障監視方式がポート監視
MyIJServer1のServletコンテナがすべて稼働中
上記の条件の場合、以下のように表示されます。
Status IP Address : Port Number : WorkUnit Name : WebServer Name --------------------------------------------------------------------- ACTIVE 172.16.30.2 : 9000 : MyIJServer1 : FJapache ACTIVE 172.16.30.3 : 9000 : MyIJServer1 : WEB001
留意点
故障監視機能を使用する場合、下記の留意点があります。
Webサーバコネクタの「ServletコンテナのIPアドレス:ポート番号」の項目で設定したすべての分散先を、故障監視設定で設定した条件で監視します。IJServerクラスタごとに別条件での監視を行うことはできません。
WebサーバマシンとIJServerクラスタマシンの間にファイアウォールを設置する場合、ファイアウォールで、WebサーバマシンのIPアドレスから分散先のIJServerクラスタマシンのIPアドレス宛てにpingの通過を許可する設定を行う必要があります。
WebサーバマシンとIJServerクラスタマシンの間の経路に設置されたネットワーク機器の高負荷などによってpingまたはconnectの応答の遅延やロストが発生すると、IJServerクラスタが実際には稼動状態であっても故障と判定されてしまう場合があります。WebサーバとIJServerクラスタマシンの経路の状態に沿って、「応答待ち時間」や「故障時のリトライ回数」に適切な値を設定してください。
WebサーバマシンとIJServerクラスタマシンの間にIPCOMを設置して負荷分散を行う場合、本機能を使用することはできません。
故障監視機能を有効にした場合や故障監視機能の設定変更を行った場合、Webサーバを起動または再起動した時点で設定変更された内容で振り分け先の故障監視を開始します。
また、設定変更後に、Webサーバの再起動を行わない場合、クライアントからの最初のアクセスが発生した時点で、設定変更された内容で振り分け先の故障監視を開始します。
Webサーバの起動直後から、故障監視機能によって故障と判定されるまでの間、故障中の振り分け先にリクエストが振り分けられてしまうことがあります。
振り分け先の状態の取得開始から、故障と判定されるまでの時間は、「応答待ち時間×故障時のリトライ回数」です。
故障監視機能を有効にした後や故障監視機能の設定変更を行った後、Webサーバの再起動を行わなかった場合、クライアントからの最初のアクセスが発生した時点で振り分け先が故障していても、故障監視機能によって故障と判定されるまでの間、故障中の振り分け先にリクエストが振り分けられてしまうことがあります。
振り分け先の状態の取得開始から、故障と判定されるまでの時間は、「応答待ち時間×故障時のリトライ回数」です。
実際に振り分け先が故障してから、故障監視機能によって故障と判定されるまでの間、故障中の振り分け先にリクエストが振り分けられてしまうことがあります。
実際に振り分け先が故障してから、故障と判定されるまでの時間は、「故障監視間隔+応答待ち時間×故障監視のリトライ回数」以内です。
実際に振り分け先が故障してから、故障監視機能によって故障と判定されるまでの間に、故障中の振り分け先にリクエストが振り分けられた場合、そのリクエストについては、応答が1分程度以上遅延するか、またはWebブラウザから「500 Internal Server Error」のステータスコードやエラーメッセージが通知されます。
この場合、故障検出が行われた後に再度アクセスすることにより、稼動中の振り分け先にリクエストが振り分けられます。
故障中の振り分け先が復旧してから、故障監視機能によって復旧と判断されるまでの間は、復旧した振り分け先にリクエストは振り分けられません。
実際に振り分け先が復旧してから、復旧と判定されるまでの時間は、「故障監視間隔」以内です。
故障しているサーバが存在する状態で、故障監視する設定を行うか、または故障監視条件を変更するか、または監視対象のサーバを動的に追加した場合、故障していたサーバの復旧時に、いったん故障検出のメッセージが出力され、すぐに復旧検出のメッセージが表示される場合があります。