• 検索結果がありません。

Mission Critical な時代をサポートする 高可用性ソフトウェア 2018(Jun) NEC Corporation HA/ProcessSaver FAQ 集 導入に関する質問 運用に関する質問 動作環境に関する質問

N/A
N/A
Protected

Academic year: 2022

シェア "Mission Critical な時代をサポートする 高可用性ソフトウェア 2018(Jun) NEC Corporation HA/ProcessSaver FAQ 集 導入に関する質問 運用に関する質問 動作環境に関する質問"

Copied!
46
0
0

読み込み中.... (全文を見る)

全文

(1)

Mission Critical な時代をサポートする 高可用性ソフトウェア

© 2018(Jun) NEC Corporation

HA/ProcessSaver FAQ 集

□ 導入に関する質問

□ 運用に関する質問

□ 動作環境に関する質問

(2)

はしがき

本書は、NX7000/7700iシリーズ上で動作する ProcessSaver R4.1以降 のFAQについて説明したもので す。

(1) 本書は以下のオペレーティングシステムに対応します。

HP-UX 11.0 (PA-RISC) HP-UX 11i v1(PA-RISC)

HP-UX 11i v2(PA-RISC / Itanium) HP-UX 11i v3(Itanium)

(2) プロダクト型番について

本書で説明しているすべての機能は、プログラムプロダクトであり 次の表のプロダクト型番およびプロダクト名に対応します。

OS名 プロダクト型番 プロダクト名 プロダクトリリー ス

HP-UX UQ5204 HA/ProcessSaver R4.1、R3.1x

HP-UX UQ5204M HA/ProcessSaver メディア R4.1、R3.1x

(3) 本書の文中で、特に指定がなければ「ProcessSaver」は「ProcessSaver のR4.1以降のバージョン」を 示すものとします。

(3)

3

 Itaniumは、アメリカ合衆国およびその他の国におけるIntel Corporationの商標です。

 その他記載の製品名および会社名は、すべて各社の商標または登録商標です。

 なお、本書ではⓇ、TMマークを明記しておりません。

© 2018 NEC Corporation

(4)

目次

1.導入に関する質問 ... 5

1 - 1.設定に関する質問 ... 5

1 - 2.ライセンスに関する質問 ... 13

2.運用に関する質問 ... 14

2-1.起動、終了に関する質問 ... 14

2-2.監視に関する質問 ... 24

2-3.再起動スクリプトに関する質問 ... 39

3.動作環境に関する質問 ... 43

(5)

5

1.導入に関する質問

1 - 1.設定に関する質問

Q1. 複数の同一名プロセスを個数によって監視したいのですが、どのような設定をすればよいで しょうか?

A1. 1. pfile のオプション部に min_proc_count を指定することで、監視対象プロセスを含め

た同一名プロセス数の監視を行うことができます。

下記に 同名のプロセスが 4 個未満になるとプロセスの消滅を検出して、再起動スク リプトを実行する pfile の記述例を示します。

o pfile の例

##### PENT #####

[プロセス名]:[再起動スクリプト]:86400:3:continue:min_proc_count=4

2. ただし、1. のように min_proc_count でプロセスの個数監視をしていても、pcheck は必ず同名プロセス群から代表して一つのプロセスを監視対象とします。

そのため、この代表として選択された監視対象プロセスが異常終了してしまった場合 は、たとえ同名のプロセスが min_proc_count で指定した数以上起動していても、プ ロセスの異常終了を検出します。

この制限に対応したい場合には、プロセスの個数をカウントするシェルスクリプトを 作成し、作成したスクリプトを pcheck で監視する必要があります。

下記に nfsd プロセスの起動済みのプロセス数をカウントし、規定のプロセス数(ここ

では4)より小さくなると異常終了するスクリプトの例と、その際の再起動スクリプト

の記述例を示します。

o プロセス数をカウントするシェルスクリプトの記述例

#! /usr/bin/sh

# restart shell for Multi proc sample

# process name

DAEMON_NAME="nfsd"

# process alive count DAEMON_COUNT=4

# process check interval sec

(6)

SLEEP_TIME=60 STATUS=0

while [ ${STATUS} -eq 0 ] do

daemonfname=`/usr/bin/basename ${DAEMON_NAME}`

num_daemon=`ps -e | /usr/bin/awk -v fname=${daemonfname} '$4 ==

fname {print $1}' | /usr/bin/wc -l `

if [ ${num_daemon:=0} -lt ${DAEMON_COUNT} ] then

STATUS=1 else

/usr/bin/sleep ${SLEEP_TIME}

fi done return 0

o 再起動スクリプトの記述例

#!/bin/sh

# restart shell for Multi proc sample

# set path

if [ -r /etc/PATH ] then

PATH=`cat /etc/PATH`

export PATH fi

[監視対象プロセスの再起動処理]

# waiting for proc wakeup /usr/bin/sleep 30

(7)

7

Q2. 起動ごとに引数が変わってしまうプロセスを監視したいのですが、どのような設定をすれば よいでしょうか?

A2. 起動ごとに引数が変わらない固定部分を、プロセス名として指定することで監視が可能で す。固定部分が同じプロセスが複数ある場合には、同一名プロセス監視を使用することで、

監視が可能です。

詳細は、「HA/ProcessSaver ユーザーズガイド 基本編」の 「グループ監視の導入手順」の 章を参照してください。

Q3. ProcessSaver が出力する syslog のメッセージを停止させたり、ファシリティ・レベルを

変更したいのですが、どのような設定をすればよいでしょうか?

A3. 環境変数 HAPS_SILENT_MODE に 1 を設定して ProcessSaver を起動することで、

ProcessSaver が出力するすべての syslog を抑制することができます。

ファシリティ・レベルを変更する機能については現在はサポートしておりません。

なお、ProcessSaver が出力する syslog のファシリティとレベルは以下となります。

 ファシリティ: LOG_USER

 レベル : LOG_ERR または LOG_WARNING

詳細は、「HA/ProcessSaver ユーザーズガイド 応用編」の「サイレントモードでの運用手 順」の章を参照してください。

Q4. oracle の監視を行う場合の一般的な設定について教えてください。

A4. ProcessSaver による oracle 監視は、ApplicationMonitor for Oracle と比べてストール監視 等が行えないため推奨しておりません。

ApplicationMonitor for Oracle を導入し、ストール監視・クラスタ連携といった oracle の特 性を考慮した監視を導入するのが一般的です。

Q5. ProcessSaver をインストール後、 IP アドレス、ホスト名が変更となった場合、何か処置

が必要でしょうか?

A5. ProcessSaver は IP アドレス・ホスト名に依存していませんので、これらの変更があって

も影響はありません。

再起動、再インストール等の処置は不要です。

(8)

Q6. Serviceguard でクラスタ連携を行う場合に設定するリトライオーバーアクション "exit"

"shutdown" の違いについて教えてください。

A6. "exit" と "shutdown" は、それぞれ下記のような場合に使用します。

 exit Serviceguard 連携で、SERVICE_CMD に登録する場合

 shutdown リトライオーバ後の動作として監視をやめる (pcheckを終了する) 場合

ただし、現バージョンでは実際には両者で処理の差異はないため、すでに Serviceguard 連 携で shutdown を指定していたとしても影響はありませんが、今後の強化で両者の処理を明 確に分ける可能性があるため、基本は上記のように使い分けてください。

Q 7.

ProcessSaver で用意されている設定ファイル、再起動スクリプトのテンプレートなどはありま

すか?

A 7.

ProcessSaver は監視方法を定義する pfile と、監視対象プロセスを自動再開するための手順

