ノンストップデータベース HiRDB Version 9 システム運用ガイド(UNIX(R)用)

[目次][索引][前へ][次へ]

26.2.10 LifeKeeperに関する準備

クラスタソフトウェアにLifeKeeperを使用している場合にこの項をお読みください。

なお,これらのリソースは,下記の順序で作成する必要があります。また,HiRDBが停止した状態で作成してください。

LifeKeeperの環境設定方法の詳細については,LifeKeeperのマニュアルを参照してください。

注意
HiRDBがLifeKeeperでの動作を保証するクラスタ構成は,共有ディスク(SAN/SCSI)構成かつ1:1接続構成(1:1系切り替え構成,及び相互系切り替え構成)だけです。
<この項の構成>
(1) IPリソースの作成
(2) ファイルシステムリソースの作成
(3) Rawデバイスリソースの作成
(4) Generic ARKリソースの作成
(5) リソース階層の作成

(1) IPリソースの作成

IPリソースを作成して,LifeKeeperに仮想IPアドレス(HiRDBのエイリアスIPアドレス)を設定します。IPリソースは,系切り替え後,IPアドレスを引き継ぐ場合だけ作成する必要があります。

システム共通定義のpdunitオペランドの-xオプションで指定したホスト名を仮想IPアドレスとして設定します。

仮想IPアドレスの設定は,LifeKeeperのGUI画面から[Edit]−[Server]−[Create Resource Hierarchy]−[IP]を選択して表示される画面で,次の表に示す項目を選択,又は指定します。

項目 選択値,又は指定値
Switchback Type 「intelligent」を選択します。
Server 現用系のホスト名を指定します。
IP Resource pdunitオペランドの-xオプションで指定したホスト名,又はIPアドレスを指定します。
Netmask pdunitオペランドの-xオプションで指定したホスト名,又はIPアドレスのネットマスクを指定します。
Network Interface 仮想IPアドレスを割り当てるインタフェースを指定します。
IP Resource Tag LifeKeeper管理上の任意のIPリソース名を指定します。

現用系での設定が完了した後は,予備系でも設定を行います。上記の表の項目について予備系としての設定をしてください。

(2) ファイルシステムリソースの作成

ファイルシステムリソースを作成して,LifeKeeperに共有ディスクを設定します。ファイルシステムリソースは,HiRDBファイルシステム領域を通常ファイル上に作成する場合に作成する必要があります。

なお,この設定は,共有ディスクが現用系に割り当てられていることを確認してから行ってください。

共有ディスクの設定は,LifeKeeperのGUI画面から[Edit]−[Server]−[Create Resource Hierarchy]−[File System]を選択して表示される画面で,次の表に示す項目を選択,又は指定します。

項目 選択値,又は指定値
Switchback Type 「intelligent」を選択します。
Server 現用系のホスト名を指定します。
Mount Point 共有ディスクのマウントポイントを選択します。
Root Tag LifeKeeper管理上の任意の名称を指定します。

現用系での設定が完了した後は,予備系でも設定を行います。上記の表の項目について予備系としての設定をしてください。

(3) Rawデバイスリソースの作成

Rawデバイスリソースを作成して,LifeKeeperに共有ディスクを設定します。Rawデバイスリソースは,HiRDBファイルシステム領域をキャラクタ型スペシャルファイル上に作成する場合に作成する必要があります。

共有ディスクの設定は,LifeKeeperのGUI画面から[Edit]−[Server]−[Create Resource Hierarchy]−[Raw Device]を選択して表示される画面で,次の表に示す項目を選択,又は指定します。

項目 選択値,又は指定値
Switchback Type 「intelligent」を選択します。
Server 現用系のホスト名を指定します。
Raw Partition 共有ディスクのパーティションを選択します。
Root Tag LifeKeeper管理上の任意の名称を指定します。

現用系での設定が完了した後は,予備系でも設定を行います。上記の表の項目について予備系としての設定をしてください。

(4) Generic ARKリソースの作成

Generic ARKリソースを作成して,HiRDBをLifeKeeperに設定し,HiRDB(HiRDB/パラレルサーバの場合はユニット)のリソースを作成します。

(a) スクリプトの作成

次に示すスクリプトを準備します。HiRDB(HiRDB/パラレルサーバの場合はユニット)のシェルスクリプトを作成した後,LifeKeeperから提供されているスクリプトにHiRDB(ユニット)のシェルスクリプトのパスを指定してください。

LifeKeeperから提供されているスクリプト
LifeKeeperから提供されているサンプルスクリプトを使用して,次のスクリプトを作成します。「HiRDB/シングルサーバの場合」又は「HiRDB/パラレルサーバの場合」の例を参照して作成してください。
  • 起動(Restore)スクリプト
  • 停止(Remove)スクリプト

