LINUX.ORG.RU
ФорумAdmin

LVM2, KVM, вопросы


0

2

Мучает такой вопрос.

Представим ситуацию: На хост-машине создана группа томов LVM2 (назовём её vgvirt), в ней создан логический том (назовём его lv01). Этот логический том определён как диск virtio в свойствах одной из виртуальных машин KVM. В виртуальной машине на этом диске созданы посредством fdisk или gparted 2 раздела - один из них boot - vda1, другой - физический том LVM2. На этом физическом томе создана группа томов, в которой «нарезаны» тома для /, /usr, /var, /opt, /home, /tmp, swap.

Вопрос: Возможно ли увеличивая с помощью lvextnd логический том lv01 на хост-машине увеличить доступное пространство для LVM-группы в виртуальной машине? Если такое возможно, то посоветуйте как это лучше сделать.

А чего тут невозможного. Расширяешь реальный том. Вырубаешь вирмашину. Врубаешь вирмашину - она видит диск другого объема но с теми же данными. Увеличиваешь том в вирмашине.

anonymous
()
Ответ на: комментарий от anonymous

Так выглядит группа томов на хост-системе.

[root@arbor ~]# vgdisplay
  --- Volume group ---
  VG Name               vg_arbor
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  39
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                16
  Open LV               14
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               272.84 GiB
  PE Size               4.00 MiB
  Total PE              69846
  Alloc PE / Size       35474 / 138.57 GiB
  Free  PE / Size       34372 / 134.27 GiB
  VG UUID               2dbJlu-pMvN-Vnz8-pkHp-WxWL-IxDM-OLTiKb
Посмотрим какие логические тома сделаны в группах томов.
[root@arbor ~]# lvs
  LV               VG       Attr   LSize   Origin Snap%  Move Log Copy%  Convert
  lvamanda_data    vg_arbor -wi-ao   4.88g
  lvamanda_main    vg_arbor -wi-ao   7.81g
  lvamanda_swap    vg_arbor -wi-ao   1.95g
  lvapextest_data  vg_arbor -wi-ao  29.30g
  lvapextest_main  vg_arbor -wi-ao   7.81g
  lvapextest_swap  vg_arbor -wi-ao   1.95g
  lvfreebsd_backup vg_arbor -wi-a-   9.77g
  lvfreebsd_main   vg_arbor -wi-a-   9.77g
  lvhome           vg_arbor -wi-ao 512.00m
  lvinstall        vg_arbor -wi-ao  48.83g
  lvopt            vg_arbor -wi-ao 512.00m
  lvroot           vg_arbor -wi-ao 512.00m
  lvswap           vg_arbor -wi-ao   8.00g
  lvtmp            vg_arbor -wi-ao   1.00g
  lvusr            vg_arbor -wi-ao   5.00g
  lvvar            vg_arbor -wi-ao   1.00g
Детальная информация о томе, который необходимо изменить.
[root@arbor ~]# lvdisplay /dev/vg_arbor/lvapextest_main
  --- Logical volume ---
  LV Name                /dev/vg_arbor/lvapextest_main
  VG Name                vg_arbor
  LV UUID                6s6Bvd-i258-35dk-LasB-ueR4-PDvG-Ik3U9f
  LV Write Access        read/write
  LV Status              available
# open                 1
  LV Size                7.81 GiB
  Current LE             2000
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:9
Теперь взглянем на состояние LVM на виртуальной машине.

Так выглядит физический том, на котором создана группа томов виртуальной машины.

[root@apextest ~]# pvdisplay
  --- Physical volume ---
  PV Name               /dev/vda2
  VG Name               vg_apextest
  PV Size               7.56 GiB / not usable 2.00 MiB
  Allocatable           yes
  PE Size               4.00 MiB
  Total PE              1935
  Free PE               655
  Allocated PE          1280
  PV UUID               8L5p55-L5DF-7OQn-fbUy-tfh9-deQg-a6V1GG
Так выглядит сама группа томов виртуальной машины.
[root@apextest ~]# vgdisplay
  --- Volume group ---
  VG Name               vg_apextest
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  9
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                6
  Open LV               6
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               7.56 GiB
  PE Size               4.00 MiB
  Total PE              1935
  Alloc PE / Size       1280 / 5.00 GiB
  Free  PE / Size       655 / 2.56 GiB
  VG UUID               TwFV0n-d1r0-4fvw-LELH-1QAT-oqfw-i1tGMg
В рамках этой группы томов имеем следующие логические тома.
[root@apextest ~]# lvs
  LV     VG          Attr   LSize   Origin Snap%  Move Log Copy%  Convert
  lvhome vg_apextest -wi-ao 256.00m
  lvopt  vg_apextest -wi-ao 256.00m
  lvroot vg_apextest -wi-ao 512.00m
  lvtmp  vg_apextest -wi-ao 512.00m
  lvusr  vg_apextest -wi-ao   3.00g
  lvvar  vg_apextest -wi-ao 512.00m

Увеличиваем логический том на хост-системе

[root@arbor ~]# lvextend -L+2G /dev/vg_arbor/lvapextest_main
  Extending logical volume lvapextest_main to 9.81 GiB
  Logical volume lvapextest_main successfully resized

Rubystar ★★
() автор топика
Ответ на: комментарий от anonymous

Т.к. LVM используется для корневой файловой системы загружаемся с какого-нибудь Live-CD. Я использую Parted Magic Live CD

root@PartedMagic:~# fdisk /dev/vda
Взглянем на состояние таблицы разделов диска. Увидим, что система видит диск размером 10 GB вместо прежних 8GB.
Command (m for help): p

