headermask image

Notice: Undefined variable: t in /var/www/user97185/data/www/system-administrators.info/yandex-ad.php on line 15

Notice: Undefined variable: r in /var/www/user97185/data/www/system-administrators.info/yandex-ad.php on line 15
Рекомендую: Фриланс-биржа | Кэшбэк-сервис | Интернет-бухгалтерия

Xen: как преобразовать Image-Based Guest в LVM-Based Guest

В этой короткой статье описывается как перенести/преобразовать гостевую машину Xen, использующую в качестве файловой системы образ диска, на раздел LVM. Виртуальные машины, использующие образ очень медленны и создают высокую нагрузку на систему ввода/вывода, поэтому для работы рекомендуется использовать LVM. Также LVM очень прост для создания резервных копий, используя LVM snapshots.

(1) Входные данные:

Для использования LVM-based виртуальных машин вам необходимо иметь достаточный объем свободного места в группе томов, не занятого логическими разделами. В этом примере я использую группу томов /dev/vg0 размером приблизительно 465Gb.

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, все остальное можно использовать под виртуальные машины.

Спонсор статьи

Лучшая стоматологическая клиника в Санкт-Петербурге “На Стародеревенской”, адрес сайта http://www.clinika1.ru. Лечился у них, доволен просто всем: хорошее обслуживание, невысокие цены, удобное расположение.

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:~#

Имеется виртуальная машина 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, /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'

Как вы видите, гостевая машина использует два образа – 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):

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 и заменим:

[...]
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

Источник: howtoforge.com

Перевод: Сгибнев Михаил. Оригинал перевода