Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Úvod do LVM

Od jádra 2.4 je tu s námi dynamická správa diskových oddílů známá jako LVM (Logical Volume Management). Jedná se o nástroj, díky kterému můžeme jednoduše pracovat s diskovými oddíly a nemusíme se ohlížet na fyzické rozložení prostoru na discích. LVM se dneska používá hlavně na serverech, ale najde si svou cestu i na desktop.

Tweetni to Twitter Jaggni to! Jagg Del.icio.us Delicious

Úvod

Oddíly na discích se vytvářejí od nepaměti a za dobu své existence se příliš nezměnily. Tento koncept přestal být dostačující například u serverů poskytujících velmi oblíbené virtuální hostingy. Představte si situaci, kdy si zákazník pronajme virtualní stroj s určitou kapacitou disku. Za půl roku mu bude disk malý, a tak se rozhodne si připlatit další. Pokud by poskytovatel těchto služeb nepoužíval LVM, měl by velmi omezené možnosti pro rozšíření a celá operace by byla velmi zdlouhavá a složitá. LVM naštěstí celý proces značně usnadňuje.

Druhá situace, která může nastat, je například zálohování běžícího systému. Představte si obyčejný počítač, který jste konfigurovali několik dní a je vyladěn do posledního detailu. Náhle je potřeba vytvořit zálohu kvůli různým neočekávaným vlivům, jenže počítač už je na svém místě, běží a nelze jej vypnout. Použít na běžící systém cp -ax / /mnt/kamkoli je prakticky nereálné. Nástroj rsync by v tomto případě také moc nepomohl. Nicméně LVM nabízí možnost vytvoření tzv. snapshotu, který jakoby vytvoří kopii oddílu, který chceme zálohovat a od té chvíle si oba oddíly žijí svým životem a na povrch jeden neovlivňuje druhý. Teď ten nový oddíl můžeme zálohovat a nebude nám dělat problémy měnící se systém. Této vlastnosti se dá využít, například i pokud zkoušíte nový postup nebo verzi softwaru, protože snapshot se chová jako plnohodnotný oddíl.

Základ LVM

LVM se skládá ze tří hlavních částí. Jsou to Physical volume (PV), Volume group (VG). Logical volume (LV). Pokud začínáme vytvářet LVM oddíly, první, co musíme udělat, je přidat fyzické disky (PV) pod správu LVM. Takto můžeme přidat jak jednotlivé oddíly, jako /dev/sda1, nebo i celé disky bez oddílů, např. /dev/sda. Výpis fyzických oddílů vypadá pak podobně jako tady:

  PV         VG      Fmt  Attr PSize   PFree
  /dev/sda2  mydisks lvm2 a-   111,72G    0
  /dev/sdb2  mydisks lvm2 a-   298,02G 1,52G
  /dev/sdc2  mydisks lvm2 a-   298,02G    0

Ve výpisu si všimneme sloupce VG. Jedná se o tzv. Volume groupy. To jsou skupiny fyzických oddílů a z pohledu LVM se pak tato VG chová podobně jako normální disk v Linuxu. Přehled VG vypadá takto:

  VG      #PV #LV #SN Attr   VSize   VFree
  mydisks   3   8   0 wz--n- 707,77G 1,52G

Na svém počítači mám pouze jednu VG, která spojuje většinu kapacity ze třech fyzických disků. Když máme vytvořené VG a v nich dostatečné množství místa, můžeme vytvořit již samotné dynamické oddíly nazývané Logical volume. Krom toho, že se označují jinak (např. /dev/mydisks/home), jsou to klasická linuxová bloková zařízení a lze s nimi pracovat jako s kterýmkoli jiným oddílem. Můžeme je formátovat, zvětšovat, zmenšovat nebo z nich vytvářet snapshoty. LV mohou být také vytvořeny jako RAID 0 a RAID 1. Výpis LV vypadá takto:

  LV      VG      Attr   LSize   Origin Snap%  Move Log Copy%  Convert
  data    mydisks -wi-ao  40,00G
  disk    mydisks -wi-ao 640,00G
  home    mydisks -wi-ao   8,00G
  portage mydisks -wi-ao   3,00G
  root    mydisks -wi-ao  10,00G
  swap    mydisks -wi-ao 800,00M
  swap2   mydisks -wi-ao   1,46G
  test    mydisks -wi-a-   3,00G

Struktura

Při přidávání fyzických disků či oddílů pod správu LVM se udělá mapa tzv. physical extents (PE). Tím se rozdělí fyzické místo na malé bloky (výchozí nastavení je 4 MiB) a to se pak mapuje jednotlivým LV. Jeden LV se skládá také s extentů nazývaných Logical extents (LE). Když se vytvoří LV, tak se jeho LE namapují na PE. Pokud se jedná o RAID 1, tak se jeden LE namapuje na dva PE ze dvou disků. Pokud jde o RAID 0, tak se LE namapují střídavě na PE také obou disků. Bohužel se nemůžeme spolehnout na to, že toto střídavé namapování u RAID 0 bude opravdu fyzicky umístěno tak, jak je zamýšleno, protože disky svoji vnitřní strukturu schovávají za logiku, která se snaží optimalizovat chod disku. Celé LVM je tedy jen přemapování fyzického prostoru na prostor virtuální. To nám dává mnohem větší možnosti.

