Logical Volume Management
LVM (anglicky Logical Volume Management) je v Linuxu mnohem flexibilnější metoda alokace úložného prostoru, než tradiční metoda pomocí diskových oddílů. Linuxové jádro pomocí LVM umožňuje spojovat více disků, diskových oddílů, RAID nebo jiných zařízení do logických celků, které lze dále využívat stejně jako klasické oddíly. První verze pochází z roku 1998 od Heinze Mauelshagena a byla založena na LVM z HP-UX.
Princip funkce
Nevýhoda běžných pevných disků je obtížné přerozdělování volného místa po jejich prvotním rozdělení na oddíly. LVM tento problém elegantně řeší přidáním logické vrstvy mezi fyzická média a operační systém. Do logické jednotky lze snadno přidávat (nebo odebírat) fyzické disky a tím měnit jejich velikost nebo vyměňovat použité disky.
Další výhodou je možnost vytvořit snímek (anglicky snapshot) logické jednotky. Snímek umožňuje zachytit stav jednotky v čase a dále s ním pracovat (například zálohovat), zatímco se svazkem programy dále pracují (zapisují, vytvářejí a mažou soubory a podobně).
LVM podporuje i zrcadlení svazků (tedy něco jako RAID 1).
Základní stavební jednotky se kterými LVM pracuje
- Physical volume (fyzický svazek) - oddíl na fyzickém disku (např. /dev/hda1), popřípadě celý fyzický disk (např. /dev/hda).
- Volume group (skupina svazků) - sdružuje jednotlivé fyzické svazky do jednoho celku, nad kterým se definují logické svazky.
- Logical volume (logický svazek) - je definován uvnitř skupiny svazků a ve výsledku se operačnímu systému jeví jako fyzický disk.
Příklad vytvoření LVM svazku ze tří fyzických disků
nejdříve zavedeme modul „dm-mod“
modprobe dm-mod
poté převedeme fyzické disky na svazky se kterými umí LVM pracovat:
pvcreate /dev/hda /dev/hdb /dev/hdc
seskupíme je do skupiny svazků:
vgcreate test_vg /dev/hda /dev/hdb /dev/hdc
nyní vytvoříme logický svazek jehož velikost bude součtem velikostí všech tří disků, řekněme že byly použity 100GB disky, vytvoříme tedy 300GB svazek:
lvcreate -L 300000 -n test_lv test_vg
ve vzniklém logickém svazku můžeme vytvořit souborový systém a připojit ho k přípojnému bodu:
mkreiserfs /dev/test_vg/test_lv
nebo mkfs.ext3 /dev/test_vg/test_lv
mount /dev/test_vg/test_lv /mnt/data
Pracujeme s LVM
Zmenšíme logický svazek o 50GB
lvreduce -L -50G /dev/test_vg/test_lv
resize2fs /dev/test_vg/test_lv
Zvětšíme logický svazek o 50GB
lvextend -L +50G /dev/test_vg/test_lv
resize2fs /dev/test_vg/test_lv
Užitečné příkazy
vgdisplay
lvscan
lvrename
vgs
Externí odkazy
- LVM-HOWTO (anglicky)
- Popis příkazů pro práci s LVM (česky)
- Výpočet velikosti diskového oddílu a souborového systému (česky) - při výpočtu jsou i navrženy příkazy pro vytvoření nebo změnu logického oddílu