源码安装xen

一、环境

系统:CentOS 6.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、安装必备软件包

  1. yum -y groupinstall "Development Libraries"

  2. yum -y groupinstall "Development Tools"

  3. 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

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

  5. yum -y install openssl openssl-devel

  6. yum -y install ncurses ncurses-*

  7. yum -y install python-devel

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

4、安装xen

  1. tar zxvf xen-4.1.2.tar.gz

  2. cd xen-4.1.2

  3. make world

  4. make install



             将xen加入启动脚本
  1. /sbin/chkconfig --add xend

  2. /sbin/chkconfig --add xencommons

  3. /sbin/chkconfig --add xendomains

  4. /sbin/chkconfig xend on

  5. /sbin/chkconfig xendomains on

  6. /sbin/chkconfig xencommons on

5、安装Linux3.1.2内核

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

 

  1. tar jxf linux-3.1.2.tar.bz2

  2. cd linux-3.1.2

  3. make menuconfig

参数配置:

  1. Processor type and features --- >

  2. 选中Paravirtualized Guest Support


  3. Device Drivers --->


  4. XEN driver support --->


  5. [ * ] Xen memory balloon driver


  6. [ * ] Scrub pages before returning them to system


  7. <*> Xen /dev/xen/evtchn device


  8. [ * ] Backend driver support


  9. <*> Xen filesystem


  10. [ * ] Create compatibility mount point /proc/xen


  11. [ * ] Create xen entries under /sys/hypervisor


  12. <*> userspace grant access device driver

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

CONFIG_XEN_BLKDEV_BACKEND=m

CONFIG_XEN_NETDEV_BACKEND=m

 

编译安装

  1. make -j6

  2. make -j6 modules

  3. make -j6 modules_install

  4. make -j6 install

  5. depmod 3.1.2

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

 

