在CentOS 5.0(i386)上安装Xen

安装Xen On CentOS 5.0(i386)

版本1.0
作者:Falko Timme

本教程提供了有关如何在CentOS 5.0系统(i386)上安装Xen (版本3.0.3 )的分步说明。

Xen允许您在主机操作系统( dom0 )下创建客户操作系统(* nix操作系统,如Linux和FreeBSD),即所谓的“虚拟机”或主机。 使用Xen可以将应用程序分离成完全独立的虚拟机(例如,邮件服务器的虚拟机,高流量网站的虚拟机,为客户网站提供的另一个虚拟机,一个用于DNS的虚拟机等),但仍然使用相同的硬件。 这样可以节省资金,更重要的是更安全。 如果您的DNS服务器的虚拟机被黑客入侵,它对您的其他虚拟机没有影响。 此外,您可以将虚拟机从一个Xen服务器移动到下一个。

我将使用CentOS 5.0(i386)作为主机操作系统( dom0 )和客户操作系统( domU )。

这是一个实践指南; 它不包括理论背景。 他们在网络上的许多其他文档中被处理。

本文档不附带任何形式的保证! 我想说,这不是设立这样一个制度的唯一办法。 实现这一目标有很多方法,但这是我所采取的方式。 我不会保证这将为您工作!

1初步说明

我在CentOS 5.0主机系统( dom0 )上使用以下分区:

  • / boot 150 MB( ext3
  • 互换 1GB
  • / 3GB( ext3
  • / vm其余( ext3

我将在/ vm目录中创建虚拟机; 当然,您可以使用剩余足够空间的任何其他目录,并且您不必为其创建自己的分区。 如果您使用其他目录,请在本教程中将/ vm替换为您自己的目录。

如果要将虚拟机保存在/ vm中,但是如果您的系统中不存在目录/ vm ,那么还没有为其创建分区,可以这样创建:

mkdir /vm

请注意:你不需要一个/ boot分区,但是你必须记住,我在这个howto中描述的Grub节是稍有不同的,例如,当我写,我添加

[...]
title CentOS (2.6.18-8.1.4.el5xen)
        root (hd0,0)
        kernel /xen.gz-2.6.18-8.1.4.el5
        module /vmlinuz-2.6.18-8.1.4.el5xen ro root=/dev/VolGroup00/LogVol00
        module /initrd-2.6.18-8.1.4.el5xen.img
[...]

/boot/grub/menu.lst然后你应该可以使用

[...]
title CentOS (2.6.18-8.1.4.el5xen)
        root (hd0,0)
        kernel /boot/xen.gz-2.6.18-8.1.4.el5
        module /boot/vmlinuz-2.6.18-8.1.4.el5xen ro root=/dev/VolGroup00/LogVol00
        module /boot/initrd-2.6.18-8.1.4.el5xen.img
[...]

在该文件中...)

2安装Xen

要安装Xen,我们只需运行

yum install kernel-xen xen

这将在我们的CentOS系统上安装Xen和Xen内核。 之后,我们可以在/ boot目录中找到我们新的Xen内核( vmlinuz-2.6.18-8.1.4.el5xen )及其ramdisk( initrd-2.6.18-8.1.4.el5xen.img ):

ls -l /boot/
[root@server1 ~]# ls -l /boot/
total 16327
-rw-r--r-- 1 root root   62154 Apr  9 16:30 config-2.6.18-8.1.1.el5
-rw-r--r-- 1 root root   61057 May 17 12:12 config-2.6.18-8.1.4.el5xen
-rw-r--r-- 1 root root   62150 Mar 16 01:19 config-2.6.18-8.el5
drwxr-xr-x 2 root root    1024 Jun  8 00:14 grub
-rw------- 1 root root 2318110 Apr 13 17:10 initrd-2.6.18-8.1.1.el5.img
-rw------- 1 root root 2320081 Jun  8 00:14 initrd-2.6.18-8.1.4.el5xen.img
-rw------- 1 root root 2318126 Apr 13 16:18 initrd-2.6.18-8.el5.img
drwx------ 2 root root   12288 Apr 13 16:05 lost+found
-rw-r--r-- 1 root root   80032 Apr  1 16:49 message
-rw-r--r-- 1 root root   83542 Apr  9 16:31 symvers-2.6.18-8.1.1.el5.gz
-rw-r--r-- 1 root root   84906 May 17 12:13 symvers-2.6.18-8.1.4.el5xen.gz
-rw-r--r-- 1 root root   83542 Mar 16 01:20 symvers-2.6.18-8.el5.gz
-rw-r--r-- 1 root root  884787 Apr  9 16:30 System.map-2.6.18-8.1.1.el5
-rw-r--r-- 1 root root  868062 May 17 12:12 System.map-2.6.18-8.1.4.el5xen
-rw-r--r-- 1 root root  884787 Mar 16 01:19 System.map-2.6.18-8.el5
-rw-r--r-- 1 root root 1765460 Apr  9 16:30 vmlinuz-2.6.18-8.1.1.el5
-rw-r--r-- 1 root root 2075341 May 17 12:12 vmlinuz-2.6.18-8.1.4.el5xen
-rw-r--r-- 1 root root 1765428 Mar 16 01:19 vmlinuz-2.6.18-8.el5
-rw-r--r-- 1 root root  274228 May 17 09:13 xen.gz-2.6.18-8.1.4.el5
-rwxr-xr-x 1 root root  608568 May 17 12:28 xen-syms-2.6.18-8.1.4.el5
[root@server1 ~]#

在使用Xen内核引导系统之前,我们必须告诉引导程序GRUB。 我们打开/boot/grub/menu.lst

vi /boot/grub/menu.lst

所有其他内核节之上添加以下节:

[...]
title CentOS (2.6.18-8.1.4.el5xen)
        root (hd0,0)
        kernel /xen.gz-2.6.18-8.1.4.el5
        module /vmlinuz-2.6.18-8.1.4.el5xen ro root=/dev/VolGroup00/LogVol00
        module /initrd-2.6.18-8.1.4.el5xen.img
[...]

然后将默认值更改为0

[...]
default=0
[...]

完整的/boot/grub/menu.lst应该是这样的:

# 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/VolGroup00/LogVol00
#          initrd /initrd-version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-8.1.4.el5xen)
        root (hd0,0)
        kernel /xen.gz-2.6.18-8.1.4.el5
        module /vmlinuz-2.6.18-8.1.4.el5xen ro root=/dev/VolGroup00/LogVol00
        module /initrd-2.6.18-8.1.4.el5xen.img
title CentOS (2.6.18-8.1.1.el5)
        root (hd0,0)
        kernel /vmlinuz-2.6.18-8.1.1.el5 ro root=/dev/VolGroup00/LogVol00
        initrd /initrd-2.6.18-8.1.1.el5.img
title CentOS (2.6.18-8.el5)
        root (hd0,0)
        kernel /vmlinuz-2.6.18-8.el5 ro root=/dev/VolGroup00/LogVol00
        initrd /initrd-2.6.18-8.el5.img

之后,我们重新启动系统:

shutdown -r now

系统现在应该自动启动新的Xen内核。 系统启动后,我们可以通过运行进行检查

uname -r
[root@server1 ~]# uname -r
2.6.18-8.1.4.el5xen
[root@server1 ~]#

所以它真的使用新的Xen内核!

我们现在可以跑

xm list

检查Xen是否已启动。 应该列出域0dom0 ):

[root@server1 ~]# xm list
Name                                      ID Mem(MiB) VCPUs State   Time(s)
Domain-0                                   0      350     1 r-----     94.4
[root@server1 ~]#

3创建虚拟机

CentOS附带了一个不错的工具,名为virt-install ,我们可以为Xen创建虚拟机。 要开始,我们只是运行

virt-install

在创建虚拟机之前,工具会询问几个问题。 我想打电话给我的第一个虚拟机vm01,256MB RAM,磁盘大小为4GB。 我想将它存储在文件/vm/vm01.img中

虚拟机的名称是什么? < - vm01
应该分配多少RAM(兆字节)? < - 256
你想用什么作为磁盘(路径)? < - /vm/vm01.img
你想要磁盘大小(/vm/vm01.img)(千兆字节)? < - 4
您要启用图形支持吗? (是或否) < - 否
什么是安装位置? < - http://wftp.tu-chemnitz.de/pub/linux/centos/5.0/os/i386

关于图形支持的问题是指安装程序,而不是虚拟机本身! 可以启动图形化安装程序,但是您必须通过VNC连接到它。 使用文本安装程序更容易 - 它提供相同的选项,因此我选择文本安装程序。

作为安装位置 ,您应该指定一个靠近您的镜像,安装程序可以在虚拟机中下载安装CentOS 5.0所需的所有文件。 您可以在这里找到CentOS镜像列表: http : //www.centos.org/modules/tinycontent/index.php?id=13

在我们回答了所有问题之后,在我们的vm01虚拟机中, virt-install启动了正常的CentOS 5.0 安装程序(在文本模式下)。 您已经知道CentOS安装程序,因此在vm01中完成CentOS安装并不会有问题

安装完成后,我们将保留在vm01控制台。 要离开它,键入CTRL +],如果你在控制台,或CTRL + 5如果你使用PuTTY。 然后,您将返回到dom0控制台。

