LVM (Logical Volume Manager) lze do češtiny přeložit jako správce logických (diskových) oddílů. Tento krátký seriál poskytne návod, jak LVM (ve verzi 2) používat na linuxovém systému. Ve stručnosti si také řekneme, co LVM nabízí navíc oproti klasickému způsobu rozdělení disku. Dnes, po kratším teoretickém úvodu, začneme vytvářením a rušením jednoduchých oddílů.
Co LVM nabízí
… oproti klasickému rozdělení disku? LVM přináší jednotný systém správy diskových oddílů a odděluje tak oddíly se souborovými systémy a daty od fyzických disků. LVM umožňuje:
- Snadné přidávání a rušení nových oddílů
- U klasické tabulky rozdělení disku jsou možné pouze 4 primární oddíly, potom je třeba použít rozšířené. U LVM je počet prakticky neomezený. LVM také transparentně řeší volné místo pro nové oddíly, u klasického rozdělení disku je třeba mít při vytváření oddílu volné místo v jedné spojité oblasti.
- Změnu velikosti oddílů
- LVM umožňuje libovolně zvětšovat a zmenšovat oddíl (s určitými podmínkami například u zrcadleného oddílu).
- Možnost vytvořit zrcadlený (obdoba RAID-1), prokládaný oddíl (RAID-0) i kombinace zrcadlení a prokládání.
- Vkládat další pevné disky
- A tím zvětšit dostupný prostor pro nové oddíly. LVM umožňuje i odebrat pevný disk bez ztráty dat, podmínkou je samozřejmě dostatek volného místa. LVM za běhu přesune oddíly na zbylé fyzické oddíly.
- Snapshoty (i zapisovatelné)
- Snapshot je obraz oddílu vytvořený v učitém čase. Hodí pro např. pro zálohu, kdy zálohovací skript kopíruje data ze snapshotu, který se mu tak nemění pod rukama.
Hierarchie LVM
Koncept LVM lze rozdělit do tří vrstev. Fyzický oddíl (Physical Volume – PV) je místo na blokovém zařízení (typicky pevný disk, oddíl či celé diskové pole). Aby šlo využít místo na disku (nebo třeba jen diskovém oddílu) pro LVM, je potřeba na tomto disku/oddílu (obecně blokovém zařízení) vytvořit PV.
Druhou vrstvou je skupina oddílů (Volume Group – VG). VG v sobě zahrnuje datový prostor ze všech fyzických oddílů do této skupiny přiřazených a toto místo distribuuje do jednotlivých logických oddílů (Logical Volume – LV).
LV tvoří poslední vrstvu konceptu LVM. Na LV už lze vytvořit systém souborů nebo jej používat jako kterékoliv jiné blokové zařízení. Vše je patrné ze schematu:
LVM vlastně spojí místo z pevných disků či jiných úložných zařízení (PV) do jednoho celku (VG) a poté jej opět rozdělí podle potřeby na jednotlivé oddíly (LV).
Inicializace pevných disků – Physical Volume
Pro použití pevného disku v LVM je nutné nejdříve vytvořit PV (physical volume – fyzický oddíl).
pvcreate /dev/sda
PV je možno vytvářet buď na celém disku (např. /dev/sda
), nebo na oddílu (např. /dev/sda1
s typem 0x8e). Při vytváření PV na celém disku mohou ostatní operační systémy disk identifikovat jako prázdný a pokusit se vytvořit korektní tabulku oddílů (partition table), čímž poškodí PV a hrozí ztráta dat. Pokud se bude disk používat pouze v jednom OS, nepředstavuje tento způsob vytvoření problém. Obecně je však vhodnější vytvořit PV na oddílu. Pro ostatní OS to bude v nejhorším případě neznámý diskový oddíl (nebo systém souborů), na který ale nebudou zapisovat.
Informace o fyzických oddílech
Příkazem pvdisplay
můžeme získat informace o fyzickém oddílu. Bez parametru vypíše informace o všech PV v systému (což je často užitečné, ne každý PV musí být zahrnut do skupiny, a je tak snadné na něj zapomenout), nebo lze výpis omezit pouze na jeden oddíl:
pvdisplay /dev/sda --- Physical volume --- PV Name /dev/sda VG Name data PV Size 8.00 GB / not usable 4.00 MB Allocatable yes PE Size (KByte) 4096 Total PE 2047 Free PE 2047 Allocated PE 0 PV UUID lvii22-MKBz-g4nO-zZO2-CsxP-SBmH-Ndij9W
Vytvoření skupiny oddílů – Volume Group
vgcreate data /dev/sda
Příkaz vgcreate
jako první povinný parametr očekává jméno skupiny, za kterým následuje seznam diskových oddílů (zinicializování pomocí pvcreate
), které chceme zahrnout do vytvářené skupiny.
Prohlížení informací o skupině
Pro zobrazení informací o skupině slouží příkaz vgdisplay
. Bez parametru vypíše informace o všech logických skupinách v systému, s parametrem jména skupiny vypíše informace o té požadované skupině.
vgdisplay data --- Volume group --- VG Name data System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 1 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 1 Act PV 1 VG Size 8.00 GB PE Size 4.00 MB Total PE 2047 Alloc PE / Size 0 / 0 Free PE / Size 2047 / 8.00 GB VG UUID 5N1yvF-YMBO-301k-zBIg-ssY1-sLCC-kV8GwA
Výpis zobrazuje, kolik je dané skupině přiřazeno fyzických oddílů, počet vytvořených logických oddílů, volné místo a další údaje. Skupina „data“ je zatím prázdná.
Vytvoření logického oddílu
Logický oddíl již představuje místo, na kterém lze vytvořit systém souborů a ten následně připojit nebo jej používat jinak jako běžné blokové zařízení. Je tak obdobou klasického oddílu.
lvcreate --name video --size 2G data
Minimální parametry příkazu lvcreate
jsou:
- jméno vytvářeného oddílu (
--name
, v příkladu „video“), - velikost tohoto oddílu (
--size
), - jméno skupiny oddílů (v tomto příkladu „data“).
Po této akci zpravidla následuje vytvoření systému souborů a připojení pro běžné používání.
mkfs.ext3 /dev/data/video mount /dev/data/video /mnt
Cesta k LV se může lišit podle nastavení udev. Obvykle vytváří link /dev/skupina/oddil
nebo /dev/mapper/skupina-oddil
Rušení logického oddílu
Před samotných zrušením je třeba odpojit systém souborů.
umount /mnt lvremove /dev/jmeno_skupiny/jmeno_oddilu
Příkaz lvremove
se dotáže na potvrzení zrušení a poté oddíl zruší a zvětší se tak volné místo v dané skupině oddílů.
Přístě
V dalším dílu se naučíme přidávat (a také odebírat) další disky do skupiny a zvětšovat tak volné místo pro oddíly. Dále budeme zvětšovat i zmenšovat stávající oddíly i systém souborů.
Pingback: Připojení systémů souborů z RAW image KVM | Heronovo
Pingback: Btrfs, lepší systém souborů – teorie | Heronovo
Pingback: Ukládání souborů do DB | Heronovo