6、编译安装libvirt

  1. tar -zxvf libvirt-0.7.7.tar.gz

  2. ./configure

  3. make && make install

  4. 运行程序

  5. libvirt:libvirtd -d

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

  1. vi /etc/grub.conf

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

  1. title CentOS (3.1.2)

  2. root ***

  3. kernel /**********

  4. initrd /********

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

修改kernelinitrdmodule,修改后为:

  1. title xen (3.1.2)

  2. root ***

  3. kernel /xen.gz

  4. modul /**********

  5. modul /********

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

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

reboot

**********************************************************************************

安装前的准备:

1、网络设置:设置NM_CONTROLLE为no。

2、GRUB设置:取消hiddenmenu。将来要引导xen用的。

3、SELINUX设置:禁用SELINUX。目前xen尚不支持SELINUX

4、软件依赖包的安装:可以参考两个官方文档:

http://wiki.xen.org/wiki/RHEL6Xen4Tutorial

http://wiki.xen.org/wiki/Xen_4.0_Release_Notes

 

Xen安装(即Xen Hypervisior安装):

版本选择:4.1

下载:http://www.xen.org/products/xen_source.html

安装过程可以参考xen解压后的README。网上教程各种各样,我也不知道哪个准,所以只好看README。话说回来,本来就应该这样,但我们安装软件时,往往几乎下意识地到网上搜索教程。扯远了一点。

cd xen-4.1.2 make world make install

在make world过程中遇到的错误:

遇错:*** check_uuid_devel FAILED: missing uuid headers (package uuid-dev)

解决:yum install libuuid-devel

遇错:WARNING: makeinfo' is missing on your system.

解决:yum install texinfo

遇错:*** No rule to make target `clean'. Stop.

解决:重新解压xen软件包,重新编译。可能还需要安装http://wiki.xen.org/wiki/RHEL6Xen4Tutorial文中的提到的软件包。该文档安装的依赖软件比较全面,当然,需要下载的文件也比较多。

 

domain 0的安装:

这个我没有使用xen-kernel,直接下载linux kernel 3.1.2。linux内核从3.0开始支持xen,所以不用再另外安装xen-kernel了,方便。安装过程可以参考:http://siwind.iteye.com/blog/1188053。

下载Linux内核3.1.2:

wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.1.2.tar.bz2

编译安装Linux内核(注意,这个过程比较耗时!估计要30~40分钟):

cd 3.1.2 make help make menuconfig  这个地方主要修改是Device Drivers下的Xen driver support,把它们全部选中! 然后是Processor famaily,选中core 2 /new xeon。 还有就是取消一些AMD相关的选项,我的CPU是xeon的。 最后,选中Paravirtualized Guest Support,及其下面的Xen Guest Support。 make make modules make modules_install make install /bin/depmod 3.1.2

安装内核以后,修改grub.conf,添加如下内容: 

title CentOS Linux (3.1.2 with xen)         root(hd0,0)         kernel /xen-4.1.2.gz dom0_mem=1024MB        module /vmlinuz-3.1.2 ro root=UUID=ed3d4a3c-af33-4e7a-8fe4-c07773fb01f4         module /initramfs-3.1.2.img

重启系统,进入xen Linux。

启动Xen:

/sbin/chkconfig --add xencommons /sbin/chkconfig --add xend /sbin/chkconfig --add xendomains /sbin/chkconfig --level 35 xend on /sbin/chkconfig --level 35 xendomains on /sbin/chkconfig --level 35 xencommons on service xencommons start service xend start service xendomains start

查看是否启动成功:

xm list

linux


******************************************************************************************


Step.1 安装需要的软件包:

首先最小化安装 CentOS,首先使用yum升级系统

# yum update

然后安装编译 Xen 和 Linux xen kernel 所需要的软件包:

# yum groupinstall "Development Tools"

# yum install hmaccalc ncurses-devel zlib-devel openssl-devel python-devel  

bridge-utils libtool-ltdl iasl xorg-x11-drv-evdev xorg-x11-drv-fbdev  

xorg-x11-drv-i810-devel xorg-x11-drv-via-devel xorg-x11-proto-devel  

xorg-x11-server-sdk xorg-x11-xtrans-devel

 

到http://www.acpica.org/downloads下载并安装acpica,进入解压缩包中的compiler目录中,

# make

# make install

 

Step.2 安装 Xen hypervisor:

到 http://www.xen.org/products/xen_source.html 下载最新的 Xen 源代码,然后解开、编译、安装,标准的 Linux 软件源码安装动作:

# tar zxvf xen-4.1.1.tar.gz

# cd xen-4.1.1/

# make world

(此过程耗时约10-15分钟)

# make install

 

Step.3 将Xen加入到启动脚本:

# /sbin/chkconfig --add xend

# /sbin/chkconfig --add xendomains

# /sbin/chkconfig --add xencommons

# /sbin/chkconfig xend on

# /sbin/chkconfig xendomains on

# /sbin/chkconfig xencommons on

 

Step.4 下载、配置并编译 Xen 内核:

下载 Linux 内核后给内核打 xen 补丁:

$ cd

$ wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.31.8.tar.bz2

$ tar -xjf linux-2.6.31.8.tar.bz2

$ wget http://gentoo-xen-kernel.googlecode.com/files/xen-patches-2.6.31-10.tar.bz2 

$ mkdir xenpatch-2.6.31.8

$ cd xenpatch-2.6.31.8

$ tar -xjf ../xen-patches-2.6.31-10.tar.bz2

$ cd ..

$ cd linux-2.6.31.8

$ for i in `ls ../xenpatch-2.6.31.8/`; 
do patch -p1 < ../xenpatch-2.6.31.8/"$i"; done

配置带 xen 的 Linux 内核www.codesky.net:

$ make menuconfig

Processor type and features --->
  [*] Enable Xen compatible kernel
Networking support --->
  Networking options --->
    <*> 802.1d Ethernet Bridging
Device Drivers --->
  XEN --->
    [*] Privileged Guest (domain 0)
     <*> Backend driver support
       <*> Block-device backend driver
       <*> Block-device tap backend driver
       <*> Block-device tap backend driver 2
       <*> Network-device backend driver
       <*> PCI-device backend driver
       <*> SCSI backend driver
       <*> USB backend driver
    <*> Block-device frontend driver
    <*> Network-device frontend driver
       <*> SCSI frontend driver
       <*> USB frontend driver
    <*> Framebuffer-device frontend driver
    <*> Keyboard-device frontend driver
    [*] Disable serial port drivers
    <*> Export Xen attributes in sysfs
        Xen version compatibility (3.3.0 and later) --->
           3.3.0 and later
注意:如果使用32位系统,则务必将PAE功能开启,将内存支持选择为64GB,否则会重启后内核将会报错。
Processor type and features --->
   High Memory Support (4GB) --->
      64GB

配置好内核参数以后,保存并退出,开始编译 Linux 内核:
# make
(此过程耗时约30-45分钟)
# make modules
# make modules_install 
# make install 
# /sbin/depmod 2.6.31.8

Step.5 更新 grub 引导信息:

# vi /boot/grub/menu.lst

title CentOS (2.6.31.8-xen)

    root (hd0,0)

    kernel /xen-4.1.1.gz

    module /vmlinuz-2.6.31.8 ro root=/dev/VolGroup00/LogVol00

    module /initrd-2.6.31.8.img

Step.6 重启系统,确认 Xen 安装成功:

# reboot

# uname -a

Linux localhost.localdomain 2.6.31.8 #2 SMP Tue Apr 20 11:19:19 SAST 2010 x86_64 GNU/Linux

# xm list

Name ID Mem VCPUs State Time(s)

Domain-0 0 3713 4 r----- 36.0

 

 

特别注意:

1、如果您是在VMware中安装的虚拟Linux系统,您需要在#make menuconfig配置内核时,将SCSI相关的选项编译进内核(即改为“*”),并且将".config"配置文件中的“#CONFIG_SYSFS_DEPRECATED_V2 is not set”项一行修改为“CONFIG_SYSFS_DEPRECATED_V2=y”,重新编译内核,否则会出现下列错误信息:

Mounting root filesystem.
mount: could not find filesystem ‘/dev/root’
Setting up other filesystems.
Setting up new root fs
setuproot: moving /dev failed: No such file or directory
no fstab.sys, mounting internal defaults
setuproot: error mounting /proc: No such file or directory
Switching to new root and running init.
unmounting old /dev
unmounting old /proc
unmounting old /sys
switchroot: mount failed: No such file or directory
Kernel panic �C not syncing: Attempted to kill init!

2、过程中若提示缺包,请使用#yum install xxx,使用yum在线下载安装。

3、使用virt-manager提示无法连接8000端口的问题,请做出如下改动:

#vi /etc/xen/xend-config.sxp

   修改其中的#(xend-unix-server no) -> (xend-unix-server yes)

#service xend restart


你可能感兴趣的:(源码安装xen)