HiRDBのシェルスクリプト
次のシェルスクリプトを作成します。「HiRDB/シングルサーバの場合」又は「HiRDB/パラレルサーバの場合」の例を参照して作成してください。
  • HiRDB(ユニット)を開始するシェルスクリプト(pdstart.sh)
  • HiRDB(ユニット)を終了するシェルスクリプト(pdstop.sh)
  • HiRDBの状態(ユニットの稼働状態)を表示するシェルスクリプト(pdls.sh)

シェルスクリプトの実行権限は,HiRDB管理者,又はルートユーザに与えてください。なお,これらのスクリプトは現用系,予備系の両方に格納する必要があります。

次にそれぞれのスクリプトの例を示します。この例ではHiRDB管理者のユーザIDをhirdb,スクリプトタイムアウトを600(秒)として作成しています。

HiRDB/シングルサーバの場合
●起動(Restore)スクリプト,及び停止(Remove)スクリプト
HiRDB/シングルサーバでは,起動(Restore)スクリプトと停止(Remove)スクリプトで同一の内容を指定します。例では,HiRDBの設定を指定する保護対象パラメータ設定(ユーザ定義)部分,及びパラメータ初期化部分だけを示します。
 
    :
 
#######################################
# 保護対象パラメータ設定 (ユーザ定義) #
#######################################
 
    :
APP_START="su - hirdb -c /HiRDB_S/conf/pdstart.sh" 
                                           # 起動コマンド.............1
APP_START_ARGS=""                          # 起動コマンドの引数
 
APP_STOP="su - hirdb -c /HiRDB_S/conf/pdstop.sh" 
                                           # 停止コマンド.............2
APP_STOP_ARGS=""                           # 停止コマンドの引数
 
APP_FORCE_STOP=""                          # 強制停止コマンド
APP_FORCE_STOP_ARGS=""                     # 強制停止コマンドの引数
 
APP_CHECK[0]="/HiRDB_S/conf/pdls.sh"       # 動作確認コマンド1........3
APP_CHECK_ARGS[0]=""                       # 上記コマンドの引数
 
# APP_CHECK[1]=""                          # 動作確認コマンド2
# APP_CHECK_ARGS[1]=""                     # 上記コマンドの引数
 
 
####################
# パラメータ初期化 #
####################
 
    :
DEFAULT_TIMEOUT=600         # スクリプトタイムアウト値
START_SUCCESS_CODE=0        # 動作確認コマンドの起動状態の戻り値
STOP_SUCCESS_CODE=12        # 動作確認コマンドの停止状態の戻り値
CHECK_RETRY_CODE=4          # 動作確認コマンドのリトライが必要な戻り値
    :
 
〔説明〕
  1. 起動コマンドに,HiRDBを開始するシェルスクリプト(pdstart.sh)のパスを記載します。
  2. 停止コマンドに,HiRDBを終了するシェルスクリプト(pdstop.sh)のパスを記載します。
  3. 動作確認コマンド1に,HiRDBの状態を表示するシェルスクリプト(pdls.sh)のパスを記載します。
●HiRDBを開始するシェルスクリプト(pdstart.sh)
 
#!/bin/sh -x
 
PDDIR=/HiRDB_S
PDCONFPATH=${PDDIR}/conf
LD_LIBRARY_PATH=${PDDIR}/lib:${LD_LIBRARY_PATH}
PATH=${PATH}:${PDDIR}/bin
export PDDIR PDCONFPATH PATH LD_LIBRARY_PATH
 
$PDDIR/bin/pdstart
 
●HiRDBを終了するシェルスクリプト(pdstop.sh)
 
#!/bin/sh -x
 
PDDIR=/HiRDB_S
PDCONFPATH=${PDDIR}/conf
LD_LIBRARY_PATH=${PDDIR}/lib:${LD_LIBRARY_PATH}
PATH=${PATH}:${PDDIR}/bin
export PDDIR PDCONFPATH PATH LD_LIBRARY_PATH
 
$PDDIR/bin/pdstop -f -q...................................1
 
〔説明〕
  1. 系が短時間で切り替わるように,終了コマンドには強制終了(pdstop -f -q)を用いてください。
●HiRDBの状態を表示するシェルスクリプト(pdls.sh)
 
#!/bin/sh -x
 
PDDIR=/HiRDB_S
PDCONFPATH=${PDDIR}/conf
LD_LIBRARY_PATH=${PDDIR}/lib:${LD_LIBRARY_PATH}
PATH=${PATH}:${PDDIR}/bin
export PDDIR PDCONFPATH PATH LD_LIBRARY_PATH
 
$PDDIR/bin/pdls -d ust
 

