LVM

Správa logických svazků na platformě GNU/Linux. Zde vycházím z distribuce Arch Linux.

Jak získat a používat?

Pro logické svazky, jejich vytváření a celkovou správu je potřeba nainstalovat balíček lvm2.

pacman -S lvm2

Je potřeba nahrát modul lvm2 při spouštění systému, jinak se disky nenadetekují. Do souboru /etc/mkinitcpio.conf zapíšu hook lvm2:

HOOKS=(... block lvm2 filesystems ...)

Poté musím přegenerovat inicializační data pro bootování jádra:

mkinitcpio -p linux

Inicializace disku pro LVM

pvcreate /dev/sda2

Vytvoření skupiny svazků VG na disku

vgcreate system /dev/sda2

Rozšíření skupiny svazků

Pokud dochází místo v některých svazcích, je možné rozšířit aktuální skupinu svazků o např. přidaný pevný disk a podobně.

Pokud např. chceme rozšířit skupinu system o kapacitu disku sda5, použiji příkaz:

vgextend system /dev/sda5

Vytvoření logického svazku

Jakmile máme vytvořenou skupinu logických svazků na některém disku, můžeme v ní začít vytvářet jednotlivé logické svazky. Vytvořené svazky pak najdeme v umístění /dev/SKUPINA_SVAZKU/SVAZEK

Syntaxe příkazu pro vytvoření LV může mít dvě podoby, záleží na tom, zda chceme mít pevnou velikost svazku(tehdy se používá přepínač -L) a nebo obsadit zbylé volné místo(přepínač -l).

lvcreate -L 16G system -n swap
lvcreate -l 100%FREE system -n home

Rozšíření logického svazku

lvextend -l +100%FREE /dev/system/root

Zmenšení logického svazku

Např.:

lvresize -L -10G system/home

Odstranění příznaku LVM a svazků

Pro případ potřeby odstranit skupinu svazků a nebo odstranit libovolný svazek ze skupiny se používají příkazy pgremove, vgremove a lvremove.

Výpisy

Pro výpis fyzických oddílů pvdisplay:

pvdisplay --- Physical volume --- PV Name /dev/nvme0n1p2 VG Name system PV Size 100,00 GiB / not usable 4,00 MiB Allocatable yes (but full) PE Size 4,00 MiB Total PE 25599 Free PE 0 Allocated PE 25599 PV UUID WsMjq1-Hl6w-Qtg0-GpaZ-kUDU-FCvO-kdocDR

Pro výpis skupin svazků vgdisplay:

vgdisplay --- Volume group --- VG Name system System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 4 VG Access read/write VG Status resizable MAX LV 0 Cur LV 3 Open LV 3 Max PV 0 Cur PV 1 Act PV 1 VG Size <100,00 GiB PE Size 4,00 MiB Total PE 25599 Alloc PE / Size 25599 / <100,00 GiB Free PE / Size 0 / 0 VG UUID q9Z23E-uajt-AELx-E5Fw-dN2M-xfy3-P1sETU

Pro výpis jednotlivých svazků lvdisplay:

lvdisplay --- Logical volume --- LV Path /dev/system/root LV Name root VG Name system LV UUID dezinl-cgUj-1MMQ-GlJh-4zEc-BMwi-U3SZ6C LV Write Access read/write LV Creation host, time archiso, 2023-01-23 18:27:51 +0100 LV Status available # open 1 LV Size 35,00 GiB Current LE 8960 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 254:0 --- Logical volume --- LV Path /dev/system/swap LV Name swap VG Name system LV UUID gGibk7-dLR1-iXRH-LDHU-Hiff-dtzv-pbumHs LV Write Access read/write LV Creation host, time archiso, 2023-01-23 18:28:07 +0100 LV Status available # open 2 LV Size 16,00 GiB Current LE 4096 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 254:1 --- Logical volume --- LV Path /dev/system/home LV Name home VG Name system LV UUID Wsqt2X-kNsF-C4oW-iITx-JAGb-VQXk-iRmVuC LV Write Access read/write LV Creation host, time archiso, 2023-01-23 18:28:17 +0100 LV Status available # open 1 LV Size <49,00 GiB Current LE 12543 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 254:2