system management
1753818 メンバー
8593 オンライン
108805 解決策
新規ポスト

serviceguard パッケージについて

 
クリア
時折のアドバイザー

serviceguard パッケージについて

本当に初心者的な質問ですが、認識に間違いがないか教えてください。

パッケージ作成時、AUTO_RUNをNOにしてJP1で手動起動させようとしています。

この場合、障害が起きるとAUTO_RUNがNOになっているので、Failoverは自動にされないと思います。それでFailoverする為には、手動制御が必要との認識ですが、間違いでしょうか?

宜しくお願いします。

1件の返信1
tomonari
頻繁なアドバイザー

serviceguard パッケージについて

間違っていないと思いますよ。

手動起動後、AUTO_RUNパラメータをenabledに手動で変更しておくと自動でFailoverされますよ。

# cmmodpkg -e

パッケージの動作に関するパラメータには以下のものがあります。

(1) AUTO_RUN

パッケージの自動起動と自動フェイルオーバーに影響します。cmmodpkg -e/d でenabled/disabledに変更できます。

(2) SWITCHING

各パッケージ毎且つノード毎に設定されていて、そのパッケージがそのノードで稼動してよいかどうかを示します。cmmodpkg -e/d -n でenabled/disabledに変更できます。

SGはこの二種類のパラメータを見て、パッケージをどう動作させるべきかを判断します。

例えば、

AUTO_RUN=enabled

node1のSWITCHING=disabled

node2のSWITCHING=enabled

であればnode2で起動します。この例はnode1でパッケージに障害が起きた場合の例です。障害を検知するとSGは自ノードのSWITCHINGをdisableに変更してパッケージを停止します。そうすると、AUTO_RUN=enabledなので、SGはパッケージをどこかで動作させないと〜と頑張ります。node2がenabledなので、node2で起動します。Failover完了です。

また、次の例として、

AUTO_RUN=disabled

node1のSWITCHING=enabled

node2のSWITCHING=enabled

という場合があります。どういう場合かというと、cmhaltpkgでパッケージを正常停止させた場合です。SGはAUTO_RUNをdisabledに変更してからパッケージを停止させます。AUTO_RUNがenabledではないので、SGは他のノードで再起動させたりしません。だからパッケージは停止します。cmhaltpkgで停止している途中に、cmmodpkg -e でAUTO_RUNをenabledに変更なんかすると、また自ノードで再起動したり、failoverしたりしてしまいます。

SGはこのパラメータで色々とパッケージの動作を決めていますので、cmmodpkgコマンドを使うときはcmviewcl -vを見て、SGが何かパッケージ動作をしている途中ではないことを確認する方が安全です。

■スクリプトに埋め込む場合などは要注意ですね。

上記理由で、cmhaltpkgで停止させると、AUTO_RUNはdisabledになるので、またcmrunpkgで起動させた後に、cmmodpkg操作は必須ですね。

Serviceguard Managerという無償のGUIツールを使うと操作忘れも少ないと思います。AUTO_RUNがdisabledだと色とかで知らせてくれたような。