LVM

Z DCEwiki
Skočit na navigaci Skočit na vyhledávání

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í


Obsah manuálu

(Vpravo je uveden aktuální stav zpracování kapitoly)

LVM (bloková zařízení)
 
100%
LVM (skupina)
 
100%
LVM (logické disky)
 
100%
Praktické příklady práce s LVM   
 
00%
Tisková verze
Diskuze k tomuto materiálu

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

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.

Poznámka
vgcreate testovaci_skupina /dev/hda /dev/sda1 /dev/md1

Monitoring LVM skupiny

Ke zjišťování informací o stavu LVM skupin je určen příkaz vgdisplay. Ten, pokud nemá jako paramater uveden žádnou konkrétní LVM skupinu vypíše informace o veškerých LVM skupinách, přítomných v systému.

Poznámka
stroj:~# vgdisplay
  --- Volume group ---
  VG Name               storage
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  16
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               0
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               2,70 TiB
  PE Size               4,00 MiB
  Total PE              706666
  Alloc PE / Size       614044 / 2,34 TiB
  Free  PE / Size       92622 / 361,80 GiB
  VG UUID               DilGo6-5ZAI-Gj6B-fElz-QHp1-DIIn-Y1beZG

Z výše uvedeného výpisu lze vyčíst, že..

  • v systému je přítomna pouze jedna LVM skupina s názvem storage
  • v rámci této skupiny existují dva logické disky (viz hodnota parametru Cur LV)
  • tato skupina je postavena nad dvěmi fyzickými blokovými zařízeními (viz hodnota parametru Cur PV)
  • celková kapacita této LVM skupiny může dosáhnout 2,70 TiB
  • velikost jednoho extentu je 4 MiB
  • celkem by tato skupina mohla zaplnit 706666 extentů (viz hodnota parametru Total PE), ale momentálně jich má obsazeno "pouze" 614044, takže pro případný další logický disk je k dispozici 92622 extentů o celkové kapacitě cca 361,80 GiB

Vyřazení blokového zařízení ze skupiny

Poznámka
vgreduce testovaci_skupina /dev/sda
Upozornění Před vyřazením blokového zařízení ze skupiny z něj musí být odsunuty veškeré extenty viz výše - #Příprava blokového zařízení na vyřazení - přesun dat

Rozšíření skupiny o další bloková zařízení

Rozdělení LVM skupiny

1, Uvolnit zařízení z <výchozí skupiny>, které bude patřit do <nové skupiny> pvmove /dev/sda /sdb

2, Rozdělit výchozí skupinu vgsplit <výchozí skupina> <nová skupina> <zařízení z původní skupiny, které bude patřit do nové skupiny>

3, Uklidit disky..

Přenesení LVM skupiny do jiného stroje

Přesun celé skupiny

1, odpojit všechny logické disky které patří do skupiny 2, deaktivovat skupinu (vgchange -an <jméno skupiny>) 3, připravit skupinu <jméno skupiny> na export (vgexport <jméno skupiny>)

Disky, resp. celou skupinu lze pak přendat do jiného stroje

Aktivace (import) skupiny

1, po přendání disků do jiného stroje nejprve příkazem pvscan identifikujeme skupinu.. 2, Příkazem vgimport <jméno skupiny> skupinu naimportujeme (na lvm1 musíme uvést i bloková zařízení co do ní patří) 3, Aktivace skupiny (vgchange -ay <jméno skupiny>

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

Monitoring logických disků

Ke zjišťování informací o stavu logických disků v rámci LVM skupin je určen příkaz lvdisplay. Ten, pokud nemá jako paramater uveden žádný konkrétní logický disk vypíše informace o veškerých dostupných logických discích, přítomných v systému.

Poznámka
spike:~# lvdisplay
  --- Logical volume ---
  LV Name                /dev/storage/data
  VG Name                storage
  LV UUID                37A7V2-rycW-eGyk-jfIQ-fzMr-hH0C-Wl4H1E
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                2,33 TiB
  Current LE             611544
  Segments               3
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0
   
  --- Logical volume ---
  LV Name                /dev/storage/vidle
  VG Name                storage
  LV UUID                MUzG2Z-n0kS-2yB2-9csa-Bxh4-HqCW-EH0SqG
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                9,77 GiB
  Current LE             2500
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:1

Z výše uvedeného výpisu lze vyčíst, že..

  • v systému jsou dva logické disky
  • oba logické disky jsou součástí jedné skupiny s názvem storage
  • logický disk s názvem data:
    • je v systému vytvořen jako blokové zařízení dm-0 (viz u posledního parametru - Block Device - číslo za dvojtečkou)
    • má velikost 2,33 TiB
    • je rozdělen do tří segmentů
    • a není připojen ( viz parametr # open)
  • logický disk s názvem vidle:
    • je v systému vytvořen jako blokové zařízení dm-1
    • má velikost 9,77 GiB
    • tvoří jeden segment
    • rovněž není připojen

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..