Možnosti LVM

Dynamická správa oddílů

S vytvořenými LV je možné dále pracovat. Velmi jednoduše může uživatel zvětšit či zmenšit oddíl nebo ho úplně smazat a dát na jeho místo jiný. Tím se řeší například situace, kdy svému /home přidělíte při instalaci málo místa a o rok později se tam už nevejdou nové fotky z dovolené. S LVM není problém třeba zmenšit oddíl pro filmy a toto místo přidat do /home. Všechny tyto operace lze dělat za běhu systému a pokud se umí zvětšovat/zmenšovat použitý souborový systém také za běhu, tak se při této akci nemusí stroj vůbec vypínat. Je také možné přesunout běžící systém na úplně jiný fyzický disk. To se hodí, pokud se ve S.M.A.R.T. začnou objevovat chyby a rozhodnete se disk vyměnit.

Snapshoty

LVM využívá tzv. copy-on-write postupu. Na něm jsou založeny snapshoty a funguje to velmi jednoduše a spolehlivě. Pokud si vytvoříte například snapshot pro svůj /, tak oba oddíly budou prakticky stejné a prostor, který snapshot využívá, nebude větší, než by zabrala potřebná metadata. Pokud se pak v původním oddíle něco změní, tak se nejprve před provedením této změny zkopíruje původní stav do snapshotu a až poté se zapíše změna, o kterou bylo jádro požádáno. Do snapshotu se tedy zapisují bloky, které se v původním oddíle změnily. Díky tomu zůstává snapshot beze změny od doby, co byl vytvořen. Vytvořený snapshot nedělá problémy v zálohování.

S jádrem řady 2.6, se kterým přišlo LVM 2, se snapshoty staly zapisovatelné. Je tedy možné snapshot připojit a používat ho jako normální oddíl a testovat si na něm nové verze softwaru a nastavení. Pokud se něco nepovede, není nic lehčího než snapshot odstranit a udělat si nový.

Boot z LVM a jak se k němu staví distribuce

Každá distribuce se k LVM chová jinak. Ve výchozím stavu ho používá snad jen Fedora, ale Debian/Ubuntu by také nemělo mít problém s instalací sebe sama na LVM oddíly. Archlinux a Gentoo mají na svých wiki návody s postupem jak přidat podporu LVM do systému. V ostatních distribucích jsem s LVM nepracoval.

Obecně se jedná vždy o podporu v jádře a při následném nabíhání systému najít včas oddíly. Pokud se rozhodnete mít systém, do kterého se bootuje z LV, tak toto hledání se přesouvá do initrd. Zjednodušeně řečeno je initrd mini-systém, který připraví hardware k dalšímu použití. V initrd se zavolá program vgscan a ten najde VG a umístí jednotlivé LV do /dev. Poté může jádro nabootovat do „velkého“ systému. Občas se dá najít live distribuce, která není nic jiného než initrd, takže jeho možnosti jsou mnohem dále než nějaká příprava hardwaru.

TIB2012

       

Shrnul bych to tedy následovně. Pokud to vaše distribuce neudělá za vás, musíte si do jádra přidat podporu pro device-mapper a LVM 2. Pak je nutné vytvořit initrd s podporou LVM, který najde a přístupní LV.

Závěr

V tomto úvodu jsme si vysvětlili základní vlastnosti LVM. V dalším díle se budeme věnovat praktickým ukázkám. LVM je velmi dobrý pomocník při práci s disky a není vhodný pouze pro servery, ale i pro vývojáře nebo uživatele, kteří třeba provozují více distribucí nebo jen chtějí využít možnosti, které jim LVM nabízí. Bohužel s LVM přichází i nutnost používat initrd. Na distribucích jako je Ubuntu to nevadí, protože se o to uživatel nemusí vůbec starat, ale u mého Gentoo musím pro každé nové jádro vytvářet nový initrd, a to není nejpohodlnější a brzdí to nabíhání systému.

Adam Štrauch

Adam Štrauch

Adam Štrauch je redaktorem serveru Root.cz a svobodný software nasazuje jak na desktopech tak i na routerech a serverech. Ve svém volném čase se stará o komunitní síť, ve které je již přes 100 členů.

Školení: TCP/IP síť na Linuxu II

