edd.erc ファイルは ASCII ファイルです。このファイルによって、システムが特定のイベントにどのように応答するかが指定されます。イベント応答ファイル (ERC) は、各ドメインに対してそれぞれ 1 つずつと、広域的な (システム全体にわたる) イベント用のものが 1 つあります。各ドメインの ERC ファイルは、そのドメインのシステムボードに固有のイベントだけを処理します。グローバル ERC ファイルは、非システムボード、起動されたドメインに属さないシステムボード、その他ドメインに依存しないコンポーネントのイベントを処理します。
グローバル ERC ファイルは、ssp_config(1M) コマンドの実行時にテンプレートファイルに基づいて作成されます。ドメイン ERC ファイルは、domain_create(1M) コマンドの実行時にテンプレートファイルに基づいて作成されます。これらのテンプレートファイルは、 $SSPVAR/.ssp_private/templates/Ultra-Enterprise-10000 に格納されています。グローバル ERC テンプレートは edd.platform.erc、ドメイン ERC テンプレートは edd.domain.erc という名前になっています。
ERC ファイルの各行は、それぞれ次のような形式になっています。
event_type : invoke_action : throttle_timeout : throttle_counter : select_action
上記で
イベントの種類を示すニモニック (名前の文字列) です。下記の「使用例」を参照してください。
有効か無効かを示すキーワードです。有効 (enabled) にすると、イベントタイプに対応する応答動作スクリプトが起動されます。無効 (disabled) にすると、応答動作スクリプトは起動されません。このフィールドが空白の場合は、スクリプトは起動されません。
throttle_counter select_action(s) を実行する間隔を秒単位で指定します。throttle_timeout が経過するまで、他の throttle_counter select_action(s) は実行されません。
throttle_timeout の時間内に実行可能な select_action の回数を指定します。throttle_timeout が経過すると、throttle_counter select_action(s) の実行が再度可能になります。
起動する応答動作スクリプトを指定します。このフィールドには、(必要に応じてパス名を付けて) スクリプト名を指定します。パスには、$SSPOPT、$SSPVAR、$SUNW_HOSTNAME などの環境変数を含めてもかまいません。スクリプト名にはオプションの引数を付けることもできます。引数はリテラル (-v など) またはイベント情報 (イベントタイプを示す %e、ボードを示す %b、ボードタイプを示す %t、SNMP トラップデータを示す %d) です。有効なボードタイプ (%t) は次のとおりです。
0: タイプなし
1: システムボード
2: 制御ボード
3: センタープレーン
4: センタープレーンサポートボード
下記の「使用例」を参照してください。
各フィールドはコロンによって区切られます。コロンの左右にはスペースを入れても入れなくてもかまいません。ハッシュ記号 (#) で始まる行はコメントであり、解析されません。
throttle_timeout フィールドと throttle_counter フィールドは、処理の実行頻度を制御します。たとえば、throttle_timeout を 600 秒、throttle_counter を 3 に指定した場合、処理 (select_action) は 10 分 (600 秒) ごとに 3 回しか実行されません。処理をこのように制限することによって、ログメッセージやダンプファイルの繰り返しを減らすことができます。こういった制限はシステムボードやドメインごとに個別に適用できます。たとえば、特定のボードに対する sys_brd_temp_max イベント処理が別のボードの sys_brd_temp_max イベント処理を制限することはありません。同様に、特定のドメインの arbstop イベント処理が別のドメインの arbstop イベント処理を制限することはありません。
ERC ファイルでは、特定のイベントについて複数の応答動作を定義することができます。2 つ目の応答動作スクリプトを指定するには、イベントタイプ名を 1 行目と同じにして 2 行目に記述します。応答動作スクリプトは、(並行してではなく) イベント応答設定ファイルに記述されている順に 1 つずつ実行されます。1 つのイベントについて複数の応答動作スクリプトが存在する場合は、引数の %p と %s を使用して、直前の応答動作スクリプトの名前と終了ステータスを現在の応答動作スクリプトに渡すことができます。
edd.platform.erc ファイルと edd.domain.erc ファイルには、下記の情報が格納されています。イベントタイプの詳細は、edd.emc(4) を参照してください。ERC ファイルの内容は、次のように設定されています。
システムボードのイベント
制御ボードのイベント
センタープレーンのイベント
センタープレーンサポートボードのイベント
IDN のイベント
CBS/CBE 接続のイベント
システム設定変更のイベント
ホスト回復のイベント
その他のイベント
sys_brd_temp_norm : enabled : 0 : 1 : TempNormact -b %b -e %e -d %d -t %t sys_brd_temp_high : enabled : 300 : 1 : TempHighact -b %b -e %e -d %d -t %t sys_brd_temp_warn : enabled : 300 : 1 : TempWarnact -b %b -e %e -d %d -t %t sys_brd_temp_max : enabled : 300 : 1 : TempMaxact -b %b -e %e -d %d -t %t sys_brd_temp_911 : enabled : 60 : 1 : Temp911act -b %b -e %e -d %d -t %t sys_brd_temp_bad : enabled : 300 : 1 : TempBadact -b %b -e %e -d %d -t %t sys_brd_volt_norm : enabled : 0 : 1 : VoltageNormalact -b %b -e %e -d %d -t %t sys_brd_volt_max : enabled : 300 : 1 : Voltageact -b %b -e %e -d %d -t %t sys_brd_volt_min : enabled : 300 : 1 : Voltageact -b %b -e %e -d %d -t %t sys_brd_volt_bad : enabled : 300 : 1 : VoltageBadact -b %b -e %e -d %d -t %t |
ボードの温度が過熱状態から通常の状態に戻ったことを知らせるメッセージをログに書き込みます。
ボードの温度が高過ぎることを知らせるメッセージをログに書き込みます。
必要に応じて以下のステップを実行し、温度上限値超過イベントを処理します。
そのボードが IDN に属する場合は、そのドメインのリンクを解除します。
そのボードがいずれかのドメイン内にある場合は、ドメインをシャットダウンします。
ボードの電源を切断します。
そのボードがいずれかのドメイン内にあり、かつ同じドメイン内で他のボードの電源が投入されていれば、ドメインを再起動します。
そのボードが IDN に属する場合は、そのドメインのリンクを解除します。
ドメインに属しているかどうかに関わらず、ボードの電源を切断します。
ボードの温度を読み取ることができなかったことを知らせるメッセージをログに書き込みます。
ボードの電圧が通常の状態に戻ったことを知らせるメッセージをログに書き込みます。
ボードの電圧が上限値を超えたことを知らせるメッセージをログに書き込みます。
ボードの電圧が下限値を下回ったことを知らせるメッセージをログに書き込みます。
ボードの電圧を読み取ることができなかったことを知らせるメッセージをログに書き込みます。
cb_temp_norm : enabled : 0 : 1 : TempNormact -b %b -e %e -d %d -t %t cb_temp_high : enabled : 300 : 1 : TempHighact -b %b -e %e -d %d -t %t cb_temp_warn : enabled : 300 : 1 : TempWarnact -b %b -e %e -d %d -t %t cb_temp_max : enabled : 300 : 1 : TempMaxact -b %b -e %e -d %d -t %t cb_temp_911 : enabled : 60 : 1 : Temp911act -b %b -e %e -d %d -t %t cb_temp_bad : enabled : 300 : 1 : TempBadact -b %b -e %e -d %d -t %t cb_volt_norm : enabled : 0 : 1 : VoltageNormalact -b %b -e %e -d %d -t %t cb_volt_max : enabled : 300 : 1 : Voltageact -b %b -e %e -d %d -t %t cb_volt_min : enabled : 300 : 1 : Voltageact -b %b -e %e -d %d -t %t cb_volt_bad : enabled : 300 : 1 : VoltageBadact -b %b -e %e -d %d -t %t |
ボードの温度が過熱状態から通常の状態に戻ったことを知らせるメッセージをログに書き込みます。
ボードの温度が高過ぎることを知らせるメッセージをログに書き込みます。
システムに設定されている制御ボードが 1 つだけの場合は、システム内のすべてのドメインをシャットダウンし、すべての電源を切断します。2 つの制御ボードが設定されている場合は、最大温度を超えている制御ボードの電源を切断します。
システム全体をシャットダウンします。
ボードの温度を読み取ることができなかったことを知らせるメッセージをログに書き込みます。
ボードの電圧が通常の状態に戻ったことを知らせるメッセージをログに書き込みます。
ボードの電圧が上限値を超えたことを知らせるメッセージをログに書き込みます。
ボードの電圧が下限値を下回ったことを知らせるメッセージをログに書き込みます。
ボードの電圧を読み取ることができなかったことを知らせるメッセージをログに書き込みます。
centerplane_temp_norm : enabled : 0 : 1 : TempNormact -b %b -e %e -d %d -t %t centerplane_temp_high : enabled : 300 : 1 : TempHighact -b %b -e %e -d %d -t %t centerplane_temp_warn : enabled : 300 : 1 : TempWarnact -b %b -e %e -d %d -t %t centerplane_temp_max : enabled : 300 : 1 : TempMaxact -b %b -e %e -d %d -t %t centerplane_temp_911 : enabled : 60 : 1 : Temp911act -b %b -e %e -d %d -t %t centerplane_temp_bad : enabled : 300 : 1 : TempBadact -b %b -e %e -d %d -t %t centerplane_volt_norm : enabled : 0 : 1 : VoltageNormalact -b %b -e %e -d %d - t %t centerplane_volt_max : enabled : 300 : 1 : Voltageact -b %b -e %e -d %d -t %t centerplane_volt_min : enabled : 300 : 1 : Voltageact -b %b -e %e -d %d -t %t centerplane_volt_bad : enabled : 300 : 1 : VoltageBadact -b %b -e %e -d %d -t %t |
センタープレーンの温度が過熱状態から通常の状態に戻ったことを知らせるメッセージをログに書き込みます。
センタープレーンの温度が高過ぎることを知らせるメッセージをログに書き込みます。
残りのドメインをすべてシャットダウンし、システムの電源を切断します。
システム全体をシャットダウンします。
センタープレーンの温度を読み取ることができなかったことを知らせるメッセージをログに書き込みます。
センタープレーンの電圧が通常の状態に戻ったことを知らせるメッセージをログに書き込みます。
センタープレーンの電圧が上限値を超えたことを知らせるメッセージをログに書き込みます。
センタープレーンの電圧が下限値を下回ったことを知らせるメッセージをログに書き込みます。
センタープレーンの電圧を読み取ることができなかったことを知らせるメッセージをログに書き込みます。
supp_brd_temp_norm : enabled : 0 : 1 : TempNormact -b %b -e %e -d %d -t %t supp_brd_temp_high : enabled : 300 : 1 : TempHighact -b %b -e %e -d %d -t %t supp_brd_temp_warn : enabled : 300 : 1 : TempWarnact -b %b -e %e -d %d -t %t supp_brd_temp_max : enabled : 300 : 1 : TempMaxact -b %b -e %e -d %d -t %t supp_brd_temp_911 : enabled : 60 : 1 : Temp911act -b %b -e %e -d %d -t %t supp_brd_temp_bad : enabled : 300 : 1 : TempBadact -b %b -e %e -d %d -t %t supp_brd_volt_norm : enabled : 0 : 1 : VoltageNormalact -b %b -e %e -d %d -t %t supp_brd_volt_max : enabled : 300 : 1 : Voltageact -b %b -e %e -d %d -t %t supp_brd_volt_min : enabled : 300 : 1 : Voltageact -b %b -e %e -d %d -t %t supp_brd_volt_bad : enabled : 300 : 1 : VoltageBadact -b %b -e %e -d %d -t %t |
ボードの温度が過熱状態から通常の状態に戻ったことを知らせるメッセージをログに書き込みます。
ボードの温度が高過ぎることを知らせるメッセージをログに書き込みます。
実行中のドメインをすべてシャットダウンし、システムの電源を切断します。
システムをシャットダウンします。
センタープレーンサポートボードの温度を読み取ることができなかったことを知らせるメッセージをログに書き込みます。
センタープレーンサポートボードの電圧が通常の状態に戻ったことを知らせるメッセージをログに書き込みます。
センタープレーンサポートボードの電圧が上限値を超えたことを知らせるメッセージをログに書き込みます。
センタープレーンサポートボードの電圧が下限値を下回ったことを知らせるメッセージをログに書き込みます。
センタープレーンサポートボードの電圧を読み取ることができなかったことを知らせるメッセージをログに書き込みます。
idn_boot : enabled : 20 : 1 : IDNevent -e %e -d %d idn_halt : enabled : 20 : 1 : IDNevent -e %e -d %d idn_awol : enabled : 30 : 1 : IDNevent -e %e -d %d cluster_arbstop : enabled : 1800 : 3 : Arbstopact -d %d cluster_recordstop : enabled : 1800 : 3 : Recordstopact -d %d |
同じ IDN 内にある他のドメインの内、少なくとも 1 つのドメインが起動しており、しかも IDN ソフトウェアを読み込んでいる場合は、domain_link(1M) コマンドを実行して該当するドメインを IDN にリンクします。
IDN の内部状態についての情報を更新して 、すべての IDN のメンバードメインの正確な状態を維持するための IDN イベント処理ルーチンを有効にします。
AWOL ドメインが存在することをローカルドメインが報告します。AWOL ドメインが停止している場合には、そのドメインのリンクを関係するドメインから解除することにより、残りの IDN メンバードメインが通信を再開できるようにします。
すべての IDN メンバードメインの hpost(1M) ダンプを実行し、ブートプロセッサの BBRAM 情報を保存します。それからすべての IDN メンバードメインの完全な立ち上げを実行します。
すべての IDN メンバードメインの hpost(1M) ダンプを実行し、次にすべての IDN メンバードメインのレコード停止のクリアを試行します。
cbe_connected : enabled : 0 : 1 : actionsysclock cbe_connected : enabled : 0 : 1 : actioncb cbe_connected : enabled : 0 : 1 : PowerFailRebootact |
必要に応じてシステムクロックとファンの回転速度を設定し、制御ボードのハートビートを再確立します。以前に起動されていたすべてのドメインのオペレーティングシステムと電源の状態をチェックし、電源障害が原因となってドメインを再起動する必要が生じたかどうかを判別します。このイベントは、SSP の CBS デーモンと制御ボードエグゼクティブ (CBE) との接続が失われた状態を表しています。
arbstop : enabled : 900 : 3 : Arbstopact -d %d recordstop : enabled : 900 : 3 : Recordstopact -d %d watchdog : enabled : 900 : 3 : WatchDogRebootact -d %d environment_shutdown : enabled : 600 : 1 : Environmentact -d %d obp_reset : enabled : 300 : 3 : ObpResetact -d %d cb_power_on : enabled : 0 : 1 : PowerOnact -t %t -b %b cb_power_off : enabled : 0 : 1 : PowerOffact -t %t -b %b reboot : enabled : 300 : 3 : Rebootact -d %d panic1 : enabled : 900 : 3 : Panicact -t 300 -d %d -e %e panic2 : enabled : 900 : 3 : Panicact -t 900 -d %d -e %e panic_reboot : enabled : 900 : 3 : PanicRebootact -d %d heartbeat_failure : enabled : 900 : 3 : HeartBeatFailact -d %d |
ドメインに対して hpost(1M) ダンプを実行し、完全な立ち上げを実行します。
hpost(1M) ダンプを実行し、レコード停止のクリアを試みます。
以下のステップを実行します。
ドメイン内のすべてのプロセッサのリセット情報 (resetinfo) をダンプします。
ドメイン内のすべてのプロセッサのシグニチャーブロックをダンプします。
ドメインに対して hpost(1M) ダンプを実行します。
完全な立ち上げを実行して、ドメインを再起動します。
特定のドメインに環境シャットダウンの状態が検出されたことを知らせるメッセージをログに書き込みます。
OBP リセットが発生したことを知らせるメッセージをログに書き込みます。
制御ボードの電源が投入されたことを知らせるメッセージをログに書き込みます。
制御ボードの電源が切断されたことを知らせるメッセージをログに書き込みます。
高速立ち上げを実行することによって、ユーザーが要求した再起動を実行します。
Panicact フィールドの -t オプションで指定された時間だけスリープし、その後ドメインが依然としてパニック 1 の状態である場合には、高速立ち上げを実行します。
Panicact フィールドの -t オプションで指定された時間だけスリープし、その後ドメインが依然としてパニック 2 の状態である場合には、高速立ち上げを実行します。
完全な bringup を実行することによってシステムを再起動します。
完全な bringup を実行することによってシステムを再起動します。
sys_brd_power_on : enabled : 0 : 1 : PowerOnact -t %t -b %b sys_brd_power_off : enabled : 0 : 1 : PowerOffact -t %t -b %b supp_brd_power_on : enabled : 0 : 1 : PowerOnact -t %t -b %b supp_brd_power_off : enabled : 0 : 1 : PowerOffact -t %t -b %b bulk_power_norm : enabled : 0 : 1 : BulkPowerNormact -d %d bulk_power_fail : disabled : 300 : 1 : BulkPowerFailact -d %d fan_norm : enabled : 0 : 1 : FanNormact -d %d fan_fail : enabled : 180 : 1 : FanFailact -d %d system_config_change : enabled : 0 : 1 : SystemConfChangeact -d %d |
システムボードの電源が投入状態または切断状態になったことを知らせるメッセージをログに書き込みます。
センタープレーンサポートボードの電源が投入状態または切断状態になったことを知らせるメッセージをログに書き込みます。
48 ボルト電源が入っていることを知らせるメッセージをログに書き込みます。(メッセージによっては「48 volt power」の代わりに「bulk power」という表現が使われることがあります)。
48 ボルト電源が障害状態または切断状態であることを知らせるメッセージをログに書き込み、現在有効な電源だけでシステムの稼働を継続できるかどうかを判別します。継続できない場合には、システム全体の電源を切断します。
ファンが障害状態から動作状態または非動作状態になったことを知らせるメッセージをログに書き込みます。
ファンが動作状態または非動作状態から障害状態になったことを知らせるメッセージをログに書き込みます。
システムボード、センタープレーンサポートボード、制御ボード、ファントレー、48 ボルト電源のすべて、あるいはいずれかがシステムに取り付け・取り外されたことを知らせるメッセージをログに書き込みます。
# Event Response Configuration File # centerplane_temp_warn : enabled : 300 : 1 : TempWarnact -b %b -e %e -d %d -t %t centerplane_temp_warn : enabled : 300 : 1 : fans -hi centerplane_temp_norm : enabled : 0 : 1 : fans -off |
これはグローバル ERC ファイルの例です。最初の 2 行は、センタープレーンの温度超過のイベントに対する応答方法を定義しています。1 行目は、指定した情報 (イベントが発生しているボードの番号 (%b)、イベントタイプ (%e)、SNMP トラップデータ (%d)、ボードタイプ (%t)) を TempWarnact という動作スクリプトに渡してから、TempWarnact を実行することを示しています。2 行目は、高速回転の設定でファンの電源を投入することを示しています。
3 行目は、センタープレーンの温度が通常に戻ったときに、ファンの電源を切断することを示しています。
以下のファイルがサポートされます。
インスタンス化されたグローバル ERC ファイルへのパス
インスタンス化されたドメイン ERC ファイルへのパス