菊池高志

最新のCPUでLinux(x86_64)を使うときはkernel 2.6.9-55-0.12以上にしないとハマる。

2009-06-28 01:05:50

随分と間が開きましたが、ド派手にハマってました。。。

事の発端は今年の二月。新たに購入したサーバーがやってきました。こいつはちょっと古いバージョンのLinuxを使う必要があり、現在同じシステムが動いているサーバーとほぼ同じ構成(と、思っていた)ので、何の迷いもなくインストールを開始しました。

既にここでインストールディスクからブートしないという困った事態は始まっていたのですが、まぁここは「メディアが悪いのかなぁ?」なんて思いながらネットワーク越しにインストールしてどうにか完了。SSH等最低限の設定を済ませ、「あとはちょっと様子見る為に二、三日後にしよう。」と、思った火曜日でした。

数日すると「こないだのサーバーuptimeがイヤに短いんだけど、あれからリブートした?」と、質問を受ける。当然リブートなんてしていないので、OSのログを確認すると確かにブートログが何度か出ていた。サーバーの管理ツールからもログを確認すると電源が切れた的なログが残っていたので(iDCに設置済みで同じラックの他のサーバーには異常なかった)、メーカーのサポートに連絡すると、電源を交換しようということになりました。

翌日早速電源を交換してもったのですが、数日するとまた知らない間にリブートしてしまうという現象が再現し、またサポートセンターへ連絡。というやりとりを繰り返すこと数回。電源接続部、電源、CPU、メモリー、マザボ、PCIライザーと一通り交換してもいながら、サーバーの自動再起動機能をoffにしたところ「Machine Check Exception」でカーネルパニックした後、自動再起動機能でリブートしてるというところまでは確認できましたがその原因がなぜかはわからず、この時点で既に二ヶ月くらい経っていたので、最終的に更にもう一度シャーシとHDD以外全てのパーツを全交換ということになりました。

それでも現象は収まらず、再びサポートに連絡すると、「一通り関係ありそうなパーツは交換させて頂いているので。。」という話になり、リブートしてしまう前のログをどうにか取ろうという話になったものの、ログって言ってもカーネルパニックで固まっちゃってるからなぁ。。と、煮詰まっていました。

そこであるエンジニアが「こんな文章見つけたよ」と、教えてくれたのが、そのメーカーの文章で「Xeon 5000番台以降のCPUと古いカーネルの組み合わせでMachine Check Exceptionが発生する場合があるのでカーネルを2.6.9-55-0.12以上にアップデートしてください。」という内容。原因はメモリアドレッシング廻りと書いてあったので「今回のサーバーはOpteronだけどこれはもしや!!」と思いwebを探してみると、別メーカーの文章だったけど「最新のXeonとOpteronと古いカーネルの組み合わせでMachine Check Exceptionが発生することがある。」という文章を発見!!!

一応サポートに問い合わせて見ると、まぁ予想通り「今のところ文書の通りXeonということになってます。」という回答が帰ってきたのですが、 別メーカーの文章の条件に完全に一致していたので、カーネルを2.6.9-55から2.6.9-55.0.12にアップデートしてみることにしました。

それから約一ヶ月。新しいサーバーは元気に動いてます。

 

今回の一件は「そもそも事前にちゃんと調べろよ!」って話なんですが、 「そんな文章あるんだったら早めに教えてよ。。そして発行してる文章はちゃんとメンテしよ。。」とも思った一件でした。。

 

ということで次のCPUを使っていて、古めのカーネルを使う場合は要注意です。

  • Xeon 5000番以上
  • Quad Core Opteron
※このエントリは ブロガーにより投稿されたものです。朝日インタラクティブ および ZDNet Japan編集部の見解・意向を示すものではありません。
  • 新着記事
  • 特集
  • ブログ