ページの先頭行へ戻る
Systemwalker Operation Manager V17.0.1 クラスタ適用ガイド UNIX編

8.1.2 アプリケーションの作成

HACMPシステムへ登録する以下のアプリケーションを作成します。

上記のアプリケーションは、運用系、待機系のそれぞれに作成し、同じディレクトリパス上に配置してください。共有ディスクには作成しないでください。アプリケーションの作成後、実行権を必ず設定してください。

それぞれのアプリケーションの作成例を説明します。以降で説明するアプリケーションは、すべてサンプルが提供されています。サンプルをバックアップするか、複写した後、環境に応じて変更してご利用ください。

8.1.2.1 始動スクリプトの作成

ジョブスケジューラ、ジョブ実行制御のそれぞれのデーモンを起動する始動スクリプトを作成します。始動スクリプトは、以下にサンプルが提供されています。

/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のみクラスタ運用する場合の例です。

  1. 始動スクリプトの、“SUBSYSTEM”変数を“PLU_SUBSYSTEM”とし、値はサブシステム番号に変更します。1:1運用待機(サブシステムあり、一部クラスタ運用)の場合は、クラスタ運用するサブシステム番号だけを記述するよう変更します。

    [変更前]

    SUBSYSTEM="0"

    [変更後]

    1:1運用待機(サブシステムあり)の場合
    PLU_SUBSYSTEM="0 1"
    1:1運用待機(サブシステムあり、一部クラスタ運用)の場合
    PLU_SUBSYSTEM="1"
  2. ジョブスケジューラとジョブ実行制御をサブシステムごとに起動するように、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
  3. ジョブスケジューラとジョブ実行制御のデーモンが各サブシステムで起動が完了しているか確認できるように、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
  4. 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ノード相互待機の場合の変更例

  1. サンプルを複写しファイル名を変更した始動スクリプトを作成し、“SUBSYSTEM”の変数を“1”に変更します。

    [変更前]

    SUBSYSTEM="0"

    [変更後]

    SUBSYSTEM="1"
  2. “- 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
  3. ファイル名を変更した始動スクリプトをもう1個作成し、“SUBSYSTEM”の変数を“2”に変更します。

    [変更前]

    SUBSYSTEM="1"

    [変更後]

    SUBSYSTEM="2"
  4. 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

8.1.2.2 停止スクリプトの作成

ジョブスケジューラ、ジョブ実行制御のそれぞれのデーモンを停止する、停止スクリプトを作成します。停止スクリプトは、以下にサンプルが提供されています。

/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のみクラスタ運用する場合の例です。

  1. 停止スクリプトの、“SUBSYSTEM”変数を“PLU_SUBSYSTEM”とし、値はサブシステム番号に変更します。1:1運用待機(サブシステムあり、一部クラスタ運用)の場合は、クラスタ運用するサブシステム番号だけを記述するよう変更します。

    [変更前]

    SUBSYSTEM="0"

    [変更後]

    1:1運用待機(サブシステムあり)の場合
    PLU_SUBSYSTEM="0 1"
    1:1運用待機(サブシステムあり、一部クラスタ運用)の場合
    PLU_SUBSYSTEM="1"
  2. ジョブスケジューラとジョブ実行制御がサブシステムごとに終了するように、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 `
  3. デーモン停止処理後に、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
  4. ジョブスケジューラとジョブ実行制御のデーモンが各サブシステムで停止が完了しているか確認できるように、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ノード相互待機の場合の変更例

  1. サンプルを複写しファイル名を変更した停止スクリプトの、“SUBSYSTEM”の変数を“1”に変更します。

    [変更前]

    SUBSYSTEM="0"

    [変更後]

    SUBSYSTEM="1"
  2. ファイル名を変更した停止スクリプトをもう1個用意して、“SUBSYSTEM”の変数を“2”に変更します。

    [変更前]

    SUBSYSTEM="1"

    [変更後]

    SUBSYSTEM="2"
  3. 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

8.1.2.3 モニター・メソッドの作成

モニター・メソッドを作成し登録することによって、クラスタシステムで動作する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のみクラスタ運用する場合の例です。

  1. 監視スクリプトの、“SUBSYSTEM”変数を“PLU_SUBSYSTEM”とし、値はサブシステム番号に変更します。1:1運用待機(サブシステムあり、一部クラスタ運用)の場合は、クラスタ運用するサブシステム番号だけを記述するよう変更します。

    [変更前]

    SUBSYSTEM="0"

    [変更後]

    1:1運用待機(サブシステムあり)の場合
    PLU_SUBSYSTEM="0 1"
    1:1運用待機(サブシステムあり、一部クラスタ運用)の場合
    PLU_SUBSYSTEM="1"
  2. サブシステムごとにデーモン監視するように、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 `
  3. “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ノード相互待機の場合の変更例

  1. “SUBSYSTEM”の変数を“1”に変更します。

    [変更前]

    SUBSYSTEM="0"

    [変更後]

    SUBSYSTEM="1"
  2. 変更後と同じ内容で、名前を変更した状態遷移プロシジャをもう1個用意して、“SUBSYSTEM”の変数を“2”に変更します。

    [変更前]

    SUBSYSTEM="1"

    [変更後]

    SUBSYSTEM="2"
  3. 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