2014年3月26日水曜日

USB の Oracle VM Server がこわれた話。


安いUSBメモリにOSをインストールしていると
(ソフトウェア的に)結構こわれやすい気がしますが、
Oracle VM Server も安価な USBメモリに インストールしていると
結構こわれることがあります。

こんなことがありました。

ある日突然、Oracle VM Manager から
VM が起動できなくなりました・・・
しかし既に起動されている VM は何ともなそうです。



ためしに、Oracle VM ServerにSSHでログインして
状態確認してみると、xm コマンドが実行できない・・・
/etc/xen/xend-config.sxp (Xenの設定ファイル)が怪しそうです。
[root@ovs2 xen]# cat /etc/ovs-release
Oracle VM server release 3.2.1
[root@ovs2 ~]# xm li
xend [ERROR] Reading config file /etc/xen/xend-config.sxp: invalid character: code 3
Traceback (most recent call last):
  File "/usr/sbin/xm", line 5, in ?
    from xen.xm import main
  File "/usr/lib64/python2.4/site-packages/xen/xm/main.py", line 51, in ?
    from xen.xend.server.DevConstants import xenbusState
  File "/usr/lib64/python2.4/site-packages/xen/xend/server/DevConstants.py", line 21, in ?
    xoptions = XendOptions.instance()
  File "/usr/lib64/python2.4/site-packages/xen/xend/XendOptions.py", line 571, in instance
    inst = XendOptionsFile()
  File "/usr/lib64/python2.4/site-packages/xen/xend/XendOptions.py", line 158, in __init__
    self.configure()
  File "/usr/lib64/python2.4/site-packages/xen/xend/XendOptions.py", line 172, in configure
    self.set_config()
  File "/usr/lib64/python2.4/site-packages/xen/xend/XendOptions.py", line 463, in set_config
    config = sxp.parse(fin)
  File "/usr/lib64/python2.4/site-packages/xen/xend/sxp.py", line 742, in parse
    pin.input(buf)
  File "/usr/lib64/python2.4/site-packages/xen/xend/sxp.py", line 174, in input
    self.input_char(c)
  File "/usr/lib64/python2.4/site-packages/xen/xend/sxp.py", line 187, in input_char
    self.state.fn(c)
  File "/usr/lib64/python2.4/site-packages/xen/xend/sxp.py", line 226, in state_start
    raise ParseError(self, "invalid character: code %d" % ord(c))
xen.xend.sxp.ParseError: invalid character: code 3

「もしや何か自動編集でもされたのか?」などと思い、
内容を見ようとしてみると・・・
テキストファイルのはずが、バイナリファイルと認識されました。
[root@ovs2 ~]# grep -v ^# /etc/xen/xend-config.sxp
Binary file /etc/xen/xend-config.sxp matches
[root@ovs2 ~]# file /etc/xen/xend-config.sxp
/etc/xen/xend-config.sxp: data

ファイルは一部が文字化けしているように見えます。


ためしに、文字化けしているところを
手作業で修正・・・
[root@ovs2 xen]# cp -p xend-config.sxp xend-config.sxp_orig
[root@ovs2 xen]# vi xend-config.sxp

xend-config.sxp ファイルは
テキストファイルとして認識されるようになりました。
[root@ovs2 xen]# file xend-config.sxp
xend-config.sxp: ASCII English text

この問題が起きてから一度 Oracle VM Server を再起動していて、
その時からこのファイルの問題で xend が起動できていませんでした。
そのため、xend を起動します。
[root@ovs2 xen]# xm li
Error: Unable to connect to xend: No such file or directory. Is xend running?
[root@ovs2 xen]# service xend status
xend daemon is stopped
[root@ovs2 xen]# service xend start
Starting xend...
xend daemon (pid 25641) is running...
[root@ovs2 xen]# service xend status
xend daemon (pid 25641) is running...

xm コマンドが実行できるようになりました。
そして VM も起動できるようになりました・・・
[root@ovs2 xen]# xm li
Name                 ID   Mem VCPUs      State   Time(s)
Domain-0              0   816     2     r-----    562.3

本当に USB インストールのせいか?といわれると微妙ですが、
あまりに安い USB メモリ(秋葉原で数百円くらいの)に
OS をインストールしていると、結構こういうことがあります。
ちゃんとした環境で USB インストールするときは、
USB メモリも「それ用」のもの(数千円するような)がよいのでしょう。

以上、USB の OVS がこわれた話でした。

0 件のコメント:

コメントを投稿