イベント検出デーモン (edd(1M)) は、Sun Enterprise 10000 システムの信頼性、可用性、保守性 (RAS: Reliability、Availability、Serviceability) を実現する上で核となるコンポーネントです。edd(1M) は、Sun Enterprise 10000 制御ボード上のイベントの監視を開始し、制御ボードで実行されるイベント検出監視タスクが生成するイベントを待ちます。検出されたイベントに対しては、SSP 上で応答動作スクリプトを実行して応答します。イベント発生の条件およびイベントに対する応答は、すべて設定することができます。
edd(1M) は、イベント管理のメカニズムを提供するだけであり、イベントの検出と監視を直接行うわけではありません。イベントの検出は、制御ボードで実行されるイベント監視タスクによって処理されます。edd(1M) は、監視対象のイベントの種類を指定するベクトルをダウンロードして、イベント監視タスクを構成します。イベントの処理は、応答動作スクリプトによって行われます。このスクリプトは、SSP 上で edd(1M) がイベントを検出したときに呼び出されます。
SSP の起動時に、edd(1M) は以下のように多くの初期制御パラメタを取得します。
$SSPVAR/etc/platform_name/edd.erc は、Sun Enterprise 10000 プラットフォームの設定情報を提供します。
$SSPVAR/etc/platform_name/domain_name/edd.erc は、特定のドメインの設定情報を提供します。イベント応答設定ファイル (edd.erc) は、イベント検出プログラムがイベントに応答する方法を指定します。
$SSPVAR/etc/platform_name/edd.emc は、edd(1M) が監視するイベントを表示します。
RAS 機能は、相互に協調するいくつかのプログラムによって実現されます。プラットフォーム内の制御ボードは、制御ボードエグゼクティブ (CBE) プログラムを実行します。CBE は Ethernet を介して SSP 上の制御ボードサーバーデーモン (cbs(1M)) と通信します。これらの 2 つのコンポーネントによって、プラットフォームと SSP の間のデータ通信が実現されます。
SSP には、制御ボードサーバーおよび SNMP(Simple Network Management Protocol) エージェントを介して制御ボードへアクセスするための一連のインタフェースが用意されています。edd(1M) は、制御ボードサーバーインタフェースを使用して、制御ボードエグゼクティブ上にイベント検出監視タスクを構成します (図 10-2)。
構成されたイベント検出監視タスクは、プラットフォーム内のさまざまな状態 (環境の状態、シグニチャーブロック、電圧、パフォーマンスデータなど) を調べます。イベント発生の原因となる状態変化が検出されると、適切な情報を収めたイベントメッセージが作成され、制御ボードサーバー (cbs(1M)) に送られます。イベントメッセージを受け取った制御ボードサーバーは、イベントを SNMP エージェントに送り、SNMP エージェントは SNMP トラップを生成します (図 10-3)。
SNMP トラップを受け取った edd(1M) は、応答動作を開始するかどうかを決定します。応答動作が必要な場合は、edd(1M) は適切な応答動作スクリプトをサブプロセスとして実行します (図 10-4)。
応答動作スクリプトの実行中に、同じ種類または関連する種類のイベントメッセージが作成されることがあります。同様のイベントに対する応答動作スクリプトがすでに実行中である場合は、重要度の低いイベントメッセージは無視できます。たとえば、edd(1M) が過熱イベントに対する応答動作スクリプトを実行するときに、イベント監視スクリプトが別の過熱イベントを生成することがあります。edd(1M) は最初の応答スクリプトが完了するまでは、(最初と同様の過熱状態に対して発生した) 別の過熱イベントには応答しません。応答すべきイベントを必要に応じて分離するのは、アプリケーション (edd(1M) など) の役割です。イベント処理のサイクルは、この時点で完了します。
イベントに対する edd(1M) の応答のもう 1 つの例として、edd(1M) はドメインクラッシュに応答します。ドメインクラッシュの後に、edd(1M) は bringup(1M) スクリプトを呼び出します。bringup(1M) スクリプトは POST プログラムを実行し、このプログラムは Sun Enterprise 10000 のコンポーネントをテストします。次に、このプログラムは obp_helper(1M) デーモンを使用して、SUNW_HOSTNAME 環境変数で指定したドメイン内の OBP をダウンロードし OBP の実行を開始します。この処理が行われるのは、ドメインに障害がある (たとえば、カーネルパニックの後) 場合のみです。この場合、ドメインは自動的に再起動されます。停止やシャットダウンの後には、bringup(1M) を手動で実行する必要があります。bringup(1M) を実行すると、OBP がダウンロードされ実行されます。