ハートビート間隔設定で、障害の起きたサーバーがないかを調べるシステム・チェックの間の時間を構成できます。
-heartbeat オプションは startOGserver コマンドのパラメーターで、カタログ・サーバーにのみ適用されます。
このタスクについて
フェイルオーバーの構成は、使用している環境のタイプによって異なります。
スタンドアロン環境を使用している場合は、コマンド行でフェイルオーバーを構成できます。
WebSphere® Application Server Network Deployment 環境を使用している場合は、
WebSphere Application Server Network Deployment 管理コンソールでフェイルオーバーを構成する必要があります。
手順
- スタンドアロン環境のフェイルオーバーを構成します。
ハートビート間隔は、startOgServer スクリプト・ファイルの -heartbeat パラメーターを使用して
コマンド行で構成できます。
このパラメーターは以下のいずれかの値に設定します。
表 1. ハートビート間隔値 |
アクション |
説明 |
0 |
標準 (デフォルト) |
通常、30 秒以内にフェイルオーバーが検出されます。 |
-1 |
高速 |
通常、5 秒以内にフェイルオーバーが検出されます。 |
1 |
低速 |
通常、180 秒以内にフェイルオーバーが検出されます。 |
高速のハートビート間隔は、プロセスおよびネットワークが安定している場合に役立ちます。ネットワークまたはプロセスが最適に構成されていないと、ハートビートを見逃す可能性があり、そうなった場合は誤って障害検出が示されることがあります。
- WebSphere Application Server 環境のフェイルオーバーを構成します。
WebSphere Application Server Network Deployment バージョン
6.0.2 以降は、WebSphere eXtreme
Scale のフェイルオーバーを高速で行えるように構成できます。
ハード障害の場合のデフォルトのフェイルオーバー時間は、約 200 秒です。ハード障害は、物理的なコンピューターまたはサーバーの破損、ネットワーク・ケーブルの切断、オペレーティング・システム・エラーのことです。
プロセスの異常終了やソフト障害による障害は、一般的に 1 秒未満でフェイルオーバーされます。
ソフト障害の障害検出は、デッド・プロセスのネットワーク・ソケットがそのプロセスをホスティングするサーバーのオペレーティング・システムにより自動的にクローズされるときに発生します。
コア・グループのハートビート構成
WebSphere Application Server プロセスで実行されているWebSphere eXtreme
Scale は、アプリケーション・サーバーのコア・グループ設定のフェイルオーバー特性を継承します。
以下のセクションでは、以下のようなさまざまなバージョンの WebSphere Application Server Network Deployment のコア・グループ・ハートビート設定を構成する方法について説明します。
- WebSphere Application Server Network Deployment バージョン 6.x または 7.x のコア・グループ設定を更新します。
ハートビート間隔は、WebSphere Application Server のバージョン 6.0 からバージョン 6.1.0.12 までは秒単位、バージョン 6.1.0.13 からはミリ秒単位で指定します。また、欠落ハートビートの数も指定する必要があります。この値は、
ピア Java 仮想マシン (JVM) に障害が起きたと見なされるまでに、容認される欠落ハートビートの数を示します。
ハード障害の検出時間は、ほぼハートビート間隔と欠落ハートビート数の積です。
これらのプロパティーは、WebSphere 管理コンソールで、コア・グループに対してカスタム・プロパティーを使用して指定します。構成について詳しくは、
コア・グループ・カスタム・プロパティーを参照してください。
アプリケーションによって使用されるすべてのコア・グループに対して、以下のプロパティーを指定する必要があります。
- ハートビート間隔は、IBM_CS_FD_PERIOD_SEC カスタム・プロパティー (秒単位) または IBM_CS_FD_PERIOD_MILLIS カスタム・プロパティー (ミリ秒単位、バージョン 6.1.0.13 以降が必要) を使用して指定します。
- 欠落ハートビート数は、IBM_CS_FD_CONSECUTIVE_MISSED カスタム・プロパティーを使用して指定します。
IBM_CS_FD_PERIOD_SEC プロパティーのデフォルト値は 20 で、IBM_CS_FD_CONSECUTIVE_MISSED プロパティーのデフォルト値は 10 です。IBM_CS_FD_PERIOD_MILLIS プロパティーを指定すると、設定されている IBM_CS_FD_PERIOD_SEC カスタム・プロパティーがオーバーライドされます。
これらのプロパティーの値は、正の整数値です。
WebSphere Application Server Network Deployment 6.x サーバーで 1500 ミリ秒の障害検出時間を実現するには、以下の設定を使用します。
- IBM_CS_FD_PERIOD_MILLIS = 750 を設定 (WebSphere Application Server Network Deployment バージョン 6.1.0.13 以降)
- IBM_CS_FD_CONSECUTIVE_MISSED = 2 を設定
WebSphere Application Server Network Deployment バージョン 7.0 でのコア・グループ設定を更新します。
バージョン 7.0 の WebSphere Application Server Network Deployment は、フェイルオーバー検出を増減するために調整できる以下の 2 つのコア・グループ設定を提供します。
- ハートビート伝送期間。 デフォルト値は 30000 ミリ秒です。
- ハートビート・タイムアウト期間。 デフォルト値は 180000 ミリ秒です。
これらの設定を変更する方法について詳しくは、WebSphere Application Server Network Deployment インフォメーション・センター: ディスカバリーおよび障害検出の設定を参照してください。
WebSphere Application Server Network Deployment バージョン 7 サーバーで 1500 ミリ秒の障害検出時間を実現するには、以下の設定を使用します。
- ハートビート伝送期間を 750 ミリ秒に設定します。
- ハートビート・タイムアウト期間を 1500 ミリ秒に設定します。
次のタスク
短いフェイルオーバー時間を指定するようにこれらの設定を変更すると、注意すべきシステム・チューニング上の問題が生じます。まず Java はリアルタイム環境ではありません。JVM に長期のガーベッジ・コレクション時間が発生すると、スレッドが遅延する可能性があります。JVM をホスティングするマシンの負荷が大きくなった (JVM 自身またはマシンで実行中の他のプロセスが原因) 場合にも、スレッドが遅延する可能性があります。スレッドが遅延された場合、ハートビートが正確な時間で送信されない可能性があります。最悪の場合、必要なフェイルオーバー時間で遅延が生じる可能性があります。 スレッドが遅延すると、誤障害検出が発生します。
実動環境で誤障害検出が発生しないように、システムを調整し、サイズ設定する必要があります。
これを確実にするには、適切な負荷テストが最善の策です。
注: eXtreme Scale の現行バージョンは、WebSphere Real
Time をサポートします。