CentOS 6安装配置Xen

如遇技术问题,请联系博主帮您解决QQ 452336092(添加时注明”付费技术支持”)。

文章目录
[隐藏]

centos 6安装xen并不像centos 5那样轻松,因为在centos 6中,官方源已经去除了xen的rpm包,只能使用第三方源或自行编译,这里推荐使用第三方源,编译安装要解决的问题比较多。还有一个包libvirt,这个是管理xen的api,官方的这个包已经不支持xen,并且是0.9版的需要更高版本的iptables支持,所以libvirt需要编译安装。

下面是在CentOS 6 64位系统进行安装配置Xen。

1、安装Xen及内核

  1. rpm -Uvh http://www.crc.id.au/repo/x86_64/kernel-xen-release-6-3.noarch.rpm //导入第三方源安装Xen
  2. yum install bridge-utils //安装网桥设置工具
  3. yum install kernel-xen xen //安装xen及内核

2、配置grub引导xen内核

xen内核安装后,会自动插入引导xen内核代码到/boot/grub/grub.conf文件,但还需要进行相应的修改。

修改后引导xen内核的代码如下:

  1. title CentOS (2.6.32.56-1.el6xen.x86_64)
  2. root (hd0,7)
  3. kernel /xen.gz dom0_mem=1024M loglvl=all guest_loglvl=all
  4. module /vmlinuz-2.6.32.56-1.el6xen.x86_64 ro root=/dev/mapper/VolGroup-LogVol00 rd_LVM_LV=VolGroup/LogVol00 nomodeset
  5. module /initramfs-2.6.32.56-1.el6xen.x86_64.img

这段代码仅够参考,不一定适用于你的配置。

3、关闭selinux

这是必须关闭的,要不会因为selinux的安全机制导致xen无法正常工作。

编辑selinux配置文件

  1. vi /etc/sysconfig/selinux

修改为如下:

  1. # This file controls the state of SELinux on the system.
  2. # SELINUX= can take one of these three values:
  3. # enforcing - SELinux security policy is enforced.
  4. # permissive - SELinux prints warnings instead of enforcing.
  5. # disabled - No SELinux policy is loaded.
  6. SELINUX=disabled
  7. # SELINUXTYPE= can take one of these two values:
  8. # targeted - Targeted processes are protected,
  9. # mls - Multi Level Security protection.
  10. SELINUXTYPE=targeted

还有一点配置也很重要,就是禁止netmanager接管网络,因为这个工具不支持网桥管理。
在/etc/sysconfig/network-script/ifcfg-eth0中加入:

  1. NM_CONTROLLED=no

4、重启引导进入xen内核

引导后执行xm info测试:

  1. [root@localhost ~]# xm info
  2. host                   : localhost.localdomain
  3. release                : 2.6.32.56-1.el6xen.x86_64
  4. version                : #1 SMP Mon Feb 20 13:03:03 EST 2012
  5. machine                : x86_64
  6. nr_cpus                : 4
  7. nr_nodes               : 1
  8. cores_per_socket       : 2
  9. threads_per_core       : 2
  10. cpu_mhz                : 2394
  11. hw_caps                : bfebfbff:28100800:00000000:00003f40:009ae3bd:00000000:00000001:00000000
  12. virt_caps              : hvm
  13. total_memory           : 1972
  14. free_memory            : 412
  15. free_cpus              : 0
  16. xen_major              : 4
  17. xen_minor              : 1
  18. xen_extra              : .2
  19. xen_caps               : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64
  20. xen_scheduler          : credit
  21. xen_pagesize           : 4096
  22. platform_params        : virt_start=0xffff800000000000
  23. xen_changeset          : unavailable
  24. xen_commandline        : dom0_mem=1024M loglvl=all guest_loglvl=all
  25. cc_compiler            : gcc version 4.4.6 20110731 (Red Hat 4.4.6-3) (GCC)
  26. cc_compile_by          : mockbuild
  27. cc_compile_domain      : crc.id.au
  28. cc_compile_date        : Mon Feb 20 12:52:37 EST 2012
  29. xend_config_format     : 4

5、安装api管理工具

  1. yum install virt-install virt-viewer

6、编译安装libvirt

因为rpm安装的libvirt不支持xen连接,所以我们使用编译安装。还有版本也不能选择高的,不然可能会因为iptables的版本低而不能使用libvirt。

  1. yum install gcc xen-devel libxml2-devel gnutls-devel device-mapper-devel libnl-devel make
  2. cd /tmp
  3. wget http://libvirt.org/sources/libvirt-0.8.1.tar.gz
  4. tar xzf libvirt-0.8.1.tar.gz
  5. cd libvirt-0.8.1
  6. ./configure --with-xen --with-xen-inotify --with-libvirtd
  7. make && make install

