Paravirtualization在XenCentOS5.6上

         这边教程提供的是循序渐进告诉你如何在何安装在说明XenXen(version 3.0.3) 在一个CentOS 5.6(x86_64)系统说明。

创新互联建站长期为上千多家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为北安企业提供专业的网站设计制作、成都网站制作北安网站改版等技术服务。拥有10多年丰富建站经验和众多成功案例,为您定制开发。

        Xen让你创建一个开源系统 (比如开源系统Linux 和FreeBSD),所以就叫做“虚拟机”或者宿主系统,使用Xen可以分成不同的虚拟机,而且虚拟机是彼此互相独立(例如一个邮件服务器;一个高流量web 网站;一个客户的虚拟网站;一个DNS服务器),但是使用的是相同的硬件,这样可以节省钱,更重要的是这也很安全,如果你的dns服务器被黑了,但他不会影响别的虚拟服务器的使用。正好你把虚拟机从  Xen移动到下一位置。

  我将用CentOS 5.6(x86_64)做两个主机操作系统,一个主一个从。

  这是基本的使用指导,他不覆盖所有环境,如果你想在学习请从其他页面找。 

这边指导没有任何保证,我意思说这不是唯一的编辑内核的方法,有许多的其他方法都可以达到这个目标,但我不敢保证这个方法对你也适用。

1第一步

这个说明是指导我们怎样建立虚拟映象和虚拟逻辑管理等相关技术。

确认SELinux是开启的:

vi /etc/sysconfig/selinux

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#       enforcing - SELinux security policy is enforced.
#       permissive - SELinux prints warnings instead of enforcing.
#       disabled - SELinux is fully disabled.
SELINUX=disabled
# SELINUXTYPE= type of policy in use. Possible values are:
#       targeted - Only targeted network daemons are protected.
#       strict - Full SELinux protection.
SELINUXTYPE=targeted

如果已经修改了 /etc/sysconfig/selinux,请重启系统:

reboot

2 安装Xen

安装Xen,我们现在就运行:

yum install kernel-xen xen

这个安装是Xen和一个Xen内核已经在系统上的。

现在我们能进入系统kernelxen,检查你的GRUB配置,打开/boot/grub/menu.lst:

vi /boot/grub/menu.lst

第一个应该是你Xen刚刚安装的内核:

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

改变值为default to 0,

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

完整的看起来应该是这样:

# 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
splashp_w_picpath=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-238.9.1.el5xen)
        root (hd0,0)
        kernel /xen.gz-2.6.18-238.9.1.el5
        module /vmlinuz-2.6.18-238.9.1.el5xen ro root=/dev/VolGroup00/LogVol00
        module /initrd-2.6.18-238.9.1.el5xen.img
title CentOS (2.6.18-238.el5)
        root (hd0,0)
        kernel /vmlinuz-2.6.18-238.el5 ro root=/dev/VolGroup00/LogVol00
        initrd /initrd-2.6.18-238.el5.img

在后我们重启系统:

reboot

这个系统应该是自动启动新的内核,我们来检查它的运行:

 

 

uname -r

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

现在我们应该适用新的内核,

我们现在运行它:

xm list

去检查如果Xen已经启动,它因该列出Domain-0 (dom0):

[root@server1 ~]# xm list
Name                                      ID Mem(MiB) VCPUs State   Time(s)
Domain-0                                   0     3343     2 r-----     18.1
[root@server1 ~]#

3 创建一个映象虚拟机:

  我想存入的映象在我的映象虚拟机 /vm目录下,当然你可以适用其他目录空间,只要它有足够的空间,如果你使用了令一个目录,请你使用你的目录.

   如果你想保存你的虚拟机目录,但这个目录又没有给虚拟机创建好空间,你可以这样创建:

mkdir /vm

CentOS 有一个不错的工具virt-install ,用它可以直接创建Xen虚拟机,现在我们就运行它:

virt-install --prompt

 在这之前我创建了一个虚拟机,我想告诉我第一个虚拟机是vm01, 521M的内存和4G的硬盘,我想存入/vm/vm01.img:

Would you like a fully virtualized guest (yes or no)? This will allow you to run unmodified operating systems. <-- no
 What is the name of your virtual machine? <-- vm01
 How much RAM should be allocated (in megabytes)? <-- 512
 What would you like to use as the disk (file path)? <-- /vm/vm01.img
 How large would you like the disk (/vm/vm01.img) to be (in gigabytes)? <-- 4
 What is the install URL? <-- http://wftp.tu-chemnitz.de/pub/linux/centos/5.6/os/x86_64