HiRDB/パラレルサーバの場合
HiRDB/パラレルサーバでは,起動(Restore)スクリプトと停止(Remove)スクリプトで指定する内容が異なります。例では,HiRDBの設定を指定する保護対象パラメータ設定(ユーザ定義)部分,パラメータ初期化部分,Function部分及びMain(restore)部分だけを示します。
注意
HiRDB/パラレルサーバでユニットのリソースを起動する場合,ユニットを開始するシェルスクリプトを実行した時点で,LifeKeeperのGUI画面上ではユニットのリソースは稼働状態になります。また,ユニットのリソースを系切り替えする場合も,系切り替え先のユニットを開始するシェルスクリプトを実行した時点で,LifeKeeperのGUI画面上ではユニットのリソースは稼働状態になります。ユニットの起動が完了したかどうか,又は系切り替えが完了したかどうかはsyslogfileのKFPS05110-Iメッセージを確認してください。KFPS05110-Iメッセージが出力されていれば,ユニットの起動,又は系切り替えは完了しています。
また,syslogfileにエラーメッセージが出力され,ユニットの起動が失敗している場合は,起動失敗の要因を取り除いた後,LifeKeeperのGUI操作で[Out of Service]を選択し,ユニットのリソースを停止してから再起動してください。
●起動(Restore)スクリプト
 
    :
 
#######################################
# 保護対象パラメータ設定 (ユーザ定義) #
#######################################
 
    :
APP_START="su - hirdb -c /HiRDB_P/conf/pdstart.sh" 
                                            # 起動コマンド.............1
APP_START_ARGS=""                           # 起動コマンドの引数
 
APP_STOP="su - hirdb -c /HiRDB_P/conf/pdstop.sh" 
                                            # 停止コマンド.............2
APP_STOP_ARGS=""                            # 停止コマンドの引数
 
APP_FORCE_STOP=""                           # 強制停止コマンド
APP_FORCE_STOP_ARGS=""                      # 強制停止コマンドの引数
 
APP_CHECK[0]=""                             # 動作確認コマンド1........3
APP_CHECK_ARGS[0]=""                        # 上記コマンドの引数
 
# APP_CHECK[1]=""                           # 動作確認コマンド2
# APP_CHECK_ARGS[1]=""                      # 上記コマンドの引数
 
 
####################
# パラメータ初期化 #
####################
 
    :
DEFAULT_TIMEOUT=600         # スクリプトタイムアウト値
START_SUCCESS_CODE=0        # 動作確認コマンドの起動状態の戻り値
STOP_SUCCESS_CODE=12        # 動作確認コマンドの停止状態の戻り値
CHECK_RETRY_CODE=4          # 動作確認コマンドのリトライが必要な戻り値
    :
 
############
# Function #
############
 
# 起動処理.............................................................4
APP_start()
{
echo "$(date +'[%Y/%m/%d %H:%M:%S]') : $TAG starting on $HOSTNAME"  >> $lklog
$APP_START $APP_START_ARGS >> $lklog 2>&1 &
}
 
    :
 
##################
# Main (restore) #
##################
 
    :
# 起動.................................................................5
APP_start
 
exit 0
 
〔説明〕
HiRDB/パラレルサーバの場合,ユニットを開始するシェルスクリプト(pdstart.sh)の終了を待たないようにするため,3.〜5.を満たす必要があります。
  1. 起動コマンドに,ユニットを開始するシェルスクリプト(pdstart.sh)のパスを記載します。
  2. 停止コマンドに,ユニットを終了するシェルスクリプト(pdstop.sh)のパスを記載します。
  3. 動作確認コマンド1を指定しないでください。
  4. 起動処理内の起動コマンド実行後のwaitの処理を削除します。
  5. 起動処理実行後の動作確認コマンド実行処理部分を削除します。また,起動(Resotre)スクリプトが正常終了するように,起動コマンド実行後に戻り値0がリターンする処理を入れます。
●停止(Remove)スクリプト
 
    :
 
#######################################
# 保護対象パラメータ設定 (ユーザ定義) #
#######################################
 
    :
APP_START="su - hirdb -c /HiRDB_P/conf/pdstart.sh"
                                               # 起動コマンド...........1
APP_START_ARGS=""                              # 起動コマンドの引数
 
APP_STOP="su - hirdb -c /HiRDB_P/conf/pdstop.sh"
                                               # 停止コマンド...........2
APP_STOP_ARGS=""                               # 停止コマンドの引数
 
APP_FORCE_STOP=""                              # 強制停止コマンド
APP_FORCE_STOP_ARGS=""                         # 強制停止コマンドの引数
 
APP_CHECK[0]="/HiRDB_P/conf/pdls.sh"
                                               # 動作確認コマンド1......3
APP_CHECK_ARGS[0]=""                           # 上記コマンドの引数
 
