【转自51CTO.com】本文将向读者详细介绍Xen的安装运行方法,从而为进一步使用Xen做好准备。这里,为了满足不同读者的需求,我们介绍了两种安装方式,一种是从二进制安装,一种是从源代码安装。您可以根据自己的实际情况加以选择。
本文以常见的Fedora Core 6为例,介绍Xen的安装方法,至于在其他操作系统上的安装过程与之类似,读者可以触类旁通。在Fedora Core 6上安装Xen后,Xen将位于Fedora Core 6的底层,直接位于机器硬件之上,也就是说Xen将具有比Fedora Core 6更高的权限,这时Fedora Core 6就变成了Xen的Domain0(实际上就是具有管理权限的虚拟机)了。有了Domain0,我们就可以用它创建多个客户domain(就是没有管理权限的虚拟机)来运行不同的操作系统了。如果只用文字说明,不容易说清楚,通过图1,能够更好的帮你理解它们之间的关系:

下面开始介绍Xen的安装过程,不过这里有一个前提,就是您已经安装好了Fedora Core 6。我们先从二进制的安装方法下手。
一、从二进制程序包安装Xen
当前,几乎所有主要linux发行版,例如Red Hat、Debian、Ubuntu 、SUSE 和Gentoo等都已提供了Xen的二进制安装程序包。这样,我们就可以直接用linux发行版所带的安装包来安装Xen。当然,不同的发行版本使用的打包格式可能不太一样,好在它们都有相应的程序包管理器,所以这不会有问题。
需要说明的是,我们这里安装的不仅有Xen 内核,还有相应的程序库、Python模块以及从用户空间跟Xen打交道的应用程序。
◆具体操作
对于Fedora系统,它的程序包管理器是yum,我们将用它从预编译好的程序包来安装Xen。实际上,使用yum安装Xen是一件相当轻松的工作,具体过程如下所示:
1、通过下列命令来安装Xen 内核和有关软件:
yum install kernel-xen xen
这一命令将下载并安装以下程序包及其依赖包:
l
l
l
l
l
l
l
2、上面讲了Xen的安装,我们再来看看它的引导配置问题。我们知道,Fedora Core 6的系统引导管理器是grub,所以要在其配置文件即/boot/grub/grub.conf文件中添加一个引导Xen内核的条目。执行安装命令后,grub.conf将变成如图2所示:

从上图可以看到,Xen内核已经在grub.conf中了,但它并不是默认引导的内核。因为default=1,也就是说默认引导的内核是第二个内核,即常规的Linux内核。这样,要想使用Xen内核,要么在引导期间通过grub的菜单手工引导它,或者干脆在grub.conf文件中将它设为默认引导的内核,这样可以一劳永逸。我们选择第二种方式,这种方法需要修改/boot/grub/grub.conf,将default=1改为default=0。这样就把系统默认引导的内核从Fedora内核改成了Xen内核。注意,执行这步时,需要具有root权限。
3、到目前为止,Xen内核的安装已经告一段落。但是,现在我们仍然在使用常规内核,而非刚安装的Xen内核。为了启用新的内核,我们需要重新启动系统。
4、机器重启后,在硬件平台上运行的已不是原来的Fedora Core 6,而是我们新安装的Xen系统管理程序。如若不信,可以用以下命令查看正在运行的内核的版本,如下所示:

5、Xen中用来管理Domain的是守护进程xend,我们可以使用/etc/rc.d/init.d/xend 脚本来启动和停止该守护进程。Fedora Core 6在引导时会自动启动该守护进程。执行以下命令:
pidof xend
该命令将列出当前在系统上运行的进程,以便检查Xend是否正在运行。
6、Xend运行后,它会启动一个具有特权的Domain:Domain0,它实际上就是原先的Fedora Core 6,只不过它现在是在一层软件即Xen系统管理程序上而非硬件之上运行。若要查看Domain0是否已经创建好,并已经运行,可以使用xm 命令,如下所示:

7、用ifconfig命令检查所有网络接口是否已经可用,包括常规网络接口例如eth0 和lo,以及Xen有关的接口。如果一切正常的话,现在Xen已在运行了。
◆相关说明
我们使用yum安装的软件有:Xen系统管理程序、Dom0内核、Xen使用的程序库和各种Python模块、从Dom0跟Xen交互的用户空间工具等。
在安装的过程中,会自动修改grub的配置文件,即自动在其中添加一些引导Xen系统管理程序和Dom0内核的内容。通过阅读这些内容,能帮我们更好的理解Xen系统的引导过程。下面对在/boot/grub/grub.conf文件中为Xen 内核添加的内容分别加以解释:
title Fedora Core (2.6.19-1.2911.6.5.fc6xen)
上面这一行定义了内核的名称。在引导时,grub会给出一个菜单,让您从中选择要引导的内核,这里定义的内核名称将出现在这个菜单中。
root (hd0,1)
上面这一行定义了引导系统时所用的根分区。
kernel /xen.gz-2.6.19-1.2911.6.5.fc6
上面这一行指定了要引导的内核。对Xen来说,该行要指定Xen系统管理程序的内核,而非Dom0的内核。对于常规的Linux来说,引导的是实际的Linux内核。
module /vmlinuz-2.6.19-1.2911.6.5.fc6xen ro root=/dev/VolGroup00/ LogVol00 rhgb quiet
上面这一行用于指定用于dom0的内核,其中的“root”选项用于规定存放根文件系统的分区,剩下的那些其他选项,并非只针对Xen来的,而是将应用于所有的Linux内核。
module /initrd-2.6.19-1.2911.6.5.fc6xen.img
上面这一行的作用是定义了存放内核在初始化时首先装入的初始RAM磁盘镜像的文件。这个initrd 镜像仅适用于宿主机,而不能用于客户机。
当计算机引导时,它会载入系统管理程序来完成Xen的初始化。这时,会看到屏幕上有许多消息一闪而过。然后,xen系统管理程序会引导Dom0内核。具体过程是,Dom0内核使用的操作系统中有一个名为init的脚本,该脚本会启动Xen的守护进程Xend,然后该守护进程开始创建并加载Dom0。

加载中…