トップページコラム > > メモリー障害でサーバーがクラッシュ!



メモリー障害でサーバーがクラッシュ!

作成日: 2011年11月26日
更新日: (なし)

ECCメモリーが2ビット・エラー検出

メモリー障害でサーバーがクラッシュしました。 これまで色々なクラッシュを見る機会がありましたが、このケースは初めて遭遇したものでした。

メモリーの障害と書きましたが、正確にはECC(Error Checking and Correcting)機能付きのメモリーが訂正不能なメモリー・エラーを検出してサーバーが停止したという事象です。 ハードウェア・ログには「ソフトウェア割り込み(Software NMI)」という記録がありましたが、ハードウェアとソフトウェア(OS)のどちらがサーバーを停止させたのかは分かりません。 ログには再起動後のPOSTで2ビット・エラーが検出されたので、そのメモリーを使用不能にしてやったぞとも記録されていました。

ハードウェア・ログの画像

サーバーは導入から6年ほど経ったもので、24時間365日無停止で動いていました。 512MBのECC DDR2-400 SDRAMが4枚挿さっており、この4枚中、2枚で2ビット・エラーが検出されていました。

ECCメモリーは書き込み時と読み出し時の値(0か1か)の違いをエラーとして訂正・検出する機能を持っているそうです。 8ビットを1セットとして管理し、その中で起きた1ビット・エラーであれば訂正を行うそうです。 ただし、2ビット以上のエラーは訂正ができず検出をするのみで、今回はその訂正ができない2ビット・エラーが起きたのでした。 エラーが起きたメモリーは交換され、サーバーは元通り動いています。

しかし、よくもまぁこんなことが起きたものです。 2ビット・エラーの直接的な原因は不明ですが、きっと宇宙線の影響です。 新入社員研修で読んだ教科書にそう書いてありました。 困った時は宇宙の仕業にしておけば良いのです。 そんなことより、私はそのエラーが起きたサーバーの隣で1週間も作業をしていました。 私にも宇宙線の影響が出ていたらどうしましょうか。 悲しいかな私にはECC機能が付いていないので、エラーの訂正どころか検出すらできないので知らぬが仏というヤツです。 ちぇっ。

勝手に障害ランキング

余談ですが、サーバー(ハードウェア)の障害発生度合いのランキングを考えてみました。 データではなく私の気合いに基づいたランキングですが、ほぼほぼご賛同頂ける順位になっているのではないでしょうか。

 第1位 ハードディスク
 第2位 ファン
 第3位 テープ装置(LTO、DAT)
 第4位 電源機構
 第5位 システムボード
 第6位 ストレージ・アダプター
 第7位 CPU

たまにキーボードやコンソール・モニターが壊れていることがありますが、気合いで何とかできるので除外しています。 CPUが壊れたケースには2回遭遇しています。 ただし、いずれのケースも推定有罪です。 ログに何も残らない原因不明のシステム・クラッシュが起きるので、様子を見ながら部品を交換していって最後にCPUを取り替えると直ったというケースです。 意外と頑丈なのがネットワーク・アダプター(NIC)で、この障害には初期不良の1度しか遭遇したことがありません。 たいてい2枚で1セットで動作する冗長構成を組むのですが、それが効果を発揮する障害が起きないので(以下、省略)。

更新履歴

更新日 更新内容
2011年11月26日 新規作成