11    システムのモニタリングとテスト

この章では,以下の項目について説明します。

11.1    モニタリングとテストの概要

システムのモニタリングには,動作状況のパラメータ (CPU 負荷や I/O スループットなど) のベースラインを取得するための,基本的なコマンドおよびオプション・ユーティリティを使用します。 稼働中のシステムの動作状況をモニタリング,記録,比較するためにこれらのベースラインを使用することで,システムが動作要件からかけ離れないようにできます。

システムのモニタリングを行うと,ユーザがシステムやその周辺機器を利用できなくなるような問題を事前に見つけ,防止することもできます。 モニタリング・ユーティリティの情報により,システム・パニックやディスク・クラッシュなどの予期しないイベントに対し素早く対処し,問題を素早く解決してシステムをオンラインに戻すことができます。

モニタリングのトピックは,テクニカル・サポート上のニーズに深く関わっています。 この章で説明するユーティリティには,二重の機能を持つものがあります。 リアルタイムのシステム・モニタリングとは別に,これらのユーティリティはテクニカル・サポート担当者が使用する履歴データやイベント固有データも収集します。 このデータは,オペレーティング・システムやハードウェアの障害後,迅速にシステムを立ち上げて稼働させるために必要になることがあります。 少なくとも,11.1.1 項のモニタリング・ガイドラインに従ってください。

テストでは,システムの部品や周辺デバイス (ディスクなど) を試験するツールやユーティリティを使用します。 利用可能なテスト・ユーティリティについては,この章で説明します。 システム・ハードウェアにも,コンソール・プロンプトで実行できるテスト・ユーティリティが用意されています。 ハードウェア・テスト・コマンドについては,オーナーズ・ガイドを参照してください。

11.1.1 項では,システムのモニタリングの一般的なガイドラインについて説明します。 11.1.2 項では,オペレーティング・システムに用意されているすべてのユーティリティについて概要を説明します。

11.1.1    システムのモニタリングの概要

目的の動作に合わせてシステムを構成した後で,次の手順を実行してください。

  1. 毎日使用するモニタリング・ユーティリティを選択する。

    11.1.2 項にある,モニタリング・ユーティリティの概要を参照してください。 システム構成に基づいて,構成およびモニタリングの要件に合うユーティリティを選択します。 たとえば,グラフィック・ターミナルがあり,分散システムのモニタリングを行う場合は,SysMan Stationをセットアップすることを考慮してください。 単一のローカル・サーバのモニタリングを行う場合は,dxsysinfo ウィンドウで十分です。

    必要に応じて,警告やメッセージを表示するトリガーとなる属性を設定します。 たとえば,ファイル・システムが満杯になってデータが紛失するのを防ぐには,85% で満杯になるような制限をすべてのファイル・システムに設定できます。

    注意

    多くのオプション・サブシステムには,独自のモニタリング・ユーティリティが用意されています。 これらのインタフェースを十分に理解し,一般のユーティリティよりも適しているかどうかを判断してください。

  2. ベースラインを確定する。

    sys_check ユーティリティを -all オプションを指定して実行し,次の処理を行います。

    必要であれば,sys_check ユーティリティの情報を使用して,システムの属性をチューニングします。 システムのチューニングについては,『システムの構成とチューニング』を参照してください。 このベースラインのデータを,別のシステム上など,後で簡単にアクセスできる場所に保管します。 また,このレポートのコピーを印刷することもできます。

  3. 負荷のある状態で sys_check ユーティリティを実行する。

    システムに適度な負荷がかかっている状態で,sys_check ユーティリティを実行します。 モニタリングしたいオプション (-perf など) だけを選択します。 この操作は,システムの性能に多少影響を与えることがあるため,エンドユーザの使用がピークになる時間帯を避けて実行してください。

    sys_check ユーティリティの出力を分析し,動作要件に合わせるために変更が必要であれば追加で変更します。 この操作では,システム属性のチューニングがさらに必要となる場合や,クラス・スケジューラなどのユーティリティによるシステム・リソースの再配置などの構成の変更が必要となる場合もあります。 sys_check ユーティリティの使用方法については,11.2.2 項を参照してください。

  4. Event Managerをセットアップする。

    モニタリング方式を選択すると同時に,システムのイベント管理ログおよびレポート方式を構成します。 Event Manager の構成方法については,第 13 章および第 12 章を参照してください。

  5. モニタリング・ユーティリティを構成する。

    使用するモニタリング・ユーティリティが他にあれば,セットアップします。 たとえば,次の処理を行います。

11.1.2    コマンドおよびユーティリティの概要

オペレーティング・システムには,多数のモニタリング・コマンドおよびユーティリティが用意されています。 システム・データの単純なスナップショットを数値形式で返却するコマンドもあれば,情報を選択したりフィルタリングするオプションを多数持つコマンドもあります。 また,リアル・タイムでシステム・データをフィルタリングして追跡し,そのデータをグラフィック・ターミナルに表示する,複雑なグラフィカル・ユーザ・インタフェースもあります。

