- PR -

CPU障害時の確認方法

投稿者投稿内容
ヴァンフォーレ増嶋
常連さん
会議室デビュー日: 2007/08/06
投稿数: 31
投稿日時: 2008-04-01 16:16
ヴァンフォーレ増嶋です。
お世話になっております。

ハード:HP Proliant DL380
OS:Red Hat Enterprise Linux ES 3
CPU:Intel(R) Xeon(TM) CPU 2.80GHz ×2(のハズ)

上記のサーバ2台構成で運用しているシステムがあります。どちらも同じスペックなのですが、/proc/cpuinfoを見ると、1号機が4CPU、2号機が1CPUと表示されます。(topコマンド実行時の表示も)

(1)1号機は2CPUをハイパースレッディングで仮想的に4CPUに見せている
(2)2号機は1CPUだけ故障し、OSが認識していない
(3)2CPU以上の場合はデフォルトでハイパースレッディングが有効になるが1CPUの場合は明示的に設定してやらないと有効にならない(http://www.itmedia.co.jp/enterprise/0211/28/n14_5.html)

上記のような仮説を立てていますが、離れた場所に設置しているため、BIOSから確認することができない状態です。この場合は2号機はOSから見ると、「1CPUで正常稼動」していることになり、ログには異常メッセージは出力されないのでしょうか?OSレベルでCPUの障害を確認できる方法をご存知の方がいたらご教授頂けないでしょうか?

以上、よろしくお願い致します。
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2008-04-01 21:50
こんばんは.

RHEL3 の krenel が uni processer 用になっていたり,
grub の option で nosmp が指定されていたりしませんか?
ヴァンフォーレ増嶋
常連さん
会議室デビュー日: 2007/08/06
投稿数: 31
投稿日時: 2008-04-02 01:47
※長文失礼致します。

kaz様 ご回答ありがとうございます。

>grub の option で nosmp が指定されていたりしませんか?
→/etc/grub.confの内容を見る限り指定していないようです。

>RHEL3 の krenel が uni processer 用になっていたり,
→こちらについては以下の調査結果を。

遠隔地のオペレータに協力してもらい、OSリブート時のBIOSを確認してもらいました。

BIOS→2CPU
OS→1CPU

という結果でした。

次に、同型の遊休マシンに対して同OSをインストールしたところ、4CPU(HTで2CPU×2)認識しました。そのときに気が付いたのが、起動時にカーネル選択画面があり、SMPか否か、というモードが選べることです。SMPというのは、恥ずかしながらあまり意識がなかったのですが、Symmetric Multi Processingの略で、要はこれに対応したカーネルでないと、マルチCPUで動かない?ようです。

2号機にこのカーネルが入っていないか?と疑いましたが、そうではなく、
ちゃんとインストールされていて、起動時もデフォルトでこちらが選択されるように
なっています(たぶん)

■/bootの下のカーネルに以下の2つが存在(1号機と同じ)
vmlinux-2.4.21-4.EL
vmlinux-2.4.21-4.ELsmp

■/boot/grub/grub.conf(ブートローダ設定)の内容(1号機と同じ)
default=0 ←  〜smp がデフォルト指定
timeout=10
title Red Hat Enterprise Linux ES (2.4.21-4.ELsmp)
root (hd0,0)
kernel /vmlinuz-2.4.21-4.ELsmp ro root=LABEL=/
initrd /initrd-2.4.21-4.ELsmp.img
title Red Hat Enterprise Linux ES-up (2.4.21-4.EL)
root (hd0,0)
kernel /vmlinuz-2.4.21-4.EL ro root=LABEL=/
initrd /initrd-2.4.21-4.EL.img

この辺の情報からネットで検索をかけたところ、SMPに対応?しているマシンの場合自動的にインストールされるようです。さらに2号機のsyslogの起動メッセージに以下のようなエラーメッセージが出ているのを見つけました。

Apr 1 20:19:08 xxx2 kernel: SMP motherboard not detected.
Apr 1 20:19:08 xxx2 kernel: Local APIC not detected. Using dummy APIC emulation.

試しにインストールしたマシンで同じところでは、以下のように出ています。

Apr 1 23:21:09 xxx3 kernel: found SMP MP-table at 000f4fd0
Apr 1 23:21:09 xxx3 irqbalance: irqbalance startup succeeded
Apr 1 23:21:09 xxx3 kernel: hm, page 000f4000 reserved twice.
Apr 1 23:21:09 xxx3 kernel: hm, page 000f5000 reserved twice.
Apr 1 23:21:09 xxx3 kernel: hm, page 000f2000 reserved twice.
Apr 1 23:21:09 xxx3 portmap: portmap startup succeeded
Apr 1 23:21:09 xxx3 kernel: hm, page 000f3000 reserved twice.
Apr 1 23:21:09 xxx3 kernel: On node 0 totalpages: 524282
Apr 1 23:21:09 xxx3 kernel: zone(0): 4096 pages.
以下略

このあたりが原因ではないかと疑っていますが、まだはっきりしておりません。
引き続き有識者のご意見をいただければと思っています。
anights
ぬし
会議室デビュー日: 2003/05/22
投稿数: 277
お住まい・勤務地: 東京
投稿日時: 2008-04-02 12:02
引用:

ヴァンフォーレ増嶋さんの書き込み (2008-04-02 01:47) より:
Apr 1 20:19:08 xxx2 kernel: SMP motherboard not detected.
Apr 1 20:19:08 xxx2 kernel: Local APIC not detected. Using dummy APIC emulation.


BIOSの設定項目に"アドバンスドオプション"とかいう項目があるはずです。
そこの"MPSテーブルモード"はどうなっていますか?
もし、"無効"のたぐいならSMPで動きません。
有効とかAPIC〜とかにしてください。
もう一台あるようなので設定内容を見比べても良いかもしれません。

_________________
桃李不言 下自成蹊
ヴァンフォーレ増嶋
常連さん
会議室デビュー日: 2007/08/06
投稿数: 31
投稿日時: 2008-04-02 13:29
ヴァンフォーレ増嶋です。

anights様 > 貴重なご意見ありがとうございます。

2CPU正しく認識されている遊休マシンのBIOS設定を先ほど確認しました。

MPSテーブルは"Auto"になっていました。これを"disable"に変更後、EL.smpで起動したところ、CPUは1つしか見えず、syslogも同様のメッセージ(kernel: SMP motherboard not detected.)が出力されました。

MPSテーブルを"Full APIC"とかに変更後、EL.smpで起動しても"Auto"時と同様に2CPU正しく認識されました。どちらでもOKなようです。

昨日と同様に遠隔地のオペレータに協力してもらい、問題のマシンの設定が"disable"になっているかどうかを確認したいと思います。
ヴァンフォーレ増嶋
常連さん
会議室デビュー日: 2007/08/06
投稿数: 31
投稿日時: 2008-04-03 09:48
昨日、BIOS設定確認&設定変更作業を実施致しました。(現地に行きました)

(1)CPUが1つしか認識していない2号機のBIOSを確認

→ "Auto" になっていました

(2)"Full APIC"を指定

→ OSレベルでCPUを4つ認識

検証機で"Auto"で4つ認識したので、ちょっと納得がいかなかったのですが、アプリケーションを動かして問題が見られなかったのでOKとしました。

※元から4CPU見えている1号機の設定が"Auto"か"Full APIC"どちらになっているかについてですが、「まともに動いている1号機には極力触らない」方針から、BIOSの確認は未実施状態です。

「"Auto"で認識してなかった理由」については気になるところですが、目的は達成できましたので本件はクローズしたいと思います。anights様・kaz様、アドバイスありがとうございました!
ちゃっぴ
ぬし
会議室デビュー日: 2004/12/10
投稿数: 873
投稿日時: 2008-04-03 10:01
DL380 であれば hplog で hardware log を拾えたと思いますけど。
_________________
ヴァンフォーレ増嶋
常連さん
会議室デビュー日: 2007/08/06
投稿数: 31
投稿日時: 2008-04-03 12:51
ヴァンフォーレ増嶋です。
お世話になっております。

ちゃっぴ様 > 情報提供ありがとうございます。

>DL380 であれば hplog で hardware log を拾えたと思いますけど。

1号機2号機ともに、購入後にOSを再インストールしていて、インストール時にシステムインストーラ(SmartStart)を使用せずに、OSのメディアを突っ込んで構築したので、HP関連のユーティリティが一切入っていない状態です。

(↑の作業がそもそも、問題があった気がします)

>「まともに動いている1号機には極力触らない」方針から、
> BIOSの確認は未実施状態です。

こちらについても急転、「1号機の状態を確認すべき!」という話になっており(当然と言えば当然ですが)、再びサーバ設置場所まで出向く必要がありそうです。最初の質問に戻ってしまいますが、マシンをリブートしてBIOS確認以外で、MPSテーブルの設定が"Auto"か"Full APIC"かを確認する術はないでしょうか?

検証機のほうで"Auto","Full APIC"を切替えて、syslogに差が無いかを検証していますが、なかなか厳しい状態です。

スキルアップ/キャリアアップ(JOB@IT)