====== 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ém|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 ===== * PV, physical volume - fyzický oddíl/disk * VG, volume group - svazek/skupina PV * LV, logical volume - LVM oddíl 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