http://www.zjyxh.com/archives/201306/centos-6-4-x86_64-yum-install-xen-4-2-2.html

一.准备系统环境

1.下载kernel-xen repo镜像

1
2
wget http:
//us3
.mirror.crc.
id
.au
/el6/x86_64/kernel-xen-release-6-4
.noarch.rpm
rpm -ivh kernel-xen-release-6-4.noarch.rpm

2 安装xen 内核及其相关软件

1
2
yum
install
-y xen kernel-xen xen-libs python-virtinst bridge-utils
reboot

3.重新编译libvirtrpm包,因为centos 6 中的libvirt去掉了对xen支持

01
02
03
04
05
06
07
08
09
10
11
12
mkdir
-p
/root/src/
cd
/root/src
wget
ftp
:
//ftp
.redhat.com
/pub/redhat/linux/enterprise/6Server/en/os/SRPMS/libvirt-0
.8.1-27.el6.src.rpm
rpm -i libvirt-0.8.1-27.el6.src.rpm
wget http:
//pasik
.reaktio.net
/xen/patches/libvirt-spec-rhel6-enable-xen
.patch
cd
/root/rpmbuild/SPECS
cp
-a libvirt.spec libvirt.spec.orig
patch -p0 < ~
/src/libvirt-spec-rhel6-enable-xen
.patch
yum
install
ebtables libcgroup lzop iscsi-initiator-utils lvm2 dnsmasq xen-devel nfs-utils libnl-devel xhtml1-dtds libudev-devel libpciaccess-devel yajl-devel libpcap-devel avahi-devel parted-devel device-mapper-devel numactl-devel netcf-devel python-devel autoconf automake libtool libxml2-devel readline-devel ncurses-devel gnutls-devel cyrus-sasl-devel libcap-ng-devel libcurl-devel
rpmbuild -bb libvirt.spec
/root/rpmbuild/RPMS/x86_64
rpm -Uvh --force libvirt-0.8.1-27.el6.x86_64.rpm libvirt-client-0.8.1-27.el6.x86_64.rpm libvirt-python-0.8.1-27.el6.x86_64.rpm

4. 配置网卡为桥接模式

例如:

01
02
03
04
05
06
07
08
09
10
11
12
cd
/etc/sysconfig/network-scripts/
cp
-a ifcfg-eth0 ifcfg-br0
ifcfg-br0 内容为
DEVICE=
"br0"
BOOTPROTO=
"none"
HWADDR=
"6C:92:BF:00:40:CA"
NM_CONTROLLED=
"yes"
IPADDR=172.19.10.21
ONBOOT=
"yes"
TYPE=
"Bridge"
NETMASK=
"255.255.255.0"
#UUID="a833937d-9306-44d3-a011-b941d4c4dd7b"

ifcfg-eth0修改如下

1
2
3
4
5
6
7
DEVICE=
"eth0"
HWADDR=
"6C:92:BF:00:40:CA"
NM_CONTROLLED=
"yes"
ONBOOT=
"yes"
TYPE=
"Ethernet"
BRIDGE=br0
UUID=
"a833937d-9306-44d3-a011-b941d4c4dd7b"

修改完毕重启网卡

service network restart

5.最后修改/boot/grub/grub.conf

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/sda8
# initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=0
timeout=5
splashp_w_picpath=(hd0,0)
/grub/splash
.xpm.gz
hiddenmenu
title CentOS (3.6.7-1.el6xen.x86_64)
root (hd0,0)
kernel
/xen-4
.2.gz dom0_mem=4096M
module
/vmlinuz-3
.6.7-1.el6xen.x86_64 ro root=UUID=1b782dd8-0693-4336-b3b3-512f8f1ed548 rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet
module
/initramfs-3
.6.7-1.el6xen.x86_64.img
title CentOS (2.6.32-279.14.1.el6.x86_64)
root (hd0,0)
kernel
/vmlinuz-2
.6.32-279.14.1.el6.x86_64 ro root=UUID=1b782dd8-0693-4336-b3b3-512f8f1ed548 rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet
initrd
/initramfs-2
.6.32-279.14.1.el6.x86_64.img
title CentOS (2.6.32-279.el6.x86_64)
root (hd0,0)
kernel
/vmlinuz-2
.6.32-279.el6.x86_64 ro root=UUID=1b782dd8-0693-4336-b3b3-512f8f1ed548 rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet
initrd
/initramfs-2
.6.32-279.el6.x86_64.img

6.重启linux