を記載した再起動スクリプトを用意する必要があります。

pfile・再起動スクリプトは監視対象の各製品プロセスに応じた起動手順や必要な後処理などを

お客様で作成し、設定していただく必要があります。

ただし、代表的な製品や OS 標準の重要プロセスなどについてはサンプルやテンプレート集 などを用意していますので、それをお使いいただくことで比較的容易に導入していただくこと が可能です。

 ProcessSaver

HP-UX 版 監視テンプレート集

Linux 版 監視テンプレート集

https://www.intra.nec.co.jp/clusterpro/ha/ha_ps/download.html

また、特に代表的な Web サーバ製品やアプリケーションサーバ製品の監視については消滅監 視とあわせストール監視機能や監視定義の自動生成機能などを用意した専用監視オプション 製品も用意しておりますのでご検討ください。

製品名 各種テンプレート

(9)

9

Tomcat 監視

Solaris Apatch Web Server 監視 Zeus WebServer 監視 Sun One WebServer 監視 Tomcat 監視

APサーバ監視オプション ProcessSaver ApsEdition

HP-UX WebOTX 監視

WebLogic 監視 JBoss 監視

Linux WebOTX 監視

WebLogic 監視 JBoss 監視 NFS 監視オプション

ProcessSaver nfsEdition

HP-UX NFS サーバ&クライアント

監視

Q8. 複数指定したプロセスのうちどれか一つでも消滅した場合に、全てのプロセスを再起動して プロセス監視を再開させたいのですが、どのような設定をすればよいでしょうか?

A8. ProcessSaver R2.2c 以降のバージョンであれば、pfile のオプション部に grouptag を指 定することで、1 つの pcheck でグループ化して監視することが可能です。

 grouptag を使用したグループ監視の pfile の一例

##### PENT #####

[プロセスa]:[再起動スクリプト1]:300:3:continue:grouptag=groupXXX [プロセスb]:[再起動スクリプト2]:300:3:continue:grouptag=groupXXX [プロセスc]:[再起動スクリプト3]:300:3:continue:grouptag=groupXXX

* groupXXX には、任意のグループ名を指定してください。

グループ名、再起動スクリプト名、GRACE 値、再起動回数、リトライオーバアク ションは同じである必要があります。

上記の例の場合、プロセス a, b, c のどのプロセスの消滅を検知した場合でも再起動スク リプトが実行され、グループ単位に再起動を行うことができます。

再起動スクリプトは、プロセス a, b, c すべての停止・再起動後、sleep 等ですべての対 象プロセスが起動するまでの時間、待ち合わせを行う必要があります。

詳細は、「HA/ProcessSaver ユーザーズガイド 基本編」の「グループ監視の導入手順」

の章を参照してください。

(10)

Q9. サーバへの導入後にディスク構成が変更となった場合、何か処置が必要でしょうか?

A9. ProcessSaver は、ディスク構成が変更になった場合でも特に影響はありません。

再起動、再インストールは不要です。

Q10. PATH の指定にワイルドカードを使用できますか?

A10 .

pfile の PATH の記述にワイルドカードを使用することはできません。

同様に pcheck(1M)、padmin(1M) コマンドのファイル名指定でワイルドカードを使用する

ことはできません。使用するファイル名は必ず絶対パスで指定してください

Q11. 監視対象のプロセス自身を、再起動スクリプトとして設定して監視できますか?

A11 .

ProcessSaver の仕様として、再起動スクリプトは必ず終了する必要があるため、以下のよ

うに監視対象のプロセス自身を再起動スクリプトとして設定することはできません。

 PENT の例

xxxx.sh:xxxx.sh:68400:3:continue

対象のプロセスを起動して、スクリプト自体は終了するようなスクリプトを作成して、再起 動スクリプトに設定する必要があります。

Q12. StorageSaver のプロセス監視を行いたいのですが、どのような設定をすればよいでしょう

か?

A12 .

監視対象のプロセス名として srgwatch 、再起動スクリプトに srgconfig -r コマンドを指定 することで、 消滅監視、自動再起動を行うことができます。

 PENTの記述例 1. 11i v2 の場合

/opt/Gear/MnG/bin/srgwatch:/opt/Gear/SrG/bin/srgconfig -r:86400:3:continue 2. 11i v3 の場合

/opt/HA/SrG/local/bin/srgwatch:/opt/HA/SrG/bin/srgconfig -r:86400:3:continue

StorageSaver のプロセス監視のテンプレートはこちら。

https://www.intra.nec.co.jp/clusterpro/ha/ha_ps/download.html

(11)

11

Q13. プロセス名が同一でかつプロセスの引数が一部同じであるプロセスを区別して監視したい

のですが、どのような設定をすればよいでしょうか?

A13 .

例えば以下のようなプロセス名のプロセスの監視を行いたい場合。

(1) proc aaaa (2) proc aaaa_bbbb

pfile のオプション部に include_strings を指定し、PENT 部を以下の順に設定することで

区別して監視を行うことができます。

ProcessSaver は、pfile の PENT 部に記載された順番で監視対象を特定し、

一度監視対象と特定されたプロセスについては、他の PENT では 監視対象とならないため正しく監視することができます。

o pfile の例

proc:-:0:0:continue:include_strings=aaaa_bbbb ★1 proc:-:0:0:continue:include_strings=aaaa ★2

★1 と ★2 を逆に記載した場合は、★2 で監視対象プロセスを判定する際に (1) のプロセスとプロセス名および include_strings に指定された文字列が 一致するため、監視対象のプロセスと判断してしまう可能性があります。

必ず上記の順に記載してください。

ただし監視を行いたいプロセスが引数まで同名で複数起動する場合は、

本設定でも監視を行うことはできませんので、必ず対象のプロセスが 1 つずつしか起動しないことをあらかじめ確認してください。

(12)

Q14. 運用管理製品 (WebSAM SystemManager 等) でログ監視を行う場合に監視対象とすべきメ ッセージを教えてください。

A14 .

pcheck が出力するプロセス監視で復旧できないエラーを報告する以下のsyslog メッセ

ージを監視してください。

これ以外のメッセージの監視については、特に必須ではありません。

 消滅監視によるリトライオーバのメッセージ o RETRY_OVER:CONTINUE

o RETRY_OVER:SHUTDOWN o RETRY_OVER:EXIT

 意味と対処

対象プロセスの消滅を検出し、一定回数リトライしても再起動できない状態です。

対象プロセスが起動できなかった原因を調査してください。

(13)

13

1 - 2.ライセンスに関する質問

Q1. 評価用のコードワードから正式コードワードに変更する場合、ProcessSaverで 何か処 置が必要ですか?

A1. ProcessSaver およびマシンの再起動等は特に必要ありません。

Q2. HP-UX 版 ProcessSaver でクラスタ構成の場合、ライセンス数は現用系のみでよいです

か?それとも現用系/待機系の両方の数が必要ですか?

A2.  バージョンが2.2x の場合

現用系/待機系の両方分、必要になります。

また、ライセンス型番にはメディアは含まれませんので、メディアをお持ちで無い 場合は、メディア型番1セットも購入が必要となります。

 バージョンが3.1 以降の場合 コアライセンスとなっております。

(14)

2.運用に関する質問

2 - 1.起動、終了に関する質問

Q1. padmin コマンド、pcheck コマンド実行時に、以下のメッセージが表示され実行でき

ません。何が原因でしょうか?

sh: ./padmin(pcheck): Execute permission denied.

A1. 使用機種と異なるモデルのパッケージをインストールしたおそれがあります。

