ページの先頭行へ戻る
Systemwalker Operation Manager  活用ガイド
FUJITSU Software

1.11 サーバがダウンした場合に自動的に別サーバにジョブを投入させたい

以下のように、スケジュールサーバから実行サーバにジョブを投入する構成で、ジョブの投入時に実行サーバBがダウンしていた場合、自動的に実行サーバAまたは実行サーバCに投入させる方法について説明します。

実行サーバがダウンした場合に、自動的に別サーバにジョブを投入させるには、以下の方法があります。

ポイント

どの方法が良いか迷ったら・・・

以下に、それぞれの運用方法について概要を示すので、用途に合わせて選択してください。

メリット

デメリット

分散実行

最大100台まで分散先サーバを設定可能。特定のサーバがダウンしていた場合、最大10分間該当サーバがダウンしたと認識し、その間、該当サーバを分散先サーバの対象から外す(ジョブの投入を行わないようにする)ことができる

ジョブがどのサーバで実行されるか予測ができない。

実行サーバの二重化

通常第1候補のサーバへ実行。第1候補のサーバがダウンしていた場合だけ、第2候補へ投入。異常時だけ代替サーバで実行するという運用が可能。

第1候補のサーバがダウンした場合、まずは第1候補のサ-バに投入を試みてから第2候補に遷移するため、投入に時間がかかる。


分散実行

本来は負荷分散を目的とし、複数の実行サーバをグループ化して負荷の低い実行サーバにジョブを割り振る機能ですが、グループ内の実行サーバがダウンしていた場合には、ダウンしていたサーバ以外のグループ内の実行サーバで再度割り振りを行い、ジョブが投入されます。

分散実行を利用する場合は、分散実行用のキューを作成する時に、分散先となる実行サーバグループを登録します。手順については、“1.9 ジョブを自動的に負荷の少ないサーバに分散して実行させたい”を参照してください。


参考

実行サーバがダウンしているかどうかの判断は?

一番負荷の低い実行サーバに接続できない場合、リトライの設定にしたがった間隔・回数で実行サーバへの接続をリトライします。リトライしても実行サーバに接続できなかった場合に、実行サーバがダウンしていると判断し、ダウンした実行サーバ以外で一番負荷の低い実行サーバにジョブを依頼します。

なお、実行サーバへの接続は、デフォルトではリトライしません。リトライの設定については、[運用情報の定義]ウィンドウ-[ネットワーク]シートの[ネットワークジョブで接続エラー時のリトライの動作を変更する]で定義できます。


実行サーバの二重化

ネットワークジョブの場合、実行サーバとして第1候補、第2候補を指定しておくことで、第1候補の実行サーバがダウンしていた場合に、第2候補の実行サーバへ自動的にジョブの実行を依頼することができます。

ネットワークジョブの実行サーバを二重化する場合は、第1候補、第2候補の実行サーバをジョブの登録時に定義します。


注意

第1候補から第2候補へ遷移するときに発生するオーバーヘッド

第1候補のサーバが停止状態でジョブが投入された場合に、第1候補が停止状態だとわかっていても、いきなり第2候補の実行サーバに依頼はされません。毎回、第1候補へのリトライ処理を行ってから第2候補の実行サーバへ依頼されるため、第2候補へ遷移するときには必ずオーバーヘッドが発生します。

オーバーヘッドはOS、サーバ、ネットワークの状態に依存します。

手順

以下のいずれかの方法で、第1候補、第2候補の実行サーバを登録してください。

注意

登録できない実行サーバ

第1候補および第2候補に、ローカルホスト名は指定できません。

ジョブ単位で実行サーバを二重化させたい場合

  1. 実行サーバを二重化させたいジョブの[登録-ジョブ]ウィンドウ-[基本情報]シートを表示します。

  2. [登録-ジョブ]ウィンドウ-[基本情報]シートで以下を指定します。

    • [ジョブをネットワークジョブとして投入する]をチェック

    • [依頼ホスト名]に、第1候補および第2候補の実行サーバを、以下の形式で指定

      第1候補のホスト名,第2候補のホスト名

    参考

    ジョブ制御文で登録する場合

    1. ジョブ制御文のreq_hostオペランドに、“第1候補のホスト名,第2候補のホスト名”の形式で実行サーバを設定します。

    2. -nent、-nche、または-ncheallオペランドを指定してjobschsetnetコマンドを実行します。定義ファイルには、1.で編集したジョブ制御文を格納したファイル名を指定します。

ジョブネット単位で実行サーバを二重化させたい場合

  1. 実行サーバを二重化させたいジョブネットの[ジョブネットのプロパティ]ウィンドウ-[基本情報]シートを表示します。

  2. [ジョブネットのプロパティ]ウィンドウ-[基本情報]シートで以下を指定します。

    • [ジョブネット内のジョブをネットワークジョブとして投入する]をチェック

    • [デフォルトホスト名]に、第1候補および第2候補の実行サーバを、以下の形式で指定

      第1候補のホスト名,第2候補のホスト名

    参考

    ジョブネット制御文で登録する場合

    1. ジョブネット制御文のdefaulthostオペランドに、“第1候補のホスト名,第2候補のホスト名”の形式で実行サーバを設定します。

    2. -nent、-nche、または-ncheallオペランドを指定してjobschsetnetコマンドを実行します。定義ファイルには、1.で編集したジョブネット制御文を格納したファイル名指定します。


参考

実行サーバがダウンしているかどうかの判断は?

以下の場合に、第1候補の実行サーバがダウンしていると判断し、第2候補の実行サーバにジョブを依頼します。

  • 第1候補のサーバへのネットワークが到達できない状況

  • 第1候補のサーバ自体のダウン

  • 第1候補のジョブ実行制御デーモンが停止


参考

実行サーバがすべてダウンしていた場合

実行時に第1候補、第2候補ともにダウンしていた場合、ジョブは異常終了となります。


マニュアルの参照先

<分散実行>
Systemwalker Operation Manager 導入手引書または導入ガイド “運用情報の定義”

<実行サーバの二重化>
Systemwalker Operation Manager 使用手引書または運用ガイド “ネットワークジョブの実行サーバを二重化する”