# APP_CHECK[1]=""                              # 動作確認コマンド2
# APP_CHECK_ARGS[1]=""                         # 上記コマンドの引数
 
 
####################
# パラメータ初期化 #
####################
 
    :
DEFAULT_TIMEOUT=600          # スクリプトタイムアウト値
START_SUCCESS_CODE=0         # 動作確認コマンドの起動状態の戻り値
STOP_SUCCESS_CODE=12         # 動作確認コマンドの停止状態の戻り値
CHECK_RETRY_CODE=4           # 動作確認コマンドのリトライが必要な戻り値
    :
 
〔説明〕
  1. 起動コマンドに,ユニットを開始するシェルスクリプト(pdstart.sh)のパスを記載します。
  2. 停止コマンドに,ユニットを終了するシェルスクリプト(pdstop.sh)のパスを記載します。
  3. 動作確認コマンド1に,ユニットの稼働状態を表示するシェルスクリプト(pdls.sh)のパスを記載します。
●ユニットを開始するシェルスクリプト(pdstart.sh)
 
#!/bin/sh -x
 
PDDIR=/HiRDB_P
PDCONFPATH=${PDDIR}/conf
LD_LIBRARY_PATH=${PDDIR}/lib:${LD_LIBRARY_PATH}
PATH=${PATH}:${PDDIR}/bin
export PDDIR PDCONFPATH PATH LD_LIBRARY_PATH
 
$PDDIR/bin/pdstart -q &....................................1
 
〔説明〕
  1. HiRDB/パラレルサーバの場合,ユニットを開始するシェルスクリプトの終了を待たないようにするため,pdstart -qコマンドに「&」を付けて,バックグラウンドで実行します。
●ユニットを終了するシェルスクリプト(pdstop.sh)
 
#!/bin/sh -x
 
PDDIR=/HiRDB_P
PDCONFPATH=${PDDIR}/conf
LD_LIBRARY_PATH=${PDDIR}/lib:${LD_LIBRARY_PATH}
PATH=${PATH}:${PDDIR}/bin
export PDDIR PDCONFPATH PATH LD_LIBRARY_PATH
 
$PDDIR/bin/pdstop -z -q....................................1
 
〔説明〕
  1. 系が短時間で切り替わるように,終了コマンドには強制終了(pdstop -z -q)を用いてください。
●ユニットの稼働状態を表示するシェルスクリプト(pdls.sh)
 
#!/bin/sh -x
 
PDDIR=/HiRDB_P
PDCONFPATH=${PDDIR}/conf
LD_LIBRARY_PATH=${PDDIR}/lib:${LD_LIBRARY_PATH}
PATH=${PATH}:${PDDIR}/bin
export PDDIR PDCONFPATH PATH LD_LIBRARY_PATH
 
$PDDIR/bin/pdls -d ust
 
(b) スクリプトの登録

スクリプトを登録し,HiRDB(HiRDB/パラレルサーバの場合はユニット)のリソースを作成します。

スクリプトの登録は,LifeKeeperのGUI画面から[Edit]−[Server]−[Create Resource Hierarchy]−[Generic Application]を選択して表示される画面で,次の表に示す項目を選択,又は指定します。

項目 選択値,又は指定値
Switchback Type 「intelligent」を選択します。
Server 現用系のホスト名を指定します。
Restore Script 起動(Restore)スクリプトの格納場所を指定します。
Remove Script 停止(Remove)スクリプトの格納場所を指定します。
QuickCheck Script 指定しません。
Application Info 指定しません。
Bring Resource In Service 「No」を選択します。
Resource Tag LifeKeeper管理上の任意のリソース名を指定します。

現用系での設定が完了すると,予備系を設定するための[Pre-Extend Wizard]画面に移りますが,[Cancel]を選択して,LifeKeeperのGUI画面で現用系にHiRDBのリソースが作成されていることを確認してください。なお,HiRDB/パラレルサーバで複数のユニットが存在する場合は,ユニット数分の設定を行い,ユニット数分のリソースが作成されていることを確認してください。

その後,HiRDB(ユニット)のリソースのアイコン上で右クリックのメニューから[In Service]を選択し,HiRDB(ユニット)を起動してください。HiRDB(ユニット)の起動完了後,GUI画面上でHiRDB(ユニット)のリソースが有効になったことを確認してから,[Extend Resource Hierarchy]を選択して予備系の設定を行ってください。

(5) リソース階層の作成

作成したリソースの階層を設定します。

リソース階層を設定は,HiRDB(HiRDB/パラレルサーバの場合はユニット)のリソースのアイコン上で右クリックのメニューから[Create Dependency]を選択します。親リソース,及び子リソースは,次のように設定します。

親リソース

子リソース