26.5.3 HiRDBシステム定義の作成
- 〈この項の構成〉
(1) スタンバイ型系切り替え機能の場合
現用系,予備系とも同じHiRDBシステム定義を使用します。現用系のHiRDBシステム定義を作成した後に,そのHiRDBシステム定義を予備系にコピーしてください。HiRDBシステム定義ファイルの構成例を次の図に示します。
|
|
(2) 1:1スタンバイレス型系切り替え機能の場合
正規BESユニットのユニット制御情報定義ファイル及びバックエンドサーバ定義ファイルを代替BESユニットにコピーします。そのとき,ユニット制御情報定義ファイルの名称を次に示すように変更してください。
pdutsys.正規BESユニットのユニット識別子
この定義ファイルに指定したオペランドのうち,代替中に設定値が有効になるオペランドを次に示します。次に示すオペランド以外は代替BESユニットのユニット制御情報定義ファイルに設定したオペランドの値が有効になります。
-
pd_syssts_file_name_1〜7
-
pd_syssts_singleoperation
-
pd_syssts_initial_error
-
pd_syssts_last_active_file
-
pd_syssts_last_active_side
-
pd_audit
-
pd_aud_file_name
-
pd_aud_max_generation_size
-
pd_aud_max_generation_num
-
pd_aud_async_buff_size
-
pd_aud_async_buff_count
-
pd_ha_switch_timeout
-
pd_rpl_hdepath
スタンバイレス型系切り替え機能使用時のHiRDBシステム定義ファイルの構成例(相互代替構成の場合)を次の図に示します。
|
- 〔説明〕
-
-
正規BESユニット(BES1)のユニット制御情報定義ファイル及びバックエンドサーバ定義ファイルを代替BESユニット(BES2)にコピーします。そのとき,ユニット制御情報定義ファイルの名称をpdutsys.UNT1に変更します。
-
正規BESユニット(BES2)のユニット制御情報定義ファイル及びバックエンドサーバ定義ファイルを代替BESユニット(BES1)にコピーします。そのとき,ユニット制御情報定義ファイルの名称をpdutsys.UNT2に変更します。
-
(3) 影響分散スタンバイレス型系切り替え機能の場合
影響分散スタンバイレス型系切り替え使用時のシステム定義ファイルの運用方法を次の表に示します。
定義種別 |
定義ファイルの運用方法 |
---|---|
システム共通定義 |
システム内全ユニットにファイルをコピーします。 バックエンドサーバ定義のデフォルト値として設定するパラメタは,システム共通定義に記述してください。 |
ユニット制御情報定義 |
次のオペランド(システム共通定義に記述できないオペランド)だけを記述してください。
上記以外のオペランドはシステム共通定義,又はバックエンドサーバ定義に記述してください。上記以外のオペランドを記述した場合は,エラーとなります(メッセージKFPS05618-Eを出力します)。 |
サーバ共通定義 |
HAグループ内全ユニットにファイルをコピーします。 |
バックエンドサーバ定義 |
HAグループ内全ユニットにファイルをコピーします。 |
- 注※
-
同一サーバマシンに複数のユニットを配置する場合,このオペランドには,ユニットごとに異なる値を指定してください。
(4) 系切り替え機能に関するHiRDBシステム定義のオペランド
ここでは,系切り替え機能に関するオペランドについて説明します。系切り替え機能に関するHiRDBシステム定義のオペランドを次の表に示します。
オペランド名 |
説明 |
|
---|---|---|
系切り替え機能を使用する場合に指定します。 |
||
IPアドレスを引き継ぐかどうかを指定します。マルチスタンバイ構成を適用する場合は,Yを指定してください。サーバモードを適用するユニットにはNを指定してください。スタンバイレス型系切り替え機能を適用するユニットはこのオペランドを省略してください。 Y:IPアドレスを引き継ぎます。 N:IPアドレスを引き継ぎません。 サーバモードで運用する場合はIPアドレスを引き継げません。 |
||
系切り替え機能をモニタモードで運用するか,サーバモードで運用するかを指定します。pd_ha_acttype=serverを指定する場合は,pd_ha_ipaddr_inherit=N(IPアドレスを引き継がない)にする必要があります。 monitor:系切り替え機能をモニタモードで運用します。 server:系切り替え機能をサーバモードで運用します。 |
||
ユーザサーバホットスタンバイを使用するかどうかを指定します。 Y:ユーザサーバホットスタンバイを使用します。 N:ユーザサーバホットスタンバイを使用しません。 |
||
高速系切り替え機能,1:1スタンバイレス型系切り替え機能,又は影響分散スタンバイレス型系切り替え機能を使用する場合に指定します。 standbyunit:高速系切り替え機能を使用します。 server:1:1スタンバイレス型系切り替え機能を使用します。 activeunits:影響分散スタンバイレス型系切り替え機能を使用します。 |
||
|
||
フロントエンドサーバを配置したユニットの起動直後からトランザクションキューイング機能を有効にする場合に指定します。 |
||
このオペランドはサーバモードの場合に指定できます。モニタモードの場合にこのオペランドを指定しても無効になります。 系切り替え時のHiRDB(HiRDB/パラレルサーバの場合はユニット)の内部停止処理がサーバ障害監視時間を超えた場合に,HiRDBの内部停止処理を待たないで系を切り替えるかどうかを指定します。ここでいうサーバ障害監視時間とは,Hitachi HA Toolkit Extensionのpatrolオペランドに指定した時間のことです。 Hitachi HA Toolkit Extensionのpatrolオペランドについては,マニュアル「Hitachi HA Toolkit」を参照してください。 Y:系切り替え時のHiRDBの内部停止処理がサーバ障害監視時間を超えた場合,HiRDBの内部停止処理を待たないで系を切り替えます。このとき,HiRDBのスローダウンとして系を切り替えます。 N:系切り替え時のHiRDBの内部停止処理が終わるまで系を切り替えません。 |
||
系切り替え機能を適用しないユニットがある場合にnouseを指定します。回復不要FESユニットにはnouseを指定してください。 |
||
HiRDB(ユニット)の開始方法に関するオペランドです。指定値の目安を次に示します。 モニタモードの場合はMANUAL1を指定してください。ただし,クラスタソフトウェアにCLUSTERPROを使用して,カスタム監視リソースを作成する場合はMANUAL2を指定してください。 サーバモードの場合は次のように指定してください。
|
||
pd_hostname |
現用系の標準ホスト名を指定します。スタンバイレス型系切り替え機能の場合はユニットの標準ホスト名を指定します(系切り替え機能を使用しない場合と同じです)。 |
|
pdunit |
-x |
現用系のホスト名を指定します。マルチスタンバイ構成の場合は,IPアドレスを引き継ぐホスト名を指定してください。スタンバイレス型系切り替え機能の場合はユニットのホスト名を指定します(系切り替え機能を使用しない場合と同じです)。 |
-u |
ユニット識別子を指定します。 |
|
-d |
HiRDB運用ディレクトリ名を指定します。マルチスタンバイ構成の場合は,現用系とすべての予備系で同じディレクトリ名を指定してください。1:1スタンバイレス型系切り替え機能の場合は,正規BESユニットと代替BESユニットで同じディレクトリ名を指定してください。影響分散スタンバイレス型系切り替え機能の場合は,HAグループ内の全ユニットで同じディレクトリ名を指定してください。 |
|
-c |
予備系のホスト名を指定します。IPアドレスを引き継がない場合に指定します。スタンバイレス型系切り替え機能の場合はこのオプションを省略してください。 |
|
-p |
HiRDBのポート番号を指定します。1:1スタンバイレス型系切り替え機能の場合,正規BESユニットと代替BESユニットのポート番号※1は同じ番号を指定してください。影響分散スタンバイレス型系切り替え機能の場合は,HAグループ内の全ユニットで同じポート番号を指定してください。 |
|
-s |
スケジューラのポート番号を指定します。1:1スタンバイレス型系切り替え機能の場合,正規BESユニットと代替BESユニットのポート番号※2は同じ番号を指定してください。影響分散スタンバイレス型系切り替え機能の場合は,HAグループ内の全ユニットで同じポート番号を指定してください。 |
|
-t |
トランザクションサーバのポート番号を指定します。1:1スタンバイレス型系切り替え機能の場合,正規BESユニットと代替BESユニットのポート番号※3は同じ番号を指定してください。影響分散スタンバイレス型系切り替え機能の場合は,HAグループ内の全ユニットで同じポート番号を指定してください。 |
|
pdstart |
-c |
代替BES名を指定します。1:1スタンバイレス型系切り替え機能の場合に指定します。 |
-g |
影響分散スタンバイレス型系切り替え機能を使用する場合に,サーバの移動先となるユニットの集合であるHAグループの識別子を指定します。 |
|
pdbuffer |
-c |
代替中に代替部が使用するグローバルバッファを割り当てる場合にこのオプションを指定します。スタンバイレス型系切り替え機能の場合に指定します。1:1スタンバイレス型系切り替え機能の場合は,「グローバルバッファの定義(1:1スタンバイレス型系切り替え機能限定)」を参照してください。影響分散スタンバイレス型系切り替え機能の場合は,「グローバルバッファの定義(影響分散スタンバイレス型系切り替え機能限定)」を参照してください。 |
-g |
影響分散スタンバイレス型系切り替え機能を使用する場合にサーバの切り替え先となるユニットの集合としてHAグループを定義します。システム内でHAグループを一意に識別するための識別子を指定します。 |
|
-u |
HAグループを構成するユニットのユニット識別子を指定します。 |
|
影響分散スタンバイレス型系切り替え機能を使用する場合に,該当ユニット内で同時に実行系として稼働できるゲストBES数の最大値を指定します。 |
||
影響分散スタンバイレス型系切り替え機能を使用する場合に,該当ユニット内の最大起動ユーザサーバプロセス数を指定します。 |
||
影響分散スタンバイレス型系切り替え機能を使用する場合,ユニットを開始するときに,実行系サーバのリソースが活性化されるまでの最大待ち時間を指定します。 |
||
pd_service_port |
同一サーバマシン内複数ユニット構成の場合(相互系切り替え構成を含みます)にこのオペランドを指定するときは注意が必要です。同一サーバマシン内複数ユニット構成の場合(相互系切り替え構成を含みます),このオペランドはユニット制御情報定義でユニットごとに別々のポート番号を指定してください。 次に示す指定をした場合は,どちらかのユニットへの系の切り替えに失敗します。
|
|
このオペランドにnotwaitを指定すると,システムマネジャユニットの系切り替え時(切り替え先の系での開始処理時)に,各ユニットからの開始処理完了の連絡待ちを行いません。これによって,停止中のユニットがある状態でもシステムマネジャユニットの系切り替えが実行できるようになります。 運用方法の詳細については,「停止中のユニットがあるためシステムマネジャユニットの系切り替えに失敗するときの対処方法」を参照してください。 |
||
1:1スタンバイレス型系切り替え機能の場合,正規BESとそれに対応する代替BESに同じ値を指定してください。 |
- 注※1
-
システム定義のpd_name_portオペランド及びpdunitオペランドの-pオプションを指します。
- 注※2
-
システム定義のpd_scd_portオペランド及びpdunitオペランドの-sオプションを指します。
- 注※3
-
システム定義のpd_trn_portオペランド及びpdunitオペランドの-tオプションを指します。
(5) 切り替え先の指定(影響分散スタンバイレス型系切り替え機能限定)
影響分散スタンバイレス型系切り替え機能では,ほかの系切り替え機能とは異なり,切り替え先の定義方法が大きく異なります。
(a) 受け入れユニット
影響分散スタンバイレス型系切り替え機能では,切り替え単位がサーバのためサーバごとに切り替え先を指定する必要があります。サーバは複数の受け入れユニットを指定できます。複数の受け入れユニットはHAグループとして定義します。各サーバの切り替え先にはHAグループを指定します。
また,影響分散スタンバイレス型系切り替え機能では,ユニットごとに同時に稼働できるゲストBES数の最大値(pd_ha_max_act_guest_servers)を指定できます。
HAグループの構成例を次の図に示します。
|
pdhagroup -g hag1 -u unt1,unt2,unt3,unt4 pdstart -t BES -s bes1A -u unt1 -g hag1 pdstart -t BES -s bes1B -u unt1 -g hag1 pdstart -t BES -s bes1C -u unt1 -g hag1 pdstart -t BES -s bes2A -u unt2 -g hag1 pdstart -t BES -s bes2B -u unt2 -g hag1 pdstart -t BES -s bes2C -u unt2 -g hag1 pdstart -t BES -s bes2D -u unt2 -g hag1 pdstart -t BES -s bes3A -u unt3 -g hag1 pdstart -t BES -s bes3B -u unt3 -g hag1 pdstart -t BES -s bes3C -u unt3 -g hag1 pdstart -t BES -s bes4A -u unt4 -g hag1 pdstart -t BES -s bes4B -u unt4 -g hag1
|
pdhagroup -g hag1 -u unt1,unt2 pdhagroup -g hag2 -u unt3,unt4 pdstart -t BES -s bes1A -u unt1 -g hag1 pdstart -t BES -s bes1B -u unt1 -g hag1 pdstart -t BES -s bes1C -u unt1 -g hag1 pdstart -t BES -s bes2A -u unt2 -g hag1 pdstart -t BES -s bes2B -u unt2 -g hag1 pdstart -t BES -s bes2C -u unt2 -g hag1 pdstart -t BES -s bes2D -u unt2 -g hag1 pdstart -t BES -s bes3A -u unt3 -g hag2 pdstart -t BES -s bes3B -u unt3 -g hag2 pdstart -t BES -s bes3C -u unt3 -g hag2 pdstart -t BES -s bes4A -u unt4 -g hag2 pdstart -t BES -s bes4B -u unt4 -g hag2
(b) HAグループ定義
HiRDBシステム定義のpdhagroup の-gオプションにHAグループ名を指定し,-uオプションにHAグループを構成するユニットのユニット識別子を指定します。
- (例)
pdhagroup -g hag1 -u unt1,unt2 …1. pdhagroup -g hag2 -u unt3,unt4 …2.
-
unt1及びunt2で構成するHAグループhag1を定義します。
-
unt3及びunt4で構成するHAグループhag2を定義します。
-
HAグループには次の制限があります。
-
HAグループ内のユニット数は32までです。
-
HAグループ内のユニットはすべて同一のネットワークセグメント内に配置してください。
-
HAグループ内のユニットに定義できるホストBES数とゲストBES領域数(=最大アクティブゲストBES数)の合計は34までです。
HAグループを構成するユニットは次の条件をすべて満たさなければなりません。
-
ホストBESがないユニット(受け入れ専用ユニット)は,HAグループに属せません。
このため,HAグループに属するユニットには,一つ以上のホストBESがなければなりません。
-
HAグループに属するユニットを構成するサーバはバックエンドサーバだけです。このため,サーバ種別が「BES」以外のサーバはあってはなりません。
-
HAグループに属するユニットには影響分散スタンバイレス型系切り替え以外の系切り替えを適用できません。このため,HAグループに属するユニットでは,pd_ha_agentに「activeunits」以外の値は設定できません。
-
HAグループに属するユニットは,複数のHAグループに属することはできません。
(c) 受け入れユニットの指定方法
HiRDBのシステム定義でpdstartの-gオプションに受け入れユニットの属するHAグループを指定します。
影響分散スタンバイレス型系切り替えを適用したユニットに属するすべてのサーバに対して-gオプションを指定しなければなりません。
- (例)pdstart -t BES -s bes1A -u unt1 -g hag1
-
unt1,又はbes1異常終了時,bes1の処理はHAグループhag1に属するユニットが受け入れます。
-gオプションを指定する場合の注意事項を次に示します。
-
正規ユニット及び受け入れユニットを構成するサーバはバックエンドサーバだけです。
-
-tオプションに「BES」が指定されていなければなりません。
-
-gオプションで指定したHAグループに属するユニットにも,サーバ種別が「BES」以外のサーバがあってはなりません。
-
-
正規ユニットを構成するサーバの数と受け入れユニットを構成するサーバの数が同じ必要はありません。
-
-uオプションで指定したユニット(正規ユニット)のサーバの数と-gオプションで指定したHAグループに属するユニット(受け入れユニット)のサーバの数が同じ必要はありません。
-
(d) 同時稼働ゲストBES数最大値の指定
ユニット制御情報定義のpd_ha_max_act_guest_serversオペランドに,ユニット内で同時に実行系として稼働できるゲストBES数の最大値を指定します。この指定によって,ゲストBES用のリソース所要量を削減できます。また,過剰な負荷の上昇を抑えられます。
(例) pd_ha_max_act_guest_servers = 2
pd_ha_max_act_guest_serversオペランドの上限値は,HAグループ内のサーバ数から自ユニット内サーバ数を引いた値です。この上限値以上の値を指定しても,pd_ha_max_act_guest_serversオペランドには上限値が設定されます。ホストBESの数とpd_ha_max_act_guest_serversオペランドの値の合計は34に制限されます。
ユニット内の受け入れ可能状態ゲストBESの数は制限しません。ただし,ユニット内で実行系として稼働しているゲストBES数がpd_ha_max_act_guest_serversオペランドに指定した値に達すると,すべての非稼働中のゲストBESについて受け入れ可能状態を解除します。
また,HAグループ内の障害BES数がHAグループ内の稼働中ユニットの空きゲスト用領域数の合計を超えると,障害によって一部のサーバの処理が停止します。
(6) 系切り替え後のサーバプロセスの割り当て
(a) 1:1スタンバイレス型系切り替えの場合
1:1スタンバイレス型系切り替えでの系切り替え後の代替BESユニットでは,代替BESが本来の処理をするとともに,正規BESの処理を代行します。このとき,サーバプロセスは代替BES本来の処理用と正規BESの処理用に割り当てられます。代替BES本来の処理をしているサーバプロセスと正規BESの処理を代行しているサーバプロセスの数は必要に応じて変化しますが,代替BESの最大起動プロセス数(pd_max_bes_processオペランドの値)が両者の合計プロセス数の上限となります。この結果,系切り替え発生後の代替BESユニットでの過剰な負荷上昇を抑止できますが,一方で,系切り替え発生後には同時に処理できるサービス要求数の上限が平均で半数に制限されますので注意が必要です。系切り替え発生後のユニットの負荷上昇,及び同時に処理できるサービス要求数の両方を考慮して代替BESのpd_max_bes_processオペランドを設定してください。
また,系切り替え発生前の状態で常駐プロセス数(pd_process_countオペランドの値)に余裕があり,サービス要求処理中でないサーバプロセスが常駐している状態では,系切り替え発生後にサービス要求処理中でない常駐プロセスを正規BESの処理を代行するために利用できます。このため,切り替え時の処理性能が向上します。
1:1スタンバイレス型系切り替えでの系切り替え発生後のサーバプロセスの割り当て(その1)を次の図に示します。
|
系切り替え発生前は代替BES(bes1)のpd_max_bes_processオペランドの値まで同時に処理できます。また,代替BES(bes1)のpd_process_countオペランドの値までサーバプロセスを常駐します。
系切り替えが発生すると代替BES(bes1)の常駐プロセスを使って,正規BES(bes2)の処理を開始します。このため,正規BES(bes2)処理用のサーバプロセス起動が必要なく,切り替え後すぐに正規BES(bes2)の処理が開始します。また,系切り替え前に正規BES(bes2)処理用のサーバプロセスを待機起動する必要もありません。
また,常駐プロセスを使い切った場合は必要に応じてサーバプロセスを追加起動しますが,サーバプロセス数は代替BES(bes1)のpd_max_bes_processオペランドの値までに制限されます。
1:1スタンバイレス型系切り替えでの系切り替え発生後のサーバプロセスの割り当て(その2)を次の図に示します。
|
系切り替え後,代替BES(bes1)が正規BES(bes2)の処理を代行中には,代替BESのpd_max_bes_processオペランドの範囲で,必要に応じて起動したサーバプロセスを代替BES(bes1)の処理,及び正規BES(bes2)処理用に振り分けます。
代替BES(bes1)への処理要求だけの場合には,代替BES(bes1)のpd_max_bes_processオペランドの値まで,同時に代替BES(bes1)の処理ができます。
また,正規BES(bes2)への処理要求だけの場合には,代替BES(bes1)のpd_max_bes_processオペランドの値まで,同時に正規BES(bes2)の処理ができます。
(b) 影響分散スタンバイレス型系切り替え機能の場合
影響分散スタンバイレス型系切り替えでの系切り替え後の受け入れユニットでは,実行中ゲストサーバ数がpd_ha_max_act_guest_serversオペランドの値になるまでゲストサーバを受け入れできます。
受け入れユニットではホストBES,ゲストBESがそれぞれ独自の最大起動プロセス数(pd_max_bes_processオペランドの値)の範囲でサーバプロセスを起動しますが,そのほかにユニット内のサーバプロセス数合計値がpd_ha_max_server_processオペランドに制限されます。この結果,受け入れユニットの過剰な負荷上昇を抑止できます。ただし,系切り替え発生後に同時に処理できるサービス要求数の上限が制限されることがありますので注意が必要です。系切り替え発生後のユニットの負荷上昇,及び同時に処理できるサービス要求数の両方を考慮してpd_ha_max_server_processオペランドを設定してください。
また,系切り替え発生前の状態でホストBESの常駐プロセス数(pd_process_countオペランドの値)に余裕があり,サービス要求処理中でないサーバプロセスが常駐している状態では,系切り替え発生後にサービス要求処理中でない常駐プロセスをゲストBESの処理に利用できるため,処理性能が向上します。一方で,常駐プロセス数を必要以上に大きくすると,非サービス要求処理中プロセスによってサーバプロセス数がpd_ha_max_server_processオペランドの値に達し,ほかのサーバで起動済みサーバプロセス数がpd_max_bes_processオペランドの値に満たない状態でも追加のサービス要求処理ができないことがあります。一般に,ユニット内の常駐プロセス数の合計と最大実行プロセス数の合計の比率はゲストサーバ受け入れ前後で同じにすることを推奨します。この目的で,ゲストサーバを受け入れた後のユニット内の常駐プロセス数の合計をpd_ha_process_countオペランドで制限します。実際の常駐プロセス数は,pd_ha_process_countオペランドをユニットで実行中サーバのpd_process_countオペランドで比例配分した数とpd_process_countオペランドの小さい方となります。
プロセス数に関連するオペランドの意味を次に示します。
-
pd_ha_max_act_guest_servers:受け入れ可能なゲストBES数
-
pd_ha_max_server_process:ゲストBESとホストBESのサーバプロセス数の合計値の上限
-
pd_ha_process_count:ゲストBESとホストBESの常駐プロセス数の合計値の上限
影響分散スタンバイレス型系切り替えでの系切り替え発生後のサーバプロセス割り当て(その1)を次の図に示します。
|
系切り替え発生前はホストBES(bes1,bes2)はそれぞれのpd_max_bes_processオペランドの値まで同時に処理できます。また,それぞれのpd_process_countオペランドの値までサーバプロセスを常駐します。
系切り替えが発生するとホストBES(bes1,bes2)の常駐プロセスを流用してゲストBES(bes3)のサーバプロセスを用意します。このため,ゲストBESのサーバプロセスを起動する必要がなく,切り替え後すぐにゲストBES(bes3)の処理が開始できます。また,系切り替え発生前にゲストBES(bes3)用のサーバプロセスを待機起動する必要もありません。
各サーバは必要に応じてそれぞれのpd_max_bes_processオペランドの値までバックエンドサーバプロセスを起動しますが,ユニット内のサーバプロセスの総計はpd_ha_max_server_processオペランドの値に制限されます。
また,常駐プロセス数の総数がユニット内でpd_ha_process_countオペランドの値となるよう,各サーバの常駐プロセスが調整されます。調整後の各サーバの常駐プロセス数は各サーバのpd_process_countオペランドの比率を保つよう,pd_ha_process_countオペランドの値を比例配分します。
影響分散スタンバイレス型系切り替えでの系切り替え発生後のサーバプロセス割り当て(その2)を次の図に示します。
|
系切り替え後,ゲストBES(bes3)受け入れ中は,ユニット内のバックエンドサーバプロセス数がpd_ha_max_server_processオペランドの範囲で,必要に応じてホストBES(bes1,bes2),及びゲストBES(bes3)のバックエンドサーバプロセスを起動します。
特定のホストBES(例えばbes1)への処理要求が特に多い場合は,該当ホストBES(bes1)のpd_max_bes_processオペランドの値まで同時に処理できます。ただし,その分,他サーバ(例えばbes3)の同時要求処理数が少なくなります。