以下のコマンドで、使用機種を確認し機種にあった depot ファイルで再度インストールを 行なってください。

# uname -m

 9000/800 が表示された場合 HAPS_pa.depot

 ia64 が表示された場合 HAPS_ia64.depot

* ProcessSaver R2.2a 以降のバージョンは、インストール時に機種による判定を行っている

ため本制限事項は解除されています。

Q2. remsh コマンドを使用し、リモートで pcheck を起動しようとしましたが、コマンド

に応答がありません。

何が原因でしょうか?

A2. remsh コマンドを使用して実行するコマンドをバックグラウンド起動する場合には、リモー

ト側の標準入力/標準出力/標準エラー出力を明示的にクローズする処理を行う必要があ ります。

クローズしていない場合、リモートで実行するコマンドが終了するまで、remsh は終了しま せん。そのため、remsh(1) のコマンドラインは下記のようにして実行する必要があります。

# remsh hostname -n "command 1>&- 2>&- &"

(15)

15

Q3. 監視対象のプロセスを起動した後、pcheck を起動しましたが syslog に以下のような メッセージが出力されて監視が正常に行えません。

何が原因でしょうか?

pcheck[XXX]: Set pid fail (xxx)

A3. Oracle や Java アプリケーションなどの起動に時間がかかるプロセスを監視する場合、監

視対象のプロセスが完全に起動する前に pcheck の監視が開始されてプロセス消滅を検出 してしまうことがあります。

監視対象プロセスの起動が確実に終了したことを確認してから pcheck による監視を開始 するようにしてください。

スクリプト等で監視対象プロセス および pcheck を自動起動している場合には、以下のよ うな方法が有効です。

 監視対象プロセスの起動と pcheck 起動の間に、/usr/bin/sleep で監視対象プロセス が完全に起動するまでの時間、確実に待ち合わせを行う。

 pcheck に -w オプションを付与して起動し、pcheck 起動後に一定時間待ち合わせ

てから監視を開始する。

pcheck を起動して 30 秒後に監視を開始する場合の例

# pcheck -f <pfile名> -w 30

Q4. 監視対象プロセスを起動した後、pcheck を起動しましたが syslog に以下のようなメ ッセージが出力されて監視が正常に行えません。

何が原因でしょうか?

pcheck[XXX]: pcheck is already execute.

または

pcheck[XXX]: shmget(2) use other process.

A4. pfile の IPCKEY で指定した共有メモリの値が他のプロセスですでに使用されている可能

性があります。

IPCKEY をシステムで一意となる 0x00000001~0x7fffffff に変更した後、pcheck の再起動

を行ってください。

 pfile の例

##### PARAM #####

IPCKEY 0x10000001 ← ★この値を変更

* IPCKEY の値が小さい場合、他のプロセスが使用する共有メモリとバッティングする可能 性が高くなります。このことから IPCKEY の値は 0x1f000000 以降の大きな値を指定する よう推奨します。

(16)

Q5. padmin コマンドで pcheck を終了しようとしましたが、syslog に以下のようなメッセ ージが出力されて pcheck が終了しません。pcheck を終了する方法を教えてください。

pcheck[XXX]: Can't shutdown [pcheck]

A5. kill(1) コマンドを使用して、手動で pcheck を終了してください。

Q6. rc から pcheck を起動したのですが、起動後しばらくすると pcheck が消滅してしま います。

何が原因でしょうか?

A6. rc から pcheck を起動する場合、rc 処理の最後に実行される残存プロセスの強制停止

処理を受け付けないように trap 処理を追加する必要があります。

pcheck は、起動後に rc からの強制停止を受けないように初期化処理の中で rc からの

強制停止をブロックする処理を実行しています。その初期化処理が実行される前に、rc の強制停止処理を受け pcheck が消滅している可能性があります。

なお、rc の強制停止処理は、すべての rc 起動が終わったあとに実行されます。

このため rc3 からの起動時に発生する可能性が高く、rc3 からの起動時には rc ファイ

ルに trap 処理を追加して、強制停止処理を受けないようにする処理を追加することを

マニュアル等で明記しております。

ただし、rc3 に登録されているスクリプトが少ない場合や rc 機能の内部制御処理が短 い場合には rc2 からの起動時にも発生する可能性がありますので、このような場合には rc2 からの起動の場合にも trap 処理を追加する必要があります。

#!/bin/sh #

trap "" 1 2 3 15 ← rc ファイルにこの行を追加

詳細は、「HA/ProcessSaver ユーザーズガイド 基本編」 の 「起動、終了ファイルの導 入について」 の章を参照してください。

(17)

17

Q7. syslog に以下のようなメッセージが出力され、pcheck が異常終了してしまいます。

何が原因でしょうか?

padmin: lockf(F_LOCK) fail. errno = XX.

A7. システム全体のロックファイルが不足しています。ロックテーブル (nflock) の枯渇が考

えられますので、他の AP で使用しているロックを解除するか、カーネルパラメータ

nflock を拡張してください。

glance を使用されている場合は、glance -t で現在の nflock 数を確認することができま

す。

Q8. pcheck 自身の異常終了をログ等で確認することはできますか?

A8. pcheck 自身が、ファイル I/O の異常やメモリ不足などで終了した場合は、

ProcessSaver のダンプファイルに内部ログが出力されます。

これらを確認することで、pcheck の終了を確認することが可能です。

Q9. Solaris 版の ProcessSaver で NNM 連携を行おうとしましたが、監視が正常に行えま

せん。

何が原因でしょうか?

A9. pcheck と NNM の連携を行う場合、競合により正しく監視を行うことができない事例

がありました。

本事象が発生した場合の対処として、パッチをリリースしております。

パッチの入手および適用手順については、開発部門までお問い合わせください。

お問い合わせ先:[email protected]

(18)

Q10. pfile のオプション部に include_strings オプションを指定した際に、対象プロセスに設 定した文字列が存在するにも関わらず監視できません。

何が原因でしょうか?

A10. 本現象は、ご使用の ProcessSaver のバージョンが R2.2a の場合の制限事項となって

おります。

include_strings オプションはプロセス名が引数も含めて 64 文字以上のプロセスを指

定した場合にのみ使用できるオプションとなっております。

64 文字未満のプロセスには、include_strings オプションは使用することができません。

監視対象のプロセス名を、1020 文字以内で引数を含めてすべて記載してください。

* R2.2c 以降のバージョンでは、本制限事項は解除されております。

R2.2c 以降のバージョンでは、64 文字未満のプロセスについても、include_strings オプションが使用可能です。

Q11. ProcessSaver が他のプロセスに対してシグナルを送信することはありますか?

A11. ProcessSaver は他のプロセスに対してシグナルを送信することはありません。

(19)

19

Q12. pcheck が起動できない、もしくは起動するがすぐに終了してしまいます。

何が原因でしょうか?

A12. syslog に pcheck 関連のメッセージが出力されていないか確認してください。

pcheck 関連のメッセージが出力されている場合、メッセージ単位にそれぞれ以下の内容を

確認してください。

1. pfile init fail. pfile = ‘pfile 名’

o pfile 中の各設定に指定できない不正な値が設定されていたり、構文が間違っ

ている等、pfile が不正である可能性があります。

pfile 記述が正しいか確認してください。

2. fopen(3) fail. pfile = ‘pfile 名’

pfile init fail. pfile = ‘pfile 名’

o 指定したパスに pfile が実際に配置されているか、配置されている場合、コマ ンドラインのパス指定が誤っていないか確認してください。

o また、root ユーザ以外で pcheck を実行する場合は、パーミッションや所有

権によって、pfile の読み込みに失敗する場合があります。