ローカルな環境やモニタリングの要件に最適なモニタリング・ユーティリティを選択してください。 また,次の事項を考慮してください。

以降の項では,モニタリング・ユーティリティについて説明します。

11.1.2.1    コマンド行ユーティリティ

各種のシステム統計情報のスナップショットを表示するには,以下のコマンドを使用します。

vmstat

vmstat コマンドは,仮想メモリ,プロセス,トラップ,および CPU 動作のシステム統計情報を表示します。 vmstat の出力例を次に示します。

bigrig> vmstat
Virtual Memory Statistics: (pagesize = 8192)
procs   memory         pages                         intr       cpu
r  w  u act  free wire fault cow zero react pin pout in  sy  cs us sy id
2 97 20 8821  50K 4434 653K 231K 166K 1149 142K    0 76 250 194  1  1 98

詳細については, vmstat(1) を参照してください。

iostat

iostat コマンドは,端末およびディスクの入出力情報と,各種の動作の実行に使用された CPU 時間の割合を報告します。 iostat の出力例を次に示します。

bigrig> iostat
    tty      floppy0          dsk0          cpu
 tin tout    bps    tps    bps    tps  us ni sy id
   0    1      0      0      3      0   0  0  1 98

詳細については, iostat(1) を参照してください。

who

who コマンドは,ローカル・システムのユーザとプロセスの情報を報告します。 who の出力例を次に示します。

bigrig>who
# who
root        console     Jan  3 09:55
root        :0          Jan  3 09:55
root        pts/1       Jan  3 09:55
bender      pts/2       Jan  3 14:59
root        pts/3       Jan  3 15:43

類似のコマンド users があります。 これは,ログインしているユーザについて,簡潔なリストを表示します。

詳細については, who(1) および users(1) を参照してください。

uptime

uptime コマンドは,システムが稼働した時間を報告します。

bigrig> uptime
16:20  up 167 days, 14:33,  4 users,  load average: 0.23, 0.24, 0.24
 
 

詳細は, uptime(1) を参照してください。

uptime と同じ情報を表示する,類似のコマンド w がありますが,w はログインしているユーザの情報も表示します。 詳細は, w(1) を参照してください。

netstat

netstat コマンドは,ネットワーク関連の統計情報を,各種のフォーマットで表示します。

ネットワークのモニタリングの詳細は,netstat コマンドと『ネットワーク管理ガイド:接続編』を参照してください。

11.1.2.2    SysMan Menu のモニタリング作業およびチューニング作業

SysMan Menu には,いくつかのモニタリング作業のオプションがあります。 SysMan Menu の使用方法についての一般的な説明は,第 1 章を参照してください。 [モニタリング/チューニング] メニュー項目下には,以下のオプションがあります。

イベントの参照 [event_viewer]

このオプションは,EVM イベント・ビューア (第 13 章を参照) を起動します。

HP Insight Manager の設定 [imconfig]

HP Insight Manager を構成して HP Insight Manager デーモンを開始するインタフェースを起動します。 HP Insight Manager の構成については,第 1 章を参照してください。

仮想メモリ (VM) 統計の参照 [vmstat]

11.1.2.1 項で説明した vmstat コマンドへの SysMan Menuインタフェースです。

入出力 (I/O) 統計の参照 [iostat]

11.1.2.1 項で説明した iostat コマンドへの SysMan Menuインタフェースです。

UPTIME 統計の参照 [uptime]

11.1.2.1 項で説明した uptime コマンドへの SysMan Menuインタフェースです。

この他,[サポートとサービス] メニュー項目の下には以下のオプションがあります。

エスカレーション・レポートの作成 [escalation]

このオプションによって,sys_check ユーティリティのエスカレーション・レポート機能を起動します。 エスカレーション・レポートは診断サービスの際にのみ使用され,テクニカル・サポート部門がこのレポートを必要とします。 sys_check ユーティリティのエスカレーション・オプションの使用方法についての詳細は,11.2.2 項を参照してください。

構成レポートの作成 [config_report]

このオプションによって,sys_check ユーティリティのシステム構成レポート機能を起動します。 このオプションを使用すると,システム構成のベースラインを記録し,定期的にベースラインを更新できます。 このオプションを使用すると,省略時の完全なレポートが作成されますが,完了までに長い時間がかかり,システムの性能に影響を与える可能性があります。 sys_check ユーティリティの使用方法についての詳細は,11.2.2 項を参照してください。

11.1.2.3    SysMan Station

SysMan Stationは 1 つ以上のシステムをグラフィカルに表示でき,どのシステム上でも管理作業を行うためのアプリケーションを起動することができます。 SysMan Stationの使用方法については,第 1 章を参照してください。

11.1.2.4    X11 準拠のグラフィカル・ユーザ・インタフェース

オペレーティング・システムには,省略時の共通デスクトップ環境 (CDE) ウィンドウ環境下で一般的に使用されるいくつかのグラフィカル・ユーザ・インタフェース (GUI) があります。 これは「システム管理」フォルダにあります。

