Obsah

LVM - Logical Volume Management

LVM je metoda správy diskového prostoru, která poskytuje poměrně velkou variabilitu. Je to mezivrstva mezi ovladačem pevného disku a operačním systémem. Umožňuje např. různě spojovat disky, disková pole, nebo diskové oddíly do logických skupin (groups, vg). V rámci logických skupin pak jde vytvářet logické části (lv) a na nich pak souborové systémy. Přičemž není problém tyto logické části zvětšovat nebo zmenšovat podle potřeb.

Změna velikosti LV neznamená automaticky změnu souborového systému, který je na něm vytvořen. Souborový systém musí podporovat změnu velikosti (před zmenšením LV je typicky potřeba změnit souborový systém, např ext3; při zvětšování se zase zvětší LV a potom se může zvětši souborový systém).

Základní pojmy

Dále PE – Physical extents – Fyzické bloky LVM (výchozí velikost je 4 MB), LE – Logical extents – Logické bloky, které se mapují na PE.

Snímky - snapshot

LVM (údajně ne všechny verze) umožňují vytvářet snapshoty logické části. Velikost této snapshot logické části je pak odvyslá od toho, kolik změn se od vytvoření snapshotu/snímku provedlo. Snapshot bývá vytvořen za nějakým účelem (záloha - zachytí konzistentní stav v jednom okamžiku; nebo obnova dat) - po splnění účelu je nanejvýš vhodné snapshot odstranit, protože zabírá víc a víc místa a zpomaluje systém.

ext4 umí také snapshoty.

Thin provisioning

Klasické LV mají pevně přiřazeno své místo na disku - jsou tedy jakoby thick, tlustými jednotkami. Thin znamená, že se vytvoří pool LV a v něm vytvářejí extend LV. Každý z nich může má nastavenou velikost, ale nealoukují si takový prostor na disku, ale zabírají postupně místo v poolu, podle toho jak se zvětšují. Takto je tedy možné třeba dvaceti LV nastavit 100G prostor, ikdyž máme jen 500G disk. Až se prostor bude blížit k zaplnění (až tehdy), pořídí se další disk o který se rozšíří VG, resp. LV pool.

Pro práci s thin provisioning je potřeba balík thin-provisioning-tools.

Pool nesmí přetéct. Pool, který je pravý LV, potřebuje k sobě ještě jeden LV (podstatně menší) LV s metadaty.

https://wiki.gentoo.org/wiki/LVM#Thin_provisioning
http://www.tecmint.com/setup-thin-provisioning-volumes-in-lvm/
https://support.dce.felk.cvut.cz/mediawiki/index.php/LVM_%28thin_provisioning%29

Příkazy

lvm help
lvscan

vgdisplay

lvcreate
lvdisplay

lvextend
lvreduce
lvremove

Vytvoření LV, zadat na kterém VG vytvořit.

lvcreate -L 10G -n nazev_lv nazev_vg

V systému je pak jako /dev/nazev_vg/nazev_lv

Vytvoření souborového systému na LV např:

mkfs.ext3 /dev/nazev_vg/nazev_lv

Vytvoření snapshotu:

lvcreate -s -L 1G -n nazev_lv_snapshot /dev/nazev_vg/nazev_lv

Zvětšení disku

lvextend -L40G /dev/raid1/server1
resize2fs /dev/raid1/server1
# ext4 není třeba umount

Záloha nastavení LVM

Mohlo by se stát, že se poškodí místo na disku, kde jsou metadata k LVM. Bez nich je prakticky nemožné potom data z disku dostat. Proto je metadata na místě zálohovat:

vgcfgbackup -f lvm.backup