2007/10/05

XenとDell Remote Access Controller

検証にDell PowerEdgeを使っている。これにDell Remote Access Controller (Dell RAC, DRAC)を導入しているのだが、Xenを組み合わせて使うと、シリアルポートからのPPPアクセスが利用できない場合がある。これは、サービスracserが正常に起動しないことが直接の原因だ。このサービスを起動しようとすると、
# service racser start
Starting pppd (RAC) services: /dev/ttyS2: No such device or address
/dev/ttyS2: No such device or address
[ OK ]
#
と表示される。ログ(/var/log/messages)には、
Oct  5 10:30:19 hostname pppd[5776]: Failed to open /dev/ttyS2: No such device or address
と表示される。

解決編。RedHatのBugzilla Bug 204825で報告されている通り、/boot/grub/grub.confの中で、module /vmlinuzのパラメータにxencons=ttyを加えれば解決する。例えば、
title CentOS (2.6.18-8.1.10.el5xen)
root (hd0,0)
kernel /xen.gz-2.6.18-8.1.10.el5
module /vmlinuz-2.6.18-8.1.10.el5xen ro root=/dev/VolGroupXX/LogVol00 rhgb xencons=tty
module /initrd-2.6.18-8.1.10.el5xen.img
の様に、下線部を追加して再起動する。

根本的な原因は、デフォルトでXenのコンソール出力をシリアルポートに出力するよう設定されてること(ここを参照)。このため、Dom0からシリアルポートがアクセスできなくなっている。この機能は、問題解決時には有用だが、通常時には不要なので、使わないように設定すればよい、というわけだ。

まあ、いまどきモデム経由のPPPが使えるとそんなに嬉しいか、と言われればそれまでなんですが…

4 件のコメント:

いっつ さんのコメント...

 XenのDom0でUPSと通信するのにシリアルポートを使いたかったのですが、使えず困っていました。
 ここに書いてあるように「xencons=tty」を追加することで、無事使えるようになりました。
 ありがとうございました。

りょう さんのコメント...

いっつさん:
どういたしまして。お役に立てたようで嬉しいです。
なるほど、UPSにシリアルポートを使うってことはありますね。

ちんぺい さんのコメント...

Redhat の記述では、
Add "xencons=off" to your Xen kernel's command line in /boot/grub/grub.conf.
となってますが…。
tty -> off の間違いでは?
確かにシリアルはつかわれませんが、それは tty のようなデバイスが無いということで、使われないだけでしょう。

りょう さんのコメント...

ちんぺいさん:
そうですね。ご指摘ありがとうございます。
なんで「tty」って書いたんだろう。今となっては忘却の彼方です。
昨日の自分と今日の自分は別人。そういう意味もあってここにメモしてるわけですが、書き漏らしたことは思い出せません(笑)。