起動ユーザの READ 権限、所有権を確認してください。

3. pcheck is already execute.

shmget(2) fail. errno = ‘エラーNo’

o 指定された pfile 名で pcheck がすでに起動しているか他の pfile と

IPCKEY (共有メモリ) の値が重複している可能性があります。

padmin -l コマンドで、同名の pfile 名で pcheck が起動していないことを確

認してください。

4. shmget(2) fail. errno = ‘エラーNo’

o 指定された IPCKEY (共有メモリ) の値が他のプロセスと重複している可能性 があります。

IPCKEY の値をシステム上で一意の値に変更してください。

現在使用されている共有メモリの一覧は、ipcs(1) コマンドで確認することが できます。

5. illegal option.

o pcheck 起動時に無効なオプションが指定されました。

同時に出力される Usage に従って正しいコマンドを指定してください。

(20)

Q13. pcheck が syslog 等のメッセージ出力なしに突然終了してしまいます。

何が原因でしょうか?

A13. 通常 pcheck の終了時には何らかのメッセージを syslog に出力します。

メッセージの出力もなく、ProcessSaver の共有メモリダンプファイルも出力せずに終了 するケースとしては、外部からのシグナル受信による強制停止が考えられます。

オペレータからの kill(1) コマンドによるシグナル送信以外の原因としては、pcheck を 起動するためにミドルウェア製品 (JobCenter や NNM) を利用していた場合、pcheck の起動スクリプトの終了時に、起動したプロセスに対してシグナルを送信して残ってい るプロセスの回収処理を行っている事例がありました。

この場合、以下の回避策で対応してください。

1. pcheck を起動しているミドルウェア製品の設定などを変更し、上記回収処理を行

わないようにする。

2. pseparate (ProcessSaver が用意しているプロセスグループ分離コマンド) を使

用して pcheck を起動するように変更する。

 起動スクリプトの pcheck 起動時の記述例

/opt/HA/PS/bin/pseparate /opt/HA/PS/bin/pcheck -f <pfile名>

(21)

21

Q14. padmin -l コマンドを実行しても、何も表示されません。

何が原因でしょうか?

A14. まず、ps(1) コマンドを実行し起動中の pcheck が表示されるか確認してください。

(例) # ps -ef |grep pcheck

→ pcheck プロセスが表示されるか確認

表示されない場合、プロセス監視が起動していないか、

起動後すぐに終了している可能性があります。

原因については、起動、終了に関する質問の Q12 または Q13 を 確認してください。

表示されるにも関わらず padmin -l コマンドで一覧表示されない場合には、

ProcessSaver の管理ファイルが削除されている可能性があります。

/var/tmp 配下の 管理ファイルを削除していないか確認してください。

(例) # ls -la /var/tmp

→ .pcheck.XXXX ファイルが存在するか確認

管理ファイルが削除されている場合には、padmin -l コマンドでの一覧表示を 行うことができません。ただしプロセス監視自体にはまったく影響はございま

せん。

また、この状態は以下のどちらかの手順を実行することで復旧可能です。

- padmin コマンドで reload を実行する。

# padmin -f <pfile名> -c reload - pcheck を再起動する。

(22)

Q15. pcheck を複数起動しているシステムで、サーバ停止に時間がかかってしまいます。

何が原因でしょうか?

A15. 通常、サーバ停止時には rc ファイル内で、「padmin -f <pfile名> -c shutdown」を実 行して pcheck の停止処理が実行されます。

* padmin コマンドは、pcheck の動作を予約するコマンドで

pcheck プロセスとの同期を取る必要があるため、pfile の MONITOR_INTERVAL に

設定された秒数、実行を待ち合わせて終了する仕様となっています。

つまり、rc スクリプトを pcheck 単位に複数登録しているシステムの場合、 サーバ停

止時には pcheck の個数 × MONITOR_INTERVAL(秒) の時間がかかることになります。

これらをパラレルで実行することで、シャットダウン時の停止時間を短縮することがで きます。

OS シャットダウン時の pcheck の停止処理をパラレルに実行するには、現在フォアグ ラウンドで実行している、padmin の shutdown コマンドを バックグラウンドで実行 し、一定時間 pcheck の終了を待ち合わせるように変更します。

※ 待ち合わせ時間はすべての pcheck が停止するのに十分な時間必要となります が、目安としては pfile の MSG_CHECK_INTEVAL に 指定してある秒数の 2 倍となります。

デフォルト値は 5 秒となっていますので、以下の例では 10 秒を指定していま す。

[変更前] pcheck 起動・停止 rc ファイル中

# /opt/HA/PS/bin/padmin -f <pfile名> -c shutdown [変更後]

# /opt/HA/PS/bin/padmin -f <pfile名> -c shutdown &

# /usr/bin/sleep 10

また、rc 経由で複数の pcheck を起動・終了している場合、各 pcheck の rc フ ァイルを一つにまとめる必要があります。

具体的な設定変更手順は以下の通りです。

(23)

23

2. 停止処理中の padmin -f <pfile名> -c shutdown コマンドをフォアグラ ウンド起動からバックグラウンド起動に変更する。

3. すべての padmin -f <pfile 名> -c shutdown コマンド投入後 pcheck 終了 を待ち合わせるため

MSG_CHECK_INTERVAL ×2 の秒数 sleep コマンドで 待ち合わせる。

--- 複数の rc スクリプトをひとつにまとめた場合の例 ---

<省略>

PCHECK=/opt/HA/PS/bin/pcheck PADMIN=/opt/HA/PS/bin/padmin PFILE1=/var/opt/HA/PS/conf/bin/pfileA PFILE2=/var/opt/HA/PS/conf/bin/pfileB PFILE3=/var/opt/HA/PS/conf/bin/pfileC PFILE4=/var/opt/HA/PS/conf/bin/pfileD case $1 in

start)

(${PCHECK} -f ${PFILE1} &) >/dev/null 2>&1

(${PCHECK} -f ${PFILE2} &) >/dev/null 2>&1 ★ pcheck 起動を複数記載 (${PCHECK} -f ${PFILE3} &) >/dev/null 2>&1 ★ 〃

(${PCHECK} -f ${PFILE4} &) >/dev/null 2>&1 ★ 〃

;;

stop)

${PADMIN} -f ${PFILE4} -c shutdown & ★ pcheck 停止をバックグラウ ンドで複数記載

${PADMIN} -f ${PFILE3} -c shutdown & ★ 〃

${PADMIN} -f ${PFILE2} -c shutdown & ★ 〃

${PADMIN} -f ${PFILE1} -c shutdown & ★ 〃

/usr/bin/sleep 10 ★ padmin の終了を sleep で待ち合わせ

※ sleep に指定する値は MSG_CHECK_INTERVAL の 2 倍を指定

;;

<省略>

--- 複数の rc スクリプトをひとつにまとめた場合の例 ---

(24)

Q16. OS 停止時に ProcessSaver の core ファイルが作成されてしまいます。何が原因でしょう か?

A16. OS の起動・停止と連携して pcheck を起動・停止する場合、正しく rc ファイルを作

成、設定していないと core ファイルが作成される場合があります。

本件は、OS 停止処理でのみ発生する場合がありますが、通常運用中には発生すること はありません。

また core ファイルが作成された場合であっても OS 停止の延長で結果的に pcheck は停止されるため運用上問題はありません。

 以下の内容について、正しく設定されていることを確認してください。

 rc に pcheck の終了処理を設定していること。

 rc に pcheck の終了処理を設定している場合、pcheck 停止後に 監視対象プロセスを停止する設定になっていること。

