全部博文(35)
分类: LINUX
2009-09-17 10:52:58
近年来随着计算机硬件的高速发展,虚拟化技术已经成为计算机业的焦点之一。虚拟化技术从实现途径上来说,由两种典型的派别:泛虚拟化(para-virtualization)和完全虚拟化(HVM)。前者通过修改客户操作系统来配合虚拟化的环境,从而达到较高的性能,但也付出了兼容性和维护性方面的限制,而Xen就是泛虚拟化技术的杰出代表;而完全虚拟化技术常常需要得到处理器级别的硬件支持(如Intel VT或AMD-V处理器),或者通过对客户机执行代码进行动态二进制代码转换,然后可以无需修改的直接运行一个已有的操作系统,使得虚拟化技术的应用更加容易。完全虚拟化的代表产品有VMware, VirtualPC, QEMU等。
即使你研究的不是虚拟化,体验一下Xen这个目前世界上最流行的虚拟机管理器(VMM)并感受其巨大的魅力也是值得的。本文主要介绍如何在Fedora 10下使用源码安装Xen 3.3.1。
首先准备好两个源代码包:xen-3.3.1.tar.gz和linux-2.6.18-xen.hg.gz,可从上下载。
使用tar xzvf xen3.3.1.tar.gz命令解压xen.3.3.1.tar.gz到Fedora 10系统目录(可以为任一目录,我将其解压在/usr/local目录)。
打开README文件可以查看安装Xen前必须安装的软件包:
* GCC v3.4 or later
* GNU Make
* GNU Binutils
* Development install of zlib (e.g., zlib -dev)
* Development install of Python v2.3 or later (e.g., python-dev)
* Development install of curses (e.g., libncurses -dev)
* Development install of openssl (e.g., openssl -dev)
* Development install of x11 (e.g. xorg-x11-dev)
* bridge-utils package (/sbin/brctl )
* iproute package (/sbin/ip )
* hotplug or udev
进入xen3.3.1/tools/check目录,运行./chk build命令,可查看目前这些必需的软件包的安装状态。可运行./chk install进行安装,也可使用yum install命令对那些必需软件进行在线安装,如:
yum install gcc
yum install binutils
yum install zlib-devel
yum install python-devel
yum install ncurses-devel
yum install openssl-devel
yum install libX11-devel
yum install bridge-utils
yum install iproute
yum install udev
由于安装过程可能需要联网,所以最好使用yum install mercurial或yum install hg命令使得hg可用。
最后./chk build全部OK后才能进入下一步安装。
如果网络条件足够好,并可以顺利从国外网站上下载东西,不需要修改配置文件即可进行安装;如果网络条件不够好,则需要修改xen3.3.1目录下的Makefile文件和buildconfigs目录下的src.hg-clone文件。因为当安装stubdom时需要从国外服务器上下载文件,而stubdom是从xen3.3引入的,并不是必需的,故可以Makefile文件里将stubdom相关的代码注释掉;而在编译过程中默认会从国外服务器上使用hg clone一个linux-2.6.18-xen.hg目录(200多M),其实就是我们准备好的linux-2.6.18-xen.hg.gz,可对src.hg-clone文件的一些hg代码进行删除。
在编译之前介绍一下make world这个命令。进入Makefile可以发现,其实make world就是make clean、make kdelete和make dist这三个命令的集合。前两个命令主要用作编译操作的回滚,而负责安装工作的就是make dist这个命令。
解压linux-2.6.18-xen.hg.gz后,将linux-2.6.18-xen.hg这个文件夹拷贝到xen3.3.1目录下,如果编译前没修改任何配置文件的话,不推荐使用make world这个命令。因为使用make world命令后,make clean和make kdelete会将拷贝进来的linux-2.6.18-xen.hg文件夹删除,并在编译时再从国外服务器上重新下载这个200多M的文件夹,将极大地影响编译的效率。所以,要么使用make代替make world进行编译,要么修改Makefile将$MAKE clean和$MAKE kdelete 注释掉。
我使用make命令进行编译,然后使用make install进行安装。
安装成功后没有successful提示,但安装不成功会有错误提示。如果没有任何错误提示(警告提示是正常的),说明已经安装成功了。Xen安装成功后会生成/etc/xen目录,/lib/modules下会多一个xen相关的目录,/boot目录下也会多几个像xen-3.3.1.gz、vmlinuz的文件,也可以检查并确认一下Xen的安装状态。
接下来在boot目录下使用mkinitrd -v -f --with=aacraid --with=sd_mod --with=scsi_mod initrd-2.6.18.8-xen.img 2.6.18.8-xen命令生成initrd-2.6.18.8-xen.img镜像文件。(当然我针对的是有专门的boot分区的fedora系统,可在/boot/grub/menu.lst或/boot/grub/grub.conf文件里查看,如果有专门的boot分区,fedora的grub代码前会有/boot)。
最后修改grub配置文件(/boot/grub/menu.lst或/boot/grub/grub.conf文件):
title Xen 3.3
root (hd0, 7) //这个依据你的fedora分区而定
kernel /boot/xen-3.3.1.gz console=vga //有没有/boot可以参照fedora的引导代码
module /boot/vmlinuz-2.6.18.8-xen ro console=tty0
module /boot/initrd-2.6.18.8-xen.img
重启,进入grub后选择Xen 3.3.1,这时你就可以体验Xen并感受虚拟化的魅力了。