Logical Volume Management: Porovnání verzí

Smazaný obsah Přidaný obsah
Lovelygirl (diskuse | příspěvky)
m Hierarchie nadpisů, WP:WCW
m Oprava hesla tak aby odpovídalo encyklopedickému heslu. Založeno na anglické verzi hesla. Stávající obsah bude částečně využit na wikibooks
Řádek 1:
<!-- text vznikl překladem anglického hesla, proto může být část informací, zvláště v části Implementace již neaktuální a vyžadovat doplnění -->
{{Upravit}}
'''LVM''' ({{Vjazyce2|en|'''Logical Volume Management'''}}) je v [[Linux]]u mnohem flexibilnější metoda alokace úložného prostoru, než tradiční metoda pomocí [[Diskový oddíl|diskových oddílů]]. [[Linuxové jádro]] pomocí LVM umožňuje spojovat více disků, diskových oddílů, RAID nebo jiných zařízení do logických celků, které lze dále využívat stejně jako klasické oddíly. První verze pochází z roku [[1998]] od Heinze Mauelshagena a byla založena na LVM z [[HP-UX]].
 
Řízení logických disků, neboli LVM ( zkratka z angl. "Logical Volume Management" ) je metoda správy diskového prostoru co dává mnohem větší možnosti než konvenční rozdílení pevných disků na diskové oddíly.
== Princip funkce ==
 
Umožňuje přidávat jednotlivá fyzická zařízení nebo diskové oddíly do větších logických skupin svazků. Tyto skupiny lze přidáním, nebo odebráním fyzických zařízení podle potřeby zvětšovat či zmenšovat a za chodu přesouvat uložená data mezi jednotlivými fyzickými zařízeními aniž by bylo nutné běžící systém zastavit.
Nevýhoda běžných [[pevný disk|pevných disků]] je obtížné přerozdělování volného místa po jejich prvotním rozdělení na [[diskový oddíl|oddíly]]. LVM tento problém elegantně řeší přidáním logické vrstvy mezi fyzická média a [[operační systém]]. Do logické jednotky lze snadno přidávat (nebo odebírat) fyzické disky a tím měnit jejich velikost nebo vyměňovat použité disky.
 
Diskové oddíly se tvoří teprve v rámci těchto skupin svazků a lze je podle potřeby přidávat, nebo odebírat, podle toho kolik je k dispozici diskového prostoru. Pokud to zvládá souborový systém tak lze rovněž za chodu i měnit jejich velikost.
Další výhodou je možnost vytvořit snímek ({{Vjazyce2|en|snapshot}}) logické jednotky. Snímek umožňuje zachytit stav jednotky v čase a dále s ním pracovat (například zálohovat), zatímco se svazkem programy dále pracují (zapisují, vytvářejí a mažou soubory a podobně).
 
Řízení logických disků je jen jeden z mnoha způsobů virtualizace diskového prostoru, a je funguje jako vrstva mezi ovladačem pevného disku a operačním systémem.
LVM podporuje i zrcadlení svazků (tedy něco jako [[RAID]] 1).
 
==Princip==
=== Základní stavební jednotky se kterými LVM pracuje ===
* '''Physical volume''' (fyzický svazek) - oddíl na fyzickém disku (např. /dev/hda1), popřípadě celý fyzický disk (např. /dev/hda).
* '''Volume group''' (skupina svazků) - sdružuje jednotlivé fyzické svazky do jednoho celku, nad kterým se definují logické svazky.
* '''Logical volume''' (logický svazek) - je definován uvnitř skupiny svazků a ve výsledku se operačnímu systému jeví jako fyzický disk.
 
Většina implementací řízení logických disků je založena na následujícím principu.
=== Příklad vytvoření LVM svazku ze tří fyzických disků ===
nejdříve zavedeme modul „dm-mod“
 
Výchozí jednotkou je '''fyzické zařízení''' (dále '''PV''' z angl. '''physical volumes''' ), kterým může být diskový oddíl na pevném disku, RAID nebo SAN. Prostor na tomto '''PV''' je rozdělen na menší kousky, které se anglicky nazývají '''physical extents''' (dále '''PE''' ). Některé implementace LVM (jako např. HP-UX nebo Linux) mají pro '''PE''' pevně danou velikost, ale jiné (jako např. u Veritasu) používají '''PE''' s proměnlivou velikostí, které lze spojovat či rozdělovat.
<code>modprobe dm-mod</code>
 
Při běžném nasazení je každý jednotlivý '''PE''' namapován jedna k jedné na tzv. '''logical extents''' ( dále '''LE''' ). '''LE''' jsou kousky z nichž se skládají jednotlivé logické diskové oddíly vytvořené v rámci '''skupin svazků''' (angl. '''volume groups''' dále '''VG''' )
poté převedeme fyzické disky na svazky se kterými umí LVM pracovat:
 