rc 設定手順の詳細については「HA/ProcessSaver ユーザーズガイド」の「3.6 起動、

終了ファイルの導入について」の章を参照してください。

(25)

25

2 - 2.監視に関する質問

Q1. diagmond の消滅を検出し再起動を行いましたが、diagmond が正常に動作しません。

何が原因でしょうか?

A1. diagmond は、いくつかの子プロセス群 (diaglogd, memlogd, cclogd, psmctd) と親子関 係で実行されているため、プロセスの消滅により親子関係が崩れると正常な動作を行う ことができない場合があります。

そのため diagmond が消滅した場合には、関係する子プロセスをすべて削除した後、

diagmond の再起動を行うことを推奨します。

 diagmond が消滅した場合

1. diagmond に関係する子プロセスをすべて削除

# kill <子プロセスのPID>

2. diagmond の再起動

# /sbin/init.d/diagnostic stop

# /sbin/init.d/diagnostic start

 再起動スクリプトの記述例

#! /bin/sh export LANG=C

# target process killed

PROC_LIST="diaglogd psmctd memlogd cclogd"

for i in $PROC_LIST do

pid=` /bin/ps -e | /bin/awk -v tgt=$i '$4 == tgt {print $1}'`

if [ -n "$pid" ] then

/usr/bin/kill -9 $pid fi

done

# target process stop /sbin/init.d/diagnostic stop /usr/bin/sleep 5

# target process start /sbin/init.d/diagnostic start

(26)

/usr/bin/sleep 5

Q2. プロセス監視を padmin -c stop コマンドで停止し、監視対象プロセスを再起動した後、

padmin -c start コマンドでプロセス監視を再開したらプロセスの消滅を検出しました。

何が原因でしょうか?

A2. pcheck はプロセス ID(PID) をキーにプロセスの消滅監視を行いますので、監視対象プ

ロセスを再起動した場合など、PID が変更された場合は、プロセス監視の再開 (start) 前 に再読み込み (reload) が必要です。

また、padmin コマンドの処理要求が実行されるまでには最大で

MSG_CHECK_INTERVAL に指定した秒数必要となりますので、reload を実行してか

ら監視を再開 (start) するまでには、念のため MSG_CHECK_INTERVAL の二倍の秒数 待ち合わせてください。

# padmin -f <pfile名> -c reload

↓ 最低 MSG_CHECK_INTERVAL の2倍の秒数待ち合わせ # padmin -f <pfile名> -c start

Q3. プロセス監視を padmin -c stop コマンドで停止し、監視対象プロセスを再起動した後、

padmin -c reload コマンドで再読み込み後すぐに padmin -c start コマンドでプロセス 監視を再開したらプロセス消滅を検出しました。

何が原因でしょうか?

A3. padmin コマンドは処理を受け付けるだけで、実際に処理 (reload) が実行されるまでに

は、最大で MSG_CHECK_INTERVAL に指定した秒数かかります。

したがって、安全のため、reload を実行してから監視を再開 (start) するまでに、

MSG_CHECK_INTERVAL の設定値の二倍程度の時間待ち合わせてください。

# padmin -f <pfile名> -c reload

↓ 最低 MSG_CHECK_INTERVAL の2倍の秒数待ち合わせ # padmin -f <pfile名> -c start

(27)

27

Q4. min_proc_count オプションを使用時に、設定した個数を下回ったにも関わらずプロセ

スの消滅を検出しません。

何が原因でしょうか?

A4. ProcessSaver はプロセスの消滅を PID で監視するため、ゾンビプロセスの状態で残

っている場合には監視対象プロセスは存在していると認識します。

ゾンビプロセスが存在しているかどうかは、以下のコマンドで確認できます。

 shの場合

# export LANG=C

# ps -efx | grep defunct

 cshの場合

# setenv LANG C

# ps -efx | grep defunct

<defunct>となっているプロセスが表示された場合には、該当のプロセスがゾンビ状態 となり残っている可能性があります。

監視対象プロセスが消滅時にゾンビプロセスとして残らないように対処を行ってくだ さい。

また、機能強化物件を適用することでゾンビプロセスを識別し、消滅を検出できるよう になります。

強化物件の入手および適用手順については、下記サポートまでお問い合わせください。

お問い合わせ先:[email protected]

(28)

Q5. 63 文字以下のプロセス名のプロセスと、64 文字を超える長いプロセス名のプロセスを 1 つの pcheck で監視した場合に、長いプロセス名のプロセスを監視することができま せん。

何が原因でしょうか?

A5. 本現象は、バージョンが R2.2a の制限事項となっております。

63 文字以下のプロセス名のプロセスと、64 文字を超える長いプロセス名のプロセスのエン トリが1つの pfile で混在する場合、長いプロセス名のプロセスの監視が行えなません。

この場合、以下のいずれかの方法で回避が可能となっております。

 64 文字以上の長いプロセス名の監視が1つの場合

64 文字以上の長いプロセス名の監視を、PENT部の先頭に記述する。

 64 文字以上の長いプロセス名の監視が複数存在する場合

64 文字以上の長いプロセス名の監視を、別の pfile に記載して pcheck を複数起 動する。

* R2.2c 以降のバージョンで、本制限事項は解除されています。

(29)

29

Q6. pcheck を階層的に使用したグループ監視で、親の pcheck の再起動を行うことは可能

ですか?

A6. ProcessSaver では、グループ監視で親の pcheck が終了した場合に、再起動を行う機

能はありません。

ただし、親の pcheck の監視・再起動は、/etc/inittab に登録することで可能です。詳 細は、inittab(4) のオンラインマニュアルを参照してください。

/etc/inittab に pcheck を登録する際の注意事項は以下となります。

 Serviceguard のサービスコマンドとして親の pcheck を登録する場合は、pcheck

は Serviceguard から起動されますので、Serviceguard 以外から再起動は行わな いようにしてください。

 inittab に登録された親の pcheck は終了しません。

このため、サーバ停止時に子の pcheck の消滅を検出してしまう場合があります ので子プロセス終了時に、親プロセスによる監視を一時停止する必要があります。

#### 子プロセスの rc ファイル停止処理の指定例 ####

: 'stop')

/opt/HA/PS/bin/padmin -f <親のpfile名> -c stop

★親プロセスの監視を一時停止

/usr/bin/sleep 5 ★ 念のため sleep にて待ち合わせ /opt/HA/PS/bin/padmin -f <子の pfile 名> -c shutdown ★ 子プロセスの終了

;;

#### 子プロセスの rc ファイル停止処理の指定例 ####

Q7. ProcessSaver のプロセス自身 (pcheck) を監視することは可能ですか?

A7. グループ監視のように、pcheck から pcheck を階層的に監視することができます。

ただし、階層的に pcheck の監視を行った場合も、最上位の pcheck については監視す ることはできません。

Q8. ProcessSaver では、個々のプロセスの生死状態をどのように監視していますか?

A8. pstat_getproc というシステムコールを使用して、プロセスの死活監視を行なっていま

す。

そのため ps コマンドのように、OS 負荷等による影響を受けることはありません。

(30)

Q9. pcheck 起動時、監視はいつから開始されるのですか?

A9. pcheck 起動後、MONITOR_INTERVAL で設定した時間(秒)が経過してから、監視が

開始されます。

ProcessSaver R3.1 以降のバージョンでは、pcheck 起動時の自動待ち合わせ機能を追

加しております。 この機能は、pcheck 起動時および reload 実行時に監視対象プロセ スが起動していない場合、起動するまで一定時間自動的に待ち合わせを行うものです。

待ち合わせ時間はデフォルトでは 60秒となっておりますが、環境変数

