各位朋友,
我已经有一个 CENTOS 机器运行两个 xen VM 好几年了。昨天,ISP 出现了热问题,服务器宕机了。现在机器上的主机操作系统已经恢复,但我无法重新启动 XEND 服务。我执行了“service xend start”,在日志文件中看到的唯一输出是:
[2010-11-08 08:25:57 xend 2970] INFO (SrvDaemon:283) Xend Daemon started
[2010-11-08 08:25:57 xend 2970] INFO (SrvDaemon:287) Xend changeset: unavailable .
[2010-11-08 08:25:57 xend 2970] ERROR (SrvDaemon:297) Exception starting xend ((111, 'Connection refused'))
Traceback (most recent call last):
File "/usr/lib/python2.4/site-packages/xen/xend/server/SrvDaemon.py", line 291, in run
servers = SrvServer.create()
File "/usr/lib/python2.4/site-packages/xen/xend/server/SrvServer.py", line 108, in create
root.putChild('xend', SrvRoot())
File "/usr/lib/python2.4/site-packages/xen/xend/server/SrvRoot.py", line 40, in __init__
self.get(name)
File "/usr/lib/python2.4/site-packages/xen/web/SrvDir.py", line 82, in get
val = val.getobj()
File "/usr/lib/python2.4/site-packages/xen/web/SrvDir.py", line 52, in getobj
self.obj = klassobj()
File "/usr/lib/python2.4/site-packages/xen/xend/server/SrvDomainDir.py", line 39, in __init__
self.xd = XendDomain.instance()
File "/usr/lib/python2.4/site-packages/xen/xend/XendDomain.py", line 655, in instance
inst.init()
File "/usr/lib/python2.4/site-packages/xen/xend/XendDomain.py", line 71, in init
xstransact.Mkdir(VMROOT)
File "/usr/lib/python2.4/site-packages/xen/xend/xenstore/xstransact.py", line 345, in Mkdir
complete(path, lambda t: t.mkdir(*args))
File "/usr/lib/python2.4/site-packages/xen/xend/xenstore/xstransact.py", line 351, in complete
t = xstransact(path)
File "/usr/lib/python2.4/site-packages/xen/xend/xenstore/xstransact.py", line 20, in __init__
self.transaction = xshandle().transaction_start()
File "/usr/lib/python2.4/site-packages/xen/xend/xenstore/xsutil.py", line 18, in xshandle
xs_handle = xen.lowlevel.xs.xs()
Error: (111, 'Connection refused')
~
当我按 Ctrl+c 启动命令时,我看到了此跟踪,这看起来好像问题出在 xenstored 上:
Starting xend: Traceback (most recent call last):
File "/usr/sbin/xend", line 134, in ?
sys.exit(main())
File "/usr/sbin/xend", line 111, in main
start_xenstored()
File "/usr/sbin/xend", line 90, in start_xenstored
s,o = commands.getstatusoutput(cmd)
File "/usr/lib/python2.4/commands.py", line 54, in getstatusoutput
text = pipe.read()
KeyboardInterrupt
有什么想法吗?
答案1
以防万一它对后代有用。问题似乎是 Xen 库的安装损坏。很可能当服务器崩溃时,它们被巧妙地弄乱了。使用新的 RPM 进行升级解决了这个问题。然后可以启动并使用现有的 VM 映像,而无需更改。