これらのインタフェースは,CDE フロント・パネルの「SysMan アプリケーション」パネルから起動できます。 「SysMan アプリケーション」パネルの詳細は,図 1-5 を参照してください。 ここには,「モニタリング/チューニング」フォルダ,「ツール」フォルダ,および「日常管理」フォルダを指すアイコンがあります。

「モニタリング/チューニング」フォルダ

このフォルダには,以下の SysMan Menu の項目を起動するアイコンがあります。

構成レポート

このアイコンは,sys_check ユーティリティのシステム構成レポート機能のグラフィカル・ユーザ・インタフェースを起動します。

エスカレーション・レポート

このアイコンは,sys_check ユーティリティのエスカレーション・レポート機能のグラフィカル・ユーザ・インタフェースを起動します。

HP Insight Manager

このアイコンは,HP Insight Manager を構成して HP Insight Manager デーモンを開始するインタフェースを起動します。

このフォルダ内の残りのアプリケーションは,システムのチューニングに関連するアプリケーションです。 プロセス・チューナ (nice コマンドへのグラフィカル・ユーザ・インタフェース) およびカーネル・チューナ (dxkerneltuner) を使用するチューニングについては,『システムの構成とチューニング』を参照してください。

「ツール」フォルダ

「ツール」フォルダには,vmstat などのコマンドへのグラフィカル・ユーザ・インタフェースが用意されています。 これらのインタフェースは,CDE フロント・パネルから「アプリケーション・マネージャ」アイコンを選択して「アプリケーション・マネージャ」フォルダから,「システム管理」アイコン,「ツール」アイコンの順で選択します。 このフォルダには,以下のインタフェースが用意されています。

「I/O 統計」

iostat コマンド (11.1.2.1 項参照) へのグラフィカル・ユーザ・インタフェースです。

「ネットワーク統計」

netstat コマンドへのグラフィカル・ユーザ・インタフェースです。 ネットワークのモニタリングについては,『ネットワーク管理ガイド:接続編』を参照してください。

「システム・メッセージ」

/var/adm/messages ログ・ファイルへのグラフィカル・ユーザ・インタフェースです。 このファイルには,システム・イベント管理の現在の設定内容に応じて特定のシステム・メッセージが格納されます。 イベント,イベントが生成するメッセージ,メッセージ・ログ・ファイルについては,第 12 章および第 13 章を参照してください。

「仮想メモリ統計」

vmstat コマンド (11.1.2.1 項参照) へのグラフィカル・ユーザ・インタフェースです。

Who?

who コマンド (11.1.2.1 項参照) へのグラフィカル・ユーザ・インタフェースです。

「日常管理」フォルダ

この他の X11 準拠モニタリング・アプリケーションは,「システム情報」です。 これは 「アプリケーション・マネージャ - 日常管理」フォルダにあります。

「システム情報」

このインタフェースを起動するには,「システム情報」(dxsysinfo) アイコンをクリックします。 このインタフェースを使用すると,以下のシステム・リソースおよびデータを素早く参照することができます。

11.1.2.5    高度なモニタリング・ユーティリティ

以下のユーティリティには,多数の動作パラメータを参照し記録するオプションがあります。

collect

collect ユーティリティを使用すると,事前に決めたサンプリング期間の間,多くの種類のシステム・データやプロセス・データを同時にサンプリングできます。 情報をデータ・ファイルに収集し,端末でそのファイルを再生することができます。

collect ユーティリティを使用すると,性能上の問題の診断に役立ちます。 また,テクニカル・サポート・サービスがシステムの問題解決の手助けをする際に,このユーティリティの出力結果を必要とすることがあります。 collect ユーティリティの使用方法については,11.2.1 項を参照してください。

詳細は,インストレーション・キットにある『Collect User's Guide』を参照してください。

sys_check ユーティリティ

sys_check ユーティリティは,システム構成および多数のシステム属性の現在の設定を恒久的に記録するために使用する,コマンド行インタフェースです。 このユーティリティの詳細は,11.2.2 項で説明しています。

MPH (Monitoring Performance History) ユーティリティ

MPH (Monitoring Performance History) ユーティリティは,オペレーティング・システムやハードウェア環境の信頼性や可用性の情報 (クラッシュ・データ・ファイルなど) を収集するシェル・スクリプト群です。 このユーティリティの詳細は,11.2.3 項で説明しています。

11.1.3    関連ドキュメント

本書の以下のトピックは,システムのモニタリングおよびテストに密接に関連しています。

次のマニュアルにも,システム・モニタリングとテストについての追加情報が含まれています。

11.2    モニタリング・ユーティリティの構成および使用

以降の項では,いくつかのモニタリング・ユーティリティを紹介し,セットアップ方法と使用方法について説明します。 詳細については,各アプリケーションに付属のドキュメントおよびリファレンス・ページを参照してください。 グラフィック環境を備えたシステムのモニタリング用に SysMan Station を構成して使用する方法については,第 1 章を参照してください。

イベント管理とエラー・ロギングは,密接に関連するトピックです。 これらのトピックについては,第 12 章および第 13 章を参照してください。

11.2.1    collect ユーティリティによるシステム・データの記録