Jednotlivé '''LE''' jsou spojeny do '''skupin svazků''' - '''VG''', které se pak rozdělují na virtuální logické diskové oddíly, které se označují jako '''logické svazky''' ( '''logical volumes''' - '''LV''' ). S těmito LV lze pracovat jako s normálními blokovými zařízeními. Tj. vytvářet na nich diskové oddíly a pak s nimi pracovat jako kdyby šlo o fyzická zařízení.
<code>pvcreate /dev/hda /dev/hdb /dev/hdc</code>
 
LVM umožňuje podobné chování jako RAID
seskupíme je do skupiny svazků:
 
Pokud je u LVM použito zrcadlení ( mirroring ) je na každý '''LE''' namapováno současně několik '''PE''' které jsou součástí '''skupiny fyzických svazků''' ( '''physical volume group''' - '''PVG''' ), takže výsledek je obdobný jako u pole RAID1. Na rozdíl od raidu však LVM umožňuje do těchto '''PVG''' svazků spojovat fyzická zařízení různých velikostí.
<code>vgcreate test_vg /dev/hda /dev/hdb /dev/hdc</code>
 
U stripovaných '''LV''' je každý jednotlivý '''LE''' namapován z jiného '''PV'''. Což za určitých okolností může zlepšovat výkon při sekvenčním načítání větších objemů dat tím, že se současně načítají z více '''PV'''.
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:
 
Jak už bylo zmíněno výše '''LV''' lze zvětšovat, nebo zmenšovat přidáváním, nebo odebíráním dalších '''LE''' v rámci jednoho '''VG'''. '''LE''' sloučené v rámci jednoho '''LV''' však netvoří jednu spojitou oblast, což na jednu stranu znamená značné omezení rychlosti načítání dat, na druhou však umožňuje, aby se '''LV''' mohlo rozlézt přes více '''PV'''. U většiny implementací logické správy disků lze měnit velikost '''LV''' za chodu.
<code>lvcreate -L 300000 -n test_lv test_vg</code>
 
Změna velikosti '''LV''' neznamená automaticky změnu velikosti diskových oddílů které jsou na něm vytvořeny. V podstatě jde pouze o roztažení dostupného diskového prostoru, do kterého lze pak přidat další diskový oddíl. Existují však souborové systémy, které umožňují změnu velikosti - např. reiserfs nebo xfs. Ty pak lze podle potřeby zvětšit nebo zmenšit. Při zmenšování je třeba mít pochopitelně na paměti, že prostor o který mají být zmenšeny nesmí být zaplácnut daty.
ve vzniklém logickém svazku můžeme vytvořit souborový systém a připojit ho k přípojnému bodu:
 
Při nasazení LVM je třeba mít na paměti že jednou přidané PV a vytvořené LV nelze používat současně ve více VG, nebo mezi nimi za běhu přesouvat. ( I když některé implementace umožňují přesun mezi různými VG v rámci jednoho stroje ). V případě '''PV''' je tedy nezbytné nejprve diskové zařízení z '''VG''' vyřadit a teprve pak je přidat do jiné '''VG'''. Je tedy třeba pamatovat na to, aby bylo v rámci '''VG''' k dispozici tolik volného prostoru o kolik se odebráním '''PV''' zmenší. Základní jednotkou se kterou se pracuje je tedy '''skupina svazků''' - '''VG'''.
<code>mkreiserfs /dev/test_vg/test_lv</code> nebo <code>mkfs.ext3 /dev/test_vg/test_lv</code>
 
U většiny implementací LVM lze '''VG''' rozšiřovat a zmenšovat přidáváním či odebíráním fyzických zařízení '''PV''' za běhu, pokud tato zařízení podporují hotswap.
<code>mount /dev/test_vg/test_lv /mnt/data</code>
 
==Snapshoty==
=== Pracujeme s LVM ===
 
Některé implementace LVM umožňují tzv. snapshoty
Zmenšíme logický svazek o 50GB
 
Snapshoty lze využívat pro zálohování, zvláště u aplikací které neustále pracují s diskem, jako jsou např. databáze, nebo při aktualizacích operačního systému. Některá linuxová Live CD využívají snapshotů pro simulaci zápisu pro zařízení, která to neumožňují (CD disky).
<code>lvreduce -L -50G /dev/test_vg/test_lv</code>
 
==Implementace LVM==
<code>resize2fs /dev/test_vg/test_lv</code> (EXT2/3)
 