第一个关于虚拟客户端的问题必须回答NO,否则你将不会看到CentOS 5.6在我们的虚拟机的安装.

     As install URL你 因该指定CentOS 5.6在虚拟机上的安装路径和文件,你能找到的映像路径在:http://www.centos.org/modules/tinycontent/index.php?id=13

安装完后,我们暂停在vm01 console,要离开请按CTRL+] ,如果你在控制台,如果你正在使用PuTTY.按CTRL + 5,你将回到控制台。

virt-install要创建的文件在vm01配置文件在 /etc/xen/vm01 ,其实就像这样:

cat /etc/xen/vm01

name = "vm01"
uuid = "809dd76e-f48e-8a3d-343b-1dd8b1d585ea"
maxmem = 512
memory = 512
vcpus = 1
bootloader = "/usr/bin/pygrub"
on_poweroff = "destroy"
on_reboot = "restart"
on_crash = "restart"
disk = [ "tap:aio:/vm/vm01.img,xvda,w" ]
vif = [ "mac=00:16:36:33:80:b7,bridge=xenbr0,script=vif-bridge" ]

继续:

xm console vm01

登陆虚拟机使用SSH 进行连接:

去找到一个虚拟机列表:

xm list

输出信息应该是这样:

[root@server1 ~]# xm list
Name                                      ID Mem(MiB) VCPUs State   Time(s)
Domain-0                                   0     2702     2 r-----     83.4
vm01                                       3      512     1 -b----     18.2
[root@server1 ~]#

去关闭vm01,这样做:

xm shutdown vm01

开启vm01,这样做:

xm create /etc/xen/vm01

如果你想下次可以自动启动:

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

这些是Xen命令:

xm create -c /path/to/config - Start a virtual machine.
xm shutdown - Stop a virtual machine.
xm destroy - Stop a virtual machine immediately without shutting it down. It's as if you switch off the power button.
xm list - List all running systems.
xm console - Log in on a virtual machine.
xm help - List of all commands.

 4.创建虚拟机逻辑管理:

本节主要告诉怎么用逻辑虚拟机代替映像虚拟机。

在本例中我使用CentOS 5.6 LVM 主机群/dev/VolGroup00 和465GB 磁盘, /dev/VolGroup00 包含两个磁盘,/dev/VolGroup00/LogVol00 和 /dev/VolGroup00/LogVol01 消耗104GB空间,其余不能拿来分配,用来创建逻辑卷为虚拟机。

vgdisplay

vgdisplay

[root@server1 ~]# vgdisplay
  /dev/hda: open failed: No medium found
  --- Volume group ---
  VG Name               VolGroup00
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               465.66 GB
  PE Size               32.00 MB
  Total PE              14901
  Alloc PE / Size       3303 / 103.22 GB
  Free  PE / Size       11598 / 362.44 GB
  VG UUID               veUbuN-BNGq-BP3S-H3mP-bWOF-tbAX-GeIhy6
 

lvdisplay

[root@server1 ~]# lvdisplay
  /dev/hda: open failed: No medium found
  --- Logical volume ---
  LV Name                /dev/VolGroup00/LogVol00
  VG Name                VolGroup00
  LV UUID                5tEz3i-YlR7-rdQB-VCPK-xHlB-GsWU-4Rijqk
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                97.66 GB
  Current LE             3125
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0

  --- Logical volume ---
  LV Name                /dev/VolGroup00/LogVol01
  VG Name                VolGroup00
  LV UUID                3qp5ia-uBJl-eeNZ-JOkH-4E6o-ZAbf-HvdNms
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                5.56 GB
  Current LE             178
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:1

[root@server1 ~]#

我想创建一个不同的虚拟机vm02 ,使用逻辑分区 /dev/VolGroup00/vm02,所以我创建了符合逻辑的dev/VolGroup00/vm02 :

lvcreate -L10G -n vm02 VolGroup00

然后我们运行:

virt-install --prompt

again:

Would you like a fully virtualized guest (yes or no)? This will allow you to run unmodified operating systems. <-- no
 What is the name of your virtual machine? <-- vm02
 How much RAM should be allocated (in megabytes)? <-- 512
 What would you like to use as the disk (file path)? <-- /dev/VolGroup00/vm02
 What is the install URL? <-- http://wftp.tu-chemnitz.de/pub/linux/centos/5.6/os/x86_64

做为磁盘文件路径,我们将指定新的 /dev/VolGroup00/vm02.请不要在调磁盘空间,因为我们磁盘空间是合乎逻辑的10GB;

5 链接:

  • Xen: http://www.xen.org/
  • CentOS: http://www.centos.org/



 


文章题目:Paravirtualization在XenCentOS5.6上
本文来源:http://hbruida.cn/article/jicjeh.html