使用基于LVM的VM而不是基于映像的VM(Debian Etch)

使用Xen与基于LVM的虚拟机而不是基于映像的虚拟机(Debian Etch)

版本1.0
作者:Falko Timme

本指南介绍如何在运行在Debian Etch上的Xen主机上,而不是使用磁盘映像的虚拟机上设置基于LVM的虚拟机。 使用磁盘映像的虚拟机在磁盘IO上非常慢,重。

我不会保证这将为您工作!

1初步说明

在本示例中,我使用的Debian Etch主机与LVM卷组/ dev / vg0拥有大约50GB的空间。 / dev / vg0包含两个消耗大约7GB空间的逻辑卷/ dev / vg0 / root/ dev / vg0 / swap_1 ,其余的不分配,可用于为虚拟机创建逻辑卷:

vgdisplay
server1:~# vgdisplay
  --- Volume group ---
  VG Name               vg0
  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               49.76 GB
  PE Size               4.00 MB
  Total PE              12738
  Alloc PE / Size       1792 / 7.00 GB
  Free  PE / Size       10946 / 42.76 GB
  VG UUID               JbjZw7-aOGY-3iA4-iW0M-KAhu-86fz-Ap3wLw

server1:~#
lvdisplay
server1:~# lvdisplay
  --- Logical volume ---
  LV Name                /dev/vg0/root
  VG Name                vg0
  LV UUID                HH15eU-MoDJ-NfPg-HMZ6-Fczf-uPQO-I0NDzp
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                5.00 GB
  Current LE             1280
  Segments               1
  Allocation             inherit
  Read ahead sectors     0
  Block device           254:0

  --- Logical volume ---
  LV Name                /dev/vg0/swap_1
  VG Name                vg0
  LV UUID                GV0SC0-oZLA-rQZS-pe3k-fi2N-YU9q-A73rm3
  LV Write Access        read/write
  LV Status              available
  # open                 2
  LV Size                2.00 GB
  Current LE             512
  Segments               1
  Allocation             inherit
  Read ahead sectors     0
  Block device           254:1

server1:~#

我假设你已经设置了Xen,如以下两个指南所述:

