http://blog.csdn.net/chen_chun_guang/article/details/8499644
环境简介:
硬件环境:intel i5处理器平台(Sandy Brige)
软件环境:Redhat 6.2 Enterprise (64bit)
1、 设置主板BIOS, 支持虚拟化技术
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
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的image,另外一种是使用qcow生成guest image 的qcow。第一种方式,任何修改均会改动origin的内容,而第二种方式,任何修改只会改动qcow文件的内容,不会修改origin image 的内容。
第一种方式方式的disk 配置
disk = [ '/home/images/ia32e_ent.img,raw,xvda,rw' ] |
第二种方式需要先使用origin文件ia32e_ent.img创建qcow2格式的 文件rhel6u2.qcow。
qemu-img-xen create -b /home/images/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
设置firewall disable
另外还需要关闭selinux,编辑配置文件,设置为SELINUX=disabled
vim /etc/selinux/config
启动后的guest,用xl list查看为
使用vnc登陆到guest,可以使用下面命令
xl vnc vmid
像上面这个例子,guest ID 为1, 就可以使用xl vnc 1登陆到 guest 的vnc桌面。