然后打开/usr/local/etc/libvirt/libvirtd.conf文件,删除unix_sock_dir = “/var/run/libvirt”前面的注释,并创建/var/run/libvirt目录。
之后启动libvirtd,并设置开机启动

  1. libvirtd -d
  2. echo "/usr/local/sbin/libvirtd -d" >>/etc/rc.d/rc.local

7、安装xen guest

我们这里使用virt-install工具进行guest的安装,当然你也可以使用xm命令安装,不过相对麻烦点。

可以执行virt-install –help学习这工具的使用方法。
下面是安装guest的示例

  1. virt-install -n CentOSVM1 -r 512 -f /xen/CentOSVM1.img  -l http://www/  –network=network:default -s 10 –nographics –vcpus=2

或者使用交互式安装

  1. virt-install --prompt

-n CentOSVM1 设置虚拟服务器名称
-r 512 设置内存大小
-f /xen/CentOSVM1.img  虚拟磁盘文件的保存路径,如果有重名可以使用–force参数强制重建。
-l http://www/ 安装文件的访问方式,支持nfs http ftp smb等多种方式。如果你对你的带宽比较自信,可以使用http://mirrors.163.com/centos/5.5/os/i386/网易的镜像站
–network=network:default 网络连接方式,我选择的是route中的default
-s 10磁盘文件的大小,单位是G
 –nographics 不使用图形界面,可以不加此参数,然后加–vnc看看图形效果
 –vcpus=2 虚拟CPU的个数
 在执行virt-install命令安装系统之前,先确定你的安装源,支持nfs http ftp smb等多种方式,宽带大的话,可以使用http直接连接远程安装源,比如mirror.163.com。
 我这里adsl上网的,本地已经下载有iso文件了,所以在本地架设个http服务器进行安装。
1、挂载iso文件到/iso目录,这个目录必须存在。

  1. mount -o loop CentOS-6.2-x86_64-minimal.iso /iso

2、安装httpd服务器,我这里安装apache

  1. yum install httpd
  2. service httpd start

3、创建软链接或直接复制文件到apache根目录/var/www/html,如果你的centos 6.2是完整版,只需要做个软链接,如果下载的是精简版,也就是minimal,需要复制全部文件到根目录,因为.treeinfo这个文件需要相应的修改。

centos 6.2完整版:

  1. ln -s /iso /var/www/html

centos 6.2精简版:

  1. cp -R /iso  /var/www/html

修改.treeinfo文件,如:

  1. [general]
  2. family = CentOS
  3. timestamp = 1323560005.81
  4. variant =
  5. totaldiscs = 1
  6. version = 6.2
  7. discnum = 1
  8. packagedir =
  9. arch = x86_64
  10.  
  11. [images-x86_64]
  12. kernel = isolinux/vmlinuz
  13. initrd = isolinux/initrd.img
  14.  
  15. [images-xen]
  16. kernel = isolinux/vmlinuz
  17. initrd = isolinux/initrd.img
  18.  
  19. [stage2]
  20. mainimage = images/install.img

4、在安装之前,需要暂时关闭iptables,否则安装过程中会无法取得相应文件。

  1. service iptables stop

5、开始使用virt-install安装

  1. virt-install -n centos6 -r 512 -f /xen/CentOSVM1.img -l http://192.168.1.100/iso --network=network:default -s 4 --vcpus=2

之后会自动调用virt-viewer工具显示安装界面。
6、启动guest centos6
安装完成后会要求重启,这时guest关闭之后不会自动启动,需要使用xm start命令启动:

  1. xm start centos6

7、开启iptables

之前为了连接安装源,暂时关闭了iptables,现在需要启动iptables,否则guest无法连接外网。

  1. service iptables start

8、使用virt-viewer管理guest

  1. virt-viewer centos6

执行这条命令即可连接虚拟机centos6进行管理了,当然也可以直接使用ssh连接更简单。

另外,我安装过virt-manager来安装guest,但到创建域时就出现KeyError错误,不知道如何解决,有懂的告诉一声。

转载请保留原文链接:Linux运维日志 » CentOS 6安装配置Xen

打赏

如果此文对你有所帮助,请随意打赏鼓励作者^_^

