LINUX.ORG.RU
решено ФорумAdmin

LVM. Увеличить размер.

 


1

2

На гипервизоре увеличил блочное устройство для ВМ на 512мб Сейчас в виртуалке общий объём 4,5гб

lsblk
NAME                MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
vda                 254:0    0  4.5G  0 disk 
├─vda1              254:1    0  487M  0 part /boot
├─vda2              254:2    0    1K  0 part 
└─vda5              254:5    0  3.5G  0 part 
  └─revprx--vg-root 253:0    0  3.5G  0 lvm  /

Пытаюсь увеличить физический диск

pvresize /dev/vda5 
  Physical volume "/dev/vda5" changed
  1 physical volume(s) resized or updated / 0 physical volume(s) not resized

Говорит что 1 физический вольюм ресайзнут, но проверяя

pvs
  PV         VG        Fmt  Attr PSize  PFree
  /dev/vda5  revprx-vg lvm2 a--  <3.52g    0 

свободного ничего нет

ЧЯДНТ…?!?

★★

В гостевых машинах разметка нужна ТОЛЬКО для загрузочного диска. Потому что процедура загрузки требует. Все остальные диски разметки не требуют. Ни партиций ни lvm не нужно. Просто создаёшь ФС на диске и всё.

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

В гостевых машинах разметка нужна ТОЛЬКО для загрузочного диска. Потому что процедура загрузки требует.

Для гостевого линукса ядро, initrd и параметры загрузки (kernel args) можно и снаружи задать.

futurama ★★★★★
()
Ответ на: комментарий от Vsevolod-linuxoid

Это нифига не нормально. Зачем?

На гиервизоре под ВМ’ки 2 диска по 1тб. Блочные устройства для ВМ создаются в lvm-raid.
На гостях разметка lvm

NAME                                   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda                                      8:0    0 931.5G  0 disk 
└─sda1                                   8:1    0 931.5G  0 part 
  ├─vgdata-example1--mirror_rmeta_0    254:0    0     4M  0 lvm  
  │ └─vgdata-example1--mirror          254:4    0   4.5G  0 lvm  
  ├─vgdata-example1--mirror_rimage_0   254:1    0   4.5G  0 lvm  
  │ └─vgdata-example1--mirror          254:4    0   4.5G  0 lvm  
  ├─vgdata-example2--mirror_rmeta_0    254:5    0     4M  0 lvm  
  │ └─vgdata-example2--mirror          254:9    0    12G  0 lvm  
  ├─vgdata-example2--mirror_rimage_0   254:6    0    12G  0 lvm  
  │ └─vgdata-example2--mirror          254:9    0    12G  0 lvm  
  ├─vgdata-example3--mirror_rmeta_0    254:10   0     4M  0 lvm  
  │ └─vgdata-example3--mirror          254:14   0   300G  0 lvm  
  └─vgdata-example3--mirror_rimage_0   254:11   0   300G  0 lvm  
    └─vgdata-example3--mirror          254:14   0   300G  0 lvm  
sdb                                      8:16   0 298.1G  0 disk 
├─sdb1                                   8:17   0   512M  0 part /boot/efi
└─sdb2                                   8:18   0 297.6G  0 part /
sdc                                      8:32   0 931.5G  0 disk 
└─sdc1                                   8:33   0 931.5G  0 part 
  ├─vgdata-example1--mirror_rmeta_1    254:2    0     4M  0 lvm  
  │ └─vgdata-example1--mirror          254:4    0   4.5G  0 lvm  
  ├─vgdata-example1--mirror_rimage_1   254:3    0   4.5G  0 lvm  
  │ └─vgdata-example1--mirror          254:4    0   4.5G  0 lvm  
  ├─vgdata-example2--mirror_rmeta_1    254:7    0     4M  0 lvm  
  │ └─vgdata-example2--mirror          254:9    0    12G  0 lvm  
  ├─vgdata-example2--mirror_rimage_1   254:8    0    12G  0 lvm  
  │ └─vgdata-example2--mirror          254:9    0    12G  0 lvm  
  ├─vgdata-example3--mirror_rmeta_1    254:12   0     4M  0 lvm  
  │ └─vgdata-example3--mirror          254:14   0   300G  0 lvm  
  └─vgdata-example3--mirror_rimage_1   254:13   0   300G  0 lvm  
    └─vgdata-example3--mirror          254:14   0   300G  0 lvm  

Хочу получить всю гибкость от LVM. Да, выглядит немного по-наркомански, но попробуй предложить вариант лучше.

Shprot ★★
() автор топика
Ответ на: комментарий от Shprot
pvcreate /dev/vda
pvcreate /dev/vdc
vgcreate vg_raid1 /dev/vda /dev/vdc
lvcreate --mirrors 1 --type raid1 -l 100%FREE -n lv_raid1 vg_raid1

Объединит /dev/vda и /dev/vdc в одну VG и создаст на них LV, что будет зеркалироваться на обоих дисках в RAID1.

Или тебе множество LV нужно? Тогда делай их так:

lvcreate --mirrors 1 --type raid1 -L16g -n lv_vm01 vg_raid1

