LinuxでECCエラーの通知を受け取るにはどうすればよいですか?


23

ECCメモリを搭載したLinuxマシンがメモリ障害を認識すると、どのように通知されますか?修正可能なエラーと修正不可能なエラーの両方に興味があります。

  • メッセージがdmesg / syslogに書き込まれている場合、これはすでに問題ありませんが、何を探すべきかを知りたい
  • 追加のデーモン(ハードドライブ用のsmartmontoolsなど)のインストールは許容されます
  • Nagios / Icingaモニタリングは、もう1つの方法です
  • 監視対象のすべてのマシンにIPMIがあるわけではありません

興味のあるシステムにはSupermicroボード(X9SCM-F)があり、HP N54Lマイクロサーバーに関しては私はただの好奇心ですが、あまり気にしません。すべてのシステムはDebianまたはUbuntu Linuxを実行します。


サーバーのタイプとメーカー/モデル、OSディストリビューションバージョン、その他の関連ハードウェアの詳細を説明してください。
ewwhite 14

2
私はそれが報告されたことさえ知りませんでした...
Halfgaar 14

mcelogsyslogを監視しながら実行することは、進むべき道のようです。
イェンスエラ14年

回答:


6

Linuxカーネルがサポートしているエラー検出および訂正(EDACは)いくつかのチップセットの特徴。ECCがサポートされているシステムでは、sysfsを介してメモリコントローラーのステータスにアクセスできます。

/sys/devices/system/edac/mc

その場所の下のディレクトリツリーは、ハードウェアに対応する必要があります。例:

/sys/devices/system/edac/mc/mc0/csrow2/power
/sys/devices/system/edac/mc/mc0/csrow0/power
/sys/devices/system/edac/mc/mc0/dimm2/power
/sys/devices/system/edac/mc/mc0/dimm0/power
/sys/devices/system/edac/mc/mc1/power
...

ハードウェアによっては、適切なedacドライバーを明示的にロードする必要がある場合があります。

find /lib/modules/$(uname -r) -name '*edac*'

このedac-utilsパッケージは、コマンドラインフロントエンドとそのデータにアクセスするためのライブラリを提供します。例:

edac-util -rfull          
mc0:csrow0:mc#0memory#0:CE:0
mc0:csrow2:mc#0memory#2:CE:0
mc0:noinfo:all:UE:0
mc0:noinfo:all:CE:0
mc1:noinfo:all:UE:0
mc1:noinfo:all:CE:0

定期的に呼び出しeac-utilて監視システムに結果を送信する、ある種のcronジョブをセットアップできます。このシステムでは、通知を設定できます。

それに加えて、実行mcelogは一般的に良いアイデアです。システムによって異なりますが、修正不可能/修正可能なECCエラーも同様にマシンチェック例外(MCE)として報告されます。つまり、温度が高いためにCPUスロットリングが短時間でも、MCEとして報告されます。


9

mcelogメモリコントローラを監視し、メモリエラーイベントをsyslogに報告します。一部の構成では、不良メモリページをオフラインにできます。もちろん、これは、マシンチェック例外やその他のさまざまなハードウェアエラーを監視するための通常の使用に加えて行われます。

ほとんどのLinuxディストリビューションには、EL 6などのデーモンとして実行するように設定されたサービスがあります。

chkconfig mcelog on
service mcelog start

Ubuntuではサポートされなくなりました。インストール時にエラーが発生します。
DimiDak


ええ、感謝します。間違えなければubuntu18について話しますが、Ubuntu 14でも動作しません。
DimiDak

@DimiDakそれは別の問題であり、ここでは関係ありません。ヘルプが必要な場合は、新しい質問をすることができます。
マイケルハンプトン

質問を投稿した人は「すべてのシステムがDebianまたはUbuntuを実行している」と言っており、あなたの答えはそれではうまくいきません。だから、...かなり関連だ
DimiDak

6

これはサーバーのハードウェアに依存します。ホワイトボックスまたはSupermicroシステムは、Dell、HPまたはIBMとは異なる方法でこれを処理します...

ハイエンドサーバーの付加価値機能の1つは、一定レベルのハードウェア/ OS統合があることです。より優れたサーバーは、管理エージェントや帯域外管理ソリューション(ILO、DRAC、IPMI)の一部として、探しているものを報告します。

ハードウェアプラットフォームに固有のツールを使用する必要があります。

LinuxおよびHP管理エージェントを実行しているHP ProLiantサーバーからの抜粋:

Trap-ID=6056
ECC Memory Correctable Errors  detected.

そして

Trap-ID=6052
Advanced ECC Memory  Engaged

またはより厳しい

Trap-ID=6029
A correctable memory log entry indicates a memory module needs to be
replaced.

または最悪... RAMが不良であるためにサーバーがクラッシュするまで6日間エラーを無視する

0004 Repaired       22:21  12/01/2008 22:21  12/01/2008 0001
LOG: Corrected Memory Error threshold exceeded (Slot 1, Memory Module 1)

0007 Repaired       02:58  12/07/2008 02:58  12/07/2008 0001
LOG: POST Error: 201-Memory Error Single-bit error occured during 
memory initialization, 
Board 1, DIMM 1. Bank containing DIMM(s) has been disabled.

0008 Repaired       19:31  12/08/2009 19:31  12/08/2009 0001
LOG: ASR Detected by System ROM

これらはログに記録され、さらにSNMPトラップと電子メールが送信されました。

一般的に、カーネルリングバッファーにマシンチェック例外が表示されるため、mcelogを確認dmesgまたは実行できます。IPMIを使用しないSupermicroギアでの経験では、それはすべてを捕らえず、RAMエラーがクラックをすり抜けて停止を引き起こしていました。残念ながら、これにより、システムを展開する前に、古いRAMバーンインポリシーが作成されていました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.