评论 21

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. lllusion这个不错. 挺实用的. 学习了...回复
  2. Xend[root@localhost libvirt-0.8.1]# libvirtd -d error: Unable to obtain pidfile. Check /var/log/messages or run without --daemon for more info. ---------------------------------------------------- [root@localhost libvirt]# libvirtd 22:51:53.591: error : qemudWritePidFile:506 : Failed to open pid file '/usr/local/var/run/libvirtd.pid' : File exists ---------------------------------------------------- why this happen?回复
    • 朱 茂海去掉 -d,单独执行libvirtd,会有错误提示。回复
      • Xend[root@localhost libvirt-0.8.1]# libvirtd -d error: Unable to obtain pidfile. Check /var/log/messages or run without –daemon for more info. 有-d也会出错,why?回复
        • 朱 茂海我晕,是叫你尝试单独执行libvirtd,不加-d 之后后出现详细的错误提示,这样你就懂得如何解决了。回复
          • Xend[root@localhost libvirt]# libvirtd 22:51:53.591: error : qemudWritePidFile:506 : Failed to open pid file ‘/usr/local/var/run/libvirtd.pid’ : File exists --------------------------------------回复
            • 朱 茂海rm -f /usr/local/var/run/libvirtd.pid回复
              • Xendhttp://pasik.reaktio.net/xen/patches/libvirt-spec-rhel6-enable-xen.patch this patch solved this,thx anyway!回复
                • 朱 茂海我试过这个补丁,但rebuild的时候出错,无奈。。 :cry:回复
  3. ihanbing您好~ 我在yum install xen-devel 出现问题,提示显示没有有效的包,该怎么解决了,系统也是centos 6回复
    • 朱 茂海32位的?回复
      • ihanbing系统是x84——64的centos 6 yum 安装xen-devel 和xen-lib 这两个包不行,安装就是提示没有有效地包。自己尝试过更换yum源,但是还是不行回复
        • 朱 茂海执行rpm -Uvh http://www.crc.id.au/repo/x86_64/kernel-xen-release-6-3.noarch.rpm这命令还不行,那真的有点不理解了。回复
          • ihanbing应该是如你前面说的,yum源中已经不提供xen的包了,需要第三方源,因为我是源代码安装,没有使用第三方源,就存在这个问题,需要手动下载xen-devel 这样的包,但又存在一个复杂的依赖问题。回复
        • lp劝你还是装5.x版本的吧,6以上的都没有,还得找第三方员编译,太麻烦。。。。本人亲测,官网下载5.9,就可以了。。。。切记:64位的。回复
  4. akai我修改到这里就不行了 启动不起来了 找不到文件 1. title CentOS (2.6.32.56-1.el6xen.x86_64) 2. root (hd0,7) 3. kernel /xen.gz dom0_mem=1024M loglvl=all guest_loglvl=all 4. module /vmlinuz-2.6.32.56-1.el6xen.x86_64 ro root=/dev/mapper/VolGroup-LogVol00 rd_LVM_LV=VolGroup/LogVol00 nomodeset 5. module /initramfs-2.6.32.56-1.el6xen.x86_64.img 正常那个生成以后是这样的 kernel /boot/vmlinuz-2.6.32.57-2.el6xen.x86_64 ro root=UUID=cfdf399d-537e-4002-88e4-1601cbe9e004 rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LANG=zh_CN.UTF-8 KEYBOARDTYPE=pc KEYTABLE=us #crashkernel=auto rhgb quiet initrd /boot/initramfs-2.6.32.57-2.el6xen.x86_64.img 你这个是根据什么修改的啊?不了解……求帮助回复
    • LiNa@akai 跟你一样的问题 怎么解决的回复
  5. 小峰HVM 好像是要CPU支持全虚拟化的啊?是不是这样啊/回复
  6. paieer如何给虚拟机添加外网IP呢?回复
  7. david我在安装CentOS6.4的xen之后,grub引导修改成: title CentOS (3.11.8-1.el6xen.x86_64) root (hd0,1) kernel /xen-4.2.3.gz dom0_mem=1024M cpufreq=xen dom0_max_vcpus=1 dom0_vcpus_pin module /vmlinuz-3.11.8-1.el6xen.x86_64 ro root=/dev/mapper/vg_oneplus2-lv_root rd_LVM_LV=vg_oneplus2/lv_swap rd_NO_LUKS rd_LVM_LV=vg_oneplus2/lv_root rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet module /initramfs-3.11.8-1.el6xen.x86_64.img 启动的时候报: invalid magic number:9090 Error 13 :invalid or unsupported executalbe format 请教一下 这个怎么解决。回复
  8. 学习安装成功了,虚拟机也安装了,但虚拟机的配置文件怎么找不到呢?回复