Oracle Linux Fault Management Architecture (FMA) は、Linux カーネルによって検出された障害をシステム管理者がホストからアクセス、表示、対処、およびクリアできる既存の Linux エラー検出および回復メカニズムを補完するものです。これは、サービスプロセッサで Oracle ILOM Fault Manager を使用して、ホストから取得された CPU およびメモリーのエラーを診断して、障害管理データベースに格納される標準の障害形式に出力します。
このデータベースは、検出されたすべての障害 (Oracle Linux FMA および Oracle ILOM FMA によって取得された障害) のスーパーセットを含んでおり、ホストとサービスプロセッサの両方で保持されます。
Oracle Linux オペレーティングシステムでは、CPU およびメモリーのエラーは、マシンチェックイベントとしてカーネルレベルで生成されます。これらのイベントは、Linux mcelog データベースに格納されます。Linux mcelog デーモン mcelogd は、データベースに格納されたエラーを取得して、コンソール、mcelog ファイル (/var/log/mcelog)、および Linux システムログに出力される、人間が読み取ることのできるメッセージに変換します。また、mcelog デーモンは、構成ファイルに格納されている規則セットに基づいてアクションを実行します。たとえば、これらのアクションには訂正不可能なエラーが含まれているため、サービスからのメモリーページのリタイアが発生する可能性があります。
mcelog によってログに記録される情報には、不正なコンポーネント (メモリー DIMM など) を特定するために十分な情報が含まれていないことがあります。Oracle Linux FMA Fault Manager デーモン fmd は、mcelog ファイルに格納されているエラーをスキャンして取得し、Oracle ILOM でサポートされる ereport 形式にエラーを変換します。その後、内部のホストと ILOM の相互接続ポートを使用して ereport をサービスプロセッサに転送します。Oracle ILOM Fault Manager は、ereport を使用して障害を診断します。その後、Oracle ILOM は、障害を独自の障害管理データベースに記録して、Linux ホストにある障害管理データベースにコピーを送信します。
この方法を使用すると、ホスト OS からでも Oracle ILOM からでも、類似した障害管理コマンドセットを使用してデータベース内のすべてのシステムハードウェア障害を表示し、対処できます。
Oracle Linux が実行されている Oracle サーバープラットフォームには、エラー検出機能、診断エンジン、および応答エージェントが備わっています。エラー診断機能と応答エージェントは Oracle Linux ホストに常駐します。診断エンジンは、サーバーのサービスプロセッサに常駐します。
エラー検出機能はシステム内のエラーを検出し、必要な対応をただちに実行します。また、明確に定義されたエラーレポート (ereport) を診断エンジンに発行します。Linux では、mcelog デーモンはエラーを検出し、Oracle Linux Fault Management ソフトウェアはエラーを収集して ereport に再フォーマットして、障害の診断のためにサービスプロセッサに転送します。
サービスプロセッサにある診断エンジンのセットは、ereport を解釈して、障害または欠陥が存在するかどうかを判別します。このような判定を行うときに、診断エンジンは問題の原因である可能性があるリソースまたはリソースのセットを示す疑いリストを作成します。リソースには、フィールド交換可能ユニット (FRU) またはラベルが関連付けられている場合と関連付けられてない場合があります。
疑いリストに複数の疑いが含まれる場合 (たとえば、診断エンジンが疑いを 1 つだけに特定できない場合など) は、それぞれの疑いに主要な疑いである確率が割り当てられます。このリスト内の確率を合計すると 100% になります。
エラー検出機能と診断エンジンは、サービスプロセッサの Fault Manager デーモンによって接続されます。これは、次の図に示すように、さまざまなコンポーネント間のマルチプレクサとして機能します。
応答エージェントは、エラーのタイプに基づいてアクションを行おうとします。ホスト側では、mcelog デーモンは応答エージェントとして機能します。応答には、メッセージのロギングとメモリーページのリタイアが含まれます。
Oracle Linux Fault Manager デーモン fmd(1M) は、それ自体がサービスです。このサービスを有効にしてスクリプトレスデーモンとして制御することも、さらに管理しやすくするために init.d スクリプトを使用することもできます。このバージョンの Oracle Linux FMA でサポートされる障害管理コマンドは次のとおりです。
fmadm(1M) – 管理者と保守担当者が、Oracle Linux Fault Manager fmd(1M) によって保持される障害を表示してクリアするために使用します。
fmdump(1M) – Oracle Linux Fault Manager fmd(1M) に関連付けられた任意のログファイルの内容を表示するために使用します。