/usr/sbin/collect コマンド行ユーティリティは,現在のシステム状態を示すデータを収集します。 このユーティリティを使用すると,多数のパラメータから選択してソートすることや,データ収集期間を指定することができます。 データはリアルタイムに表示できますが,後で分析したり再生するためにファイルに記録することもできます。 collect ユーティリティを使用したために発生する CPU のオーバヘッドは少しだけです。 これは,記録するシステム動作だけに焦点を置くことができるので,システムの性能に悪影響を与えないためです。

何も指定しないで /usr/sbin/collect コマンドを実行すると,出力は vmstatiostat,または netstat などのモニタリング・コマンドを実行した場合と同じようになります。

コマンド構文の詳細は, collect(8) に定義されています。 collect ユーティリティの重要な機能は,以下のとおりです。

collect ユーティリティはページ・ロック関数 plock() を使用して,自分自身をメモリ内にロックします。 このためシステムは,このユーティリティをスワップ・アウトすることはできません。 またこのユーティリティは,優先順位関数 nice() を使用して,自身の優先順位を上げます。 必要であれば,-ol コマンド・オプションを使用してロックを無効にでき,-on コマンド・オプションを使用して優先順位の設定を無効にできます。 ただし,負荷の高いシステムで collect ユーティリティを使用しても最小限の影響しかありません。

11.2.2    sys_check ユーティリティの使用

sys_check ユーティリティを使用すると,次の処理ができます。

現在のハードウェアおよびソフトウェアの構成を記録する他に,sys_check ユーティリティはシステム性能状況のパラメータの拡張ダンプを作成できます。 この機能を使用すると,多数のシステム属性値を記録でき,システム・データの有用なベースラインを得ることができます。 このようなベースラインは,大規模な変更や,トラブルシューティングを行う際には,特に役立ちます。

sys_check ユーティリティを実行すると,HTML ドキュメントが標準出力に出力されます。 -escalate フラグを指定してこのスクリプトを実行すると,特に指定しなければ $TMPDIR/escalate* 出力ファイルが作成されます。 環境変数 $TMPDIR によって,現在の一時ディレクトリが決まります。 これらのファイルをテクニカル・サポート部門に転送し,システムの問題やエラーの診断に使用することができます。

コマンド・オプションの完全なリストを表示するには,次のコマンドを実行します。

# /usr/sbin/sys_check -help

sys_check ユーティリティが生成する出力は,通常 0.5 MB 〜 3 MB のサイズで,検査の完了までに 30 分〜 1 時間かかります。 各種のコマンド・オプションの詳細は, sys_check(8) を参照してください。 いくつかの項目を除外して実行すると,実行時間を大幅に短縮できます。 たとえば,sys_check ユーティリティはインストールされているソフトウェアを記録するために setld を実行します。 setld 動作を除外すると,sys_check の実行期間を大幅に短縮できます。

標準の sys_check 実行タスクは,次の方法で起動することができます。

