LVM
LVM (Logical Volume Management) je pružnější metodou správy diskového prostoru než RAID. Nevýhodou fyzických blokových zařízení (např. pevných disků) je obtížné přerozdělování volného místa po jejich prvotním rozdělení na diskové oddíly. LVM tento problém elegantně řeší přidáním logické vrstvy mezi fyzická média a operační systém. Tato logická vrstva umožňuje libovolně (pokud použitá zařízení podporují hotswap, tak i za chodu) přidávat (nebo odebírat) jiná bloková zařízení a tím podle potřeby měnit jak diskovou kapacitu tak řešit výměnu blokových zařízení, aniž by bylo nutné stroj restartovat. První verze LVM se v linuxovém jádře objevila roku 1998 (autorem byl Heinz Mauelshagen) a byla založena na LVM z HP-UX.
V čem je LVM výhodnější než RAID?
- Umožňuje sloučit do jednoho zařízení ( Volume Groups ) bloková zařízení bez ohledu na jejich velikost a typ. Tj. jak fyzické disky, tak virtuální disky připojené přes loop, nebo přes síťová bloková zařízení.
- Diskovou kapacitu logických blokových zařízení lze za běhu nejenom zvětšovat, ale také zmenšovat.
- Logická bloková zařízení lze za běhu přesouvat mezi blokovými zařízeními, takže lze v případě potřeby blokové zařízení ze skupiny odebrat za běhu, bez toho, že by došlo ke ztrátě dat.
- LVM podporuje snapshot blokových zařízení
Základním prvkem LVM je skupina blokových zařízení, spojená do jednoho celku. V rámci této skupiny lze tvořit logické celky, které se chovají jako klasická bloková zařízení.
Základní stavební jednotky se kterými LVM pracuje
- Physical volume (fyzický disk) - oddíl na fyzickém disku (např. /dev/hda1), popřípadě celý fyzický disk (např. /dev/hda).
- Volume group (skupina disků) - sdružuje jednotlivé fyzické svazky do jednoho celku, nad kterým se definují logické svazky.
- Logical volume (logický disk) - se tvoří v rámci skupiny a operačnímu systému se jeví jako fyzické blokové zařízení.
LVM skupina
Pro vytváření LVM skupin a k práci s nimi, musí být v systému nainstalován balík nástrojů lvm2 a v jádře zaveden modul dm-mod
Příprava blokového zařízení
Aby bylo možné blokové zařízení přidat do LVM skupiny, je třeba aby mělo nastaveno správný identifikátor. To lze zajistit buďto příkazem pvcreate, nebo u diskových oddílů nastavením přes fdisk - a to tak že nastavíme příslušnému diskovému oddílu identifikátor ...
Příprava HDD disku /dev/hda , logického oddílu /dev/sda1 a raidového pole /dev/md1 pro integraci do LVM skupin(y):
pvcreate /dev/hda /dev/sda1 /dev/md1
|
Seskupení blokových zařízení do skupiny
Takto připravená bloková zařízení se seskupí do skupiny testovaci_skupina
v jejímž rámci pak bude možné tvořit logické disky.
vgcreate testovaci_skupina /dev/hda /dev/sda1 /dev/md1
|
Monitoring LVM skupiny
vgdisplay testovaci_skupina
|
Pokud není uvedena skupina, vypíše příkaz informace o všech existujících skupinách |
Monitoring blokových zařízení v rámci skupiny
pvdisplay /dev/sda
|
Pokud není uvedeno žádné zařízení, vypíše příkaz informace o všech existujících blokových zařízeních, s identifikátorem pro LVM |
Příprava blokového zařízení na vyřazení - přesun dat
pvmove /dev/sda
|
Vyřazení blokového zařízení ze skupiny
vgreduce testovaci_skupina /dev/sda
|
Logické disky v rámci LVM skupiny
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
Zrušení logického disku
Změní se pořadí disků, jak to ošetřit? Nepoužívat přímo zařízení, ale symlink v /dev/mapper
Úprava velikosti logických disků
Velikost těchto logických celků lze za chodu měnit a pokud to podporuje souborový systém, který na nich je (zvládá to kupř. ReiserFS, souborové systémy EXT, nebo XFS), i měnit za chodu jejich velikost.
lvreduce -L -50G /dev/test_vg/test_lv
resize2fs /dev/test_vg/test_lv
(EXT2/3)
Zvětšíme logický svazek o 50GB
lvextend -L +50G /dev/test_vg/test_lv
resize2fs /dev/test_vg/test_lv
(EXT2/3)
Přesuny logických disků v rámci skupiny fyzických zařízení
Snapshoty
LVM také umožňuje dělat za chodu snapshoty - tj. zakonzervovat stav diskového oddílu v určitý moment, a pak jej za chodu někam odzálohovat, přesto že se svazkem programy dále pracují (zapisují, vytvářejí a mažou soubory a podobně).
Přesun LVM skupiny na jiný stroj
V případě že potřebujeme přehodit disky na jiný stroj..