(HAPS_PENDING_TIME) を設定することで、待ち合わせ時間を変更することが可能と

なります。

詳細は、「HA/ProcessSaver ユーザーズガイド 応用編」 の 「pcheck 起動時の自動待

ち合わせ時間を変更する手順」の章を参照してください。

(31)

31

Q10. JobCenter の常駐プロセス (cjcpw) を監視したいのですが、起動後すぐに消滅してしま

います。

どのような設定をすればよいでしょうか?

A10. cjcpw コマンドは、-c オプションを付けた場合には、JobCenter のプロセスを起動後す

ぐに消滅します。

-c オプションを指定せずに cjcpw コマンドを実行することで、監視が可能となります。

また JobCenter を監視する手順として、以下の 2種類があります。

 JobCenter の監視事例 1. cjcpw で起動

o cjcpw プロセスのみを ProcessSaver で監視します。

cjcpw プロセスが常駐し、自身の起動した JobCenter の各プロセスを

監視し、異常を検出すれば cjcpw が異常終了します。

2. cjcpw -c で起動

o cjcpw プロセスは上記 JobCenter の各プロセスを起動した後すぐに終

了します。従って JobCenter プロセスの各々を ProcessSaver で監視 する必要があります。

 参考

サービスではなく、コマンドとして起動する場合、PKG 起動スクリプトの function customer_defined_run_cmds に "コマンドライン &" と記述しま す。

