http://blog.csdn.net/chen_chun_guang/article/details/8499644

环境简介:

硬件环境:intel i5处理器平台(Sandy Brige)

软件环境:Redhat 6.2 Enterprise (64bit)

 

1、 设置主板BIOS, 支持虚拟化技术

搭建Xen虚拟化环境 _Xen

 

2、配置yum repo 环境

根据环境需要,配置/etc/profile.d/目录中的repo环境

 

3、安装公共软件包

yum install screen vim wget tcpdump ntp ntpdate man smartmontools links lynx ethtool xorg-x11-xauth cmake ruby -y

 

4、安装开发工具包

yum groupinstall "Development tools" "Additional Development" "Debugging Tools" "System administration tools" "Compatibility libraries" "Console internet tools" "Desktop Platform Development" -y

 

5、安装编译Xen需要的软件包

yum install libaio-devel yajl yajl-devel libuuid-devel dev86 iasl trousers trousers-devel SDL-devel pciutils-devel mercurial -y

 

6、安装最新的yajl软件包

从下面的网址,下载最新的yajl软件包

http://lloyd.github.com/yajl/

本文以1.0.12 版本为例,编译并安装。

tar zxvf lloyd-yajl-1.0.12.tar.gz

 cd lloyd-yajl-17b1790

 ./configure

 make -j4

 make install

 

7、下载Xen 4.2源码和3.4.0 Kernel

xen×××可以从下面网址得到:

http://xen.org/products/downloads.html

 

Kernel可以从下面网址得到:

http://kernel.org/

 

8、编译Kernel

kernel默认虚拟化相关的驱动没有打开,需要进行手动设置

CONFIG_X86_IO_APIC=y

CONFIG_ACPI=y

CONFIG_ACPI_PROCFS=y (optional)

CONFIG_XEN_DOM0=y

CONFIG_PCI_XEN=y

CONFIG_XEN_DEV_EVTCHN=y

CONFIG_XENFS=y

CONFIG_XEN_COMPAT_XENFS=y

CONFIG_XEN_SYS_HYPERVISOR=y

CONFIG_XEN_GNTDEV=y

CONFIG_XEN_BACKEND=y

CONFIG_XEN_NETDEV_BACKEND=m

CONFIG_XEN_BLKDEV_BACKEND=m

CONFIG_XEN_PCIDEV_BACKEND=y

CONFIG_XEN_PRIVILEGED_GUEST=y

CONFIG_XEN_BALLOON=y

CONFIG_XEN_SCRUB_PAGES=y

CONFIG_XEN_DEV_EVTCHN=y

CONFIG_XEN_GNTDEV=y

CONFIG_DMAR_TABLE=y

CONFIG_INTEL_IOMMU=y

CONFIG_INTEL_IOMMU_DEFAULT_ON=y

CONFIG_INTEL_IOMMU_FLOPPY_WA=y

CONFIG_IOMMU_API=y

如果是3..4.0也可以参考附件中的配置文件

 http://download.csdn.net/detail/chen_chun_guang/4992614

编译kernel:

make -j8

make modules_install

拷贝编译好的3.4.0+kernel和initramfs到/boot文件夹下

cp arch/x86_64/boot/bzImage /boot/vmlinux-3..40

 mkinitrd -f /boot/initramfs-3.4.0+  3.4.0+

 

编译Xen 4.2

make xen -j8

make tools -j8

make install-xen

make install-tools

拷贝xen.gz到/boot目录下

 cp xen/xen.gz /boot/

 

9、配置grub信息

title Xen

root (hd0,0)

kernel /boot/xen.gz dom0_mem=1024M iommu=1 msi=1 hap_1gb=1

module /boot/vmlinuz-3.4.0 ro root=/dev/sda1

module /boot/initramfs-3.4.0+

 

10、重启系统进入xen选项

启动完毕后,就进入了dom0环境了

启动xen服务:

/etc/init.d/xencommons start

搭建Xen虚拟化环境 _虚拟化_02

 

11、启动xen guest

对于xen来说,有两种guest类型,一种是PV guest ,另外一种是HVM guest方式。

xen Guest启动,需要配置HVM配置文件

配置文件可以参考下面的文件:

/etc/xen/xmexample.hvm

对于PV guest ,配置文件一般放置在下面的目录。

 /etc/xen/xlexample.pvlinux

创建guest 可以通过下面命令

xl  create  xmexample.hvm

xl  create  xlexample.pvlinux

12、 配置guest disk

有两种配置guest disk的方式,一种是直接使用origin guest的p_w_picpath,另外一种是使用qcow生成guest p_w_picpath 的qcow。第一种方式,任何修改均会改动origin的内容,而第二种方式,任何修改只会改动qcow文件的内容,不会修改origin p_w_picpath 的内容。

第一种方式方式的disk 配置

 

disk = [ '/home/p_w_picpaths/ia32e_ent.img,raw,xvda,rw' ]

第二种方式需要先使用origin文件ia32e_ent.img创建qcow2格式的 文件rhel6u2.qcow。

qemu-img-xen create -b /home/p_w_picpaths/ia32e_ent.img  -f qcow2  /root/rhel6u2.qcow

disk配置如下

disk = [ 'tap:qcow2:/root/rhel6u2.qcow,hda,w' ]

 

13、连接启动的guest

有两种方式显示guest 的启动过程,一种是sdl,另外一种是VNC,使用哪种方式需要在配置文件中设置。

下面介绍下使用vnc连接的方式。

首先需要安装vnc rpm包

yum install tigervnc.x86_64 tigervnc-server.x86_64 -y

要使用vnc需要关闭防火墙

输入命令  setup

搭建Xen虚拟化环境 _Xen_03

设置firewall  disable

另外还需要关闭selinux,编辑配置文件,设置为SELINUX=disabled

vim /etc/selinux/config

 

启动后的guest,用xl list查看为

搭建Xen虚拟化环境 _虚拟化_04

使用vnc登陆到guest,可以使用下面命令

xl  vnc  vmid

像上面这个例子,guest ID 为1, 就可以使用xl vnc 1登陆到 guest 的vnc桌面。