LVM v Linuxu

Z Milan Kerslager
Verze z 8. 10. 2009, 09:39, kterou vytvořil Milan.Kerslager (diskuse | příspěvky) (LV – Logical Volume: fix)
Přejít na: navigace, hledání

LVM (Logical Volume Management) je v Linuxu nástroj, jak spojovat logická zařízení do větších celků. Využívá se pro vytváření velkých souborových systémů, pro možnost plynulého zvyšování kapacity souborových systémů bez nutnosti kopírování dat, pro možnost vyměňování disků, vytváření snímků souborových systémů a podobně.

Struktura LVM

LVM operuje s PV (Physical Volume), VG (Volume Group) a LV (Logical Volume). Základem LVM jsou bloková zařízení (PV), ze kterých se pak sestavují svazky (VG) a na nich se vytvářejí logické jednotky (LV), která vystupují jako bloková zařízení a lze je tedy snadno naformátovat a použít jako nosné médium pro souborový systém.

PV – Physical Volume

PV jsou bloková zařízení (nejčastěji oddíl, ale může to být třeba i celý disk, případně RAID pole). Vytváří se příkazem:

pvcreate /dev/hda3

Dostupné PV lze vypsat příkazy:

pvscan
pvdisplay

Velikost PV je udána v bajtech nebo v PE (Physical Extent).

VG – Volume Group

Svazky sdružují PV do větších celků. Parametrem příkazu vgcreate je název nového svazku a pak seznam PV, které budou do VG zařazeny. Další PV lze samozřejmě do svazku přidávat dodatečně, případně je i odebírat (vše za provozu). Vytvoření svazku:

vgcreate NAZEV_VG /dev/hda3

Dostupné VG lze vypsat příkazy:

vgscan
vgdisplay

Druhý příkaz zobrazí též velikost dostupného místa v bajtech a v PE.

VG svazky je nutné aktivovat (při startu systému je provedeno obvykle automaticky), k čemuž slouží příkaz:

vgchange -a y

LV – Logical Volume

Na VG svazku lze vytvořit logickou jednotku (LV), se kterou se dále může pracovat jako s běžným blokovým zařízením (např. oddílem na pevném disku). Následující příkaz vytvoří 1500 MB velkou logickou jednotku:

lvcreate -L1500 -nNAZEV_LV NAZEV_VG

Velikost vytvářeného LV je možné zadat v MB (přepínač -L) nebo v počtu PE, který se pak uvádí pomocí přepínače -l.

Seznam dostupných LV lze zobrazit příkazem:

lvscan
lvdisplay

Vytvořené logické zařízení se nachází v adresáři /dev podobně, jako ostatní bloková zařízení (např. /dev/NAZEV_VG/NAZEV_LV). Lze ho naformátovat a připojit do systému.

Administrace LVM

Deaktivace VG

Deaktivace VG se provádí automaticky při ukončování běhu počítače. Ručně ji lze provést příkazem:

vgchange -a n NAZEV_VG

Odstranění VG

VG lze odstranit příkazem:

vgremove NAZEV_VG

Zvětšení VG

Do VG lze přidat další PV, čímž dojde ke zvětšení VG. Následně je možné zvětšit LV, případně data přemístit a odebrat jiný PV a podobně. Přidávaný PV musí být samozřejmě nejprve vytvořen příkazem pvccreate. Další PV lze do VG přidat příkazem:

vgextend NAZEV_VG /dev/hda4

Zmenšení VG

Z VG lze odstranit PV jen pokud PV není součástí nějakého LV. V takovém případě není z PV alokováno žádné PE, což lze zjistit pomocí příkazu:

pvdisplay

V případě, že žádný PE z vybraného PV není alokováno, lze ho z VG vyjmout příkazem:

vgreduce NAZEV_VG /dev/hda4

Odstranění LV

LV svazek může být po odpojení příkazem umount zrušen:

umount /dev/NAZEV_VG/NAZEV_LV
lvremove /dev/NAZEV_VG/NAZEV_LV

Zvětšení LV

Pokud je ve VG svazku volné místo (tj. volné PE, viz příkaz vgdisplay), je možné LV zvětšit:

lvextend -L12G /dev/NAZEV_VG/NAZEV_LV

Ve výše uvedeném příkazu se logická jednotka LV zvětšuje na velikost 12 GB. Zvětšovat lze též na počet PE pomocí přepínač -l. Znaménkem + a - lze přidávat nebo odebírat od aktuální velikosti. Níže uvedený příkaz zvětšuje svazek o 12345 PE jednotek.

lvextend -l+12345 /dev/NAZEV_VG/NAZEV_LV

Po zvětšení logické jednotky je ještě nutné zvětšit souborový systém, který je na ní umístěn:

resize2fs /dev/NAZEV_VG/NAZEV_LV

V systému RHEL 4 se pro online zvětšení používá příkaz ext2online. Pokud není přítomna podpora pro online zvětšení, je nutné nejprve souborový systém odpojit příkazem umount.

Zmenšení LV

Při zmenšování LV svazku je nutné nejprve zmenšit souborový systém, který je na něm umístěn. Pak je nutné zjistit počet bloků, které zmenšený souborový systém zabírá a zmenšit logickou jednotku LV. Toho lze dosáhnout příkazy:

umount /dev/NAZEV_VG/NAZEV_LV
resize2fs /dev/NAZEV_VG/NAZEV_LV 123456
tune2fs -l /dev/NAZEV_VG/NAZEV_LV
lvreduce -l-67890 /dev/NAZEV_VG/NAZEV_LV

Ve výše zmíněných příkazech se nejprve odpojí souborový systém, který se následně zmenší. Pak jsou vypsány informace o zmenšeném souborovém systému, aby bylo vidět, jak je velký (příkazem tune2fs). Následně je adekvátně zmenšena i logická jednotka LV.

Odstranění PV

Pokud je ve VG svazku dostatek volného místa (PE jednotek), je možné do nich přemístit obsazené jednotky zvoleného PV pomocí příkazu:

pvmove /dev/hda4

Výše uvedeným příkazem budou všechny obsazené PE jednotky na PV svazku /dev/hda4 přemístěny do volného místa příslušného VG svazku. Příkaz lze spustit i když jsou logické jednotky LV na tomto VG svazku používány. Po dokončení přesunu se můžeme pomocí příkazu pvdisplay /dev/hda4 ujistit, že na tomto PV nejsou žádné obsazené PE jednotky. Pak je možné uvolněnou PV z VG svazku odstranit příkazem:

vgreduce NAZEV_VG /dev/hda4

Externí odkazy