function customer_defined_run_cmds {

/usr/lib/nqs/cluster/cjcpw クラスタ名 データ格納パス"

:

(以下省略)

上記を実行するとプロセスが常駐して監視を行いますが、cjcpw が終了する まで制御が戻りません。

この際必ず最後に & (アンパサンド) を付けて、cjcpw がバックグラウン ドで動作するようにすることが必要です。

* バックグランドで実行させる様にしないと、シェルスクリプトに制御が戻 りません。

(32)

Q11. pfile の include_strings オプションに、文字列 "=(イコール)" を指定することはできま すか?

A11. pfile のオプション部に "=" を指定することはできません。

ただし "&" 区切りで複数列記載することでアンド条件として指定することは可能です。

Q12. pcheck コマンドを -w オプションを指定して起動した場合、pcheck プロセス自身はす

ぐに起動しますか?

A12. 例えば "pcheck -f <pfile名> -w 30" を実行した場合、pcheck プロセスはすぐに起動し監 視の開始のみ 30 秒の待ち合わせを行います。

 pcheck起動後、30秒待ってから監視を開始する場合

# /opt/HA/PS/bin/pcheck -f <pfile名> -w 30

Q13. 監視対象プロセスが存在しない場合や消滅を検出した場合に、syslog へ出力されるメッ

セージについて教えてください。

A13. 対象プロセスが存在しない場合に出力されるメッセージは下記の 2 種類となります。

1. Process [xxx, pid=yyy] Down

ProcessSaver が監視対象プロセスの起動を確認 (Upを検出) 後に該当のプロ

セスが消滅した場合に出力されます。

2. Set pid fail (xxx)

ProcessSaver が監視を開始した時に、プロセスが存在しない場合に出力されま

す。

Q14. リトライ回数を、指定されたプロセス名ごとにリセットすることはできますか?

A14. 指定されたプロセス名ごとにリトライ回数をリセットする方法はありません。

padmin -c reload コマンドを実行することで pfile を再読み込みして、定義されたすべての

プロセスのリトライ回数をクリアすることは可能です。

 例

# padmin -f <pfile名> -c reload

(33)

33

Q15. GRACE 値 (grace_time) は、いつからの秒数ですか?

A15. GRACE 値は、1回目のプロセスダウンからの秒数となります。

GRACE 時間経過後にプロセスの消滅を検知した場合には、その時刻が GRACE 値の開始

タイミングとなり、リトライ回数は 1 に戻ります。

 ドキュメントより抜粋

 GRACE 値とは

GRACE 値とはリトライ回数に達するまでの監視時間です。

指定値は 0 秒 ~ 60*60*24*360 秒(約 1 年)の範囲です。

デフォルト値は、10*60 秒です。

GRACE 値で設定した時間内に、リトライ回数に達した場合、リトライオ

ーバアクションの設定にしたがって処理をおこないます。

GRACE 値で設定した時間内にリトライ回数に達しなかった場合、GRACE

値に到達後の最初のプロセス再開を 1 回目のリトライとして処理をおこ ないます。

なお、再起動が不要な場合は、0 (ゼロ) を指定してください。

 (例) 以下のように pfile を設定した場合

[プロセス名]:[再起動スクリプト名]:600:5:continue

600 秒以内に 5 回再起動されたときに、リトライオーバアクションを実行 します。

5 回再起動を行う間に 1回目のプロセスダウンから 600 秒を越える場合に は、アクションは実行されません。

(34)

Q16. プロセスの消滅監視と core ファイル検知を行っている際に、同一プロセス名であって も親と子プロセスの core ファイルの出力先が異なる場合、core ファイルの検知先ディ レクトリをどのように指定すればよいですか?

A16. ProcessSaver の core 検知機能には、2 種類の方式があります。

仕様にあわせて 1. か 2. どちらかの方法をご利用ください。

1. pfile の core 検知機能を定義し、PS_EXEC に、core ファイルの出力ディレクトリ を定義する。

2. ProcessSaver が提供している pgetcore(1M) コマンドを、 core ファイルの出力デ ィレクトリを複数指定して常駐化する。

この方式の場合には、core を作成したプロセスにかかわらず指定されたディレクト リに作成されたすべての core ファイルを検知します。

詳細は、「HA/ProcessSaver ユーザーズガイド 応用編」 の 「コアダンプ検知機能 とは」 の章を参照してください。

Q17. padmin -l コマンドで、pcheck の一覧表示を行ったが、起動中のはずの pcheck が表

示されません。

何が原因でしょうか?

A17. /var/tmp 配下の一時ファイルが削除されている可能性があります。

pcheck は、起動時に /var/tmp 配下に管理ファイルを作成して、pcheck の管理を行っ

ています。

フォーマットは /var/tmp/.pcheck.<管理番号>です。

一度作成されると明示的に消去しない限り、削除されることはありません。

padmin -l コマンドで表示される pcheck 一覧は、この管理ファイルをキーに共有メモ

リを取得して表示しますが、このファイルが pcheck 起動中に消去されると、padmin -l コマンドで一覧には表示されないが、pcheck が稼動している事象が発生します。

pcheck を再起動、または padmin -f <pfile名> -c reload コマンドを投入すると、管 理ファイルを再作成します。

なお、この管理ファイルが消去されても、pcheck のプロセス監視には影響はありませ ん。

(35)

35

Q18. すべての監視を停止した状態で、pcheck を起動することはできますか?

A18. 以下のような手順で行うことができます。

1. ProcessSaver の起動前に、あらかじめ一時ファイルを作成しておきます。

# touch /opt/HA/PS/bin/pcheck.ignore

2. ProcessSaver を起動すると、syslog に監視停止中のメッセージが表示されます。

Jun 8 16:23:45 node1 syslog: pcheck wait... by /opt/HA/PS/bin/pcheck.ignore 3. 監視を再開する場合は一時ファイルを削除します。

# rm /opt/HA/PS/bin/pcheck.ignore

ただしこの場合、ProcessSaver はすべて一時停止状態で起動されます。

複数の pfile で、ProcessSaver を複数起動している場合は、すべての監視が停止 状態で起動されますので注意が必要です。

Q19. 監視停止用の一時ファイル (/opt/HA/PS/bin/pcheck.ignore) は pcheck 停止前に作成し ても問題ないですか?

A19. 停止前に作成してもかまいません。

また運用中に作成しておけば次回の pcheck 起動時から有効となります。

監視停止用の一時ファイルは一度作成すると、毎回起動時に作成する必要はありません

ので rm コマンド等でファイルを削除しない限り、監視を停止し続けることになりま

す。

(36)

Q20. 親子関係をもつ同一名プロセスが複数存在するプロセスを監視している場合、プロセス が存在するにも関わらず pcheck 起動時に消滅を検出してしまいます。

何が原因でしょうか?

A20. 以下の環境にすべて一致するシステムの場合、ProcessSaver の制限事項の可能性が高い

と思われます。

1. 対象 OS が HP-UX の場合

2. ProcessSaver のバージョンが R2.2a ~ R2.2d の場合

3. 定期的に OS を再起動して、PID の再利用が多数発生するシステムの場合 4. 親子関係をもつ同一名のプロセスを ProcessSaver で監視している場合

o Web サーバの httpd プロセス

o JobCenter の jnwengine-qwb プロセスなど

* 上記のプロセスを監視している場合に必ず発生するわけではありません。

5. 親子関係をもつ同一名の監視対象プロセスが、以下の条件にすべて合致する状態で ProcessSaver が監視を開始した場合

- 親プロセスと子プロセスの起動時刻(秒)が同じ - 親プロセスの PID が子プロセスの PID より大きい

(=親プロセス起動と子プロセス起動の間に PID の再利用が発生した場合)

o ps(1) コマンドでの対象プロセスの表示例

# ps -ef |grep procA

root 119 29951 0 11:30:21 ~ 0:04 procA root 29951 1 0 11:30:21 ~ 0:05 procA

ProcessSaver は、多数のユーザー殿にご利用いただいておりますが、本現象が発生し

たユーザー殿は 2 件のみで、上記 5 つの条件すべて一致するケースで発生する制限事 項となり、通常運用中には発生いたしません。

機能強化物件を適用することで、正しくプロセスを選択し監視が可能になります。

強化物件の入手および適用手順については、下記サポートまでお問い合わせください。

お問い合わせ先:[email protected]

(37)

37

Q21. ProcessSaver nfsEdition を使用している場合に、クライアント側で 「Stale NFS file

handle」 と出力されます。

何が原因でしょうか?

A21. NFS Tool Kit を利用している場合に発生する場合があります。

NFS Tool Kit を利用しない場合は、/etc/exportfs にエントリを追加するため、rc スクリ プトを使った NFS 関連プロセスの再起動の延長で exportfs が実行されるため問題あ りません。

しかし、NFS Tool Kit を利用する場合、/etc/exportfs にエントリを登録しないため、

exportfs が実行されませんので、NFS の再起動時には明示的に exportfs コマンドを実

行する必要があります。

再起動スクリプト (/var/opt/HA/PSNE/conf/bin/__nfs_restart.sh) の NFS サーバ起動前

に exportfs コマンドの実行処理を追加することで対処が可能です。

以下、再起動スクリプトの記述例となります。

#nfs start

exportfs -i <export 対象のファイル名> ★NFS Tool Kit 使用時は本処理を追加 /sbin/init.d/nfs.core start

/sbin/init.d/nfs.client start /sbin/init.d/nfs.server start

/sbin/init.d/pcheck_nfswatch start

(38)

Q22. ProcessSaver のストール監視設定時、pcheck の起動後すぐにストールを検出してしま います。

何が原因でしょうか?

A22. ProcessSaver のストール監視は、指定されたファイルのタイムスタンプと現在の時

刻とを比較してチェックしております。

初期起動時に古いタイムスタンプのストール監視の対象のファイルが残っている場 合にストールと判断してしまう場合があります。

これを防止するために、以下のように pfile の INIT 処理で touch コマンドを使って 明示的にファイルのタイムスタンプを更新する処理を指定することを推奨しており ます。

(例) _bi_stall {

PS_INIT AP:/usr/bin/touch <ストール監視対象ファイル名>: DIRECT:-:-:-:0 ★追加

PS_EXEC DLL:/opt/HA/PS/lib/lib_bi_stall.sl:DIRECT:-:60:-:2:<ストール監視対象ファイル名

>:180

PS_ACTION DLL:/opt/HA/PS/lib/lib_bi_stall.sl:DIRECT:-:-:1:0 }

詳しくは 「ProcessSaver ユーザーズガイド 応用編」 の 「ストール監視の導入手順」

→ 「INITエントリの定義」の章を参照してください。

Q23. padmin コマンド実行時に以下のエラーが syslog に出力されました。

何が原因でしょうか?

padmin: lockfile open(2) fail. lockfile = <ロックファイル名>. または

padmin: lockf(F_LOCK) fail. errno = 9.

A23. ProcessSaver(pcheck) の起動ユーザと異なるユーザで padmin コマンドを実行した場

合に出力されます。

これは、pcheck の実行ユーザで作成されたロックファイルに対するアクセス権が

padmin コマンド実行時のユーザにないために、アクセスに失敗したことを示すメッセ

ージとなります。

padmin コマンドは、pcheck 起動時と同じユーザ (一般的にはどちらも root ユーザ) で実行してください。

(39)

39

2 - 3.再起動スクリプトに関する質問

Q1. pfile の再起動スクリプトに su(1) コマンドを指定することは可能ですか?

A1. pfile の再起動スクリプトに、su(1) コマンドを直接指定することは可能です。

ただし、以下の点に注意してください。

 pfile の再起動スクリプトには、基本的にスクリプトを指定する仕様となっております

ので、su(1) 等のコマンドを直接指定する場合には必ず動作検証を行った上で問題な いことをご確認の後設定してください。

* 一般的には su コマンドを実行する場合、su コマンドを実行するスクリプトを 作成し、それを再起動スクリプトに指定する方式を使用しますので、ご検討 ください。

 su コマンドを使用する場合、必ず -c オプションを使用してください。

/usr/bin/su - <ユーザー名> -c "<再起動スクリプト名>"

 su コマンドは絶対パスで指定してください。

/usr/bin/su

 su コマンドを使用してスクリプトを実行する場合、実行するスクリプトに引数を指定 することはできません。

/usr/bin/su - <ユーザー名> -c "<再起動スクリプト名> <再起動スクリプトの引

数>"

* このような場合には、su コマンドを使用してスクリプトを実行するスクリプトを 作成し、それを再起動スクリプトとして記載する方式をご利用ください。

#### スクリプトの作成例 ####

</var/opt/HA/PS/conf/bin/su_start.sh>

---

#! /bin/sh

/usr/bin/su - <ユーザ名> -c "<再起動スクリプト名> <再起動スクリプト の引数>"

exit 0 ---

#### スクリプトの作成例 ####

#### pfile の指定例 ####

proc1:/var/opt/HA/PS/conf/bin/su_start.sh: ...

#### pfile の指定例 ####

(40)

Q2. 対象プロセス自身が自動で再起動するプロセスの場合、再起動スクリプトには何を指定 すればよいですか?

A2. 何もしないダミーのスクリプトを再起動スクリプトに指定してください。

ただしダミースクリプトでは、監視対象が再起動されるのに十分な時間を待ち合わせる必要 があります。

 再起動スクリプトの記述例

#! /bin/sh export LANG=C

/usr/bin/sleep 60 ★ 十分な時間待ち合わせ exit 0

Q3. プロセスの消滅を検出後、再起動スクリプトが正しく実行できません。

何が原因でしょうか?

A3. 再起動スクリプトが単体で実行できるか確認してください。単体で実行できる場合、以下の

点を確認してください。

1. 再起動スクリプトに実行権が付与されていること

2. 再起動スクリプトが正常終了した場合は、ステータスが必ず 0 となるように最後に exit 0 を記述してください。

3. 再起動スクリプト中のコマンドへの PATH が通っていること

o PATH が通っていない場合

・ コマンドを絶対パスで記述する

・ 再起動スクリプトの先頭で環境変数 PATH を設定する

4. 対象プロセスの起動に時間がかかる場合、対象プロセスより先に pcheck が起動し て再起動に失敗したと認識してしまう場合があります。

(41)

41

OS 標準のプロセスの中には、リスタート時に以下の動作を行うものがあります。

o 自分のプロセス名の文字列を含むプロセスを強制終了させる。

o 自分のプロセス名の文字列を含むプロセスが存在する場合に、多重起動と認 識する。

o

このようなプロセスのリスタートを行う場合の再起動スクリプト等のファイル名に は、監視するプロセス名を含まないようにしてください。

ファイル名に監視するプロセス名が含まれている場合、正しくリスタートできない場 合があります。

(例)

syslogd の rc ファイル( /sbin/rc2.d/S220syslogd )では、syslog から始まるプ ロセス名を強制終了します。

そのため ”syslogxxx (xxxは任意) ”というファイル名の再起動スクリプトを作成 し、ここから /sbin/rc2.d/S220syslogd を呼び出した場合、再起動に失敗します。

このような事例は syslogd 以外に diagmond、nfs、rpc 等がありますので、これら をリスタートする再起動スクリプトのファイル名には、監視対象プロセス名を含 まないようにしてください。

Q4. 端末上 (フォアグラウンド) で実行すると正しく動作する再起動スクリプトを、バック グラウンドで動作させると正しく動作しません。

何が原因でしょうか?

A4. ターミナルの設定がバックグラウンドプロセスからターミナルに出力を行った場合に

停止する設定となっている可能性があります。

pseparate(1M) コマンドを使い再起動シェルを実行する wrapper スクリプトを作成

し、それを再起動シェルに指定することで実行できます。

また、バックグランドプロセスの出力をファイルへリダイレクトすることで、実行する ことができます。

* R3.1 以降のバージョンの場合、再起動スクリプトは単独グループで実行されるよう

に変更されておりますので本制限事項は解除されております。

詳細は、「ProcessSaver ユーザーズガイド 応用編」の「リファレンス」の章を参照し

てください。

(42)

Q5. 環境変数 PATH に大量の PATH を設定した場合に、端末上 (フォアグラウンド) で実 行すると正しく動作する再起動スクリプトが正しく動作しません。

何が原因でしょうか?

A5. 本現象は、R2.2 の制限事項の可能性があります。ProcessSaver が、R2.2 以前のバー

ジョンの場合は、環境変数 PATH の上限が1020文字の制限があり、これをこえる値を 設定された時に、再起動スクリプトの実行が失敗する場合があります。

環境変数 PATH を1020文字以下にしてください。

* R2.2a 以降のバージョンで、本制限事項は解除されています。

Q6. 再起動スクリプトの実行に失敗した場合の syslog メッセージについて、意味と対処を 教えてください。

A6. 再起動スクリプト失敗時の代表的な syslog メッセージは以下のようなものがあります。

1. 再起動スクリプトが存在しない場合 pcheck[xxx]: -> execvp(2) fail (2)

pcheck[xxx]: -> restart shell fail (exit status) (233)

再起動スクリプトに指定したパスにスクリプトが存在するか確認してください。

2. 再起動スクリプトに実行権が無い場合 pcheck[xxx]: -> execvp(2) fail (13)

pcheck[xxx2]: -> restart shell fail (exit status) (233)

再起動スクリプトに実行権が付与されているかどうか確認してください。

3. 再起動スクリプトの構文エラーの場合

pcheck[xxx]: -> restart shell fail (exit status) (127)

再起動スクリプトの構文が正しくない可能性があります。

再起動スクリプトが単体で実行できるか確認してください。

(43)

43

3.動作環境に関する質問

Q1. ProcessSaver を動作させるために必要なディスク使用量はどれくらいですか?

A1. ProcessSaver は /opt と /var 配下を使用します。使用量は以下の通りです。

マウントポイント 説明 サイズ

/opt 配下 デーモンプロセスやコマンド等の

バイナリファイル

約 5MB

/var 配下 デーモンプロセスやコマンド等の

ログファイル

約 18MB

ログファイルはすべてサイクリックになっていますが、上記は ProcessSaver を一つ起 動した場合の使用量です。

pcheck を複数起動する場合、ProcessSaver 一つにつき /var 使用量は 18MB 程度増加

します。

Q2. ProcessSaver が作成する一時ファイルはありますか?

A2. ProcessSaver は、/var/tmp 配下に以下の一時ファイルを作成します。

/tmp 配下にファイルを作成することはありません。

/var/tmp/.pcheck.(IPCKEY)

* 本ファイルは ProcessSaver の管理ファイルとなりますので、削除しないでください。

Q3. ProcessSaver は高信頼性モードで動作しますか?

A3. 動作します。特に制限等はありません。

Q4. ProcessSaver は、SMSE に対応していますか?

A4. 対応しています。特に制限等はありません。

(44)

Q5. ProcessSaver は、32 ビット、64 ビットのどちらで動作しますか?

A5. ProcessSaver は、PA-RISC、IPF ともに 32 ビットで動作しております。

Q6. /var 配下の空き容量が無くなった場合、ProcessSaver の動作上なにか問題があります

か?

A6. 空き領域が無い状態では正しく動作しない可能性があるため、動作の保障ができません。

/var 配下の不要ファイルを削除して、空き領域を作成した後 ProcessSaver を再起動してく

ださい。

その際、以下のファイルは ProcessSaver の管理ファイルとなりますので削除しないでくだ さい。

/var/tmp/.pcheck.(IPCKEY)

Q7. ProcessSaver のメモリ使用量はどれくらいですか?

A7. 固有メモリ領域は、3Mバイト 程度です。

また、共有メモリを 1~4 Mバイト使用します。

* 上記は ProcessSaver を一つ起動した場合の使用量です。

pcheck を複数起動する場合は、上記×pcheck の個数となります。

(45)

45

© NEC Corporation 2018

日本電気株式会社の許可なく複製、改変などを行なうことはできません。

本書の内容に関しては将来予告なしに変更することがあります。

NX ソフトウェア HA/ProcessSaver FAQ 集

2018 年 6 月 第 2 版 日本電気株式会社 東京都港区芝五丁目7番地1号

TEL (03) 3454-1111(代表)

P

(46)

保護用紙

参照

関連したドキュメント

(続き) (3) Pcheck の起動を確認します PcheckList の内容を確認し、

-&gt; PS_CLEARED (' 監視対象プロセス名 ') 説明 : クリアコマンド(clear_cmd)の実行に失敗しました。 処置

SS 証明書が無効です。 Clean Access Server の証明書が無効であるか正しくない場合は、

AutoCAD LT は AutoCAD と異なり、ObjectARX、.NET API、AutoLISP、または

(9) クラスを終了する 授業が終了したら InterWrite バーの右端の×ボタンを押します。

15 例として、ライブマイグレーション環境として構築された 2 つのサーバーA と B で、合計 4 つの仮想マシンが稼

 

新規研究課題提案書 (課題提案者が記入) 提案課・室名 問合せ先 課・室名:国土地理院地理地殻活動研究センター 宇宙測地研究室 地殻変動研究室