{| class="wikitable sortable"
Zvětšíme logický svazek o 50GB
! Dodavatel
! Použito v
! Správce disků
! Allocate anywhere
! Snapshoty
! [[RAID#RAID 0|RAID0]]
! [[RAID#RAID 1 (Zrcadlení)|RAID1]]
! [[RAID#RAID 5|RAID5]]
! [[RAID#RAID 1 (Zrcadlení)|Zrcadlení]] s [[RAID#RAID 0|prokládáním]]
! Poznámka
|-
| [[IBM]]
| [[AIX]] 3.0 (1989)
| [[Logical Volume Manager (AIX)|Logical Volume Manager]]
| {{ano}}
| {{ne}}
| {{ano}}
| {{ano}}
| {{ne}}
| {{ano}}
| Refers to PEs as PPs (physical partitions), and to LEs as LPs (logical partitions).
|-
| [[Hewlett-Packard]]
| [[HP-UX]] 9.0
| HP Logical Volume Manager
| {{ano}}
| {{ano}}
| {{ano}}
| {{ano}}
| {{ne}}
| {{ano}}
|
|-
|
| [[FreeBSD]]
| [[Vinum volume manager|Vinum Volume Manager]]
| {{ano}}
| {{ne}}
| {{ano}}
| {{ano}}
| {{ano}}
|
|
|-
|
| [[Linux]] 2.2
| [[Logical Volume Manager (Linux)|Logical Volume Manager]]
| {{ano}}
| {{ano}}
| {{ano}}
| {{ano}}
| {{ne}}
|
|
|-
|
| [[Linux]] 2.4
| [[Enterprise Volume Management System]]
| {{ano}}
| {{ano}}
| {{ano}}
| {{ano}}
| {{ano}}
|
|
|-
| [[Silicon Graphics]]
| [[Irix]] or [[Linux]]
| [[XVM Volume Manager]]
| {{ano}}
| {{ano}}
| {{ano}}
| {{ano}}
| {{ano}}
|
|
|-
| [[Sun Microsystems]]
| [[SunOS]]
| [[Solaris Volume Manager]] (původně [[Solstice DiskSuite]]).
| {{ne}}
| {{ne}}
| {{ano}}
| {{ano}}
| {{ano}}
| {{ano}}
| Refers to PVs as volumes (which can be combined with RAID0, RAID1 or RAID5 primitives into larger volumes), LVs as soft partitions (which are contiguous extents placeable anywhere on volumes, but which cannot span multiple volumes) and VGs as disk sets.
|-
| [[Sun Microsystems]]
| [[Solaris 10]]
| [[ZFS]]
| {{ano}}
| {{ano}}
| {{ano}}
| {{ano}}
| {{ano}}
| {{ano}}
|
|-
| [[Veritas]]
| Cross-OS
| [[Veritas Volume Manager]] (VxVM)
| {{ano}}
| {{ano}}
| {{ano}}
| {{ano}}
| {{ano}}
| {{ano}}
| Refers to LVs as ''volumes'', VGs as ''disk groups'', has variably-sized PEs called ''subdisks'' and LEs called ''plexes''.
|-
| [[Microsoft]]
| [[Windows 2000]] a systémy založené na NT
| [[Logical Disk Manager]]
| {{ano}}
| {{ano}} [[Windows Server 2003]] a novější
| {{ano}}
| {{ano}}
| {{ano}}
|
| Does not have a concept of PEs or LEs; can only RAID0, RAID1, RAID5 or concatenate disk partitions into larger volumes; file systems must span whole volumes.
|}
 
==Nevýhody==
<code>lvextend -L +50G /dev/test_vg/test_lv</code>
 
* Díky míře abstrakce, kterou sebou přináší řízení logických disků, mohou při použití LVM nastat komplikace buď při najíždění systému, nebo v případě poškození dat. Řešení takové situace pak může být ještě komplikovanější, pokud je základní operační systém a nezbytné nástroje k dispozici pouze na tomto '''LV'''.
<code>resize2fs /dev/test_vg/test_lv</code> (EXT2/3)
* LVM má také z principu mnohem vyšší míru fragmentace, neboť '''PE''' nemusí být alokovány v souvislých blocích, což značně zpomaluje vstupní a výstupní operace, zvláště když je LVM postaveno na fyzických zařízení, které mají pomalé přejíždění mezi bloky dat ( všechny typy konvenčních pevných disků ). Projevuje se to zvláště při práci s velkými objemy dat. Rychlost při kopírování dat je pak limitována velikostí '''PE''' což je případě linuxu 4MB
 
=== Užitečné příkazy ===
 
<code>vgdisplay</code><br />
<code>lvscan</code><br />
<code>lvrename</code><br />
<code>vgs</code><br />
 
== Externí odkazy ==
Řádek 65 ⟶ 176:
*[http://www.root.cz/clanky/lvm-prakticke-ukazky/ LVM: Praktické ukázky]
 
{{Pahýl - software}}
 
[[Kategorie:Operační systém]]