2创建基于LVM的虚拟机( domU

我们将使用xen-tools来创建虚拟机。 xen-tools可以轻松创建虚拟机 - 请阅读本教程了解更多信息: http : //www.youcl.com/xen_tools_xen_shell_argo 。 xen-tools可以作为Debian Etch软件包使用,所以我们现在安装一个:

apt-get install xen-tools

接下来我们编辑/etc/xen-tools/xen-tools.conf 。 该文件包含xen-create-image脚本使用的默认值,除非在命令行中指定其他值。 我改变了以下值,剩下的不变:

vi /etc/xen-tools/xen-tools.conf
[...]
lvm = vg0
[...]
dist   = etch    # Default distribution to install.
[...]
gateway   = 192.168.0.1
netmask   = 255.255.255.0
[...]
passwd = 1
[...]
kernel = /boot/vmlinuz-2.6.18-6-xen-vserver-686
initrd = /boot/initrd.img-2.6.18-6-xen-vserver-686
[...]
mirror = http://ftp2.de.debian.org/debian/
[...]

确保取消注释lvm行并填写卷组的名称(在我的情况下为vg0 )。 同时确保目录行被注释掉!

passwd = 1行使您可以在创建新的来宾域时指定root密码。

内核initrd行中,必须指定要用于访客域的domU内核和initrd。 通常这是/ boot / vmlinuz- + uname -r/boot/initrd.img-的输出 - uname -r的输出,所以如果

uname -r

显示2.6.18-6-xen-vserver-686 ,然后转换为/boot/vmlinuz-2.6.18-6-xen-vserver-686/boot/initrd.img-2.6.18-6-xen-vserver -686 。 您可以通过运行了解哪些内核和initrd可用

ls -l /boot/

镜像行中指定一个靠近你的Debian镜像。

确保指定网关和网络掩码。 如果没有,并且在使用xen-create-image时,不要在命令行中指定网关和网络掩码,即使指定了IP地址,您的访客域也不会有网络!

现在我们来创建我们的第一个访客域xen1.example.com ,IP地址为192.168.0.101

xen-create-image --hostname=xen1.example.com --size=10Gb --swap=512Mb --ip=192.168.0.101 --force --memory=256Mb --arch=i386 --debootstrap

您在命令行中指定的选项将覆盖/etc/xen-tools/xen-tools.conf中的设置。 在命令行中未指定的选项取自/etc/xen-tools/xen-tools.conf

(要了解有关可用选项的更多信息,请查看xen-create-image手册页:

man xen-create-image

xen-create-image命令现在将为我们创建xen1.example.com虚拟机。 这可能需要几分钟的时间。 输出应与此类似:

server1:~# xen-create-image --hostname=xen1.example.com --size=10Gb --swap=512Mb --ip=192.168.0.101 --force --memory=256Mb --arch=i386 --debootstrap

General Infomation
--------------------
Hostname       :  xen1.example.com
Distribution   :  etch
Fileystem Type :  ext3

Size Information
----------------
Image size     :  10Gb
Swap size      :  512Mb
Image type     :  full
Memory size    :  256Mb
Kernel path    :  /boot/vmlinuz-2.6.18-6-xen-vserver-686
Initrd path    :  /boot/initrd.img-2.6.18-6-xen-vserver-686

Networking Information
----------------------
IP Address 1   : 192.168.0.101
Netmask        : 255.255.255.0
Gateway        : 192.168.0.1


Creating ext3 filesystem on /dev/vg0/xen1.example.com-disk
Done

Installing your system with debootstrap mirror http://ftp2.de.debian.org/debian/
Done

Running hooks
Done

No role script specified.  Skipping

Creating Xen configuration file
Done
Setting up root password
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
All done


Logfile produced at:
         /var/log/xen-tools/xen1.example.com.log
server1:~#

从输出中可以看出,xen-create-image已经为VM的根文件系统的vg0卷组/dev/vg0/xen1.example.com-disk中的VM创建了一个新的逻辑卷。 看一眼

lvdisplay

您将看到它还为VM的交换创建了第二个逻辑卷/dev/vg0/xen1.example.com-swap

server1:~# lvdisplay
  --- Logical volume ---
  LV Name                /dev/vg0/root
  VG Name                vg0
  LV UUID                HH15eU-MoDJ-NfPg-HMZ6-Fczf-uPQO-I0NDzp
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                5.00 GB
  Current LE             1280
  Segments               1
  Allocation             inherit
  Read ahead sectors     0
  Block device           254:0

  --- Logical volume ---
  LV Name                /dev/vg0/swap_1
  VG Name                vg0
  LV UUID                GV0SC0-oZLA-rQZS-pe3k-fi2N-YU9q-A73rm3
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                2.00 GB
  Current LE             512
  Segments               1
  Allocation             inherit
  Read ahead sectors     0
  Block device           254:1

  --- Logical volume ---
  LV Name                /dev/vg0/xen1.example.com-disk
  VG Name                vg0
  LV UUID                yya7Uj-klRJ-hN9z-nKVk-YgIV-vI1j-KXT53a
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                10.00 GB
  Current LE             2560
  Segments               1
  Allocation             inherit
  Read ahead sectors     0
  Block device           254:2

  --- Logical volume ---
  LV Name                /dev/vg0/xen1.example.com-swap
  VG Name                vg0
  LV UUID                pJcl71-YFPf-t0mr-hSIN-4s8J-xkWD-BEvtNv
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                512.00 MB
  Current LE             128
  Segments               1
  Allocation             inherit
  Read ahead sectors     0
  Block device           254:3

server1:~#

现在应该有一个xen1.example.com配置文件 - /etc/xen/xen1.example.com.cfg磁盘行包含物理设备(由xen-create-image创建的两个逻辑卷)而不是磁盘映像:

cat /etc/xen/xen1.example.com.cfg
#
#  Configuration file for the Xen instance xen1.example.com, created on
# Sat Dec 13 02:01:35 2008.
#


#
#  Kernel + memory size
#
kernel  = '/boot/vmlinuz-2.6.18-6-xen-vserver-686'
ramdisk = '/boot/initrd.img-2.6.18-6-xen-vserver-686'

memory  = '256'


#
#  Disk device(s).
#
root    = '/dev/sda1 ro'

disk    = [ 'phy:vg0/xen1.example.com-disk,sda1,w', 'phy:vg0/xen1.example.com-swap,sda2,w' ]

#
#  Hostname
#
name    = 'xen1.example.com'


#
#  Networking
#
vif  = [ 'ip=192.168.0.101' ]

#
#  Behaviour
#
on_poweroff = 'destroy'
on_reboot   = 'restart'
on_crash    = 'restart'

(如果我们使用磁盘映像而不是逻辑卷,磁盘行将看起来与此类似:

disk = [ 'file:/path/to/xen1.example.com/disk.img,hda1,w', 'file:/path/to/xen1.example.com/swap.img,hda2,w' ]

要启动虚拟机,请运行

xm create /etc/xen/xen1.example.com.cfg

xm console xen1.example.com

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

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

xm list

输出应如下所示:

server1:~# xm list
Name                                      ID Mem(MiB) VCPUs State   Time(s)
Domain-0                                   0      747     1 r-----   1402.9
xen1.example.com                           1      256     1 -b----     55.8
server1:~#

要关闭xen1.example.com ,请执行以下操作:

xm shutdown xen1.example.com

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

ln -s /etc/xen/xen1.example.com.cfg /etc/xen/auto

以下是最重要的Xen命令:

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

使用xen-create-image命令创建的所有虚拟机的列表都可用

xen-list-images
server1:~# xen-list-images
Name: xen1.example.com
Memory: 256
IP: 192.168.0.101
server1:~#

要了解有关xen-tools可以做什么的更多信息,请查看本教程: http : //www.youcl.com/xen_tools_xen_shell_argo

3链接

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

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

支付宝扫一扫打赏

微信扫一扫打赏