V tomto školení prohloubíte svoji znalost síťování na Linuxu a vyzkoušíte si pokročilejší techniky. Školení je určené mimojiné i pro správce poskytovatelských sítí.

  • Průřez technologiemi TCP/IP 
  • Stavba testovací sítě
  • Dynamický routing: OSPFv2 a OSPFv3
  • Bridging, proxy ARP, proxy NDP
  • Různé metody překladu adres
  • NAT traversal v praxi
  • Přepis paketů
  • Tunelování a VPN
  • Troubleshooting, situace z praxe

Podrobnější informace a přihláška 

Ohodnoťte jako ve škole:
Průměrná známka 2,76

Přehled názorů

Auuuu
anonymní uživatel 5. 8. 2008 00:11
Nový
├ 
Re: Auuuu
Adam Štrauch 5. 8. 2008 00:14
Nový
├ 
Re: Auuuu
honza 5. 8. 2008 08:55
Nový
└ 
Re: Auuuu
JirkaV 5. 8. 2008 11:50
Nový
 
├ 
Re: Auuuu
Adam Štrauch 5. 8. 2008 12:53
Nový
 
│
└ 
Re: Auuuu
JirkaV 5. 8. 2008 13:21
Nový
 
│
 
└ 
Re: Auuuu
Adam Štrauch 5. 8. 2008 14:47
Nový
 
├ 
Re: Auuuu
peter 5. 8. 2008 13:30
Nový
 
└ 
Re: Auuuu
Sten 6. 8. 2008 20:57
Nový
Zmensovani FS
Izak 5. 8. 2008 01:11
Nový
├ 
Re: Zmensovani FS
Adam Štrauch 5. 8. 2008 01:16
Nový
│
└ 
Re: Zmensovani FS
miguel23 5. 8. 2008 02:24
Nový
│
 
└ 
Re: Zmensovani FS
anonymní uživatel 13. 8. 2008 10:03
Nový
└ 
Re: Zmensovani FS
Michal Kubeček 5. 8. 2008 03:55
Nový
 
└ 
Re: Zmensovani FS
Daniel Rozsnyo 5. 8. 2008 07:11
Nový
 
 
└ 
Re: Zmensovani FS
anonymní uživatel 10. 8. 2008 01:12
Nový
lvm JEDINE nad raid-em
Daniel Rozsnyo 5. 8. 2008 07:17
Nový
├ 
Re: lvm JEDINE nad raid-em
Adam Štrauch 5. 8. 2008 11:39
Nový
├ 
Re: lvm JEDINE nad raid-em
Ondrej \'SanTiago\' Zajic 5. 8. 2008 11:51
Nový
└ 
Re: lvm JEDINE nad raid-em
anonymní uživatel 13. 8. 2008 10:10
Nový
Aky je rozidiel LVM vs. losetup+mdadm?
anonymní uživatel 5. 8. 2008 07:29
Nový
├ 
Re: Aky je rozidiel LVM vs. losetup+mdadm?
FLEK. 5. 8. 2008 07:46
Nový
│
└ 
Re: Aky je rozidiel LVM vs. losetup+mdadm?
anonymní uživatel 5. 8. 2008 14:45
Nový
└ 
Re: Aky je rozidiel LVM vs. losetup+mdadm?
miguel23 6. 8. 2008 17:01
Nový
LVM nepodporuje Bariery
benzin 5. 8. 2008 08:14
Nový
├ 
Re: LVM nepodporuje Bariery
BLEK. 5. 8. 2008 11:35
Nový
├ 
Re: LVM nepodporuje Bariery
Ondrej 'SanTiago' Zajicek 5. 8. 2008 11:49
Nový
└ 
Re: LVM nepodporuje Bariery
e. 5. 8. 2008 12:33
Nový
Budoucí díly seriálu
Shadow 5. 8. 2008 08:41
Nový
├ 
Re: Budoucí díly seriálu
tukan 5. 8. 2008 12:15
Nový
└ 
Re: Budoucí díly seriálu
Adam Štrauch 5. 8. 2008 12:51
Nový
 
└ 
Re: Budoucí díly seriálu
yen yacht 5. 8. 2008 16:19
Nový
 
 
└ 
Re: Budoucí díly seriálu
Adam Štrauch 5. 8. 2008 17:27
Nový
 
 
 
└ 
Re: Budoucí díly seriálu
Milan Broz 5. 8. 2008 18:19
Nový
 
 
 
 
└ 
Re: Budoucí díly seriálu
Jiří J. 13. 8. 2008 16:28
Nový
Ubuntu
Michal 5. 8. 2008 13:23
Nový
└ 
Re: Ubuntu
Adam Štrauch 5. 8. 2008 13:39
Nový
 
└ 
Re: Ubuntu
Jan 5. 8. 2008 20:26
Nový
Prikazy
Jaroslav Reznik 6. 8. 2008 09:56
Nový
       

Tento text je již více než dva měsíce starý. Chcete-li na něj reagovat v diskusi, pravděpodobně vám již nikdo neodpoví. Pro řešení aktuálních problémů doporučujeme využít naše diskusní fórum.

Zasílat nově přidané příspěvky e-mailem