Для каждой ВМ. Если диски пустые, можно --nosync добавлять для пропуска синхронизации.

Vsevolod-linuxoid ★★★★★
()
Последнее исправление: Vsevolod-linuxoid (всего исправлений: 4)
Ответ на: комментарий от Shprot

Вынужден сказать, что хотя я и совсем не одобряю хамства со стороны @futurama , я полностью согласен с его неприязнью к тем костылям и велосипедам, что вы нагородили. Ну полную ерунду сделали.

Vsevolod-linuxoid ★★★★★
()
Ответ на: комментарий от Shprot
root@vbox:~# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sda      8:0    0   32G  0 disk 
├─sda1   8:1    0    2G  0 part [SWAP]
└─sda2   8:2    0   30G  0 part /
sdb      8:16   0   32G  0 disk 
sdc      8:32   0   32G  0 disk 
sr0     11:0    1 1024M  0 rom  
root@vbox:~# pvcreate /dev/sdb
  Physical volume "/dev/sdb" successfully created.
root@vbox:~# pvcreate /dev/sdc
  Physical volume "/dev/sdc" successfully created.
root@vbox:~# vgcreate vg_raid1 /dev/sdb /dev/sdc
  Volume group "vg_raid1" successfully created
root@vbox:~# lvcreate --mirrors 1 --type raid1 --nosync -L24g -n lv0 vg_raid1
  WARNING: New raid1 won't be synchronised. Don't read what you didn't write!
  Logical volume "lv0" created.
root@vbox:~# lvcreate --mirrors 1 --type raid1 --nosync -l100%FREE -n lv1 vg_raid1
  WARNING: New raid1 won't be synchronised. Don't read what you didn't write!
  Logical volume "lv1" created.
root@vbox:~# lsblk
NAME                    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sda                       8:0    0   32G  0 disk 
├─sda1                    8:1    0    2G  0 part [SWAP]
└─sda2                    8:2    0   30G  0 part /
sdb                       8:16   0   32G  0 disk 
├─vg_raid1-lv0_rmeta_0  254:0    0    4M  0 lvm  
│ └─vg_raid1-lv0        254:4    0   24G  0 lvm  
├─vg_raid1-lv0_rimage_0 254:1    0   24G  0 lvm  
│ └─vg_raid1-lv0        254:4    0   24G  0 lvm  
├─vg_raid1-lv1_rmeta_0  254:5    0    4M  0 lvm  
│ └─vg_raid1-lv1        254:9    0    8G  0 lvm  
└─vg_raid1-lv1_rimage_0 254:6    0    8G  0 lvm  
  └─vg_raid1-lv1        254:9    0    8G  0 lvm  
sdc                       8:32   0   32G  0 disk 
├─vg_raid1-lv0_rmeta_1  254:2    0    4M  0 lvm  
│ └─vg_raid1-lv0        254:4    0   24G  0 lvm  
├─vg_raid1-lv0_rimage_1 254:3    0   24G  0 lvm  
│ └─vg_raid1-lv0        254:4    0   24G  0 lvm  
├─vg_raid1-lv1_rmeta_1  254:7    0    4M  0 lvm  
│ └─vg_raid1-lv1        254:9    0    8G  0 lvm  
└─vg_raid1-lv1_rimage_1 254:8    0    8G  0 lvm  
  └─vg_raid1-lv1        254:9    0    8G  0 lvm  
sr0                      11:0    1 1024M  0 rom  
root@vbox:~# lvdisplay
  --- Logical volume ---
  LV Path                /dev/vg_raid1/lv0
  LV Name                lv0
  VG Name                vg_raid1
  LV UUID                EuLoWi-Yys3-liTf-b8RH-R0Zo-rzT6-CiwGLS
  LV Write Access        read/write
  LV Creation host, time vbox, 2025-01-12 11:55:02 +0300
  LV Status              available
  # open                 0
  LV Size                24,00 GiB
  Current LE             6144
  Mirrored volumes       2
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           254:4
   
  --- Logical volume ---
  LV Path                /dev/vg_raid1/lv1
  LV Name                lv1
  VG Name                vg_raid1
  LV UUID                SSQA0q-etf8-GXkA-nbT0-3O0A-2CUY-RZoDUf
  LV Write Access        read/write
  LV Creation host, time vbox, 2025-01-12 11:55:26 +0300
  LV Status              available
  # open                 0
  LV Size                <7,99 GiB
  Current LE             2045
  Mirrored volumes       2
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           254:9
   
root@vbox:~# vgdisplay
  --- Volume group ---
  VG Name               vg_raid1
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  5
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               0
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               63,99 GiB
  PE Size               4,00 MiB
  Total PE              16382
  Alloc PE / Size       16382 / 63,99 GiB
  Free  PE / Size       0 / 0   
  VG UUID               ujRbQf-sbQO-OFL5-40Y3-yLPq-63hf-u4CEy4
   

