HACMPシステムへ登録する以下のアプリケーションを作成します。
始動スクリプト
停止スクリプト
モニター・メソッド
上記のアプリケーションは、運用系、待機系のそれぞれに作成し、同じディレクトリパス上に配置してください。共有ディスクには作成しないでください。アプリケーションの作成後、実行権を必ず設定してください。
それぞれのアプリケーションの作成例を説明します。以降で説明するアプリケーションは、すべてサンプルが提供されています。サンプルをバックアップするか、複写した後、環境に応じて変更してご利用ください。
ジョブスケジューラ、ジョブ実行制御のそれぞれのデーモンを起動する始動スクリプトを作成します。始動スクリプトは、以下にサンプルが提供されています。
/opt/FAIXJMCMN/etc/script/hacmp/omgr_start.sh |
サンプルの始動スクリプトは、1:1運用待機(サブシステムなし)用です。
1:1運用待機(サブシステムあり)の場合、1:1運用待機(サブシステムあり、一部クラスタ運用)の場合、2ノード相互待機の場合は、始動スクリプトの変更が必要です。
サンプルを複写後、クラスタシステムの運用に合わせて変更してご利用ください。1:1運用待機(サブシステムなし)の場合は、バックアップを取った上で、サンプルをそのまま使用してもかまいません。以下に始動スクリプトの変更例を説明します。
1:1運用待機(サブシステムあり)、1:1運用待機(サブシステムあり、一部クラスタ運用)の場合の変更例
複数サブシステム運用を実施している場合、サブシステムごとにジョブスケジューラ、ジョブ実行制御のデーモンを起動/停止します。
以下は、1:1運用待機(サブシステムあり)においてサブシステム0とサブシステム1を運用している場合の例、および1:1運用待機(サブシステムあり、一部クラスタ運用)において、サブシステム0はクラスタ運用せずに、サブシステム1のみクラスタ運用する場合の例です。
始動スクリプトの、“SUBSYSTEM”変数を“PLU_SUBSYSTEM”とし、値はサブシステム番号に変更します。1:1運用待機(サブシステムあり、一部クラスタ運用)の場合は、クラスタ運用するサブシステム番号だけを記述するよう変更します。
[変更前]
SUBSYSTEM="0"
[変更後]
1:1運用待機(サブシステムあり)の場合
PLU_SUBSYSTEM="0 1"
1:1運用待機(サブシステムあり、一部クラスタ運用)の場合
PLU_SUBSYSTEM="1"
ジョブスケジューラとジョブ実行制御をサブシステムごとに起動するように、for文、do文、done文を追加します。
[変更前]
# Starts Job Scheduler & Job Execution Control # - 1:1 standby, 2 nodes mutual standby /bin/sh /opt/FAIXMJS/usr/lib/mjes/S99MJS -sys $SUBSYSTEM /bin/sh /opt/FAIXJOBSC/bin/S99JOBSCH -sys $SUBSYSTEM
[変更後]
# Starts Job Scheduler & Job Execution Control # - 1:1 standby, 2 nodes mutual standby for SUBSYSTEM in $PLU_SUBSYSTEM do /bin/sh /opt/FAIXMJS/usr/lib/mjes/S99MJS -sys $SUBSYSTEM /bin/sh /opt/FAIXJOBSC/bin/S99JOBSCH -sys $SUBSYSTEM done
ジョブスケジューラとジョブ実行制御のデーモンが各サブシステムで起動が完了しているか確認できるように、for文、do文、done文、break文を追加します。
[変更前]
# Sleep .... /bin/sleep 5 status=0 # - 1:1 standby, 2 nodes mutual standby MJES_STATUS=`$CHK_CMD mjsdaemon stop -sys $SUBSYSTEM` if [ $MJES_STATUS = "DAEMON_STOPPED" ] then status=1 fi # - 1:1 standby, 2 nodes mutual standby JOB_STATUS=`$CHK_CMD tskmnsrv stop -sys $SUBSYSTEM` if [ $JOB_STATUS = "DAEMON_STOPPED" ] then status=1 fi
[変更後]
# Sleep .... /bin/sleep 5 status=0 for SUBSYSTEM in $PLU_SUBSYSTEM do # - 1:1 standby, 2 nodes mutual standby MJES_STATUS=`$CHK_CMD mjsdaemon stop -sys $SUBSYSTEM` if [ $MJES_STATUS = "DAEMON_STOPPED" ] then status=1 break fi # - 1:1 standby, 2 nodes mutual standby JOB_STATUS=`$CHK_CMD tskmnsrv stop -sys $SUBSYSTEM` if [ $JOB_STATUS = "DAEMON_STOPPED" ] then status=1 break fi done
1:1運用待機(サブシステムあり、一部クラスタ運用)の場合は、セキュリティ情報をサブシステムごとに自動反映するように、for文、do文、done文を追加します。
[変更前]
# - 1:1 standby /opt/FJSVfwseo/bin/mpaclcls /bin/sh /opt/FJSVfwseo/bin/jmacltrn.sh
[変更後]
# - 1:1 standby for SUBSYSTEM in $PLU_SUBSYSTEM do /opt/FJSVfwseo/bin/mpaclcls -s $SUBSYSTEM /bin/sh /opt/FJSVfwseo/bin/jmacltrn.sh $SUBSYSTEM done
2ノード相互待機の場合の変更例
サンプルを複写しファイル名を変更した始動スクリプトを作成し、“SUBSYSTEM”の変数を“1”に変更します。
[変更前]
SUBSYSTEM="0"
[変更後]
SUBSYSTEM="1"
“- 1:1 standby”の部分を、2ノード相互待機用に変更します (“#”の位置を変更します)。
[変更前]
# - 1:1 standby /opt/FJSVfwseo/bin/mpaclcls /bin/sh /opt/FJSVfwseo/bin/jmacltrn.sh # - 2 nodes mutual standby #/opt/FJSVfwseo/bin/mpaclcls -s $SUBSYSTEM #/bin/sh /opt/FJSVfwseo/bin/jmacltrn.sh $SUBSYSTEM # Starts Job Scheduler & Job Execution Control
[変更後]
# - 1:1 standby #/opt/FJSVfwseo/bin/mpaclcls #/bin/sh /opt/FJSVfwseo/bin/jmacltrn.sh # - 2 nodes mutual standby /opt/FJSVfwseo/bin/mpaclcls -s $SUBSYSTEM /bin/sh /opt/FJSVfwseo/bin/jmacltrn.sh $SUBSYSTEM # Starts Job Scheduler & Job Execution Control
ファイル名を変更した始動スクリプトをもう1個作成し、“SUBSYSTEM”の変数を“2”に変更します。
[変更前]
SUBSYSTEM="1"
[変更後]
SUBSYSTEM="2"
2個の始動スクリプトを、同じディレクトリパス上の運用系および待機系に配置します。
配置例を以下に示します。
運用系1:/opt/FAIXJMCMN/etc/script/hacmp/omgr_start1.sh (待機系2)/opt/FAIXJMCMN/etc/script/hacmp/omgr_start2.sh 運用系2:/opt/FAIXJMCMN/etc/script/hacmp/omgr_start2.sh (待機系1)/opt/FAIXJMCMN/etc/script/hacmp/omgr_start1.sh
ジョブスケジューラ、ジョブ実行制御のそれぞれのデーモンを停止する、停止スクリプトを作成します。停止スクリプトは、以下にサンプルが提供されています。
/opt/FAIXJMCMN/etc/script/hacmp/omgr_stop.sh |
サンプルの停止スクリプトは、1:1運用待機(サブシステムなし)用です。
1:1運用待機(サブシステムあり)の場合、1:1運用待機(サブシステムあり、一部クラスタ運用)の場合、2ノード相互待機の場合は、停止スクリプトの変更が必要です。
サンプルを複写後、クラスタシステムの運用に合わせて変更してご利用ください。1:1運用待機(サブシステムなし)の場合は、バックアップを取った上で、サンプルをそのまま使用してもかまいません。以下に停止スクリプトの変更例を説明します。
1:1運用待機(サブシステムあり)、1:1運用待機(サブシステムあり、一部クラスタ運用)の場合の変更例
以下は、1:1運用待機(サブシステムあり)においてサブシステム0とサブシステム1を運用している場合の例、および1:1運用待機(サブシステムあり、一部クラスタ運用)において、サブシステム0はクラスタ運用せずに、サブシステム1のみクラスタ運用する場合の例です。
停止スクリプトの、“SUBSYSTEM”変数を“PLU_SUBSYSTEM”とし、値はサブシステム番号に変更します。1:1運用待機(サブシステムあり、一部クラスタ運用)の場合は、クラスタ運用するサブシステム番号だけを記述するよう変更します。
[変更前]
SUBSYSTEM="0"
[変更後]
1:1運用待機(サブシステムあり)の場合
PLU_SUBSYSTEM="0 1"
1:1運用待機(サブシステムあり、一部クラスタ運用)の場合
PLU_SUBSYSTEM="1"
ジョブスケジューラとジョブ実行制御がサブシステムごとに終了するように、for文、do文を追加します。
[変更前]
# Job Execution Control Server MJSDAEMON=`/bin/ps -eo pid,args | /bin/grep "/usr/lib/mjes/mjsdaemon -sys $SUBSYSTEM" | /bin/grep -v "grep" | /usr/bin/wc -l `
[変更後]
# Job Execution Control Server for SUBSYSTEM in $PLU_SUBSYSTEM do MJSDAEMON=`/bin/ps -eo pid,args | /bin/grep "/usr/lib/mjes/mjsdaemon -sys $SUBSYSTEM" | /bin/grep -v "grep" | /usr/bin/wc -l `
デーモン停止処理後に、done文を追加します。
[変更前]
# Stops Job Scheduler & Job Execution Control # - 1:1 standby, 2 nodes mutual standby /bin/sh /opt/FAIXJOBSC/bin/K00JOBSCH -sys $SUBSYSTEM /bin/sh /opt/FAIXMJS/usr/lib/mjes/K00MJS -r -sys $SUBSYSTEM /opt/FJSVstem/bin/stem_end -sys $SUBSYSTEM # Daemon Status Check
[変更後]
# Stops Job Scheduler & Job Execution Control # - 1:1 standby, 2 nodes mutual standby /bin/sh /opt/FAIXJOBSC/bin/K00JOBSCH -sys $SUBSYSTEM /bin/sh /opt/FAIXMJS/usr/lib/mjes/K00MJS -r -sys $SUBSYSTEM /opt/FJSVstem/bin/stem_end -sys $SUBSYSTEM done # Daemon Status Check
ジョブスケジューラとジョブ実行制御のデーモンが各サブシステムで停止が完了しているか確認できるように、for文、do文、done文、break文を追加します。
[変更前]
# Sleep .... /bin/sleep 1 status=0 # - 1:1 standby, 2 nodes mutual standby MJES_STATUS=`$CHK_CMD mjsdaemon stop -sys $SUBSYSTEM` if [ $MJES_STATUS = "DAEMON_RUNNING" ] then status=1 fi # - 1:1 standby, 2 nodes mutual standby JOB_STATUS=`$CHK_CMD tskmnsrv stop -sys $SUBSYSTEM` if [ $JOB_STATUS = "DAEMON_RUNNING" ] then status=1 fi
[変更後]
# Sleep .... /bin/sleep 1 status=0 for SUBSYSTEM in $PLU_SUBSYSTEM do # - 1:1 standby, 2 nodes mutual standby MJES_STATUS=`$CHK_CMD mjsdaemon stop -sys $SUBSYSTEM` if [ $MJES_STATUS = "DAEMON_RUNNING" ] then status=1 break fi # - 1:1 standby, 2 nodes mutual standby JOB_STATUS=`$CHK_CMD tskmnsrv stop -sys $SUBSYSTEM` if [ $JOB_STATUS = "DAEMON_RUNNING" ] then status=1 break fi done
2ノード相互待機の場合の変更例
サンプルを複写しファイル名を変更した停止スクリプトの、“SUBSYSTEM”の変数を“1”に変更します。
[変更前]
SUBSYSTEM="0"
[変更後]
SUBSYSTEM="1"
ファイル名を変更した停止スクリプトをもう1個用意して、“SUBSYSTEM”の変数を“2”に変更します。
[変更前]
SUBSYSTEM="1"
[変更後]
SUBSYSTEM="2"
2個の停止スクリプトを、同じディレクトリパス上の運用系および待機系に配置します。
配置例を以下に示します。
運用系1:/opt/FAIXJMCMN/etc/script/hacmp/omgr_stop1.sh (待機系2)/opt/FAIXJMCMN/etc/script/hacmp/omgr_stop2.sh 運用系2:/opt/FAIXJMCMN/etc/script/hacmp/omgr_stop2.sh (待機系1)/opt/FAIXJMCMN/etc/script/hacmp/omgr_stop1.sh
モニター・メソッドを作成し登録することによって、クラスタシステムで動作するSystemwalker Operation Managerのデーモンを監視し、フェールオーバの契機をクラスタシステムに通知することができます。モニター・メソッドは、以下にサンプルが提供されています。
/opt/FAIXJMCMN/etc/script/hacmp/omgr_monitor.sh |
サンプルのモニター・メソッドは、1:1運用待機(サブシステムなし)用です。1:1運用待機(サブシステムあり)の場合、1:1運用待機(サブシステムあり、一部クラスタ運用)の場合、2ノード相互待機の場合は、モニター・メソッドの変更が必要です。
サンプルを複写後、クラスタシステムの運用に合わせて変更してご利用ください。1:1運用待機(サブシステムなし)の場合は、バックアップを取った上で、サンプルをそのまま使用してもかまいません。以下にモニター・メソッドの変更例を説明します。
1:1運用待機(サブシステムあり)、1:1運用待機(サブシステムあり、一部クラスタ運用)の場合の変更例
複数サブシステム運用を実施している場合、サブシステムごとにデーモン監視を行います。以下は、1:1運用待機(サブシステムあり)においてサブシステム0とサブシステム1を運用している場合の例、および1:1運用待機(サブシステムあり、一部クラスタ運用)において、サブシステム0はクラスタ運用せずに、サブシステム1のみクラスタ運用する場合の例です。
監視スクリプトの、“SUBSYSTEM”変数を“PLU_SUBSYSTEM”とし、値はサブシステム番号に変更します。1:1運用待機(サブシステムあり、一部クラスタ運用)の場合は、クラスタ運用するサブシステム番号だけを記述するよう変更します。
[変更前]
SUBSYSTEM="0"
[変更後]
1:1運用待機(サブシステムあり)の場合
PLU_SUBSYSTEM="0 1"
1:1運用待機(サブシステムあり、一部クラスタ運用)の場合
PLU_SUBSYSTEM="1"
サブシステムごとにデーモン監視するように、for文、do文を追加します。
[変更前]
MJSDAEMON=`/bin/ps -eo pid,args | /bin/grep "/usr/lib/mjes/mjsdaemon -sys $SUBSYSTEM" | /bin/grep -v "grep" | /usr/bin/wc -l `
[変更後]
for SUBSYSTEM in $PLU_SUBSYSTEM do MJSDAEMON=`/bin/ps -eo pid,args | /bin/grep "/usr/lib/mjes/mjsdaemon -sys $SUBSYSTEM" | /bin/grep -v "grep" | /usr/bin/wc -l `
“exit 0”の前に、done文を追加します。
[変更前]
JOB_STATUS=`$CHK_CMD tskmnsrv stop -sys $SUBSYSTEM` if [ $JOB_STATUS = "DAEMON_STOPPED" ] then exit 1 fi exit 0
[変更後]
JOB_STATUS=`$CHK_CMD tskmnsrv stop -sys $SUBSYSTEM` if [ $JOB_STATUS = "DAEMON_STOPPED" ] then exit 1 fi done exit 0
2ノード相互待機の場合の変更例
“SUBSYSTEM”の変数を“1”に変更します。
[変更前]
SUBSYSTEM="0"
[変更後]
SUBSYSTEM="1"
変更後と同じ内容で、名前を変更した状態遷移プロシジャをもう1個用意して、“SUBSYSTEM”の変数を“2”に変更します。
[変更前]
SUBSYSTEM="1"
[変更後]
SUBSYSTEM="2"
2個の状態遷移プロシジャを、同じディレクトリパス上の運用系および待機系に配置します。
配置例を以下に示します。
運用系1:/opt/FAIXJMCMN/etc/script/hacmp/omgr_monitor1.sh (待機系2)/opt/FAIXJMCMN/etc/script/hacmp/omgr_monitor2.sh 運用系2:/opt/FAIXJMCMN/etc/script/hacmp/omgr_monitor2.sh (待機系1)/opt/FAIXJMCMN/etc/script/hacmp/omgr_monitor1.sh