第5章 |
|
この章では、SMS 1.4 から提供されるようになった自動エラー診断機能と自動ドメイン回復機能について説明します。
Sun Fire ハイエンドシステムでハードウェアエラーが発生すると、システムコントローラは、特定の診断およびドメイン回復手順を実行します。以下の自動診断エンジン (DE) が、システムとそのドメインの利用度に影響を与えるハードウェアエラーを特定し、診断を行います。
SMS 診断エンジン
Solaris オペレーティング環境
Solaris オペレーティング環境 (Solaris DE とも呼ばれる) では、致命的でないドメインのハードウェアエラーを特定し、そのエラーをシステムコントローラに報告します。
POST 診断エンジン
以下では、さまざまな診断エンジンによってハードウェアエラーが特定されたときに実行される、診断および回復手順について説明します。
図 5-1 は、SMS 診断エンジンによって dstop を伴うハードウェアエラーが特定されたときに実行される、基本的な診断およびドメイン回復手順です。
図 5-1 のプロセスについて、以下で簡単に説明します。
ハードウェアエラーの検出。 CPU ボード、プロセッサ、I/O コントローラ、およびメモリーバンクを含むハードウェアエラーに関する情報が、システムコントローラから提供されます。
dstop が発生すると、ダンプファイルが作成されます。このファイル (/var/opt/SUNWSMS/sms_version/adm/domain_id/dump/dsmd.dstop.yymmdd.hhmm.ss) には、dstop を伴うドメインハードウェアエラーが記録されます。
自動診断。 SMS DE により、dstop ダンプファイルに記録されたハードウェアエラーから障害が判定されます。DE では、エラーの原因である 1 つまたは複数の FRU を特定することができます。ハードウェアエラーによっては、DE で特定されるのが 1 つの障害が発生した FRU であることも、1 つ以上の疑わしい FRU であることもあります。
DE で複数の FRU が特定された場合、障害が発生した FRU を決定するためには、サービスプロバイダによる詳細な分析が必要となることがあります。
エラーと障害イベントの報告。DE では、以下の方法により診断情報を報告します。
ドメインとプラットフォームのログファイルへの自動診断障害メッセージの記録。
コード例 5-1 は、ドメインが停止したときに表示される情報と、ドメイン D で発生した障害イベントを説明する自動診断メッセージです。イベントメッセージは、[AD] インジケータ以降の部分です。イベントメッセージの内容については、診断イベントの確認を参照してください。
電子メールによる障害イベントの通知。詳細は、電子メールイベント通知の有効化を参照してください。
障害イベントの通知 (Sun Management Center を使用している場合)。詳細は、『Sun Management Center 3.5 バージョン 2 Sun Fire ハイエンドシステムのための追補マニュアル』を参照してください。
障害イベントの通知 (Sun Remote Services Net Connect を使用中で、それに合わせて Net Connect を構成している場合)。
SRS Net Connect の一般的な情報については、以下の Web サイトを参照してください。
SRS Net Connect 製品マニュアルについては、次の Web サイトを参照してください。
showlogs (1M) コマンドによるイベントログ出力 (プラットフォームの管理者特権を持っている場合)。
showlogs コマンドでのイベント出力は、プラットフォームとドメインのメッセージログやイベント電子メールに記載されている診断情報を補足するものです。showlogs コマンドでのイベント出力は、サービスプロバイダでさらに詳しいトラブルシューティングを行う際に使用することができます。表示されるイベント情報についての詳細は、診断および回復情報の取得を参照してください。
注 - これらのイベントメッセージが表示されたとき、あるいはこれらのイベントが通知されたときは、サービスプロバイダに連絡してください。サービスプロバイダでは、自動診断情報を確認して、適切な保守アクションを開始します。 |
コンポーネントの健全性ステータスの更新。SMS DE は、影響を受けた各コンポーネントの診断情報を記録し、この健全性履歴をコンポーネントの健全性ステータス (CHS) の一部として保持します。
自動回復。 ドメイン回復プロセスの一部として、POST では影響を受けたコンポーネントの更新された健全性ステータスを確認し、CHS 情報を使用して、システムから構成解除するコンポーネントを決定します。そして、該当するコンポーネントが構成解除され、ドメインが再起動されます。
図 5-2 は、致命的でないドメインハードウェアエラーの診断に関する基本的な手順です。これらのエラーによってドメインが停止することはありません。
図 5-2 の手順は、以下の相違点を除けば、ドメイン停止を伴うハードウェアエラーの節で説明した手順と同じです。
ハードウェアエラーの検出。 Solaris オペレーティング環境により、致命的でないドメインハードウェアエラーが発生したことが判定され、そのエラーがシステムコントローラに報告されます。影響を受けたドメインは停止されません。
自動診断とリソースの構成解除。Solaris オペレーティング環境によって、障害と、その障害の原因となっているリソースが特定されます。場合によっては、Solaris オペレーティング環境により、影響を受けたリソースの構成が解除されることもあります。たとえば、モジュール内で致命的でないエラーが発生したために、CPU モジュールがオフラインになったり、仮想メモリページにエラーが含まれていたために、そのページが使用されなくなることがあります。
エラーと障害イベントの報告。Solaris オペレーティングシステムから、SMS DE と同じチャネルを通して診断情報が提供されます。診断情報は、ドメインおよびプラットフォームログに表示されるイベントメッセージ、障害イベント通知または電子メールイベント通知、および showlogs(1M) によるイベント出力です。なお、Sun Management Center を使用している場合に、障害イベント通知が報告され、SMS または SRS Net Connect を構成した場合に、SMS 内または SRS Net Connect 経由により電子メールイベント通知が報告されます。
コード例 5-2 は、致命的でないハードウェアエラーの診断とイベントメッセージ情報の表示例です。イベントメッセージは、[DOM] インジケータ以降の部分です。イベントメッセージの内容については、診断イベントの確認を参照してください。
注 - これらのイベントメッセージが表示されたとき、あるいはこれらのイベントが通知されたときは、サービスプロバイダに連絡してください。サービスプロバイダでは、自動診断情報を確認して、適切な保守アクションを開始します。 |
コンポーネントの健全性ステータスの更新。 SMS では、Solaris オペレーティング環境から提供された情報を使用して、影響を受けたハードウェアリソースのコンポーネントの健全性ステータスを更新します。
該当するリソースの構成解除。障害が発生したドメインリソースが Solaris オペレーティング環境によって構成解除されなかった場合は、次回のドメイン再起動時にシステムから構成解除されます。
システムボードコンポーネントのテストと構成を行う POST が実行されている場合は、自己診断に失敗したコンポーネントは自動的にシステムから構成解除されます。それに応じて、影響を受けたコンポーネントの健全性ステータスも POST により更新されます。
コード例 5-3 は、POST DE によって報告された、ドメイン B に関する自動診断イベントメッセージです。イベントメッセージの内容については、診断イベントの確認を参照してください。
これらのイベントメッセージが表示されたとき、あるいはこれらのイベントが通知されたときは、サービスプロバイダに連絡して、適切な保守アクションを開始するよう依頼してください。
電子メールイベント通知は、ドメイン障害イベントが発生したときに、そのドメイン障害イベントを指定した受信者に知らせる電子メール通知を自動的に作成する機能です。手動でプラットフォームやドメインのメッセージログを監視しなくても、重大な障害イベントの通知をただちに受信できます。
コード例 5-4 は、2 つのコンポーネントが指摘されている (障害の原因である疑いがもたれている) 障害イベントを報告している電子メールの例です。以下では、電子メールの内容と通知の制御方法を説明します。
以下のファイルが連携し合うことにより、イベント電子メールが作成されます。
このテンプレートでは、電子メールで報告するイベント情報を特定します。この情報には、電子メールの件名と、電子メールで報告する特定のイベント項目 (タグ) が含まれます。
このファイルでは、特定のイベント情報、すなわちイベントクラスと、イベントによって影響を受けたドメインを使用して、指定する電子メール受信者と、報告するイベント情報を制御する電子メールテンプレートを指定します。
注 - イベント電子メール機能では、標準の sendmail ユーティリティーを使用して、指定した電子メール受信者に電子メールを送信します。 |
電子メールイベント通知を有効にする |
1. 電子メールテンプレートファイルで、電子メールで報告するイベントタグを指定します。
SMS で提供されているサンプル電子メールテンプレート(sample_email) をコピーし、コピーしたファイルを編集します。電子メールテンプレートの変更方法については、電子メールテンプレートの設定を参照してください。
2. 電子メール制御ファイルで、電子メールの受信者と、使用する電子メールテンプレートを特定するパラメタを設定します。
SMS に含まれている電子メール制御ファイル (event_email.cf) を編集し、電子メール通知パラメタを指定します。
電子メール制御ファイルの変更方法については、電子メール制御ファイルの設定を参照してください。
注 - 電子メール通知機能を使用する場合、電子メールの着信先アドレスを確認して、承認されているドメインだけに関するイベント通知を受信者が受信するようにします。担当者の職責や承認の有無に変更があったときは、必ず適切なセキュリティー分離を保持するプロセスを実装および実行することをお勧めします。 |
sample_email (/etc/opt/SUNWSMS/SMS/config/templates) というサンプル電子メールテンプレートファイルが SMS から提供されています。コード例 5-5 はデフォルトのテンプレートです。 小なり大なり括弧 (<>) 内のテキストは、イベント電子メールの本文に表示されるイベント情報を特定するタグとしての機能を持っています。
このサンプルテンプレートファイルをそのまま使用することも、このサンプルテンプレートファイルを新規ファイルにコピーし、そのコピーしたファイルを編集して、電子メールに含まれる追加イベントタグや別のイベントタグを特定できるようにすることもできます。サンプルテンプレートファイルのコピーや名前の変更を行うには、スーパーユーザー特権が必要です。ファイル名には任意の文字列を指定できます。
ファイルを編集する場合は、電子メールの件名と本文で報告するイベントタグを指定します。これらのタグは、ファイルの新しい行またはコメント行でない行 (# 記号が行頭に付いていない行) で指定します。電子メールテンプレートで指定できるタグのリストについては、表 5-1 を参照してください。
図 5-3 はカスタマイズされた電子メールテンプレートで、コード例 5-4 は、このテンプレートから作成された電子メールの例です。
電子メール制御ファイルには、以下のことを実行する電子メール通知パラメタが含まれています。
イベントクラスと、イベントが発生したドメインに基づいて、電子メールの受信者を特定する。
使用する電子メールテンプレートを特定する。
イベントメッセージ構造を、イベント電子メールの添付ファイルとして送信するかどうかを指定する。
これらの通知パラメタを、SMS で提供されている電子メール制御ファイル (/etc/opt/SUNWSMS/SMS/config/event_email.cf) で指定します。このファイル (コード例 5-6) には、シャープ (#) 記号が行頭に付いたコメント行が含まれています。これらのコメント行で、ファイルの更新方法が説明されています。
テキストエディタを使用してファイルを編集し、新しい行またはコメント行でない行に通知パラメタを追加します。電子メール制御ファイルを編集して、必要な電子メールパラメタを追加するには、スーパーユーザー特権が必要です。各パラメタは、スペースまたはタブで区切ります。ドメイン、イベントクラス、または電子メールテンプレートごとに、異なるイベント電子メールメッセージの配布方法を指定する複数の通知行を入力できます。設定する通知パラメタについては、表 5-2 で説明します。
Event_Class と Domains パラメタは、正規表現を使用して、範囲や特定の一致条件で指定することができます。regexp(5) マニュアルページで説明されているように、電子メール制御ファイルでは、拡張正規表現 (RE) がサポートされています。いくつかの有効な正規表現の例を以下に示します。
. (ピリオド) - 任意の 1 文字に対応する。
^ (サーカムフレックス) - この文字列から始まる文字列に対応する。たとえば、^fault は、fault から始まる任意の文字列になる。
[BDG] - B、D、G のうちのいずれかの 1 文字に対応する。
[B-F] - B から F までの間の任意の 1 文字 (つまり、B、C、D、E、F のいずれか) に対応する。
コード例 5-7 は、更新された電子メール制御ファイルで、通知パラメタがファイルの最後に追加されています。sendmail.sh スクリプトを使用して、指定した 2 人の受信者にイベント電子メールが送信されます。A から C までのドメインで発生したすべての障害イベントに対してイベント電子メールが作成され、sample_email というテンプレートファイルを基にして書式が設定されます。電子メールとともに、イベントメッセージ構造が 2 進ファイルの添付ファイルとして送信されます。
testemail(1M) コマンドを使用して、電子メールイベント通知を確認します。このコマンドを使用すると、イベントを追跡し、電子メール制御ファイルに加えられた変更をチェックすることもできます。
電子メールイベント通知をテストする |
1. 電子メールイベント通知の有効化 の説明に従って、電子メールイベントテンプレートと電子メール制御ファイルを設定します。
2. SC ウィンドウで、プラットフォーム管理者またはプラットフォーム保守としてログインし、以下のように入力します。
sc0:sms-user:> /opt/SUNWSMS/SMS/lib/smsadmin/testemail -c event_class_list -d domain_id [-i resource_indictment_list] |
event_class_list は、追跡対象となる 1 つまたは複数の障害イベントクラスのリストです。
domain_id には、A-R の間のドメインを 1 つ指定します。
resource_indictment_list は、指定された各イベントクラスに割り当てる 1 つまたは複数のコンポーネントのオプションのリストです。コンポーネントの有効値のリストについては、testemail(1M) マニュアルページを参照してください。
このコマンドでは、ドメイン A から fault.test.email というタイプのイベントが生成されます。
3. テストイベントがプラットフォームまたはドメインメッセージログに記録されたことを確認します。
たとえば、次のようなメッセージがプラットフォームのメッセージログに表示されます。
Aug 19 10:45:28 2003smshostname [6696:1]: [11917 682823530704603 ERR teste mailApp.cc 345] Test fault with code SF15000-8000-Y1 generated by user root using testEmailReporting - please ignore |
4. テストイベントが正常にメッセージログに記録された場合は、指定した受信者がテスト電子メールを受信したことを確認します。
テスト電子メールが作成されなかった場合は、次の節を参考にしてトラブルシューティングを行ってください。
テスト電子メール通知が受信されなかった場合は、次の操作を行ってください。
電子メールイベントテンプレートと電子メール制御ファイルを調べて、ファイルが正しく設定されていることを確認します。
ドメインとプラットフォームのメッセージログを調べて、テストイベントが記録されていることを確認します。
sendmail デーモンが実行されていることを確認します。たとえば、次のメッセージが表示されます。
sc0:sms-user:> ps -ef | grep sendmail root 256 1 0 Aug 06 ? 0:05 /usr/lib/sendmail -bd -q15m sms-user 525 28546 0 21:23:15 pts/27 0:00 grep sendmail |
sendmail デーモンが実行されていない場合は、インストールの設定を修正しなければならない可能性があります。手順 4 へ進みます。
スーパーユーザーとしてログインし、sendmail デーモンを再起動することにより、手動で sendmail を起動します。これで、次回再起動するまで sendmail が実行されます。
SC 上の /var/log/syslog を調べ、電子メールが Mail Transfer Agent (MTA) である sendmail によって送信されたかどうかを確認します。
sendmail が設定されていない場合や、正しく設定されていなかった場合は、エラーメッセージがこのログファイルに表示されるはずです。
ドメインおよびネームサーバーの IP アドレス (システムコントローラの外部に電子メールメッセージを配信するため) が /etc/resolv.conf ファイルで指定されていることを確認します。
sendmail.sh を再起動します。
ここでは、診断エラーを監視し、障害およびエラーイベントに関する追加情報を取得するさまざまな方法について説明します。
loghost サーバーが構成されている場合は、自動診断 [AD] およびドメイン [DOM] イベントメッセージがプラットフォームとドメインのコンソール、または syslog ホストに表示されます。[AD] または [DOM] イベントメッセージ (コード例 5-1、コード例 5-2、およびコード例 5-3 を参照) には、次の情報が含まれています。
[AD] または [DOM] - メッセージの開始位置。AD は、SMS または POST 自動診断エンジンによって、イベントメッセージが作成されたことを示します。DOM 影響を受けたドメインの Solaris オペレーティング環境によって、自動診断イベントメッセージが作成されたことを示します。
Event - イベントのコード。イベントタイプを一意に識別する、ダッシュで区切られた文字列です。サービスプロバイダがイベントと関連プラットフォームに関する詳細な情報を取得するときに、このコードが使用されます。
DomainID - ハードウェアエラーによって影響を受けたドメイン。有効なドメインは A から R までです。
ADInfo - 自動診断メッセージのバージョン、診断エンジンの名前 (SMS-DE、SF-SOLARIS-DE、または POST-DE)、および診断エンジンのバージョン (使用中の SMS のバージョンまたは Solaris オペレーティング環境のバージョン)。
Time - 自動診断の西暦年、月、日、曜日、タイムゾーン、時刻 (時、分、秒)。
Recommended-Action: Service action required - サービスプロバイダに連絡して以降の保守アクションを依頼するように、プラットフォームやドメイン管理者に指示しています。また、自動診断メッセージの最後であることも示します。
プラットフォームの管理者特権、またはプラットフォームの保守特権を持っている場合は、showlogs コマンドを使用して、イベントログの内容を確認し、特定のタイプのイベントに関する詳細な情報を取得することができます。表示される情報は、サービスプロバイダがトラブルシューティングの際にも使用できます。
イベントログに記録されている、次のタイプ (クラス) のイベント情報を取得できます。
表 5-3 は、showlogs コマンドを使用してイベント情報を表示する方法の一部を示しています。
showlogs コマンドのオプションの詳細と、イベントの出力例については、
『System Management Services (SMS) 1.4.1 リファレンスマニュアル』の showlogs(1M) コマンドの説明を参照してください。
Copyright © 2004, Sun Microsystems, Inc. All rights reserved.