root@vbox:~# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sdb
  VG Name               vg_raid1
  PV Size               32,00 GiB / not usable 4,00 MiB
  Allocatable           yes (but full)
  PE Size               4,00 MiB
  Total PE              8191
  Free PE               0
  Allocated PE          8191
  PV UUID               HuBJNo-DUH7-dmZJ-WjVo-5xdU-mdd0-QwLeje
   
  --- Physical volume ---
  PV Name               /dev/sdc
  VG Name               vg_raid1
  PV Size               32,00 GiB / not usable 4,00 MiB
  Allocatable           yes (but full)
  PE Size               4,00 MiB
  Total PE              8191
  Free PE               0
  Allocated PE          8191
  PV UUID               RniHS8-ePIr-kdAf-zhXH-d8P4-Jwqr-FhdKpS
   
root@vbox:~# 
Vsevolod-linuxoid ★★★★★
()
Последнее исправление: Vsevolod-linuxoid (всего исправлений: 1)
Ответ на: комментарий от Vsevolod-linuxoid

Объединит /dev/vda и /dev/vdc в одну VG и создаст на них LV, что будет зеркалироваться на обоих дисках в RAID1.

Отличная инструкция, только зачем? Я не просил. У меня размечено пуля-в-пулю

Shprot ★★
() автор топика
Ответ на: комментарий от Vsevolod-linuxoid

забавно обнаружить себя хамом, когда один идиот бездоказательно обвиняет меня в даче вредных советов, а другой после нескольких повторов что надо делать, делает наоборот и утверждает что сделал это по моим настойчивым рекомендациям

futurama ★★★★★
()
Последнее исправление: futurama (всего исправлений: 1)
Ответ на: комментарий от futurama

один идиот бездоказательно обвиняет меня в даче вредных советов, а другой после нескольких повторов что надо делать, делает наоборот и утверждает что сделал это по моим настойчивым рекомендациям

За двадцать с лишним лет на LOR это должно было войти в привычку.

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

Ну у тебя я не вижу что именно, нужен ещё вывод:

fdisk -l
lvdisplay
vgdisplay
pvdisplay

Но я могу сразу сказать, что если у тебя непонятно зачем LVM в LVM (sic!), то первой фразой, что произнесет тот, кто после тебя будет работать с этим наглухо нестандартным решением, будет «Что за ****?!, что курил прошлый админ?!!».

И есть шанс, что с непривычки разломает все к чертям. Применять нестандартные практики, например вместо cron использовать самописный скрипт со sleep в бесконечном цикле, что запускается через rc.d – плохая идея, потому что те, кто будут обслуживать ОС после тебя, будут не ожидать увидеть такое и не знать об этом.

Vsevolod-linuxoid ★★★★★
()
Последнее исправление: Vsevolod-linuxoid (всего исправлений: 1)
Ответ на: комментарий от Vsevolod-linuxoid

Во-первых это домашняя лаборатория
Во-вторых зачем мне думать о тех, кто придёт после меня и подстраиваться под них? Я с Владивостока. Компетентных линуксойдов, да и вообще, кто хотя бы что-то умеет в линукс тут по пальцам пересчитать. Подавялющее большинство виндозные эникеи.
В-третьих если работадатель платит нормально, то от него никто не уйдёт.

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

Ну, для старых ядер, примерно до 3.8, там никакой growpart не поможет. Тогда был только один ioctl (BLKRRPART), требующий от ядра перечитать таблицу разделов, но не работающий, если хоть один раздел используется.

А потом завезли ещё ioctl'ов: BLKPG_ADD_PARTITION, BLKPG_DEL_PARTITION, #define BLKPG_RESIZE_PARTITION, позволяющие из user-space указывать ядру границы раздела. И утилиту partx, считывающую таблицу разделов с диска, даже если что-то смонтировано. И более безумную blkpg-part, позволяющую создать/изменить раздел без записи в таблицу разделов, то есть существюущий до первой перезагрузки.

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

В общем да, я олень! Для тестов развернул виртуалку и попробовал сделать действия, которыми я всё сломал.
Ты прав, я затёр сигнатуру LVM.

Может кому пригодится в будущем:

  1. Выключаем ВМ
  2. На гипервизоре увеличиваем место под ВМ (зависит от того, как организовано. Block либо qcow2).
  3. В самой виртуалке (немного очковано) грохаем раздел с lvm
  4. Создаём новый раздел и при выводе сообщения красным (бордовым) шрифтом
Partition #2 contains a LVM2_member signature.

Do you want to remove the signature? [Y]es/[N]o: 

Ни в коем случае не нажимать Y. То есть нажать N

Далее

lvextend -l+100%FREE /dev/вольюмгруппа/лоджикалвольюм
resize2fs /dev/вольюмгруппа/лоджикалвольюм

Профит…!!!

И не надо как @futurama тулить кучу дополнительных физических дисков в вольюмгруппу.

P.S> Спасибо всем ответившим. Интересно было узнать любое мнение. Учту в будущем

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

И не надо как futurama тулить кучу дополнительных физических дисков в вольюмгруппу.

А ещё можно было читать, что о предлагает. Умный человек, между прочим. А не приписывать ему свою идею про лишние диски в vg

router ★★★★★
()