在 CentOS 5.5 上升级 Xen 到 Xen 3.4.3
2010年11月24日 | 标签: centos, xen | 作者:vpsee
2008年 RedHat 收购 Qumranet 以后就一直在家搞他的 KVM,没有对 Xen 做任何升级,RHEL/CentOS 5.5 上默认的 Xen 依旧是很老很老的公元2007年发布的 Xen 3.1.2 版本。更糟糕的是 RedHat 在后续的 RedHat Enterprise Linux 6 里彻底放弃了 Xen. 如果以后想在新版本的 RHEL/CentOS 上用 Xen 的话就需要使用第三方源或者自己动手编译 Xen 源代码。自己编译源代码问题多多,看看前面那篇文章留下的150多个评论就知道会遇到多少麻烦了,所以没有特殊要求的话,VPSee 还是建议直接使用第三方源。
# cd /etc/yum.repos.d/ # wget http://www.gitco.de/repo/GITCO-XEN3.4.3_x86_64.repo # yum update # reboot
如果上面的 yum update 没问题的话重启系统就可以了进入 xen 3.4.3 了,如果有问题导致一些依赖需要解决的话可以彻底删除 xen 后重新升级安装:
# yum groupremove Virtualization # yum groupinstall Virtualization # reboot
在重启之前最好检查一下 grub 是否配置正确、默认启动是否是 xen.gz-3.4.3:
# vi /boot/grub/menu.lst ... title CentOS (2.6.18-194.26.1.el5xen) root (hd0,0) kernel /xen.gz-3.4.3 module /vmlinuz-2.6.18-194.26.1.el5xen ro root=LABEL=/ module /initrd-2.6.18-194.26.1.el5xen.img ...
可以告知下gmail地址么?站内找不到地址到底贴在那里,只有看到gmail在线与否的提示
我有一个问题想问问楼主,
有这样一个环境:刚刚装好了Xen,其它虚拟操作系统还没装,也就是说只有Dom0在运行。打开“virtual Machine Manage”时,发现dom0占用了很大一块内存,相当于整机系统内存的四分之三的样子。比方说机器是2G内存,dom0就有1.4G。当我想新建一个虚拟操作系统时,给他设定为512M内存,发现localhost使用内存就变成了1.9G,按照这样的逻辑,如果我设置新建虚拟操作系统内存为1G时,会出现问题,对不?为什么dom0一开始就占用了那么大的内存?
我现在新建操作系统时总是提示out of memory
我菜鸟啊,求解。多谢
另,我是要虚拟CentOS系统,设置了512M内存,安装极慢.
你需要 “限制 Xen Dom0 的内存”。
请问vpsee,32位的CentOS能否安装这个Xen3.4.3的源呢?
不能,都是 x86_64.repo 的。
KVM都进了 Linux 的内核了,看来 Xen 的日子不好过呀。请问 vpsee ,您对 Xen 的未来如何看?你们有计划用 KVM 来代替 Xen 吗?
呵呵,xen 的未来?这是一个很大的话题阿,现在工业界都在讨论这个问题,kvm 发展非常快,而且 kernel 社区和 redhat, ubuntu 的支持很有分量,kvm 能得到 linux 社区的欢迎是因为运行 kvm 的 linux 依然是 linux,而运行 xen 的 linux 理论上应该不叫 “linux” 了,因为首先启动的是 xen hypervisor, 不是 linux kernel,所以 kernel 社区不愿意把 xen 加入内核树,靠 linux 谋取利润的公司也不愿意看到基于 linux 的生态环境被破坏,极力想维护食物链。
虽然 kvm 发展很快,但是在数据中心业务上还不及 xen,我们目前没有计划替代 xen.
请问一下:如何升级xen内核,例如我想把 initrd-2.6.18-194.el5xen.img 升级到更高的版本怎么办???
谢谢~
@janson
可以参考这篇:在 CentOS 下源码安装最新的 Xen 版本
vpsee,您好,我看了下那网站上还有Xen4.0的rpm包,请问CentOS5.5安装这些是否有问题呢
@Anonymous
可以安装,不过 test 版本用的时候要小心。。。
如何查看Centos上的xen版本?
我是安装的5.5版本,我想知道通过什么命令可以查看xen版本,谢谢~
@Anonymous
# xm info
…
xen_major : 4
xen_minor : 0
xen_extra : .1
…
你好,请问哪里有xen4.0的rpm包可以下载?下载哪些?
我想偷懒下,怕编译什么的出错。。
偶的centos不能上网,只能下载好,传到centos上
yum update出问题,请问如何解决,比较紧急,谢谢~~
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Check Error:
file /etc/libvirt/libvirtd.conf from install of libvirt-0.7.0-6.el5.x86_64 conflicts with file from package libvirt-0.6.3-33.el5.i386
file /etc/libvirt/qemu.conf from install of libvirt-0.7.0-6.el5.x86_64 conflicts with file from package libvirt-0.6.3-33.el5.i386
file /etc/rc.d/init.d/libvirtd from install of libvirt-0.7.0-6.el5.x86_64 conflicts with file from package libvirt-0.6.3-33.el5.i386
file /usr/share/augeas/lenses/libvirtd_qemu.aug from install of libvirt-0.7.0-6.el5.x86_64 conflicts with file from package libvirt-0.6.3-33.el5.i386
file /usr/share/augeas/lenses/tests/test_libvirtd_qemu.aug from install of libvirt-0.7.0-6.el5.x86_64 conflicts with file from package libvirt-0.6.3-33.el5.i386
file /usr/share/libvirt/schemas/capability.rng from install of libvirt-client-0.7.0-6.el5.x86_64 conflicts with file from package libvirt-0.6.3-33.el5.i386
file /usr/share/libvirt/schemas/domain.rng from install of libvirt-client-0.7.0-6.el5.x86_64 conflicts with file from package libvirt-0.6.3-33.el5.i386
file /usr/share/libvirt/schemas/network.rng from install of libvirt-client-0.7.0-6.el5.x86_64 conflicts with file from package libvirt-0.6.3-33.el5.i386
@Anonymous
http://www.gitco.de/repo/xen4.0.1/ 里有下载。
@Anonymous
你下载的是 x86_64 版本的 xen 和 libvirt,但是你的系统是 i386 版本的 centos 和 i386 版本的 libvirt,所以需要先把系统换到 x86_64 再安装。
@vpsee 我想问问xen 升级到这个3.4版本后,对于虚拟磁盘的大小有限制吗?我单位服务器采用vmware,用文件模式做磁盘。最大限制是950G
@babo
虚拟机 os image 就是一个文件,应该受 linux 文件系统对单个文件大小的限制,如果使用 ext3 和 4K block size 的话最大可以支持 2TB 的单个文件。
VPSEE,XEN3.4.3在网络上是否有重大变化?
我作了两件事,
1、将我的CENTOS5。5上自带的XEN,从源码升级到了3.4。
2、在另外一台CENTOS5。5(无XEN),按本文的方式,装了3.4.3。
结果,
对于1:
网络上,只有virbr0,没有xenbr0了。
对于2:
同样的。网络上,只有virbr0,没有xenbr0。
但是xen3.1.2缺省起来有virbr0和xenbr0。
请问vpsee,这是不是xen3.4.3的重大变化?是否从3.4.3开始,要建立桥接网络的话,需要自己手工建立了?
@Brooks
我正在度假,手上没有机器和环境。不过记忆中好像在网络方面没大变化,至于你在这里提到的名字变了应该没什么惊奇的啊,你自己也可以在 /etc/xen/scripts/ 改 xen bridge 的名字啊,比如改成 hellobr0.
@vpsee
你误解我的问题了。这里已经不是对bridge名字做修改的问题,而是,它-消-失-了。在scripts里面还有,但是它没出来。
上面的几个方式都试了。
请问为什么要使用 3.43更稳定吗?
4.01不好么?请指导一下哈
还有为什么我下的是CENTOS 64位 DVD 装出来的系统是 32的?
哪设置问题呀?Debian装64 就是 64 我机器CPU 是支持64位的呀 郁闷
如何切换到64位系统?我确定我下的是64DVD 但他有2个ISO 我安装了4.1G的 还有个400M的ISO 还需要安装? VM环境下
4.0.1不稳定吗?用你文章这个版本好点还所最新版本好?
如果我只有8G内存 只虚拟LINUX 系统。用32位会不会好一点呢?
@Jacky
4.0.1 是 4 系列的第一个版本,比较新,而且加了不少功能,bug 较多,等 4.4, 4.5 出来了我再用:)
如果你有 8GB 内存的话最好使用64位,32位不带 pae 的话只能识别 4GB 内存。
那么我就用64好了,不过感觉64比32慢..占用也多了很多!
32不是 编译内核 还是打什么补丁能支持到8G么
@Jacky
嗯,32位要用 pae 的内核,才能支持超过 4GB 内存。
请问 Linux内核有必要升级吗?现在是:2.6.18-194.el5xen
升级到最新2.6.37好还是2.6.32!或这应该升级吗?
@jacky
取决于自己需要,如果没有特别理由、不需要新内核的新功能、也没重大安全问题最好就不要升级。
@vpsee
我刻了两张CentOS 5.5的盘,一张是i386的,一张是x86_64的,但是当时不知道安装了哪一个版本,uname -a结果如下:
Linux xen-svr01.qmcc.com 2.6.18-194.32.1.el5.centos.plusxen #1 SMP Wed Jan 5 20:06:37 EST 2011 i686 i686 i386 GNU/Linux
能判断我装的是哪一个版本吗?
另外,http://www.gitco.de/repo/GITCO-XEN3.4.3_x86_64.repo
是不是只有x86_64的软件包?如果我要装在32位下的xen3.4.3,我应该用哪个repos?
@alfie
你安装的是 i386,gitco.de/repo 上好像没有 32 位的。
@vpsee
我的环境:rpm -qa | grep xen
kernel-xen-2.618-194.32.1.el5.centos.plus
xen-libs-3.0.3-105.el5_5.5
xen-3.0.3-105.el5_5.5
是不是说我所安装的版本是3.0.3的?
可是centos5.5默认的不是3.1.2的吗?
站长。你好,发现了一个控制OPenvz Xen KVM漂亮的面版 非常强大 而且免费。可是我在Xen安装不成功 在OPENVZ缺没有问题!你能测试一下吗?
http://www.virtualizor.com/
@Jacky
看了一下,好像不是免费的,用过一个月后就要付费,只给了个 “The pricing will be very competitive”,没有给出具体价格。
应该不会呀。这后台完全没输入什么验证之类的。他首页不也写了:Virtualizor is a FREE product and installing it is very simple.=Virtualizor是一个 免费的 产品, 安装 也很简单。
他现在应该是在开发中并不打算收费吧。你去论坛问问他们,我问过好象没有回复
我安装了一下 在授权那里看到 过期时间是:没有限制
郁闷了…
为什么我升级了之后,不支持全虚拟化了,用virt-manager安装的时候,只剩下从网络安装可以选择,从ISO或CDROM都是灰色的,我原来是支持全虚拟化的,可以帮我分析分析吗??
原来装的是32位centOS5.5,现在改装的64位centOS5.5,按你的文章,进行下来都没有问题,就是不能全虚拟化
我的cpu是xeon5506,逻辑上4个核
我想问下,你们一般用的什么cpu
我用centos_x86_64的默认的xen是可以进行全虚拟化的,可是用这个方法升级到xen3.4.3就不支持了??好奇怪
能帮我分析分析吗?谢谢
@学习xen
你看一下 # xm dmesg 的输出,如果有下面结果就是说这个 Xen 支持 HVM:
(XEN) HVM: VMX enabled
可能这个第三方 Xen 3.4.3 在编译的时候没有加上 HVM 选项/模块。
升级成xen 3.4.3 之后 通过virt-manager 不能通过 iso 或者本地光盘进行安装。只能通过http、ftp、nfs 安装 请指教 是不是 有些软件包没有安装!
查看了 xm dmesg 有下面这个选项
(XEN) HVM: VMX enabled
唯一的不同就是 gitco.de repo 中有 写软件包在yum update 的时候没有 更新 而只更新了 xen 是不是跟没有安装其他的软件包有关系呢
wget http://www.gitco.de/repo/GITCO-XEN3.4.3_x86_64.repo,这个地址现在访问不了。如果在可以访问的情况下,xen成功升级到xen3.4.3,该网站挂了后,会对xen3.4.3有什么影响吗?
@david
别人的网站挂了和你安装的 xen 有什么关系啊?没有影响。
您好,我依照您上述步骤进行xen3.4.3版本的升级后,uname -a 查看kernel-xen已升级ok,xm list xm info,查看xen版本也是正常的。但是ping不通外网。查看/etc/sysconfig/network-srcipts/ifcfg-eth0和DNS配置也是没有问题的。*(在升级之前网络是好的)。请教下是什么原因(⊙o⊙)?难道是升级后网络驱动有问题了,之前通过xen源码升级,是有网络驱动问题。谢谢。
@david
不清楚,也许你升级的这个 xen3.4.3 + dom0 kernel 没有你的网卡驱动?你检查一下网卡是否识别出来了。
@vpsee
现在可以ping通外网了,我的xend-config.sxp配置文件如下
(xend-unix-server yes)
(xend-unix-path /var/lib/xend/xend-socket)
#(xend-relocation-hosts-allow ‘^localhost$ ^localhost\\.localdomain$’)
(xend-relocation-hosts-allow ”)
#(network-script ‘rocks-network-bridge’)
//注:之前按照rocks-network-bridge这个自定义网桥启动就ping不通外网。
(network-script network-bridge)//配置默认的可以ping通外网。
(vif-script vif-bridge)
(vncpasswd ”)
(dom0-min-mem 768)
#(dom0-cpus 1)
启动后执行ifconfig 显示如下:
eth0 Link encap:Ethernet HWaddr F4:CE:46:21:E9:90
inet addr:192.168.39.152 Bcast:192.168.39.255 Mask:255.255.255.0
inet6 addr: fe80::f6ce:46ff:fe21:e990/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:215873 errors:0 dropped:0 overruns:0 frame:0
TX packets:74935 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:20875237 (19.9 MiB) TX bytes:10416502 (9.9 MiB)
Interrupt:16 Memory:fbff0000-fc000000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:117 errors:0 dropped:0 overruns:0 frame:0
TX packets:117 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:16336 (15.9 KiB) TX bytes:16336 (15.9 KiB)
virbr0 Link encap:Ethernet HWaddr 00:00:00:00:00:00
inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0
inet6 addr: fe80::200:ff:fe00:0/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:468 (468.0 b)
可以看到没有对应Domain0的vif0.0 和 peth0,我通过这样指定(network-script ‘network-bridge bridge=xenbr0’)重启后也没有创建所指定的xenbr0这个网桥。
我也是通过OpenNebula来管理虚拟机的,创建到该主机上的第一个虚拟机是成功的(对应会建vif1.0),该虚拟机网络不通,然而第二个虚拟机创建失败,报错如下:
[VMM][E]: Error deploying virtual machine: Error: Domain ‘one-800’ does not exist.
执行brctl show 如下:
bridge name bridge id STP enabled interfaces
virbr0 8000.feffffffffff yes
xenbr0 8000.feffffffffff no vif1.0
[
xen3.1.2中主机brctl show如下:
bridge name bridge id STP enabled interfaces
virbr0 8000.000000000000 yes
xenbr.eth0 8000.025b9ad6a2d7 no vif18.0
tap2
tap0
vif17.0
tap1
vif16.0
peth0
vif0.0
]
升级后的xen3.4.3为什么没有vif0.0 和 peth0呢? xen3.1.2中网络和创建多个虚拟机都是没问题的。您的Opennebula中节点也是用的xen3.4.3吗? 请教下上述遇到的问题,十分感谢!
请问博主,我的系统是centos5.5,/proc/cpuinfo的flags也有pae vmx,bios的VT也设置了enabled,为什么我用virt-install时指定-c /var/lib/xen/images/centos55.iso提示说半虚拟化不支持用iso安装呢?谢谢。
@momaer
半虚拟化不能通过 iso 安装,需要通过 http 安装,类似的 http://127.0.0.1/centos 等。
谢谢博主,已经搞好了,我的支持全虚拟化的,virt-install参数少加-v了,汗。
博主,请问我的笔记本的CPU不支持物理虚拟化,而openstack默认的虚拟机是KVM,所以在启动实例时,出现lunching——shutdown的情况。怎么也启动不了。如果要在我的机子上部署openstack NOVA,应该怎么办?
为啥只是升级到3.4.3呢,为啥不升级到4.1.x版本呢?
这是出于一种什么考虑呢?
@深夜的蚊子
这篇文章是2010年11月24日写的,当年 xen 4.1 还没有出来:)
那现在是不是都升级到4.1了呢?
关于升级4.1的文章有没有呀,参考一下
另外,你们这边使用centos6了没?
对于centos6没有xen,咱们这边是怎么处理的?
@深夜的蚊子
我们支持 CentOS 6,内核换一下就可以了。
也就是说centos6编译一个新内核就行了?
准备毕业中。。正在学习i/o虚拟化,请教一下,xen3.4.3的hvm模式,块设备虚拟化是使用的QEME模拟的吗?具体代码在哪里啊?我只找到半虚拟化的代码。
哈哈,在你的博客上学到了很多知识啊,感谢感谢。真心感觉CentOS5.6不怎么好用,Xen想升到高一点的版本都不行。
请问博主,升级xen后,原旧版虚拟机img文件还能用吗?要怎么加载?
@晴天
嗯,可以直接用,加载方法不变,不用改任何东西。
请问博主,升级xen后,Virtual Machine Manager里原旧版虚拟机不见了,怎么把img文件再次加载到管理器中运行?我试过Restore saved machine不行,可以用命令加载吗,怎么操作呢?
博主可以加你QQ吗,方便向你请教。
@晴天
找到 xen 配置文件和镜像以后,修改 xen 配置文件,然后用 xm create 来加载。
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=5&arch=x86_64&repo=addons error was
[Errno 4] IOError:
Error: Cannot find a valid baseurl for repo: addons
[root@localhost yum.repos.d]#