11.2.3 SSOクラスタシステム環境の構築(Linuxの場合)
Linuxを使用している場合に,SSOクラスタシステムの実行系および待機系のクラスタ環境を構築する方法について説明します。
なお,ここでは次に示す設定内容を例にして説明します。
-
共有ディスク:「/dev/dsk/dg01/vol1」
-
共有ディレクトリ:「/shared/sso」
-
論理IPアドレス:「133.108.120.4」
-
JP1論理ホスト名:「rhost」
-
クラスタ制御スクリプトの格納先:「$SSO_TMP」
- 〈この項の構成〉
(1) 実行系のクラスタ環境の構築
実行系のクラスタ環境の構築は,次の順序で実施します。
-
リソースグループの停止
-
共有ディスクのマウント
-
SSOクラスタ環境の設定
-
JP1認証論理ホストの設定
-
IPv6の論理IPアドレスの設定(IPv6ネットワークを監視する場合)
-
クラスタ制御スクリプトの作成
-
リソースグループへのSSOリソースの追加
-
クラスタソフトの設定ファイルのチェック
-
NNMiへの接続情報の追加
-
共有ディスクのアンマウント
次に,それぞれの内容について説明します。
(a) リソースグループの停止
リソースグループ(Veritas Cluster Serverの場合にはクラスタソフト)が起動している場合は停止します。
クラスタソフトごとに,リソースグループを停止するコマンドの指定例を次に示します。
Veritas Cluster Serverの場合
hastop -all
HAモニタの場合
- <サーバグループを使用しない構成の場合>
monend サーバ識別名
- <サーバグループを使用する構成の場合>
-
SSO用のサーバ(リソースグループ)と,前提サーバが起動している場合は停止します。
monend 各サーバ識別名
(b) 共有ディスクのマウント
実行系が共有ディスクをマウントしている状態であることを確認します。
クラスタソフトごとに,共有ディスク(/dev/dsk/dg01/vol1)をマウントする際の指定例を次に示します。
- Veritas Cluster Serverの場合
# vxdg import dg01 # vxvol -g dg01 start vol1 # mount -t vxfs /dev/dsk/dg01/vol1 /shared
- HAモニタの場合
# vgchange -a y /dev/dsk/dg01 # mount /dev/dsk/dg01/vol1 /shared
(c) SSOクラスタ環境の設定
クラスタ環境設定コマンド(ssoclustersetup)を実行して,実行系のSSOクラスタ環境の設定を実施します。クラスタ環境設定コマンド(ssoclustersetup)については,「6. コマンド ssoclustersetup(Linux限定)」を参照してください。
クラスタ環境設定コマンドの引数には,次の内容を指定してください。
引数 |
指定する値 |
---|---|
第一引数 |
-construction(構築指定) |
第二引数 |
-primary(実行系指定) |
第三引数 |
共有ディスク上の共有データディレクトリ※ |
第四引数 |
論理IPアドレス(IPv4アドレス) |
共有ディスク上にあるディレクトリにSSOディレクトリ(/shared/sso)を作成し,論理IPアドレス(133.108.120.4)を指定して共有ディレクトリとして設定するコマンドの指定例を次に示します。
ssoclustersetup -construction -primary /shared/sso 133.108.120.4
エラーが発生した場合は,画面に出力されたメッセージを参照して問題を解決してください。問題が解決したら,コマンドを再実行してください。
(d) JP1認証論理ホストの設定
認証方式にJP1認証方式を採用し,論理ホストでJP1認証を実施する場合,クラスタ環境設定コマンド(ssoclustersetup)を実行してSSOのJP1認証論理ホストの設定を実施します。クラスタ環境設定コマンド(ssoclustersetup)については,「6. コマンド ssoclustersetup(Linux限定)」を参照してください。
クラスタ環境設定コマンドの引数には,次の内容を指定してください。
引数 |
指定する値 |
---|---|
第一引数 |
-logicalset(JP1論理ホスト指定) |
第二引数 |
JP1論理ホスト名 |
JP1論理ホスト名(rhost)を設定するコマンドの指定例を次に示します。
ssoclustersetup -logicalset rhost
エラーが発生した場合は,画面に出力されたメッセージを参照して問題を解決してください。問題が解決したら,コマンドを再実行してください。
(e) IPv6の論理IPアドレスの設定(IPv6ネットワークを監視する場合)
IPv6ネットワークを監視する場合,クラスタ環境設定コマンド(ssoclustersetup)を実行して,IPv6の論理IPアドレスの設定を実施します。クラスタ環境設定コマンド(ssoclustersetup)については,「6. コマンド ssoclustersetup(Linux限定)」を参照してください。
クラスタ環境設定コマンドの引数には,次の内容を指定してください。
引数 |
指定する値 |
---|---|
第一引数 |
-defset(動作定義ファイル設定指定) |
第二引数 |
論理IPアドレス(IPv6アドレス) |
IPv6の論理IPアドレス(2001:db8::7c)を設定するコマンド指定例を次に示します。
ssoclustersetup -defset 2001:db8::7c
エラーが発生した場合は,画面に出力されたメッセージを参照して問題を解決してください。問題が解決したら,コマンドを再実行してください。
(f) クラスタ制御スクリプトの作成
SSOが提供するクラスタ制御スクリプトのサンプルデータを基に,クラスタ制御スクリプトを作成します。
クラスタ制御スクリプトの作成手順を次に説明します。
-
クラスタ制御スクリプトのサンプルデータをコピーする。
任意のディレクトリにクラスタ制御スクリプトのサンプルデータをコピーします。作成したクラスタ制御スクリプトは,ローカルディスク($SSO_TMP)に保存してください。
クラスタ制御スクリプトのサンプルデータの格納先を次の表に示します。
表11‒8 クラスタ制御スクリプトのサンプルデータの格納先 項番
クラスタソフト
サンプルファイル
格納先ディレクトリ
1
Veritas Cluster Server
sso_vcs.sh
$SSO_SAMPLE/ha
2
HAモニタ
sso_hamon.sh
Veritas Cluster Serverのサンプルファイルを,クラスタ制御スクリプトの格納先「$SSO_TMP」に保存した場合の指定例を次に示します。
# cp -p /opt/CM2/SSO/sample/ha/sso_vcs.sh /var/opt/CM2/SSO/tmp/sso_vcs.sh # chmod 744 /var/opt/CM2/SSO/tmp/sso_vcs.sh
-
クラスタ制御スクリプトをカスタマイズする。
クラスタ制御スクリプトのキーをカスタマイズします。カスタマイズするキー名および設定例を,クラスタソフトごとに次の表に示します。
- Veritas Cluster Serverの場合
-
表11‒9 Veritas Cluster Serverでカスタマイズできるキー名および設定例 項番
キー名
デフォルト値
説明
1
MUSTRUN
ssospmd
SSOの監視プロセス名を設定します。
<基本構成の場合>
デフォルトでは,ssospmdデーモンプロセスだけを監視対象とします。ssospmdデーモンプロセス以外を監視対象にする場合は,監視プロセス名を半角スペース区切りで指定してください。
なお,このキーで,ssospmdデーモンプロセスを省略することはできません。変更する場合は,追記する形で編集してください。
(例)
MUSTRUN="ssospmd ssoapmon ssocolmng ssorptd"
SSOのプロセス停止を契機にフェールオーバーしない場合は,表11-11に示す「Critical」キーを0にしてください。
<分散構成の場合>
フェールオーバーの契機とするSSOのプロセスを,次のように半角スペース区切りで指定してください。
(例)
MUSTRUN="ssospmd ssoapmon ssocollectd ssocolmng ssorptd ssoconsoled"
SSOのプロセス停止を契機にフェールオーバーする場合は,表11-11に示す 「Critical」キーを1にしてください。
2
TERM_RETRY_COUNT
5(回)
オフラインに切り替わる際,SSOの停止処理(ssostop)をリトライする回数を設定します。
3
TERM_RETRY_INTERVAL
30(秒)
オフラインに切り替わる際,SSOの停止処理(ssostop)のリトライ間隔を設定します。
SSOの状態によっては,停止処理(ssostop)が失敗する場合があります。このため,SSOを正常終了させるために,SSOの停止処理をリトライさせてください。
- HAモニタの場合
-
表11‒10 HAモニタでカスタマイズできるキー名および設定例 項番
キー名
デフォルト値
説明
1
MUSTRUN
−
SSOの監視プロセス名を設定します。
<基本構成の場合>
デフォルトは空指定で,SSOのプロセスを監視対象としないで,NNMiのフェールオーバーを契機に切り替えが実施されます。
SSOのプロセスを契機としてフェールオーバーをする場合,監視プロセス名を半角スペース区切りで次のように指定します。
(例)
MUSTRUN="ssospmd ssoapmon ssocolmng ssorptd"
<分散構成の場合>
フェールオーバーの契機とするSSOのプロセスを,次のように半角スペース区切りで指定してください。
(例)
MUSTRUN="ssospmd ssoapmon ssocollectd ssocolmng ssorptd ssoconsoled"
2
TERM_RETRY_COUNT
5(回)
オフラインに切り替わる際,SSOの停止処理(ssostop)をリトライする回数を設定します。
3
TERM_RETRY_INTERVAL
30(秒)
オフラインに切り替わる際,SSOの停止処理(ssostop)のリトライ間隔を設定します。
SSOの状態によっては,停止処理(ssostop)が失敗する場合があります。このため,SSOを正常終了させるために,SSOの停止処理をリトライさせてください。
SSOの全プロセスを監視する場合の設定例(太字部分)を次に示します。なお,分散構成でssotrapdを起動する場合は,ssotrapdも追加する必要があります。
# ********************************************************************** # custom env # ********************************************************************** MUSTRUN="ssospmd ssoapmon ssocollectd ssocolmng ssorptd ssoconsoled" TERM_RETRY_COUNT=5 TERM_RETRY_INTERVAL=30
(g) リソースグループへのSSOリソースの追加
クラスタソフトごとに,リソースグループへのSSOリソースの追加方法を次に示します。
Veritas Cluster Serverの場合
VCS設定ファイル(/etc/VRTSvcs/conf/config/main.cf)を編集し,クラスタリソースグループにSSOのリソース設定を追加します。
-
アプリケーション定義の追加
SSOの起動,停止,および監視をするアプリケーションとして,クラスタ制御スクリプトを追加,設定します。
次の表に,VCS設定ファイルに設定する項目を示します。
表11‒11 VCS設定ファイルに設定する項目 項番
指定個所
意味
設定例
1
Application
任意のアプリケーション名を指定します。
jp1cm2sso
2
StartProgram
「(f) クラスタ制御スクリプトの作成」で作成したクラスタ制御スクリプトの起動処理用コマンドライン
−
3
StopProgram
「(f) クラスタ制御スクリプトの作成」で作成したクラスタ制御スクリプトの停止処理用コマンドライン
−
4
CleanProgram
「(f) クラスタ制御スクリプトの作成」で作成したクラスタ制御スクリプトの強制停止処理用コマンドライン
−
5
MonitorProgram
「(f) クラスタ制御スクリプトの作成」で作成したクラスタ制御スクリプトの監視処理用コマンドライン
−
6
OfflineTimeout※
終了処理のタイムアウト時間(秒)
1500
7
CleanTimeout※
エラー発生時のタイムアウト時間(秒)
1500
8
CloseTimeout※
フェールオーバーおよびフェールバック発生時のタイムアウト時間(秒)
1500
9
Critical
クラスタ制御スクリプトの設定キー(MUSTRUN)を契機に,フェールオーバーを発生させるかどうかを指定します。
-
0
フェールオーバーを発生させない
-
1
フェールオーバーを発生させる
基本構成の場合:0
分散構成の場合:1
Applicationエージェントの設定例(太字部分)を次に示します。
<基本構成の場合>
group jp1cm2nnmi ( Application jp1cm2nnmi( ・・・ ) Application jp1cm2sso ( StartProgram = "/var/opt/CM2/SSO/tmp/sso_vcs.sh -r" StopProgram = "/var/opt/CM2/SSO/tmp/sso_vcs.sh -h" CleanProgram = "/var/opt/CM2/SSO/tmp/sso_vcs.sh -h" MonitorProgram = "/var/opt/CM2/SSO/tmp/sso_vcs.sh -m" Critical = 0 OfflineTimeout = 1500 CleanTimeout = 1500 CloseTimeout = 1500 )
<分散構成の場合>
group jp1cm2sso ( ・・・ Application jp1cm2sso ( StartProgram = "/var/opt/CM2/SSO/tmp/sso_vcs.sh -r" StopProgram = "/var/opt/CM2/SSO/tmp/sso_vcs.sh -h" CleanProgram = "/var/opt/CM2/SSO/tmp/sso_vcs.sh -h" MonitorProgram = "/var/opt/CM2/SSO/tmp/sso_vcs.sh -m" Critical = 1 OfflineTimeout = 1500 CleanTimeout = 1500 CloseTimeout = 1500 )
-
-
リソースの依存関係の追加
<基本構成の場合>
SSOサービスが,NNMiサービスに依存する設定を実施します。次の形式で設定してください。
SSOアプリケーション名 requires NNMiアプリケーション名
リソースの依存関係の設定例(太字部分)を次に示します。
group jp1cm2nnmi ( Application jp1cm2nnmi( ・・・ ) Application jp1cm2sso( ・・・ ) jp1cm2sso requires jp1cm2nnmi
<分散構成の場合>
SSOサービスが,論理IPアドレス(IPリソース)と共有ディスク(Mountリソース)に依存する設定を実施します。次の形式で設定してください。
SSOアプリケーション名 requires 論理IPアドレス(IPリソース) SSOアプリケーション名 requires 共有ディスク(Mountリソース)
リソースの依存関係の設定例(太字部分)を次に示します。
group jp1cm2sso ( ・・・ Application jp1cm2sso( ・・・ ) ・・・ jp1cm2sso requires IP_133_108_120_4 jp1cm2sso requires shdsk1
HAモニタの場合
<基本構成でサーバグループを使用しない構成の場合>
NNMiのクラスタ構築時に作成したスクリプト(/var/opt/OV/hacluster/グループ名/cm2_*.sh)に対して,クラスタ制御スクリプトを設定します。
起動および監視スクリプトに登録する場合は,NNMiのコマンド処理のあとに追加設定します。また,停止スクリプトに登録する場合は,NNMiのコマンド処理の前に追加設定します。
起動スクリプトの設定例(太字部分)を次に示します。
#!/bin/sh RESOURCE_GROUP=jp1cm2nnmi #start JP1/Cm2/NNMi logger -i -t NNMi "NNMi start" /opt/OV/misc/nnm/ha/nnmharg.ovpl NNM -start ${RESOURCE_GROUP} RC=$? logger -i -t NNMi "NNMi start rc=$RC ." if [ $RC -ne 0 ];then exit $RC fi #start JP1/Cm2/SSO logger -i -t SSO "SSO start" /var/opt/CM2/SSO/tmp/sso_hamon.sh -r RC=$? logger -i -t SSO "SSO start rc=$RC ." if [ $RC -ne 0 ];then exit $RC fi exit 0
停止スクリプトの設定例(太字部分)を次に示します。
#!/bin/sh RESOURCE_GROUP=jp1cm2nnmi #stop JP1/Cm2/SSO logger -i -t SSO "SSO stop " /var/opt/CM2/SSO/tmp/sso_hamon.sh -h RC=$? logger -i -t SSO "SSO stop rc=$RC" if [ $RC -ne 0 ];then exit $RC fi #stop JP1/Cm2/NNMi logger -i -t NNMi "NNMi stop " /opt/OV/misc/nnm/ha/nnmharg.ovpl NNM -stop ${RESOURCE_GROUP} RC=$? logger -i -t NNMi "NNMi stop rc=$RC" if [ $RC -ne 0 ];then exit $RC fi exit 0
監視スクリプトの設定例(太字部分)を次に示します。
#!/bin/sh RESOURCE_GROUP=jp1cm2nnmi MONITOR_INTERVAL=60 # main while true do #monitor JP1/Cm2/NNMi /opt/OV/misc/nnm/ha/nnmharg.ovpl NNM -monitor ${RESOURCE_GROUP} RC=$? if [ $RC -ne 0 ];then logger -i -t NNMi "NNMi monitor rc=$RC ." exit $RC fi #monitor JP1/Cm2/SSO /var/opt/CM2/SSO/tmp/sso_hamon.sh -m RC=$? if [ $RC -ne 0 ];then logger -i -t SSO "SSO monitor rc=$RC ." exit $RC fi sleep $MONITOR_INTERVAL done exit 0
<基本構成でサーバグループを使用する構成の場合または分散構成の場合>
HAモニタに設定したSSO用のサーバ(リソースグループ)に,次の設定を実施します。
-
HAモニタ用のスクリプトの準備
HAモニタからSSOの起動・停止・監視を実行するためのスクリプトをそれぞれ作成します。
格納ディレクトリ:$SSO_TMP
起動スクリプト(sso_start.sh)の作成例を次に示します。
#!/bin/sh #start JP1/Cm2/SSO logger -i -t SSO "SSO start" /var/opt/CM2/SSO/tmp/sso_hamon.sh -r RC=$? logger -i -t SSO "SSO start rc=$RC ." if [ $RC -ne 0 ];then exit $RC fi exit 0
停止スクリプト(sso_stop.sh)の作成例を次に示します。
#!/bin/sh #stop JP1/Cm2/SSO logger -i -t SSO "SSO stop " /var/opt/CM2/SSO/tmp/sso_hamon.sh -h RC=$? logger -i -t SSO "SSO stop rc=$RC" if [ $RC -ne 0 ];then exit $RC fi exit 0
監視スクリプト(sso_monitor.sh)の作成例を次に示します。
#!/bin/sh MONITOR_INTERVAL=60 # main while true do #monitor JP1/Cm2/SSO /var/opt/CM2/SSO/tmp/sso_hamon.sh -m RC=$? if [ $RC -ne 0 ];then logger -i -t SSO "SSO monitor rc=$RC ." exit $RC fi sleep $MONITOR_INTERVAL done exit 0
スクリプトが作成できたらユーザ,グループ,およびパーミッションを設定します。設定例を次に示します。
cd /var/opt/CM2/SSO/tmp chown root:sys sso_start.sh sso_stop.sh sso_monitor.sh chmod 755 sso_start.sh sso_stop.sh sso_monitor.sh
-
サーバ対応の環境設定定義ファイル(servers)の編集
「HAモニタ用のスクリプトの準備」で作成したファイルを,起動(nameまたはactcommand),停止(termcommand),および監視(patrolcommand)に対応するよう設定します。
パス:/opt/hitachi/HAmon/etc/servers
<サーバグループを使用しない構成の場合>
server name /var/opt/CM2/SSO/tmp/sso_start.sh , alias <resource_group> , acttype monitor , initial online , disk /dev/vg06 , termcommand /var/opt/CM2/SSO/tmp/sso_stop.sh , fs_name /dev/mapper/vg06-lvol1 , fs_mount_dir /shared , fs_umount_retry 10 , patrolcommand /var/opt/CM2/SSO/tmp/sso_monitor.sh , servexec_retry 0 , waitserv_exec yes , retry_stable 60 , lan_updown use ;
- 注
-
initialは,実行系:online,待機系:standbyを指定します。
また,disk,fs_nameおよびfs_mount_dirは,導入するシステムに合わせた値を指定します。
<resource_group>は,リソースグループ名に置き換えます。
<サーバグループを使用した構成の場合>
server name <SSOリソース用の任意の名前> , actcommand /var/opt/CM2/SSO/tmp/sso_start.sh , alias <resource_group> , acttype monitor , initial online , termcommand /var/opt/CM2/SSO/tmp/sso_stop.sh , patrolcommand /var/opt/CM2/SSO/tmp/sso_monitor.sh , servexec_retry 0 , waitserv_exec yes , retry_stable 60 , group <group_name> , lan_updown nouse , parent <前提とするサーバのalias> ;
- 注
-
initialは,実行系:online,待機系:standbyを指定します。
<resource_group>は,リソースグループ名に置き換えます。
<group_name>は,フェールオーバーする単位で同一のグループ名を指定してください。
parentは,前提とする依存関係を設定します。前提とするサーバのaliasを指定してください。
基本構成の場合,SSOはNNMiを前提とする依存関係を設定します。
分散構成の場合,SSOは共有ディスクおよび論理IPアドレスのサーバまたはリソースサーバを前提とする依存関係を設定します。共有ディスク,論理IPアドレスのサーバまたはリソースサーバについては,別途設定してください。
(h) クラスタソフトの設定ファイルのチェック
クラスタソフトごとに,設定ファイルのチェック方法を次に示します。
- Veritas Cluster Serverの場合
-
次のコマンドを実行し,VCS設定ファイルの構文チェックを実施します。
hacf -verify VCS設定ファイル格納ディレクトリパス名
- HAモニタの場合
-
HAモニタの場合,該当する作業はありません。
(i) NNMiへの接続情報の追加
ssonnmsetupコマンドを実行して,NNMiへの接続情報を追加します。ssonnmsetupコマンドについては,「6. コマンド ssonnmsetup」を参照してください。
(j) 共有ディスクのアンマウント
「(b) 共有ディスクのマウント」でマウントした共有ディスクをアンマウントします。
クラスタソフトごとに,共有ディスクをアンマウントする際の指定例を次に示します。
- Veritas Cluster Serverの場合
# umount /shared # vxdg deport dg01
- HAモニタの場合
# umount /shared # vgchange -a n /dev/dsk/dg01
(2) 待機系のクラスタ環境の構築
待機系のクラスタ環境の構築は,次の順序で実施します。
-
SSOクラスタ環境の設定
-
クラスタ制御スクリプトの作成
-
リソースグループへのSSOリソースの追加
次に,それぞれの内容について説明します。
(a) SSOクラスタ環境の設定
クラスタ環境設定コマンド(ssoclustersetup)を実行して,待機系のSSOクラスタ環境の設定を実施します。クラスタ環境設定コマンド(ssoclustersetup)については,「6. コマンド ssoclustersetup(Linux限定)」を参照してください。
クラスタ環境設定コマンドの引数には,次の内容を指定してください。
引数 |
指定する値 |
---|---|
第一引数 |
-construction(構築指定) |
第二引数 |
-secondary(待機系指定) |
第三引数 |
共有ディスク上の共有データディレクトリ |
コマンドの指定例を次に示します。
ssoclustersetup -construction -secondary /shared/sso
エラーが発生した場合は,画面に出力されたメッセージを参照して問題を解決してください。問題が解決したら,コマンドを再実行してください。
(b) クラスタ制御スクリプトの作成
「(1)(f) クラスタ制御スクリプトの作成」を参照して,クラスタ制御スクリプトをコピーし,カスタマイズを実施します。スクリプトの内容,および保存先のパスは,実行系と同じ内容になるようにしてください。
(c) リソースグループへのSSOリソースの追加
「(1)(g) リソースグループへのSSOリソースの追加」を参照して,リソースグループへSSOリソースを追加します。
なお,待機系で実施するクラスタソフトの設定内容は,実行系と同じであることが前提となります。
ただし,HAモニタの場合は,待機系ではサーバ対応の環境設定定義ファイル(servers)のinitialの項目は,standbyを指定する必要があります。
以上の設定が完了すると,リソースグループが起動できるようになります。
次のコマンドを実行して,実行系でリソースグループ(Veritas Cluster Serverの場合には実行系と待機系のクラスタソフト)を起動します。コマンドの詳細については,クラスタソフトのマニュアルを参照してください。
Veritas Cluster Serverの場合
-
実行系と待機系でクラスタソフトを起動します。
# hastart
-
リソースグループが起動していない場合,次のコマンドを実行すると実行系でリソースグループを起動します。
# hagrp -online リソースグループ名 -sys 実行系ホスト名
HAモニタの場合
SSO用のサーバ(リソースグループ)を起動するための前提サーバがある場合は,前提サーバを起動したあとに,次のコマンドを実行し,リソースグループを起動してください。
# monbegin リソースグループ名