PRIMECLUSTER 活用ガイド <クラスタ構築・運用時の留意点> (Solaris(TM)オペレーティングシステム/Linux版) |
目次
索引
![]() ![]() |
第1部 設計・構築編 | > 第3章 Cmdline リソース設定時の注意点 |
各スクリプトの実行権限は、ユーザが root、グループが root です。
各スクリプト実行時に設定される環境変数は、hvdisp コマンド(ENVおよびENVLオプション)で表示されるRMSの環境変数だけです。サーバ(システム)ごとに設定した環境変数(/etc/profile)は引継がれません。このため、スクリプトの実行時に必要な環境変数は各スクリプトの中で定義する必要があります。
Check スクリプトは RMS 起動後、定周期(10 秒間隔)に呼出され、Start/Stop スクリプトとは同期しません。
このため、Check スクリプトが起動された時点では、Start スクリプト処理が完了していない場合や、Stop スクリプトが処理中の場合があります。
Start スクリプト完了前に Check スクリプトが起動された場合、終了コード Offline 状態を返すようにスクリプトを作成してください。
userApplication に複数の Cmdline を登録した場合、userApplication 起動時には Cmdline を登録した順に、停止時には登録した逆順に処理が行われます。以下に例を示します。
最初に登録したリソースを Command[0]、次に登録したリソースを Commnad[1] とします。
これらのリソースは次の順番で起動、停止が行われます。
起動時:
StartCommands[0] ↓ StartCommands[1]
停止時:
StopCommands[1] ↓ StopCommands[0]
各スクリプトを登録する場合、スクリプトの動作確認は必ず実施してください。
作成したスクリプトが正しく動作しない場合、userApplication の起動に失敗したり、切替えに失敗することがあります。
Cmdline リソースは作成者が管理するものです。このため、動作異常についても作成者の責任で調査・修正・動作確認を行う必要があります。
動作異常時の調査を速やかに実施するために、ログを出力するなどの対応を行ってください。
Stop スクリプトは、リソース故障発生時にも実行されます。
Cmdline リソースは、標準出力/標準エラー出力が、以下のログに格納されるよう、Start/Stop スクリプトを起動します。
/var/opt/SMAWRrms/log/" ユーザアプリケーション名".log
"ユーザアプリケーション名" は Cmdline リソースを登録したユーザアプリケーション名です。Start/Stop スクリプトが正常に動作しない場合、本ファイル内のメッセージ出力から原因を調査できます。
Cmdline リソースに登録した Start スクリプトから、標準出力や標準エラー出力にメッセージを出力し続ける常駐プロセスを起動した場合、そのメッセージは "ユーザアプリケーション名".log ファイルに格納されます。しかし、このファイルは、リソースの Start/Stop スクリプトが出力されるメッセージを取得することを目的としており、常駐プロセスが常に出力するメッセージを取得することを想定していません。常駐プロセスが常にメッセージを出力し続けると、"ユーザアプリケーション名".log ファイルがディスク領域を圧迫します。
このような常駐プロセスを持つ業務アプリケーションを Cmdline リソースから起動する場合は、業務アプリケーションの設定を変更し、常駐プロセスが標準出力/標準エラー出力へメッセージを出力しないようにしてください。
業務アプリケーションでメッセージ出力先を制御できない場合は、以下のような対処を行ってください。
出力されるメッセージが運用上不要な場合
Start スクリプト内で、常駐プロセスが出力するメッセージを /dev/null へ破棄してください。
たとえば、Start コマンド StartCommand.sh で常駐プロセスが起動される場合は、以下のようにします。
例: /usr/local/bin/StartCommand.sh > /dev/null 2>&1
出力されるメッセージが運用上必要である場合
Start スクリプト内で、常駐プロセスが出力するメッセージを別のファイルへ出力します。
たとえば、Start コマンド StartCommand.sh で常駐プロセスが起動される場合で、ログを /var/tmp/lofile へ出力する場合は、Start コマンドを以下のように登録します。
例: /usr/local/bin/StartCommand.sh > /var/tmp/logfile 2>&1
また、ログファイルによりディスク領域が圧迫されることを避けるため、ログファイルを定期的に削除する必要があります。常駐プロセス動作中にログファイルを削除することはできないため、/dev/null をログファイルへコピーすることで、ログファイルのサイズを 0 にします。
例: cp /dev/null /var/tmp/logfile
cron から定期的にログファイルのサイズを 0 にすることで、ログファイルによるディスク領域の圧迫を避けた運用が可能です。
目次
索引
![]() ![]() |