Dalibor Filus

Jak na LVM

Krátké představení a zprovoznění LVM.

Úvod

Určite znáte problém, kdy nechcete smíchat data systému se svými. Rozdělíte si tedy disk na dva. Jeden systémový a jeden pro data. Pak se ale stane, že vám na datovém disku dojde místo a budete potřebovat kousek uříznout ze systémového. Zde přichází jiné řešení - Logical Volume Management (LVM).

Umožňuje:

LVM nelze použít na oddíl /boot, tato část systému musí být přístupná kvůli zavaděči (a ovladačům na LVM). Jinak lze použít pro jakékoliv jiné oddíly, vč. oddílu pro swap.

Příprava systému

Budeme potřebovat podporu pro LVM jednotky. Na systémech Debian je to balíček lvm2.

apt-get install lvm2

Na systémech rodiny RedHat (RHEL, CentOS) by mělo postačit:

yum install lvm2

Příprava disku

Budete potřebovat alespoň jeden volný oddíl, který využijeme pro LVM. Celý příklad budu vést na ukázkovém systému s prázdným diskem:

Nejprve nastavíme naši vybranou partition jako typ LVM (místo např. Linux, swap, NTFS apod.). To uděláme tak, že např. v programu cfdisk vybereme naši sda2 a nastavíme jí Type na 8e (Linux LVM)

cfdisk /dev/sda

Vybereme disk sda2, stiskeme T (zkratka pro Type), vepíšeme 8e a potvrdíme. Na hlavní obrazovce bychom nyní měli vidět u disku typ Linux LVM. Zapíšeme novou tabulku na disk pomocí stisku Shift+Y a potvrzením napsáním “yes”. Nyní ukončíme program cfdisk stiskem Q.

Nastavení PV - Physical Volume

Aby disk sda2 byl k dispozici pro LVM, musí být celý nastaven jako Physical Volume (PV), proto spustíme následující:

pvcreate /dev/sda2

Dále vytvoříme Volume Group (VG), pojmenujeme ji jako vg0:

vgcreate vg0 /dev/sda2

V této VG již můžeme vytvořit naše logické jednotky (Logical Volume, LV), tedy jednotlivé oddíly disku. Můžeme jich mít tolik, kolik si přejeme. Např. pro začátek chceme 4GB oddíl pro / (root), 10GB pro /home a 10GB pro /var …

lvcreate -n lvol_root -L4G vg0
lvcreate -n lvol_home -L10G vg0
lvcreate -n lvol_var -L10G vg0

Tím jsme vytvořili naše nové oddíly, které si “berou” místo z naší VG. Zbylé místo můžete využít pro další LV, nebo např. rozšířit existující LV o nové místo.

Formátování nových oddílů

Naformátujeme nové oddíly na nějaký souborový systém, např. Ext3 a dáme jim jmenovky. Všimněte si cesty k jejich “device files” vytvořené device mapperem.

mkfs.ext3 /dev/mapper/vg0-lvol_root -L root
mkfs.ext3 /dev/mapper/vg0-lvol_home -L home
mkfs.ext3 /dev/mapper/vg0-lvol_var -L var

Zvětšení/zmenšení Logical Volume (i připojené)

Zde je krása LVM. Zvětšení či přidání nové logické jednotky je otázkou pár příkazů. Mějte na paměti, že “online resizing” (zvětšení/zmenšení připojené jednotky “za běhu”, tedy když je připojena) umí až určitá verze kernelu (tuším od 2.6.14).

Dále většina souborových systémů podporuje zvětšení, ale už ne změnšení (např. XFS, JFS …). Ext3+ podporují jak zvětšení, tak zmenšení. Zmenšení však nelze většinou provést, pokud je disk připojen. Zde parametr -r říká, že chceme zvětšit i souborový systém, který na daném disku sídlí:

lvresize -L +10GB lvol_root -r

Pro použití přepínače -r je potřeba mít nainstalován balíček fsadm. Pokud ho nemáte k dispozici, můžete disk zvětšit ručně:

resize2fs /dev/mapper/vg0-lvol_root

Tento příkaz bez dalších parametrů zvětší oddíl na veškeré jeho dostupné místo, tedy v našem případě 20GB.





blog comments powered by Disqus
» Developer.daemonize!