Centos系统下载大全 | Redhat系统下载大全 | Windows2012系统下载大全 | Windows2008系统下载大全| CMS教程 | 网站地图 51运维网-专注Linux/Unix系统安全运维!
当前位置:51运维网 > 设备 > 虚拟化 > 正文

安装创建Xen虚拟机的过程中可能会出现的问题

时间:2015-02-03 17:20 来源:网络整理 作者:51ou.com 阅读:

目录

(1) 启动 Xend 时出现错误 ImportError: /usr /lib/python/xen/lowlevel/acm.so: undefined symbol: Py_InitModule4
(2) 使用 virt-install 创建Xen虚拟机时出现错误:ERROR virDomainCreateLinux() failed XML描述 domain 不是良好的格式或者无效
(3) virt-manager 中连接虚拟机管理者Dom 0时出现错误:虚拟机管理者连接失败 libvirtError: virConnectOpenReadOnly() failed
(4) virt-install 安装虚拟机是出现错误:ERROR 无法连接到 'localhost:8000': 拒绝连接
(5) virt-manager 安装Xen虚拟机连接网络时nat和桥接设备均为空,无法选择,安装不能继续
(6) virt-manager 或者 virt-install 安装虚拟机系统过程中出现错误:
'libvirt.libvirtError virDomainCreateLinux() failed POST操作失败: (xend.err 'Device 0 (vif) could not be connected. Hotplug scripts not working.

(7)半虚拟化安装,选择nat上网方式、IP配置使用 DHCP 方式时,虚拟机系统安装过程卡在 TCP/IP 配置界面,停滞不前

错误总结

使用 CentOS 5.2 默认安装的 Xen,启动 Xend 时出现如下错误:
(1) 启动 Xend 时出现错误 ImportError: /usr /lib/python/xen/lowlevel/acm.so: undefined symbol: Py_InitModule4
--------------------------------------------------------------------------------------
[root@glnode04 ~]# xend
Traceback (most recent call last):
File "/usr/sbin/xend", line 51, in <module>
from xen.xend.server import SrvDaemon
File "/usr/lib64/python/xen/xend/server/SrvDaemon.py", line 20, in <module>
import xen.lowlevel.xc
ImportError: /usr/lib64/python/xen/lowlevel/xc.so: undefined symbol: Py_InitModule4
[root@glnode04 ~]# xm list
Traceback (most recent call last):
File "/usr/sbin/xm", line 8, in <module>
from xen.xm import main
File "/usr/lib/python/xen/xm/main.py", line 45, in <module>
from xen.util import security
File "/usr/lib/python/xen/util/security.py", line 25, in <module>
from xen.lowlevel import acm
ImportError: /usr/lib/python/xen/lowlevel/acm.so: undefined symbol: Py_InitModule4
----------------------------------------------------------------------------------------
############################################

原因分析和解决办法:
直觉是 python import 时出现的错误,查看文件/usr/sbin/xend,第51行是“from xen.xend.server import SrvDaemon”,就是这行出错。
查看 python 版本
[root@glnode04 ~]# python -V
Python 2.5
查看 python 安装路径
[root@glnode04 ~]# which python
/usr/local/bin/python
查看系统安装的 python 的rpm包版本
[root@glnode04 ~]# rpm -q python
python-2.4.3-21.el5 从这可以看出 python 版本和 rpm 包所示的版本不一致,这个 rpm 包是 CentOS 5.2 自带的.

系统是CentOS 5.2, 我们发现使用的不是CentOS 5.2 默认安装的 python,默认安装的是 Python 2.4.3,CentOS 5.2 默认将python安装在/usr/bin下。
[root@glnode04 ~]# /usr/bin/python -V
Python 2.4.3
由此可以想到可能是环境变量 PATH 的设置导致我们在命令行执行 python 时使用的是 /usr/local/bin/python,可能是 PATH 的值中 /usr/local/bin 在 /usr/bin 之前;
检查 ~/.bashrc 发现的确如此,环境变量 PATH 设置是 export PATH=/usr/local/bin:$PATH,将其修改为
export PATH=$PATH:/usr/local/bin,然后 source ~/.bashrc,或者退出 shell,重新开启一个 shell,
测试 python ,发现使用的是默认版本。
[root@glnode04 ~]# python -V
Python 2.4.3

