ここでは、前節で設定したuserApplicationへリソースを登録する方法について説明します。
登録できるリソースは、以下があります。
Cmdline リソース
スクリプトファイルやコマンドをリソースとして設定する場合に使用します。
このリソースは、ISVアプリケーションや利用者アプリケーションをuserApplicationの状態に連動して起動/停止したり、逆にアプリケーションの停止に連動してuserApplicationを状態遷移するために必要です。
Fsystem リソース
ファイルシステムをuserApplicationの起動に合わせてマウントする場合に使用します。
注意
GDSで作成したクラス上のファイルシステムをFsystemリソースとして使用する場合、Gdsリソースも同一のuserApplicationにリソース登録を行う必要があります。
Gds リソース
GDS (Global Disk Services)で定義するディスククラスを userApplicationと連動して起動/停止する場合に使用します。
Gls リソース
GLS (Global Link Services)の伝送路二重化機能で定義する引継ぎIPアドレスをuserApplicationに設定する場合、および伝送路一重化で引継ぎIPアドレスをuserApplicationに設定する場合に使用します。
引継ぎネットワークリソース
GLSを使用せずに、単一のネットワークインタフェース上で引継ぎIPアドレスを設定する場合に使用します。
プロシジャリソース
状態遷移プロシジャリソースをuserApplicationに登録する場合に使用します。
■リソース設定の流れ
Cmdlineリソースの設定方法について説明します。
◆操作手順
“turnkey wizard "STANDBY"”の“CommandLines”を選択します。
“CommandLines”が表示されます。“AdditionalStartCommand”を選択します。
“FREECHOICE”を選択し、実行するStartCommandをフルパスで入力します。引数を指定する場合は、空白で区切ります。
StartCommandは、利用者プログラムを起動するため、Online処理で実行されるスクリプトです。
0 :正常終了を示します。Online処理が成功した場合に本終了コードを使用します。
0以外:異常終了を示します。Online処理が失敗した場合に本終了コードを使用します。本終了コードで復帰した場合、リソースはFaulted状態になります。
“CommandLines”が表示されます。利用者プログラムの停止が必要であれば“StopCommands”を選択します。
StopCommandは、利用者プログラムを停止するため、Offline処理で実行されるスクリプトです。StopCommandの設定は必須ではありません。
0:正常終了を示します。Offline処理が成功した場合に本終了コードを使用します。
0以外:異常終了を示します。Offline処理が失敗した場合に本終了コードを使用します。本終了コードで復帰した場合、リソースはFaulted状態になります。
StopCommandが不要な場合は、手順6.から実施してください。
“FREECHOICE”を選択し、実行するStopCommandをフルパスで入力します。引数を指定する場合は、空白で区切ります。
“CommandLines”が表示されます。“CheckCommands”を選択します。
CheckCommandは、利用者プログラムの状態をRMSへ通知するため、定期的に実行されるコマンドです。
0:Onlineを示します。
0以外:Offlineを示します。
ALLEXITCODES属性を有効にすると、CheckCommandの終了コードに、もっと詳細な情報を返すことができます。属性は、手順8.で変更します。
“FREECHOICE”を選択し、実行するCheckCommandをフルパスで入力します。引数を指定する場合は、空白で区切ります。
属性の変更
使用目的に応じて、属性の変更を行ってください。属性を変更する場合は“Flags[0]”を選択します。属性の詳細については、“PRIMECLUSTER RMS 導入運用手引書”の“11 付録-属性”、および“HELP”を参照してください。
注意
属性“NULLDETECTOR”を有効にした場合は、RMSからCheckCommandが起動されなくなります。
ホットスタンバイ運用をする場合には、次の2つの属性を有効にしてください。
STANDBYCAPABLE
対応するuserApplicationがOfflineである全てのノードにおいてリソースのStandby処理を実行します。
ALLEXITCODES
Checkスクリプトの終了コードによるリソース状態の識別を詳細化します。
ホットスタンバイ運用の設定に関するその他の注意事項は“6.6 Online/Offlineスクリプトの設定”を参照してください。
最後に“SAVE+EXIT”を選択します。
ファイルシステムをuserApplicationの起動に合わせてマウントする場合に設定する必要があります。
親子関係にある複数のマウントポイントを制御させたい場合は、1つのFsystemリソースとして作成します。
<事前設定>
Fsystemリソースを使用する場合には、以下の事前設定が必要となります。
監視用ディスク領域の確保
共用ディスク装置のケーブル抜け等の異常を検出するための専用の監視用ディスク領域を共用ディスク装置に確保してください。
下記表の1、2 いずれかの単位で監視用ディスク領域を確保してください。2のパターンの設定を推奨します。
NO | 監視用ディスク | 異常検出の範囲 | 事前準備 |
---|---|---|---|
1 | 共用ディスク装置単位 | 共用ディスク装置のケーブル抜けなど、共用ディスク装置単位での共用ディスク装置の異常を検出 |
|
2 | ディスク領域(LU)単位 | 上記に加え、LUN故障など共用ディスク領域単位(業務単位)での共用ディスク装置の異常を検出 |
|
マウントポイントの定義
userApplicationを構成する全てのノードの/etc/fstab.pclファイルに、リソースとして使用するマウントポイントを定義しておく必要があります。行の先頭は、必ず「#RMS#」で始まるようにしてください。
例)/etc/fstab.pclファイル
#RMS#/dev/sdd1 /mnt/swdsk1 ext3 defaults 1 2
#RMS#/dev/sdd2 /mnt/swdsk2 ext3 defaults 1 2
#RMS#/dev/sdd3 /mnt/monitor ext3 defaults,ro 1 2
GDSの設定画面からファイルシステムを作成した場合には、すでにマウントポイントが/etc/fstabファイルに定義されています。GDSで定義されたマウントポイントを/etc/fstab.pclファイルにコピーし、マウントポイントの行の先頭に、「#RMS#」を追加してください。
例)/etc/fstab.pclファイル
#RMS#/dev/sfdsk/class0001/dsk/volume0001 /mnt/swdsk1 ext3 noauto 0 0
#RMS#/dev/sfdsk/class0001/dsk/volume0002 /mnt/swdsk2 ext3 noauto 0 0
#RMS#/dev/sfdsk/class0001/dsk/volume0003 /mnt/monitor ext3 noauto,ro 0 0
注意
GDS設定画面からファイルシステムを作成した、当該の共用クラスをGdsリソースに設定する必要があります。詳細は、“6.7.3.4 Gdsリソースの設定”を参照してください。
監視専用ディスク領域のマウント属性は読み込み専用(Read Only)で設定してください。
例)
#RMS#/dev/sdf1 /mnt/monitor ext3 defaults,ro 1 2
異なるボリュームを同一のマウントポイントに定義することはできません。
ファイルシステムの設定
リソースとして使用するディスクパーティション上にファイルシステムを作成しておく必要があります。
例)ext3ファイルシステムの作成
# /sbin/mkfs -t ext3 /dev/sdd1
作成したファイルシステムが正常にマウントできることを各ノードで確認してください。
例)マウントの確認
# /bin/mount -t ext3 /dev/sdd1 /mnt/swdsk1 # /bin/umount /mnt/swdsk1
注意
監視用ディスク領域にもファイルシステムを設定してください。
強制ファイルシステムチェックの回避(推奨)
ファイルシステムにext3 を使用している場合、切替ファイルシステムのオンライン処理時に強制的なファイルシステムチェックが実行されることがあります。この強制的なファイルシステムチェックの実行は ext3 の仕様であり、前回のファイルシステムチェックから一定回数のマウントが実行された、あるいは一定期間経過したことを契機に実行されるものです。
両ノード起動時や切替え時などに強制的なファイルシステムチェックが実行されると、ファイルシステムのオンライン処理でタイムアウトが発生し、PRIMECLUSTER の起動や切替えに失敗することがあります。
このような状況を回避するため、全てのext3 切替ファイルシステムに対して次のコマンドを実行し、強制ファイルシステムチェックが実行されないように設定してください。
# tune2fs -c0 -i0 <デバイス名>
例)
# tune2fs -c0 -i0 /dev/sdi1
上記コマンド実行後、次のコマンドで“Maximum mount count :-1”,“Check interval:0”となっていることを確認してください。
# tune2fs -l /dev/sdi1
[snip]
Mount count: 10
Maximum mount count: -1
[snip]
Check interval: 0 (<none>)
[snip]
上記のように強制的なファイルシステムチェックが実行されない設定とした場合、ファイルシステムのロギングやジャーナリングだけでは検知できない原因(ディスク故障、カーネルバグ等)によるファイルシステム破壊が発生すると、その発見が遅れるため、データ損失の危険性が高まります。定期保守において、手動でファイルシステムの強制チェック(fsck -f) を実行して、データ損失の危険性を回避してください。
◆操作手順
“turnkey wizard "STANDBY"”の“LocalFileSystems”を選択します。
“AdditionalMountPoint”を選択します。
前述の /etc/fstab.pclファイルの事前設定で定義したマウントポイントが表示されます。
監視専用ディスクのマウントポイントを選択します。
注意
業務で使用するディスクのマウントポイントよりも前に監視専用ディスクのマウントポイントの設定を行ってください。
複数のマウントポイントを登録する場合には、手順3.~手順7.までを複数回実施してください。
“SAVE+RETURN”を選択します。
前述の /etc/fstab.pclファイルの事前設定で定義したマウントポイントが表示されます。
業務で使用するディスクのマウントポイントを選択します。
“MONITORONLY”属性をONにするため、“MONITORONLY”を選択します。
“SAVE+RETURN”を選択します。
“SAVE+EXIT”を選択します。
Gdsリソースを設定する場合には、Gdsリソース設定前に共用ボリュームを設定する必要があります。また、Gdsリソース設定前に、いずれか1ノードで以下のコマンドを実行してください。
このコマンドは、指定したGdsリソースが userApplicationの状態と連動してGDSボリュームの起動/停止を行うために必要な操作です。加えてボリュームを共用する全ノードで offline状態にします。
# /opt/SMAW/SMAWRrms/bin/hvgdsetup -a [class-name]
...
Do you want to continue with these processes ? [yes/no] y
参考
共用ボリュームの設定状態は、以下のコマンドで確認することができます。
# /opt/SMAW/SMAWRrms/bin/hvgdsetup -l
注意
事前設定を行わなかった場合、クラスタアプリケーションがInconsistent状態になります。詳細は、“PRIMECLUSTER Global Disk Services説明書”の“F.1.9 クラスタシステムに関する異常”の「(3) クラスタアプリケーションがInconsistent状態になる。」を参照してください。
GFS共用ファイルシステムを使用する場合は、本操作を行ってはいけません。
Gdsリソースの事前設定が完了したら、GdsリソースをuserApplicationに登録します。GdsリソースをuserApplicationに設定する手順を以下に説明します。
◆操作手順
“turnkey wizard "STANDBY"”の“Gds:Global-Disk-Services”を選択します。
“Volume management”の“AdditionalDiskClass”を選択します。
複数のリソースを登録する場合には、手順2.~手順3.までを複数回実施してください。
共用ボリュームのクラス[CL]をuserApplicationに登録する例:
userApplicationに登録するクラスタリソース一覧が表示されます。
複数ノードでクラスタ運用する場合
登録するクラスタリソースを選択します。
シングルノードクラスタ運用の場合
クラスタリソース一覧は表示されませんので、"FREECHOICE"を選択し、作成したGDSのクラス名を入力してください。
“SAVE+EXIT”を選択します。
<事前設定>
Glsリソースの設定前に仮想インタフェースと引継ぎ仮想インタフェースの設定を行っておく必要があります。詳細は、“PRIMECLUSTER Global Link Services 説明書(伝送路二重化機能編)”を参照してください。
◆操作手順
“turnkey wizard "STANDBY"”の“Gls:Global-Link-Services”を選択します。
“AdditionalTakeoverIpaddress”を選択し引継ぎIPアドレスの設定を行います。
複数のリソースを登録するには、手順 2.~手順4.までを複数回実施してください。
事前設定で登録した引継ぎIPアドレスが選択肢に表示されます。
事前設定した引継ぎIPアドレスの中から、userApplicationに登録する引継ぎIPアドレスを選択します。
リソースの動作モードの設定を行います。
リソースの動作モードには、“AUTORECOVER(A)”(選択値)と“NOT:AUTORECOVER(N)”(デフォルト値)があります。“SAVE+RETURN”を選択すると、デフォルト値である“NOT:AUTORECOVER(N)”が設定されます。
リソース異常時に、一定時間(デフォルト:60秒)リソースの回復を試みる場合には“AUTORECOVER(A)”を、直ちに他ノードへの切替えを行う場合には“NOT:AUTORECOVER(N)”を選択します。
Glsリソースの設定を保存し終了するには、“SAVE+EXIT”を選択してください。
なお、ここではGlsリソースのタイムアウト値を変更することが可能です。
タイムアウト値を変更する場合には、“(Timeout=60)”を選択し、任意の値(秒)を設定してください。
参照
クラスタアプリケーション作成時に StandbyTransition 属性に値を設定することにより、待機ノードのGlsリソースを“Standby”状態へ遷移させ、待機ノードのGlsリソース状態を監視することができます。設定方法については、“6.7.2.1 スタンバイ運用のクラスタアプリケーション作成”を参照してください。
<事前設定>
引継ぎネットワークリソースを使用する場合には、以下の事前設定が必要です。
ノード間で引き継ぐ IPアドレスの定義、およびホスト名の定義
まず、ノード間で引き継ぐIPアドレスを定義してください。次に、このIPアドレスに対しホスト名を割り当ててください。割り当てたホスト名は、引継ぎIPアドレスを使用するノードの /etc/hosts ファイルへ定義してください。
監視先ホストの定義
引継ぎIPアドレスが活性している期間に、ICMPを利用したネットワークの疎通監視を行いたい場合は、2台以上のICMP通信が可能な機器(例えばルータやレイヤ3ハブ)のホスト名とIPアドレスを /etc/hosts ファイルへ定義してください。なお、ネットワークの疎通監視が必要ない場合は、この設定は必要ありません。
ネットワークインタフェースの確認
引継ぎIPアドレスを活性する予定のネットワークインタフェース(例えばeth2)がOSから認識されており、使用可能な状態にあることを確認します。
クラスタの設定ファイルへの定義
以下のファイルへ、引継ぎIPアドレスのエントリを追加します。
/usr/opt/reliant/etc/hvipalias
エントリは、以下の規則で記述してください。
<node name> <takeover> <interface> <netmask>
<node name> : 引継ぎIPアドレスを使用するノードのホスト名(uname -nの実行結果) <takeover> : 引継ぎIPアドレスのホスト名 <interface> : 引継ぎIPアドレスを活性するネットワークインタフェース名 <netmask> : 引継ぎIPアドレスのネットマスク
例
2つのノードnode0とnode1で、ホスト名takeoverのIPアドレス(ネットマスク 255.255.255.0)を、ネットワークインタフェースeth2上で活性して引き継ぐ場合、以下のように定義します。
node0 takeover eth2 0xffffff00 node1 takeover eth2 0xffffff00
◆操作手順
“turnkey wizard "STANDBY"”の“IpAddresses”を選択します。
Settings of turnkey wizard "STANDBY" (APP1:not yet consistent) 1) HELP 9) Procedure:BasicApplication(-) 2) - 10) Symfoware(-) 3) SAVE+EXIT 11) Procedure:SystemState3(-) 4) - 12) Procedure:SystemState2(-) 5) ApplicationName=APP1 13) Gls:Global-Link-Services(-) 6) Machines+Basics(app1) 14) IpAddresses(-) 7) CommandLines(-) 15) LocalFileSystems(-) 8) Procedure:Application(-) 16) Gds:Global-Disk-Services(-) Choose the setting to process:14
事前設定で監視先ホストを定義し、ICMPを利用したネットワークの疎通監視を行う設計としている場合は、“AdditionalPingHost”を選択し監視先ホストを設定します。
Ipaddresses and ipaliases (Adr_APP1:not yet consistent) 1) HELP 4) REMOVE+EXIT 7) (NeedAll=yes) 2) - 5) AdditionalInterface 8) (Timeout=60) 3) SAVE+EXIT 6) AdditionalPingHost 9) (InterfaceFilter=) Choose the setting to process:6
事前設定で登録した、監視先ホストのホスト名が選択肢に表示されます。事前設定した監視先ホストのホスト名を選択します。
1) HELP 2) RETURN 3) FREECHOICE 4) router 5) l3hub 6) takeover Choose another trusted host to ping:4
監視先ホストを設定すると、前項の画面に戻ります。監視先ホストは2つ以上設定する必要があるため、前項の画面で再度“AdditionalPingHost”を選択し、監視先ホストを追加します。
“AdditionalInterface”を選択し、引継ぎIPアドレスの設定を行います。
なお、引継ぎIPアドレスが複数ある場合は、この設定を引継ぎIPアドレスの個数分行ってください。
Ipaddresses and ipaliases (Adr_APP1:not yet consistent) 1) HELP 7) PingHostPool[0]=router 2) - 8) PingHostPool[1]=l3hub 3) SAVE+EXIT 9) (NeedAll=yes) 4) REMOVE+EXIT 10) (Timeout=60) 5) AdditionalInterface 11) (InterfaceFilter=) 6) AdditionalPingHost Choose the setting to process:
事前設定で登録した、引継ぎIPアドレスのホスト名が選択肢に表示されます。
事前設定した引継ぎIPアドレスのホスト名を選択します。
1) HELP 2) RETURN 3) FREECHOICE 4) router 5) l3hub 6) takeover Choose an interface name:6
引継ぎIPアドレスの動作モードを設定します。
Currently set: VIRTUAL,AUTORECOVER (VA) 1) HELP 4) DEFAULT 7) MONITORONLY(M) 2) - 5) BASE(B) 8) PING(P) 3) SAVE+RETURN 6) NOT:AUTORECOVER(A) Choose one of the flags:
DEFAULT
この属性を選択すると、すべての設定値を初期値に戻します。
BASE、VIRTUAL
初期値は“VIRTUAL”です。
- BASE
この属性を設定すると、引継ぎIPアドレスの活性・非活性化と物理インタフェース(例えばeth2)の活性・非活性化が併せて行われます。“Currently set”には“BASE”が表示され、メニューには“5) VIRTUAL”が表示されます。
- VIRTUAL
この属性を設定すると、引継ぎIPアドレスの活性・非活性化と論理インタフェース(例えばeth2:1)の活性・非活性化が併せて行われます。“Currently set”には“VIRTUAL”が表示され、メニューには“5) BASE”が表示されます。
この属性を設定した引継ぎIPアドレスは論理インタフェースにIPアドレスを設定するため、事前に、論理インタフェースの作成先となる物理インタフェース(例えばeth2)で、IPアドレスを活性化しておく必要があります。事前に物理インタフェースでIPアドレスを活性化するには、OS起動時に物理インタフェースでIPアドレスを活性化する設定にするか、または前述のBASE属性が設定された引継ぎIPアドレスを同じ引継ぎネットワークリソースに登録してください。
AUTORECOVER、NOT:AUTORECOVER
この属性は引継ぎIPアドレスを再活性化する場合に指定します。初期値は“AUTORECOVER”です。
- AUTORECOVER
この属性を設定すると、ネットワークのインタフェースがダウンした場合や、ネットワークの疎通が途切れ異常を検知した場合に、1度だけ引継ぎIPアドレスの再活性化を試みます。“Currently set”には“AUTORECOVER”が表示され、メニューには“6) NOT:AUTORECOVER”が表示されます。
なお、引継ぎIPアドレスの再活性化に失敗した場合は、クラスタへ異常を通知します。
- NOT:AUTORECOVER
この属性を設定すると、“AUTORECOVER”の設定を解除します。“Currently set”には“NOT:AUTORECOVER”が表示され、メニューには“6) AUTORECOVER”が表示されます。
BASIC-IF
この属性は使用できません。変更しないでください。
MONITORONLY、NOT:MONITORONLY
クラスタへのネットワーク異常の通知を指定します。初期値は“NOT:MONITORONLY”です。
- MONITORONLY
この属性を設定すると、ネットワークのインタフェースがダウンした場合や、ネットワークの疎通が途切れ異常を検知しても、クラスタへ異常を通知しません。“Currently set”には“MONITORONLY”が表示され、メニューには“7) NOT:MONITORONLY ”が表示されます。“MONITORONLY”を設定すると、引継ぎIPアドレスの異常による切替えは発生しなくなりますが、すべての引継ぎIPアドレスに“MONITORONLY”を設定しても、切替えを完全に抑止することはできません。
- NOT:MONITORONLY
この属性を設定すると、“MONITORONLY”の設定を解除します。“Currently set”には“NOT:MONITORONLY”が表示され、メニューには“7) MONITORONLY”が表示されます。引継ぎネットワークリソースに登録した引継ぎIPアドレスのうち、最低1つは、“NOT:MONITORONLY”が設定されていなければなりません。
PING
この属性を設定すると、事前に設定した監視先ホストを引継ぎIPアドレスに対して設定できます。事前設定した監視先ホスト名を選択します。
1) HELP 2) RETURN 3) router(000) 4) l3hub Choese a ping host of the pool ():3
必要に応じ、“Timeout”を変更します。
“Timeout”は、登録したすべての引継ぎIPアドレスが活性状態または非活性状態になるまで、システムが待つことができるタイムアウト値(秒)を設定します。“Timeout”が経過しても活性状態または非活性状態にならない場合、リソースはクラスタへ異常を通知します。初期値は60(秒)です。45(秒)以上の値を設定してください。
注意
NeedAll、InterfaceFilter
これらの属性は使用できません。変更しないでください。
本設定は、PRIMECLUSTER対応製品の状態遷移プロシジャリソースをuserApplicationに登録する場合に使用します。
<事前設定>
プロシジャリソースを設定する場合には、プロシジャリソース設定前に状態遷移プロシジャを作成し、リソースデータベースにリソースを登録しておく必要があります。詳細は、“E.1 プロシジャリソースの登録”を参照してください。
◆操作手順
“turnkey wizard "STANDBY"”の“Procedure:XXXXXXXXXX”を選択します。
BasicApplicationクラスのクラスタリソースをuserApplicationに登録する例:
“Application detail Resource wizard”の“AdditionalProcedureResource”を選択します。
複数のリソースを登録する場合には、手順2.~手順4.までを複数回実施してください。
userApplicationに登録するクラスタリソース一覧が表示されます。userApplicationに登録するクラスタリソースを選択します。
注意
本画面で、クラスタリソースが表示されない場合は、リソースデータベースへのクラスタリソースの登録が行われていません。“6.7.2 userApplicationの設定”で設定したuserApplicationを構成する各ノードに、クラスタリソースが登録されていることをclgettreeコマンドで確認し、クラスタリソースが登録されていない場合は、クラスタリソースの登録を行ってください。clgettreeコマンドの詳細は、clgettreeコマンドのマニュアルページを参照してください。リソースデータベースへのクラスタリソースの登録の詳細は、“E.1 プロシジャリソースの登録”を参照してください。
本画面では、以下の変更が可能です。必要であれば、以下を変更した後、“SAVE+RETURN”を選択します。
状態遷移プロシジャのタイムアウト値
デフォルト値は、1800秒です。本値は、1800秒以上のタイムアウト時間が必要な製品を使用する場合に変更します。変更を行う場合は、以下の画面の“TIMEOUT”を選択し、変更してください。
リソースクラス内優先度
デフォルト値は、claddprocrscコマンドによる状態遷移プロシジャリソース登録時に-pオプションで指定した値です。状態遷移プロシジャリソース登録時に-pオプションを指定しない場合は、65535がデフォルト値となります。本値は、同じリソースクラスで、複数のリソースをクラスタアプリケーションに登録し、それぞれのリソースの活性/非活性順番を指定する場合に変更します。変更を行う場合は、以下の画面の“PRIORITY”を選択し、変更してください。本値の数値が小さいリソースから活性され、大きいリソースから非活性されます。