LVM v Linuxu: Porovnání verzí

Z Milan Kerslager
Přejít na: navigace, hledání
m (Vytvoření VG: fix)
m (Zvětšení VG: doplnění)
Řádka 82: Řádka 82:
  
 
  vgextend NAZEV_VG /dev/hda4
 
  vgextend NAZEV_VG /dev/hda4
 +
 +
Po zvětšení VG jsou v něm dostupné volné PE, které lze příkazem <code>lvresize</code> přidat do vybraného LV (a tím LV zvětšit). Po zvětšení LV lze použít příkaz <code>ext2online</code> nebo <code>resize2fs</code>, kterým je možné zvětšit souborový systém.
  
 
=== Zmenšení VG ===
 
=== Zmenšení VG ===

Verze z 15. 1. 2011, 21:46

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

Vytvoření PV

PV lze vytvořit příkazem:

pvcreate /dev/hda4

Změna velikosti PV

Velikost PV lze zvětšit i v případě, že je na něm aktivní LV. Zmenšování funguje jen za předpokladu, že odebíraná PE nejsou alokována. V budoucnosti bude možná příkaz schopen alokované bloky přesunout podobně, jako to dělá příkaz pvmove. Pokud je příkaz uveden bez parametru, je velikost PV přizpůsobena velikosti blokového zařízení, na kterém je PV umístěno (tj. velikosti disku, oddílu, md zařízení a podobně). Pomocí parametru --setphysicalvolumesize může být uvedena velikost.

pvresize /dev/sda1
pvresize --setphysicalvolumesize 40G /dev/sda1

Vytvoření VG

Jsou-li k dispozici PV, je možné vytvořit VG níže uvedeným příkazem. Vytvořený VG se automaticky aktivuje.

vgcreate NAZEV_VG SEZNAM_PV

Aktivace VG

Aktivace se provádí automaticky při startu počítače. Ručně ji lze provést příkazem:

vgchange -a y

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 pvcreate. Další PV lze do VG přidat příkazem:

vgextend NAZEV_VG /dev/hda4

Po zvětšení VG jsou v něm dostupné volné PE, které lze příkazem lvresize přidat do vybraného LV (a tím LV zvětšit). Po zvětšení LV lze použít příkaz ext2online nebo resize2fs, kterým je možné zvětšit souborový systém.

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

Vytvoření LV

LV lze na existujícím VG vytvořit pokud jsou k dispozici nealokované PE. Níže uvedený příkaz vytvoří LV o velikosti 1500 MB. Přepínačem -l lze vytvořit LV o daném počtu PE.

lvcreate -L1500 -nNAZEV_LV NAZEV_VG

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. Velikost souborového systému nemusí přesně odpovídat velikosti oddílu (partition) nebo logického svazku – může být o něco menší. Přesnou informaci získáme výpisem informací o souborovém systému pomocí příkazu tune2fs (v případě souborových systémů ext2, ext3 nebo ext4). Velikost zjistíme vynásobením velikosti bloku a počtu bloků:

tune2fs -l /dev/NAZEV_VG/NAZEV_LV | grep Block
Block count:              4608639
Block size:               4096
Blocks per group:         32768

Ve výše uvedeném výpisu je velikost bloku 4096 bajtů (Blosk size), a protože je počet bloků 4608639, je celková velikost souborového systému 18.876.985.344 bajtů (17,58 GiB). Příkaz resize2fs přijímá jako parametr počet bloků, který má mít výsledný zmenšený souborový systém. Zmenšování lze provést pouze na odpojeném souborovém systému, a proto je jako první použit příkaz umount:

umount /dev/NAZEV_VG/NAZEV_LV
resize2fs /dev/NAZEV_VG/NAZEV_LV početbloků

Po zmenšení souborového systému je možné zmenšit logickou jednotku (LV) na stejnou (nebo o kousek větší) velikost. V žádném případě není možné zmenšit LV na menší velikost, než má souborový systém. Příkaz lvreduce přijímá různé parametry velikosti (včetně relativních nebo násobků jednotek). V tomto případě zjistíme informace o svazku (VG), kde nás zajímá velikost PE (PE Size), protože jejich požadovaný počet předáváme příkazu lvreduce (nezapomeňte, že zaokrouhlit se musí směrem nahoru). Obvyklá velikost PE je například 4 MiB (tj. 4×1024×1024 = 4194304 bajtů).

vgdisplay -v NAZEV_VG
lvreduce -lpočetPE /dev/NAZEV_VG/NAZEV_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 -v /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. Parametr -v zajistí vypisování informací o průběhu přesunu. Jako dodatečné parametry lze určit PV, na který bude přesun uskutečněn (a též čísla PE). 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

PV svazky mají na sobě označení (label), pomocí kterého jsou v systému nalezeny. Pokud chcete označení odstranit, aby daný oddíl již nebyl identifikován jako PV (viz výstup příkazu pvscan).

pvremove /dev/hda4

Externí odkazy