第1章 設計編
1.11 サーバがダウンした場合に自動的に別サーバにジョブを再投入させたい
以下のように、スケジュールサーバから実行サーバにジョブを投入する構成で、ジョブの実行中に実行サーバBがダウンした場合、自 動的に実行中のジョブを実行サーバAまたは実行サーバCに再投入させる方法について説明します。
実行サーバがダウンした場合に、自動的に別サーバにジョブを再投入させるには、以下の方法があります。
・ 分散実行
・ 実行サーバの二重化
ポイント
どの方法が良いか迷ったら・・・
以下に、それぞれの運用方法について概要を示すので、用途に合わせて選択してください。
メリット デメリット
分散実行 最大10台まで分散先サーバを設定可能。
特定のサーバがダウンした場合、最大10 分間該当サーバがダウンしたと認識し、該 当サーバへの投入を行わないようにできる
(ダウンしているサーバへの投入を試みる ことはない)。
ジョブがどのサーバで実行されるか予測 が出来ない。
実行サーバの二 重化
通常第1候補のサーバで実行。第1候補の サーバがダウンしている場合だけ、第2候 補で実行。異常時だけ代替サーバで実行 するという運用が可能。
第1候補のサーバがダウンした場合、まず は第1候補のサ-バに投入を試みてから 第2候補に遷移するため、投入に時間が かかる。
分散実行
本来は負荷分散を目的とし、複数の実行サーバをグループ化して負荷の低い実行サーバにジョブを割り振る機能ですが、グループ 内の実行サーバがダウンした場合には、ダウンしたサーバ以外のグループ内の実行サーバで再度割り振りを行い、ジョブが再投入さ れます。
分散実行を利用する場合は、分散実行用のキューを作成する時に、分散先となる実行サーバグループを登録します。手順について は、“1.9 ジョブを自動的に負荷の少ないサーバに分散して実行させたい”を参照してください。
参考
実行サーバがダウンしているかどうかの判断は?
デフォルトでは10秒間隔で6回のリトライをします。リトライしても実行サーバに接続できなかった場合に、実行サーバがダウンしている と判断し、ダウンした実行サーバ以外で一番負荷の低い実行サーバにジョブを依頼します。
リトライの回数等については、[運用情報の定義]ウィンドウ-[ネットワーク]シートの[ネットワークジョブで接続エラー時のリトライの動作 を変更する]で定義できます。
実行サーバの二重化
ネットワークジョブの場合、実行サーバとして第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オペランドを指定してjobschsetnetコマンドを実行します。定義ファイルには、1.で編集したジョブ制御
文を格納したファイル名を指定します。
ジョブネット単位で実行サーバを二重化させたい場合
1. 実行サーバを二重化させたいジョブネットの[ジョブネットのプロパティ]ウィンドウ-[基本情報]シートを表示します。
2. [ジョブネットのプロパティ]ウィンドウ-[基本情報]シートで以下を指定します。
- [ジョブネット内のジョブをネットワークジョブとして投入する]をチェック
- [デフォルトホスト名]に、第1候補および第2候補の実行サーバを、以下の形式で指定 第1候補のホスト名,第2候補のホスト名
参考
ジョブネット制御文で登録する場合
1. ジョブネット制御文のdefaulthostオペランドに、“第1候補のホスト名,第2候補のホスト名”の形式で実行サーバを設定し ます。
2. -nentまたは-ncheオペランドを指定してjobschsetnetコマンドを実行します。定義ファイルには、1.で編集したジョブネット 制御文を格納したファイル名指定します。
参考
実行サーバがダウンしているかどうかの判断は?
以下の場合に、第1候補の実行サーバがダウンしていると判断し、第2候補の実行サーバにジョブを依頼します。
・ 第1候補のサーバへのネットワークが到達できない状況
・ 第1候補のサーバ自体のダウン
・ 第1候補のジョブ実行制御デーモンが停止
参考
実行サーバがすべてダウンしていた場合
実行時に第1候補、第2候補ともにダウンしていた場合、ジョブは異常終了となります。
マニュアルの参照先
<分散実行>
Systemwalker Operation Manager 導入手引書“運用情報の定義”
<実行サーバの二重化>
Systemwalker Operation Manager 使用手引書 “ネットワークジョブの実行サーバを二重化する”