root の crontabs ファイルでオプションを有効にすることで,sys_check タスクを自動的に実行することができます。 /var/spool/cron/crontabs ディレクトリの root ファイルには,cron が定期的に起動する省略時のタスクのリストが入っています。 次の行からコメント (#) コマンドを削除してください。

#0 3 * * 0 /usr/share/sysman/bin/runsyscheck

このオプションを有効にすると,結果のレポートを HP Insight Manager が参照します。 そのため,HP Insight Manager のデバイス・ホーム・ページの「Tru64 UNIX 構成レポート」アイコンを選択して,参照することができます。 HP Insight Manager の詳細は,第 1 章を参照してください。

11.2.3    Monitoring Performance History ユーティリティの使用

MPH (Monitoring Performance History) ユーティリティは,オペレーティング・システムとそのハードウェア環境の信頼性や可用性の情報 (クラッシュ・データ・ファイルなど) を収集するシェル・スクリプト群です。 この情報は,インターネット・メールまたは DSN リンク (利用可能な場合) によって,システムのベンダに自動的にコピーされます。 このデータを使用して性能分析レポートが作成され,開発グループおよびサポート・グループに配布されます。 この情報は,信頼性の高い高可用性のシステムの設計を改善するために,システム・ベンダの内部でのみ使用されます。

MPH の処理は自動的に実行されるため,ユーザの操作は不要です。 初回の構成に,約 10 分かかります。 MPH は,システムの性能に影響を与えたり,低下させることはありません。 これは,MPH がわずかな CPU リソースを使用して,バックグラウンド・タスクとして実行されるためです。 収集データおよびアプリケーションに必要はディスク・スペースは,1 システムあたり約 300 ブロックです。 この値は,エラーの数が多いと若干大きくなることがあります。 またこの値は,初回の実行でベースラインを確立する際には,かなり大きくなります (ただし,これは 1 回だけです)。

MPH ユーティリティは,次のように動作します。

MPH を実行する前に,次の情報について確認してください。

MPH をシステムに構成する人は,root ユーザでなければならず,ターゲット・システムの主管理者でなければなりません。 MHP を構成する際には,名前,電話番号,e-mail アドレスを入力する必要があります。 次の手順で実行します。

  1. ターゲット・システムのシリアル番号 (SN) を調べます。 この番号は通常,システム本体の背面に記録されています。 インストレーション・スクリプトを完了させるには,この番号が必要です。

  2. 次のコマンドを入力して,MPH スクリプトを実行します。

    # /usr/field/mph/MPH_UNIX***.CSH
    

    ここで,*** はバージョン番号 (025 など) です。

  3. スクリプトが要求する情報を入力します。 スクリプトの実行が完了したら,MPH が自動的に開始されます。

何らかの理由でオペレーティング・システムをシャットダウンする必要がある場合は,正常なシャットダウン処理に従わなければなりません。 従わなかった場合は,MPH のドキュメントで説明されているように,MPH スクリプトを再起動しなければなりません。 詳細については, mph(1) を参照してください。

11.3    環境モニタリングと envmond/envconfig

どのようなシステムでも,換気の悪さ,過熱状態,あるいはファンの故障のために温度が上昇することがあります。 このような状態が検出されなければ,予期しないシャットダウンのためにシステムのデータが失われたり,システム自体が損傷する恐れがあります。 環境モニタリング機能を使用すると,前もって警告されるため,システムを回復したり,通常の段階的なシャットダウンを実行することができます。

コマンド行からの環境モニタリング

次のように sysconfig コマンド行ユーティリティを使用して,システム環境の状態のモニタリングを行えます。

# /sbin/sysconfig -q envmon

このコマンドを使用すると,現在の温度,ファンの状態,その他の一般的な環境情報がレポートされます。

環境センサのモニタリング

少数の最新のハードウェア・プラットフォームには,プロセッサの温度やファンの回転速度しきい値など,温度環境をモニタリングする機能が備わっています。 root で次のコマンドを実行して,ご使用中のハードウェア・プラットフォームにこの機能が備わっているかどうかを調べてください。

# /sbin/hwmgr view hier | grep sensor
  52:     sensor systhermal-cpu0
  53:     sensor systhermal-cpu1
  54:     sensor systhermal-cpu2
  55:     sensor systhermal-pci_zone-1
  56:     sensor systhermal-pci_zone-2
  57:     sensor systhermal-pci_zone-3
  58:     sensor sysfan-pci_zone-1/2
  59:     sensor sysfan-power_supply-3/4
  60:     sensor sysfan-cpu_memory-5/6
  61:     sensor syspower-ps-0
  62:     sensor syspower-ps-1
  63:     sensor syspower-ps-2

このコマンドの出力には,個々のアクティブなセンサが表示されます。

出力がなかった場合,これらの機能はご使用中のプラットフォームには備わっていません。

これらのセンサは,しきい値に達した場合,Event Manager にイベントをポストします。 Event Manager ログ・ファイルを参照して Hardware Manager コマンド行プログラムを使用すると,どの構成要素がクリティカルになっているかがわかります。 Event Manager の詳細は,第 13 章を参照してください。 Hardware Manager コマンド行ユーティリティの詳細は,『ハードウェア管理ガイド』と hwmgr(8) を参照してください。

HP Insight Manager

HP Insight Manager でも 「回復->環境」画面によって,環境条件のモニタリングが行えます。 詳細は,『HP Management Agents for AlphaServers for Tru64 UNIX』を参照してください。

envmond/envconfig フレームワーク

環境モニタリングのフレームワークは,4 つのコンポーネントから構成されています。

これらのコンポーネントについて,以下の各項で説明します。

11.3.1    ロード可能カーネル・モジュール

ロード可能カーネル・モジュールおよびその関連 API には,システムのしきい値レベルをモニタして状態を返すために必要なパラメータが含まれています。 カーネル・モジュールは,11.3.1.1 項で説明するように,カーネル構成マネージャ (CFG) インタフェースを介してのみサーバ管理属性をエクスポートします。 これは,サーバ管理をサポートするすべてのプラットフォームで動作するとともに,開発中の他のサーバ管理システムとの互換性を提供します。

ロード可能カーネル・モジュールには,プラットフォーム固有のコード (状態レジスタの位置など) は含まれていません。 カーネル・モジュールは,どのオプションがプラットフォームでサポートされているのかを意識する必要がありません。 つまり,カーネル・モジュールおよびプラットフォームは,オプションがサポートされている場合には有効なデータを返し,サポートされないオプションに対しては一定の値またはヌルを返すように設計されています。

11.3.1.1    ロード可能カーネル属性の指定

ロード可能カーネル・モジュールは,表 11-1 に示すパラメータをカーネル構成マネージャ (CFG) にエクスポートします。

表 11-1:  カーネル・モジュールで定義されているパラメータ

パラメータ 用途
env_current_temp システムの現在の温度を指定します。 システムに KCRCM モジュールを構成している場合,返される温度は摂氏です。 システムが温度の読み取りをサポートしておらず,温度がしきい値を超えていない場合は,-1 が返されます。 システムが温度の読み取りをサポートしておらず,温度がしきい値を超えている場合には,-2 が返されます。
env_high_temp_thresh システム固有の動作温度のしきい値を指定します。 返される値は,ハードコードされたプラットフォーム固有の温度です。 単位は摂氏です。
env_fan_status 危険ではないファンの状態を指定します。 返される値はゼロ (0) のビット値です。 この機能に対してハードウェア・サポートがある場合には,この値は異なります。
env_ps_status 冗長電源の状態を指定します。 冗長電源の故障のために割り込みを行うプラットフォームでは,対応するエラー状態ビットを読み込んでリターン値を決定します。 エラーの場合には値 1 が返され,それ以外の場合には ゼロ (0) が返されます。
env_supported プラットフォームがサーバ管理および環境モニタリングをサポートしているかどうかを示します。

11.3.1.2    プラットフォーム固有の機能の取得

ロード可能カーネル・モジュールは,照会されているプラットフォームに基づいて環境状態を返さなければなりません。 環境状態を取得するには,get_info() 関数を使用します。 get_info() 関数の呼び出しは,platform_callsw[] テーブルを通してフィルタにかけられます。

get_info() 関数は,表 11-2 に示す関数タイプを使用して,動的な環境データを取得します。

表 11-2:  get_info() 関数タイプ

関数タイプ 関数の使用
GET_SYS_TEMP KCRCM モジュールが構成されているプラットフォーム上のシステムの内部温度を読み取ります。
GET_FAN_STATUS エラー・レジスタからファンの状態を読み取ります。
GET_PS_STATUS エラー・レジスタから冗長電源の状態を読み取ります。

get_info() 関数は,HIGH_TEMP_THRESH 関数タイプを使用して静的なデータを取得します。 この関数タイプは,プラットフォーム固有の動作温度の上限しきい値を読み取ります。

11.3.2    Server System MIB サブエージェント

Server System MIB エージェント (eSNMP サブエージェント) は,Server System MIB で指定された環境モニタリング・パラメータのサブセットをエクスポートするために使用されます。 Server System MIB は,インストールされているオペレーティング・システムに応じて,すべてのサーバ・プラットフォームに共通するハードウェア固有パラメータ・セットをエクスポートします。

表 11-3 は,環境モニタリングをサポートする Server System MIB 変数サブセットのカーネル・パラメータ (11.3.1.1 項で説明) へのマッピングを示しています。

表 11-3:  サーバ・サブシステム変数のマッピング

Server System MIB 変数名 カーネル・モジュール・パラメータ
svrThSensorReading env_current_temp
svrThSensorStatus env_current_temp
svrThSensorHighThresh env_high_temp_thresh
svrPowerSupplyStatus env_ps_temp
svrFanStatus env_fan_status

MIB 記述をコンパイルして骨組みサブエージェント・デーモン用のコードにするには,SNMP MIB コンパイラおよび他のユーティリティを使用します。 サブエージェント・デーモンとマスタ・エージェント eSNMP デーモン (snmpd) の間の通信は,eSNMP シェアード・ライブラリ (libesnmp.so) 内のインタフェースで処理されます。 サブエージェント・デーモンは,システムをブートして eSNMP デーモンが起動された後に起動する必要があります。

サブエージェント・デーモンには,表 11-3 に示した Server System MIB の各変数に対する処理が含まれています。 このデーモンは,CFG インタフェースを介してカーネル・モジュールから適切なパラメータにアクセスします。

11.3.3    環境モニタリング・デーモン

環境モニタリング・デーモン envmond を使用することにより,しきい値レベルをチェックして,システムに障害が発生する前に修復作業を行うことができます。 envmond デーモンは,次の処理を行います。

システムに照会するため,envmond デーモンはベース・オペレーティング・システムの /usr/sbin/snmp_request コマンドを使用して,Server System MIB に指定されている環境変数の現在の値を取得します。

環境モニタリングを有効にするためには,envmond デーモンをシステム・ブート中に起動する必要がありますが,eSNMP および Server System MIB エージェントが起動された後でなければなりません。

詳細は, envmond(8) を参照してください。

11.3.4    envconfig を使用した envmond デーモンの構成

envconfig ユーティリティを使用して,envmond デーモンが環境を照会する方法をカスタマイズすることができます。 これらのカスタマイズは,/etc/rc.config ファイルに格納されます。 このファイルは,スタートアップ時に envmond デーモンによって読み込まれます。

envconfig ユーティリティを使用すると,次の処理を行うことができます。

詳細は, envconfig(8) を参照してください。

11.3.5    ユーザ定義可能なメッセージ

環境モニタリング・ユーティリティでブロードキャストされたりログに記録されるメッセージは,すべて変更できます。 メッセージは,次のファイル内にあります。

/usr/share/sysman/envmon/EnvMon_UserDefinable_Msg.tcl

このファイルを編集するには,root でなれけばなりません。 中カッコ ({}) の中のメッセージは,すべて編集することができます。 このファイルの各セクションの編集方法については,# で始まるコメント・フィールドに説明があります。

たとえば,次のメッセージは,高温状態の原因を示すサンプルです。

set EnvMon_Ovstr(ENVMON_SHUTDOWN_1_MSG){System has reached a \
high temperature condition. Possible problem source: Clogged \
air filter or high ambient room temperature.}

このメッセージ・テキストを,次のように変更できます。

set EnvMon_Ovstr(ENVMON_SHUTDOWN_1_MSG) {System \
has reached a high temperature condition. Check the air \
conditioning unit}

中カッコ ({}) 内のテキスト文字列以外は,このファイル内のデータを変更しなでください。

11.4    システム・エクササイザの使用

オペレーティング・システムには,システムのトラブルシューティングに使用できるシステム・エクササイザがあります。 エクササイザは,ファイル・システムやシステム・メモリなど,システムの特定領域をテストします。 以下の節で,システム・エクササイザについて説明します。

また,diskx コマンドを使用してディスク・ドライブのエクササイズと,tapex コマンドを使用してテープ・ドライブのエクササイズを行うことができます。 詳細は,それぞれ diskx(8) および tapex(8) を参照してください。

この章で説明するエクササイザの他に,システムにはエクササイザと同様の機能を持つ Verifier and Exerciser Tool (VET) もサポートされています。 VET についての詳細は,最新のファームウェア CD-ROM に付属のドキュメントを参照してください。

11.4.1    システム・エクササイザの実行

システム・エクササイザを実行するには,スーパユーザとしてログインし,現在のディレクトリを /usr/field にしなければなりません。

システム・エクササイザを起動するコマンドにはオプションが用意されており,エクササイザが作業を終了したときに診断出力を保存するファイルを指定できます。

ほとんどのエクササイザ・コマンドには,そのエクササイザの使用方法についての説明が表示されるオンライン・ヘルプ・オプションがあります。 オンライン・ヘルプにアクセスするには,コマンドに -h オプションを指定します。 たとえば,diskx エクササイザのヘルプにアクセスするには,次のようにコマンドを入力します。

# diskx -h
 

エクササイザは,フォアグラウンドでもバックグラウンドでも実行することができ,フォアグラウンドで [Ctrl/c] を入力することにより,いつでも取り消すことができます。 また,一度に複数のエクササイザを実行することもできます。 ただし,実行するプロセス数が多くなるに従って,システムの実行速度は遅くなります。 このため,広範囲に渡ってシステムのエクササイズを行うときには,システム上に他のユーザがいないことを確認してください。

システム・エクササイザの実行を,NFS リンクを経由したり,ディスクレス・システム上で行う場合には,いくつかの制約があります。 ファイル・システムに書き込みが必要な fsx のようなエクササイザの場合は,root によるターゲット・ファイル・システムへの書き込みが可能でなければなりません。 また,実行されるエクササイザが置かれているディレクトリも,一時ファイルがそのディレクトリに書き込まれるため,root による書き込みが可能でなければなりません。

NFS ファイル・システムは root による書き込みを防止する方法でマウントされることが多いため,これらの制約に従うのは難しいことがあります。 これらの問題のいくつかは,エクササイザを別のディレクトリにコピーしてから実行することで解決できます。

11.4.2    エクササイザ診断の使用

[Ctrl/c] を入力するかタイム・アウトによってエクササイザが停止すると,診断が表示され,またエクササイザの最新のログ・ファイルに保存されます。 この診断によって,テスト結果が報告されます。

エクササイザが起動されるたびに,新しいログ・ファイルが /usr/field ディレクトリに作成されます。 たとえば,fsx コマンドが最初に実行されるときには,#LOG_FSX_01 という名前のログ・ファイルが作成されます。 ログ・ファイルには,各エクササイザの実行結果レコードが格納されます。 このレコードには,開始/終了時刻や,エラー情報および統計情報が含まれます。 開始/終了時刻は,省略時のシステム・エラー・ログ・ファイル /var/adm/binary.errlog にも記録されます。 このファイルには,デバイス・ドライバやシステムによって報告されたエラー情報も格納されます。

ログ・ファイルは診断の記録を提供します。 ただし,エクササイザは 9 個のログ・ファイルしか持てないため,ログ・ファイルを読み終わった後は必ず削除してください。 ログ・ファイルが 9 個あるエクササイザを実行しようとすると,古いログ・ファイルをいくつか削除して新しいファイルが作成できる状態にするように,エクササイザがユーザに通知します。

エクササイザがエラーを検出した場合は,dia コマンド (推奨) または uerf コマンドのいずれかを使用して /var/adm/binary.errlog ファイルをチェックすることにより,システムのどのデバイスまたは領域に問題があるかを判断することができます。 エラー・ロガーについての詳細は,12.1 節を参照してください。 エラー番号およびシグナル番号の意味については, intro(2) および sigvec(2) を参照してください。

11.4.3    ファイル・システムのエクササイズ

ローカル・ファイル・システムのエクササイズを行うには,fsx コマンドを使用します。 fsx コマンドは,複数のプロセスを開始することにより,指定されたローカル・ファイル・システムのエクササイズを行います。 各プロセスでは,ランダムなデータのテスト・ファイルの作成,書き込み,クローズ,オープン,読み取り,検証,およびリンク解除を行います。

注意

NFS ファイル・システムは,fsx コマンドではテストしないでください。

fsx コマンドの構文は次のとおりです。

fsx [-fpath] [-h] [-ofile] [-pnum] [-tmin]

コマンド・オプションの詳細については, fsx(8) を参照してください。

次の fsx コマンドの例は,バックグラウンドで 5 つの fsxr プロセスを 60 分間実行することにより,/usr ファイル・システムをテストします。

# fsx -p5 -f/usr -t60 &
 

11.4.4    システム・メモリのエクササイズ

システム・メモリのエクササイズを行うには,memx コマンドを使用します。 memx コマンドは,複数のプロセスを開始して,システム・メモリのエクササイズを行います。 省略時の設定では,各プロセスのサイズは,全システム・メモリのバイト数を 20 で割った値として定義されています。 各プロセスの許容最小バイト数は 4,095 です。 memx コマンドは,オール 1 とオール 0,オール 0 とオール 1,およびランダム・データ・パターンで,割り当てられたメモリ内をテストします。

memx エクササイザの実行に必要なファイルには,次のものがあります。

memx コマンドは,利用可能なスワップ領域の量によって制約を受けます。 スワップ領域のサイズと利用可能な内部メモリにより,システムで同時に実行できるプロセス数が決まります。 たとえば,スワップ領域が 16 MB で,メモリが 16 MB の場合には,プロセスが 20 個 (省略時の設定) 開始されてすべて同時に動作すると,すべてのスワップ領域が使用されます。 これによって,他のプロセスの実行が妨げられます。 このため,メモリの量が多くてスワップ領域の量が少ない場合は,-p オプション,-m オプション,またはその両方を指定して,memx プロセスの数を制限するか,テストするメモリのサイズを制限してください。

memx コマンドの構文は,次のとおりです。

memx -s [-h] [-msize] [-ofile] [-pnum] [-tmin]

コマンド・オプションの詳細は, memx(8) を参照してください。

次の memx コマンドの例は,4,095 バイトのメモリをテストする 5 つの memxr プロセスを開始して,バックグラウンドで 60 分間実行します。

# memx -m4095 -p5 -t60 &
 

11.4.5    共用メモリのエクササイズ

共用メモリ・セグメントのエクササイズを行うには,shmx コマンドを使用します。 shmx コマンドは,shmxb と呼ばれるバックグラウンド・プロセスを作成します。 shmx コマンドは,セグメント内の shmxb のデータに対して,書き込みと読み取りを行います。 shmxb プロセスは,セグメント内の shmx のデータに対して,書き込みと読み取りを行います。

shmx を使用することにより,メモリ・セグメントおよび shmxb プロセスの数とサイズをテストすることができます。 shmx エクササイザは,プロセスが強制終了されるか,-t オプションで指定された時間が経過するまで,実行されます。

memx コマンドに -s オプションを指定しなかった場合は,memx エクササイザを起動すると,shmx エクササイザが自動的に起動されます。 shmx エクササイザは,手動で起動することもできます。 shmx コマンドの構文は以下のとおりです。

/usr/field/shmx [-h] [-ofile] [-v] [-ttime] [-msize] [-sn]

コマンド・オプションの詳細は, shmx(8) を参照してください。

次の例は,省略時のセグメント・サイズのメモリ・セグメントを,省略時の数だけテストします。

# shmx &
 

次の例は,100,000 バイトのメモリ・セグメントを 3 つ,180 分間テストします。

# shmx -t180 -m100000 -s3 &
 

11.4.6    ターミナル通信システムのエクササイズ

ターミナル通信システムのエクササイズを行うには,cmx コマンドを使用します。 cmx コマンドは,指定された通信回線上でランダムなデータおよびパケット長の,書き込み,読み取り,および検証を行います。

エクササイズを行う回線では,分配パネルまたはケーブルにループバック・コネクタが接続されていなければなりません。 また,回線は,/etc/inittab ファイルで使用不能に設定され,非モデム回線である必要があります。 つまり,CLOCAL オプションにオンが設定されていなければなりません。 オンが設定されていない場合,時間切れになるか [Ctrl/c] が入力されるまで,cmx コマンドは,エラー・メッセージを繰り返しターミナル画面上に表示します。

擬似デバイス回線や lta デバイス回線をテストすることはできません。 擬似デバイスの名前は,tty の直後の文字が,pqrstuvwxyz のいずれかになっています。 たとえば,ttyp3 です。

cmx コマンドの構文は次のとおりです。

/usr/field/cmx [-h] [-o file] [-t min] [-l line]

コマンド・オプションの詳細は, cmx(8) を参照してください。

次の例では,通信回線 tty22 および tty34 のエクササイズを,バックグラウンドで 45 分間行います。

# cmx -l 22 34 -t45 &
 

次の例では,回線 tty00 から tty07 までのエクササイズを,[Ctrl/c] が入力されるまで行います。

# cmx -l 00-07