启动 Xend ,正常,没有问题。
[root@glnode04 ~]# xm list
Error: Unable to connect to xend: No such file or directory. Is xend running?
[root@glnode04 ~]# xend
usage: /usr/sbin/xend {start|stop|restart}
[root@glnode04 ~]# xend start
[root@glnode04 ~]# xm list
Name ID Mem(MiB) VCPUs State Time(s)
Domain-0 0 7931 8 r----- 463.9

分析原因,是因为 Xen 是python写的,执行 Xen 相关工具时需要调用 python 相关库,如果版本对应不一致,或者库路径不一致,则会出错。

############################################

(2) 使用 virt-install 创建Xen虚拟机时出现错误: ERROR virDomainCreateLinux() failed XML描述 domain 不是良好的格式或者无效

----------------------------------------------------------------------------------------

[root@glnode04 vm02-CentOS-5.5]# virt-install -n vm01-CentOS-5.5 -r 1024 --vcpus=4 -f vm01-CentOS-5.5.img -s 20 --nographic -l :8888/mirrors/CentOS/5.5/

Would you like a fully virtualized guest (yes or no)? This will allow you to run unmodified operating systems. no

Starting install...
Retrieving file .treeinfo 100% |=========================| 417 B 00:00
Retrieving file vmlinuz.. 100% |=========================| 2.0 MB 00:00
Retrieving file initrd.im 100% |=========================| 7.7 MB 00:00
virDomainCreateLinux() failed XML描述 domain 不是良好的格式或者无效
Domain installation may not have been
successful. If it was, you can restart your domain
by running 'virsh start vm02-CentOS-5.5'; otherwise, please
restart your installation.
三, 20 4月 2011 19:21:08 ERROR virDomainCreateLinux() failed XML描述 domain 不是良好的格式或者无效
Traceback (most recent call last):
File "/usr/bin/virt-install", line 502, in ?
main()
File "/usr/bin/virt-install", line 462, in main
dom = guest.start_install(conscb,progresscb)
File "/usr/lib/python2.4/site-packages/virtinst/Guest.py", line 813, in start_install
return self._do_install(consolecb, meter)
File "/usr/lib/python2.4/site-packages/virtinst/Guest.py", line 834, in _do_install
self.domain = self.conn.createLinux(install_xml, 0)
File "/usr/lib64/python2.4/site-packages/libvirt.py", line 573, in createLinux
if ret is None:raise libvirtError('virDomainCreateLinux() failed', conn=self)
libvirtError: virDomainCreateLinux() failed XML描述 domain 不是良好的格式或者无效
----------------------------------------------------------------------------------------
############################################
解决办法:

安装前先启动 libvirtd 服务。

[root@glnode04 vm02-CentOS-5.5]# /etc/init.d/libvirtd status
libvirtd is stopped
[root@glnode04 vm02-CentOS-5.5]# /etc/init.d/libvirtd start
Starting libvirtd daemon: [ OK ]

原因分析:
出现此报错应该是主机的libvirtd服务没有启动,而virt-install工具在进行客户机系统安装的时候错误地将客户机的网卡连接到libvirtd服务起的网桥virbr0上,此时libvirtd是关闭的,所以virbr0也不存在了,就出现了上面的错误信息。
解决方法有两个:
(i)启动libvirtd服务后重新用原来的virt-install命令安装客户机操作系统;
#/etc/init.d/libvirtd start

(ii)、在原来的virt-install命令后面加-b参数指定需要连接的网桥,如果未调整网络,一般默认的网桥应该为xenbr0
要查看网桥的名称可以使用brctl命令查看

[root@glnode04 vm02-CentOS-5.5]# /etc/init.d/libvirtd status
libvirtd is stopped
[root@glnode04 vm02-CentOS-5.5]# brctl show # libvirtd是关闭时网桥virbr0也不存在
bridge name bridge id STP enabled interfaces
[root@glnode04 vm02-CentOS-5.5]# /etc/init.d/libvirtd start
Starting libvirtd daemon: [ OK ]
[root@glnode04 vm02-CentOS-5.5]# /etc/init.d/libvirtd status
libvirtd (pid 20863) is running...
[root@glnode04 vm02-CentOS-5.5]# brctl show
bridge name bridge id STP enabled interfaces
virbr0 8000.000000000000 yes

