Xen:如何将基于图像的客户机转换为基于LVM的客户机

Xen:如何将基于图像的访客转换为基于LVM的访客

版本1.0
作者:Falko Timme

这篇简短的文章解释了如何将使用磁盘映像的Xen guest虚拟机转换/转换为LVM卷。 使用磁盘映像的虚拟机在磁盘IO上非常慢,重,所以使用LVM通常更好。 而且,基于LVM的guest虚拟机更易于备份(使用LVM快照 )。

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

1初步说明

要使用基于LVM的guest虚拟机,您需要一个卷组,它具有一些未分配给任何逻辑卷的可用空间。 在这个例子中,我使用大小约为的卷组/ dev / vg0 。 465GB ...

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               465.28 GB
  PE Size               4.00 MB
  Total PE              119112
  Alloc PE / Size       59842 / 233.76 GB
  Free  PE / Size       59270 / 231.52 GB
  VG UUID               gnUCYV-mYXj-qxpM-PEat-tdXS-wumf-6FK3rA

server1:~#

...包含大小约为的逻辑卷/ dev / vg0 / root 。 232GB和逻辑卷/ dev / vg0 / swap_1 (约1GB) - 其余的未分配,可用于Xen guest:

lvdisplay
server1:~# lvdisplay
  --- Logical volume ---
  LV Name                /dev/vg0/root
  VG Name                vg0
  LV UUID                kMYrHg-d0ox-yc6y-1eNR-lB2R-yMIn-WFgzSZ
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                232.83 GB
  Current LE             59604
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           254:0

  --- Logical volume ---
  LV Name                /dev/vg0/swap_1
  VG Name                vg0
  LV UUID                SUI0uq-iTsy-7EnZ-INNz-gjvu-tqLD-rGSegE
  LV Write Access        read/write
  LV Status              available
  # open                 2
  LV Size                952.00 MB
  Current LE             238
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           254:1

server1:~#

我使用以下命令创建的基于映像的Xen guest虚拟机xen1.example.com:

xen-create-image --hostname=xen1.example.com --size=4Gb --swap=256Mb --ip=192.168.0.101 --memory=128Mb --arch=amd64 --role=udev

这是它的Xen配置文件:

vi /etc/xen/xen1.example.com.cfg
#
# Configuration file for the Xen instance xen1.example.com, created
# by xen-tools 3.9 on Mon Mar  9 19:22:40 2009.
#

#
#  Kernel + memory size
#
kernel      = '/boot/vmlinuz-2.6.26-1-xen-amd64'
ramdisk     = '/boot/initrd.img-2.6.26-1-xen-amd64'
memory      = '128'

#
#  Disk device(s).
#
root        = '/dev/xvda2 ro'
disk        = [
                  'file:/home/xen/domains/xen1.example.com/swap.img,xvda1,w',
                  'file:/home/xen/domains/xen1.example.com/disk.img,xvda2,w',
              ]


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

#
#  Networking
#
vif         = [ 'ip=192.168.0.101,mac=00:16:3E:F2:DC:FA' ]

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

如您所见,guest虚拟机正在使用两个磁盘映像: /home/xen/domains/xen1.example.com/disk.img (4GB)和/home/xen/domains/xen1.example.com/swap.img(256MB )。

我们需要精确的图像大小,以便我们可以创建相同大小的逻辑卷。 如果您不记得确切的磁盘和交换大小,可以转到存储图像的目录...

cd /home/xen/domains/xen1.example.com

...并运行以下命令 - 它将以人类可读的格式显示图像大小:

ls -lh

2将图像转换为LVM

在我们转换图像之前,我们必须关闭客人:

xm shutdown xen1.example.com

然后,我们创建与磁盘映像大小相同的逻辑卷,例如:

lvcreate -L4G -n xen1_root vg0
lvcreate -L256M -n xen1_swap vg0

这将创建逻辑卷/ dev / vg0 / xen1_root (4GB)和/ dev / vg0 / xen1_swap (256MB):

lvdisplay
server1:~# lvdisplay
  --- Logical volume ---
  LV Name                /dev/vg0/root
  VG Name                vg0
  LV UUID                kMYrHg-d0ox-yc6y-1eNR-lB2R-yMIn-WFgzSZ
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                232.83 GB
  Current LE             59604
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           254:0

  --- Logical volume ---
  LV Name                /dev/vg0/swap_1
  VG Name                vg0
  LV UUID                SUI0uq-iTsy-7EnZ-INNz-gjvu-tqLD-rGSegE
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                952.00 MB
  Current LE             238
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           254:1

  --- Logical volume ---
  LV Name                /dev/vg0/xen1_root
  VG Name                vg0
  LV UUID                MQzhrS-OpOt-2IbY-BozD-l5vN-3doB-GRtyMc
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                4.00 GB
  Current LE             1024
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           254:2

  --- Logical volume ---
  LV Name                /dev/vg0/xen1_swap
  VG Name                vg0
  LV UUID                GHwsIT-a0sj-M72J-OVof-Ydju-Sexf-Ex824b
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                256.00 MB
  Current LE             64
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           254:3

server1:~#

现在我们可以转换图像如下:

dd if=/home/xen/domains/xen1.example.com/disk.img of=/dev/vg0/xen1_root
dd if=/home/xen/domains/xen1.example.com/swap.img of=/dev/vg0/xen1_swap

(这可能需要很多时间,这取决于图像的大小。)

之后,我们必须打开/etc/xen/xen1.example.com.cfg ...

vi /etc/xen/xen1.example.com.cfg

...并改变...

[...]
disk        = [
                  'file:/home/xen/domains/xen1.example.com/swap.img,xvda1,w',
                  'file:/home/xen/domains/xen1.example.com/disk.img,xvda2,w',
              ]
[...]

... 至 ...

[...]
disk        = [
                  'phy:/dev/vg0/xen1_swap,xvda1,w',
                  'phy:/dev/vg0/xen1_root,xvda2,w',
              ]
[...]

你现在可以再次启动客人了

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

如果一切顺利,您可以删除磁盘映像:

rm -f /home/xen/domains/xen1.example.com/disk.img
rm -f /home/xen/domains/xen1.example.com/swap.img

3链接

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

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

支付宝扫一扫打赏

微信扫一扫打赏