virt-install为我们创建了一个vm01配置文件/ etc / xen / vm01 (在dom0中 )。 它应该是这样的:

cat /etc/xen/vm01
# Automatically generated xen config file
name = "vm01"
memory = "256"
disk = [ 'tap:aio:/vm/vm01.img,xvda,w', ]
vif = [ 'mac=00:16:3e:13:e4:81, bridge=xenbr0', ]

uuid = "5aafecf1-dd66-401d-69cc-151c1cb8ac9e"
bootloader="/usr/bin/pygrub"
vcpus=1
on_reboot   = 'restart'
on_crash    = 'restart'

xm console vm01

如果您在控制台,再次登录该虚拟机(键入CTRL +] ,如果您使用PuTTY返回到dom0 ,则为CTRL + 5 ),或使用SSH客户端连接到该虚拟机。

要获取正在运行的虚拟机的列表,请键入

xm list

输出应如下所示:

[root@server1 xen]# xm list
Name                                      ID Mem(MiB) VCPUs State   Time(s)
Domain-0                                   0      259     1 r-----   1906.6
vm01                                       3      255     1 ------    137.9
[root@server1 xen]#

要关闭vm01 ,请执行以下操作:

xm shutdown vm01

要再次启动vm01 ,请运行

xm create /etc/xen/vm01

如果您希望vm01在系统下次启动时自动启动,那么请执行以下操作:

ln -s /etc/xen/vm01 /etc/xen/auto

以下是最重要的Xen命令:

xm create -c / path / to / config - 启动虚拟机。
xm shutdown <name> - 停止虚拟机。
xm destroy <name> - 立即停止虚拟机而不关闭虚拟机。 就像关掉电源按钮一样。
xm list - 列出所有运行的系统。
xm console <name> - 登录虚拟机。
xm help - 所有命令的列表。

4链接

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