此处我们已经关闭了libvirtd服务,剩下的网桥的名称为xenbr0(如果创建了多个网桥,选择自己需要的网桥名称)
#virt-install -n kiro-test -r 256 --vcpus=1 -f /data/rh5 --nographics -p -d -l "http://192.168.0.1" -b xenbr0

############################################

(3) virt-manager 中连接虚拟机管理者Dom 0时出现错误:虚拟机管理者连接失败 libvirtError: virConnectOpenReadOnly() failed

----------------------------------------------------------------------------------------
Unable to open connection to hypervisor URI 'xen:///':
libvirt.libvirtError virConnectOpenReadOnly() failed
Traceback (most recent call last):
File "/usr/share/virt-manager/virtManager/connection.py", line 307, in _open_thread
self.vmm = libvirt.openReadOnly(self.uri)
File "/usr/lib64/python2.4/site-packages/libvirt.py", line 132, in openReadOnly
if ret is None:raise libvirtError('virConnectOpenReadOnly() failed')
libvirtError: virConnectOpenReadOnly() failed

虚拟机管理者连接失败

----------------------------------------------------------------------------------------

############################################
解决:

修改 xen 配置文件,按如下方式修改:
[root@glnode04 ~]# vim /etc/xen/xend-config.sxp

(xend-http-server yes)
(xend-unix-server yes)

重新启动 Xend 服务

[root@glnode04 ~]# xend restart
############################################

(4) virt-install 安装虚拟机是出现错误:ERROR 无法连接到 'localhost:8000': 拒绝连接

----------------------------------------------------------------------------------------

[root@gmnode14 vm01-CentOS-5.5]# virt-install -n vm01-CentOS-5.5 -r 1024 --vcpus=4 -f vm01-CentOS-5.5.img -s 20 --nographic -l nfs:10.10.113.14:/opt/CentOS/mirrors/5.5
ERROR 无法连接到 'localhost:8000': 拒绝连接
Traceback (most recent call last):
File "/usr/sbin/virt-install", line 861, in ?
main()
File "/usr/sbin/virt-install", line 636, in main
conn = cli.getConnection(options.connect)
File "/usr/lib/python2.4/site-packages/virtinst/cli.py", line 126, in getConnection
conn = libvirt.open(connect)
File "/usr/lib64/python2.4/site-packages/libvirt.py", line 159, in open
if ret is None:raise libvirtError('virConnectOpen() failed')
libvirtError: 无法连接到 'localhost:8000': 拒绝连接
----------------------------------------------------------------------------------------
############################################
解决:

修改 Xend 配置文件,然后,xend restart

[root@gmnode14 yum.repos.d]# vim /etc/xen/xend-config.sxp

(xend-http-server yes)
(xend-unix-server yes)

(xend-port 8000)

############################################

(5) virt-manager 安装Xen虚拟机连接网络时nat和桥接设备均为空,无法选择,安装不能继续

virt-manager创建虚拟系统选择网络连接时没有设备

############################################

分析原因:

出现此报错应该是主机的libvirtd服务没有启动,

而virt-install工具在进行客户机系统安装的时候错误地将客户机的网卡连接到libvirtd服务起的网桥virbr0上,此时libvirtd是关闭的,所以virbr0也不存在了,就出现了上面的错误信息。

解决方法:

启动libvirtd服务后重新运行 virt-manager 来安装客户机操作系统;

#/etc/init.d/libvirtd start
但是这也只能保证 nat 选项中有 default 选项,桥接仍不能选择设备,要彻底解决Xen虚拟机网络设备问题请参考问题(6)

############################################

(6) virt-manager 或者 virt-install 安装虚拟机系统过程中出现错误:

感谢您对【51运维网 http://www.51ou.com/】的支持,我们为您免费提供《安装创建Xen虚拟机的过程中可能会出现的问题》技术文章,《安装创建Xen虚拟机的过程中可能会出现的问题》详细使用和说明,有时《安装创建Xen虚拟机的过程中可能会出现的问题》可能不完善、敬请谅解!如果《安装创建Xen虚拟机的过程中可能会出现的问题》有错误请给我们留言,我们将尽快修复文章错误,如果您觉得本站不错,请分享给周围的朋友!谢谢!

顶一下
(0)
0%
踩一下
(0)
0%
上一篇:Xen虚拟机如何配置NAT 网络
下一篇:没有了
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
验证码:点击我更换图片