服务器在线 - 服务器软件 - 网站地图 服务器在线,专注于服务器技术!

当前位置:主页 > 云和虚拟化 > Xen > 正文

CentOS 6.5系统中xen虚拟机的安装和配置

时间:2015-01-04    来源:服务器在线    投稿:泡泡    点击:

 一、环境

系统:centOS6.3  

xen版本:4.1.2 

linux kernel:3.1.2 

libvirt:0.7.7  

资源地址

xen:http://bits.xensource.com/oss-xen/release/4.1.2/xen-4.1.2.tar.gz
kernel:http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.1.2.tar.bz2
libvirt:http://pkgs.fedoraproject.org/repo/pkgs/libvirt/libvirt-0.7.7.tar.gz/5f315b0bf20e3964f7657ba1e630cd67/libvirt-0.7.7.tar.gz
libvirt所有的版本:http://pkgs.fedoraproject.org/repo/pkgs/libvirt/  

xen和内核都是编译安装,libvirt也需要编译安装,因为6.0之后默认支持的虚拟化是KVM,源里面的libvirt默认是不支持xen的。
yum install libvirt 这种安装方式使用virt-install会出现错误:主机不支持任何虚拟化。
使用virt-manager会出现无法连接xen。  

1、初始化环境

yum update 

2、关闭selinux,xen不支持selinux。  

vi /etc/selinux/config 

SELINUX=disabled 

3、安装必备软件包

yum -y groupinstall "Development Libraries" 

yum -y groupinstall "Development Tools" 

yum -y install transfig wget texi2html libaio-devel dev86 glibc-devel e2fsprogs-devel gitk mkinitrd iasl xz-devel bzip2-devel pciutils-libs pciutils-devel SDL-devel libX11-devel gtk2-devel bridge-utils PyXML qemu-common qemu-img mercurial libidn-devel 

yum -y install glibc-devel.i686texinfo libuuid-devel iasl python-lxml 

yum -y install openssl openssl-devel 

yum -y install ncurses ncurses-* 

yum -y install python-devel 

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

4、安装xen  

tar zxvf xen-4.1.2.tar.gz 

cd xen-4.1.2 

make world 

make install 

             将xen加入启动脚本

/sbin/chkconfig --add xend   

/sbin/chkconfig --add xencommons  

/sbin/chkconfig --add xendomains  

/sbin/chkconfig xend on  

/sbin/chkconfig xendomains on  

/sbin/chkconfig xencommons on  

5、安装Linux3.1.2内核

linux3.0之后已经默认支持xen,所以3.0之后的版本不需要安装xen-kernel内核补丁,直接编译内核就可以。

 

tar jxf linux-3.1.2.tar.bz2 

cd linux-3.1.2 

make menuconfig 

参数配置:

Processor type and features --- > 

选中Paravirtualized Guest Support 

Device Drivers ---> 

XEN driver support ---> 

[ * ] Xen memory balloon driver 

[ * ] Scrub pages before returning them to system 

<*> Xen /dev/xen/evtchn device 

[ * ] Backend driver support 

<*> Xen filesystem 

[ * ] Create compatibility mount point /proc/xen 

[ * ] Create xen entries under /sys/hypervisor 

<*> userspace grant access device driver 

       在.config文件中做如下修改,我在创建虚拟机的时候出现vif0错误。查找网上的资料说是下面两个没有修改。

CONFIG_XEN_BLKDEV_BACKEND=m

CONFIG_XEN_NETDEV_BACKEND=m

 

编译安装

make -j6 

make -j6 modules 

make -j6 modules_install 

make -j6 install 

depmod 3.1.2 

注:-j参数是指定运行的线程数,没有用这个参数会慢特别多。建议使用节省编译时间。后面的数字根据自己的机器配置设置。详细参数可以查看man make

 

6、编译安装libvirt

tar -zxvf libvirt-0.7.7.tar.gz 

./configure 

make && make install 

运行程序

libvirt:libvirtd -d 

7、修改启动项,使用xen内核启动

vi /etc/grub.conf 

默认会有一个3.1.2的启动项。基本是是这样的:

title CentOS (3.1.2) 

root *** 

kernel /********** 

initrd /******** 

复制上面几行。title前面粘贴,在root和kernel之间插入一行kernel /xen.gz

修改kernel和initrd为module,修改后为:

title xen (3.1.2) 

root *** 

kernel /xen.gz 

modul /********** 

modul /******** 

然后修改default=N这个,查看修改的这个title xen是第几个title,第一个则修改为default=0

第二个修改为default=1,依次类推。

reboot

二、重新启动进入系统后:

xl list查看

出现下面这个证明安装好了。 

Name ID Mem VCPUs   State   Time(s) 

Domain-0 0 29762 8 r----- 3687.1 

1、xen网桥配置

显示xen网桥:brctl show

没有发现xenbr0虚拟网卡

xen4.1版本之后官方建议手动建立桥接网络。所以默认的/etc/xen/scripts/network-bridge 脚本是没有启动的。

(1)关闭xen网络脚本 

/etc/xen/scripts/network-bridge stop 

(2)修改xen配置文件 

vi /etc/xen/xend-config 

注释下面两行

#network-script network-bridge) 

#(vif-script vif-bridge) 

(3)重新启动xend服务

service xend restart 

(4)手动创建桥接网络,将物理网卡eth0设置为桥,我设置的服务器是DELL 410,网卡装完系统是em1,em2,只是名称区别而已。 

vi /etc/sysconfig/network-scripts/ifcfg-em1 

DEVICE=eth0 

ONBOOT=yes 

BRIDGE=xenbr0 

HWADDR=*********** 

UUID=************ 

  

vi /etc/sysconfig/network-scripts/ifcfg-xenbr0 

DEVICE=xenbr0 

BOOTPROTO=static 

IPADDR=192.168.*.* 

NETMASK=255.255.255.0 

GATEWAY=192.168.*.* 

ONBOOT=yes 

TYPE=Bridge 

上面这个就是创建一个xenbr0桥接到网卡em1,xen的虚拟机就可以通过xenbr0这个桥上网了
还有em2 em3网卡的话按照上面的方式创建就可以了。
重新启动网络:service network restart

5、更改虚拟机的桥接网卡。
假如虚拟机现在使用的桥是xenbr0,是通过em1出去的。修改成em2出去的话按照以下步骤 

[root@localhost data]# xl list 

Name ID Mem VCPUs   State   Time(s) 

Domain-0 0 29762 8 r----- 3687.1 

vm03 13 512 4 -b---- 53.6 

vm02 16 512 1 -b---- 40.9 

可以看到虚拟机的id号分别是13和16。 

[root@localhost data]# brctl show 

bridge name bridge id    STP enabled    inte***ces 

xenbr0   8000.782bcb4ce1a6  no   em1 

vif13.0 

vif16.0 

xenbr1   8000.782bcb4ce1a7  no   em2 

可以看到vif13.0是vm03这个虚拟机的网络。vif(虚拟机ID).0就是虚拟机的网络 

先删除vif13.0

brctl delif xenbr0 vif13.0 

创建 vif13.0桥接到xenbr1

brctl addif xenbr1 vif13.0 

重新启动网络

service networkrestart 

显示虚拟机网桥

#brctl show 

xenbr0   8000.782bcb4ce1a6  no   em1 

                       vif16.0 

xenbr1   8000.782bcb4ce1a7  no   em2 

                       vif13.0 

这样就可以了。

如果您的问题仍未解决,还可以加入服务器在线技术交流QQ群:8017413寻求帮助。


相关内容
最新热点内容
推荐内容