Disk /dev/vda: 10.5 GB, 10536091648 bytes
16 heads, 63 sectors/track, 20414 cylinders, total 20578304 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0009e357

   Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048      526335      262144   83  Linux
/dev/vda2          526336    16383999     7928832   8e  Linux LVM
Удалим раздел диска, содержащий физический том LVM
Command (m for help): d
Partition number (1-4): 2
Создадим новый том, начиная с того же сектора, что и удалённый том, и расширив его на весь диск.
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4, default 2):
Using default value 2
First sector (526336-20578303, default 526336):
Using default value 526336
Last sector, +sectors or +size{K,M,G} (526336-20578303, default 20578303):
Using default value 20578303
Ещё раз взглянем на состояние таблицы разделов диска.
Command (m for help): p

Disk /dev/vda: 10.5 GB, 10536091648 bytes
16 heads, 63 sectors/track, 20414 cylinders, total 20578304 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0009e357

   Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048      526335      262144   83  Linux
/dev/vda2          526336    20578303    10025984   83  Linux
Необходимо поменять идентификатор раздела на Linux LVM.
Command (m for help): t
Partition number (1-4): 2
Hex code (type L to list codes): 8e
Changed system type of partition 2 to 8e (Linux LVM)
Теперь всё в порядке.
Command (m for help): p

Disk /dev/vda: 10.5 GB, 10536091648 bytes
16 heads, 63 sectors/track, 20414 cylinders, total 20578304 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0009e357

   Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048      526335      262144   83  Linux
/dev/vda2          526336    20578303    10025984   8e  Linux LVM
Записываем изменения таблицы разделов на диск.
Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
И перезагружаемся. Необходимо снова загрузиться с Live CD.
root@PartedMagic:~# reboot
Наша группа томов пока без изменений.
root@PartedMagic:~# vgdisplay
  --- Volume group ---
  VG Name               vg_apextest
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  11
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                6
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               7.56 GiB
  PE Size               4.00 MiB
  Total PE              1935
  Alloc PE / Size       1280 / 5.00 GiB
  Free  PE / Size       655 / 2.56 GiB
  VG UUID               TwFV0n-d1r0-4fvw-LELH-1QAT-oqfw-i1tGMg
И физический том пребывает в первоначальном состоянии.
root@PartedMagic:~# pvdisplay
  --- Physical volume ---
  PV Name               /dev/vda2
  VG Name               vg_apextest
  PV Size               7.56 GiB / not usable 2.00 MiB
  Allocatable           yes
  PE Size               4.00 MiB
  Total PE              1935
  Free PE               655
  Allocated PE          1280
  PV UUID               8L5p55-L5DF-7OQn-fbUy-tfh9-deQg-a6V1GG
Расширяем физический том.
root@PartedMagic:~# pvresize /dev/vda2
  Physical volume "/dev/vda2" changed
  1 physical volume(s) resized / 0 physical volume(s) not resized
Видим, что он расширился.
root@PartedMagic:~# pvdisplay
  --- Physical volume ---
  PV Name               /dev/vda2
  VG Name               vg_apextest
  PV Size               9.56 GiB / not usable 2.00 MiB
  Allocatable           yes
  PE Size               4.00 MiB
  Total PE              2447
  Free PE               1167
  Allocated PE          1280
  PV UUID               8L5p55-L5DF-7OQn-fbUy-tfh9-deQg-a6V1GG
Снова взглянем на группу томов. Видно, что её размер увеличился на 2GB.
root@PartedMagic:~# vgdisplay
  --- Volume group ---
  VG Name               vg_apextest
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  12
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                6
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               9.56 GiB
  PE Size               4.00 MiB
  Total PE              2447
  Alloc PE / Size       1280 / 5.00 GiB
  Free  PE / Size       1167 / 4.56 GiB
  VG UUID               TwFV0n-d1r0-4fvw-LELH-1QAT-oqfw-i1tGMg
Перезагружаемся и загружаем виртуальную машину.
root@PartedMagic:~# reboot
После чего можно увеличивать логические тома в виртуальной машине с помощью lvextend и расширять файловые системы с помощью resize2fs или других инструментов.

Rubystar ★★
() автор топика
Ответ на: комментарий от Rubystar

.Т.к. LVM используется для корневой файловой системы загружаемся с какого-нибудь Live-CD

Удалим раздел диска, содержащий физический том LVM

Месье знает толк в извращениях.

Смысл LVM как раз в том, чтобы ничего не удалять, и не перезагружаться.

!) В свободном пространстве диска вирмашины создаем еще один раздел.
2) Инициализируем его через pvcreate
3) Добавляем его к группе томов через vgextend
4) Расширяем логический том через lvextend
5) Расширяем ФС без отмонтирования
...
Profit




anonymous
()
Ответ на: комментарий от anonymous

Да, тоже способ, сейчас попробую и отпишусь.

Rubystar ★★
() автор топика
Ответ на: комментарий от anonymous

Перезагружаться всё равно придётся, т.к. после lvextend гостевая система ничего не знает про увеличение диска, на котором находится её физический том.

Rubystar ★★
() автор топика
Ответ на: комментарий от sdio

Да, я уже понял, после добавления диска нужно в виртуальной машине сделать echo '1' > /sys/bus/pci/rescan.

А увеличенный том LVM без перезагрузки остаётся таким же, т.е. рескан pci не помогает. Может хост через libvirt должен «сказать» виртуалке, что у неё поменялся размер диска, но как? Я всё тот вариант с увеличением размера логического тома обсасываю...

Rubystar ★★
() автор топика
Ответ на: комментарий от Rubystar

Зря наверное, всё равно «на горячую» даже если размер диска «увеличится», то я не смогу увеличить физический том в виртуалке.

Rubystar ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.