Portál AbcLinuxu, 24. dubna 2024 16:38

LVM - 3 (zrcadlený a prokládaný oddíl)

21. 4. 2009 | Tomáš Crhonek
Články - LVM - 3 (zrcadlený a prokládaný oddíl)  

Dnešní díl o LVM se věnuje vytváření prokládaného a zrcadleného oddílu. Pro zrcadlený i prokládaný oddíl se častěji používá hardwarový (pokud počítač disponuje kvalitním řadičem) či softwarový RAID (v Linuxu pomocí mdadm), ale v praxi může nastat potřeba vytvořit např. prokládaný oddíl i za situace, kdy jsou všechny pevné disky zařazeny do LVM.

Zrcadlený oddíl

Zrcadlený oddíl zajišťuje bezpečnost dat před výpadkem jednoho (nebo i více, podle zvoleného počtu zrcadel) zařízení. Data pro logický oddíl jsou uložena na (min. dvou) fyzických oddílech a každá změna dat je replikována na všechny fyzické oddíly, na kterých se logický oddíl rozkládá.

Zrcadlení nelze považovat za zálohu, žádným způsobem nechrání data před nechtěným smazáním souborů uživatelem (což je nejčastější důvod vytažení zálohy) či havárií souborového systému. Pouze poskytuje ochranu před výpadkem pevného disku.

Zrcadlený oddíl se vytváří příkazem lvcreate, kde se kromě parametrů velikosti a jména oddílu uvede počet zrcadel (parametr --mirrors). Následující příkaz vytvoří zrcadlený oddíl o velikosti 20 GB se dvěma zrcadly, data tedy budou uložena na třech discích a celkové potřebné místo ve skupině oddílů je pro tento oddíl 3×20 GB=60 GB:

root@raid:/root# lvcreate --size 20G --name zrcadleny --mirrors 2 data 

Stav synchronizace oddílu vypisuje prográmek lvs:

root@raid:/root# lvs /dev/data/zrcadleny 
  LV        VG   Attr   LSize  Origin Snap%  Move Log            Copy%  Convert
  zrcadleny data mwi-a- 20.00G                    zrcadleny_mlog  22.13

Velikost a počet fyzických oddílů pro zrcadlený logický oddíl

Zatímco velikost obyčejného logického oddílu je omezena pouze volným místem ve skupině oddílů, při vytváření zrcadleného svazku jsme omezeni volným místem na jednotlivých fyzických oddílech.

Velikost volného místa na jednotlivých fyzických oddílech lze zjistit pomocí příkazu pvs:

root@raid:/root# pvs
  PV         VG   Fmt  Attr PSize   PFree  
  /dev/sdb   data lvm2 a-   931.51G 293.50G
  /dev/sdc1  data lvm2 a-   931.51G 216.50G
  /dev/sdd1  data lvm2 a-   931.51G 187.50G
  /dev/sde1  data lvm2 a-   931.51G 609.51G

Největší možná velikost zrcadleného oddílu (s jedním zrcadlem) je v tomto příkladu 293,5 GB (při výběru fyzických oddílů sdb a sde1 - výběr fyzických oddílů pro vytvářený logický oddíl lze zadat jako poslední parametry příkazu lvcreate), přestože volné místo ve skupině data je 1,28 TB. Logické oddíly lze přesouvat na jiné fyzické oddíly pomocí příkazu pvmove, takže vhodným přesunutím LV na jiná PV lze vytvořit dostatek místa pro zrcadlený oddíl požadované velikosti. LVM toto ale samo o sobě nezajišťuje.

LVM si pro zrcadlený logický oddíl ukládá malý log, který standardně vytváří na fyzickém oddílu, který není použit pro data zrcadleného oddílu. Tedy, pokud se vytváří zrcadlený oddíl s jedním zrcadlem, jsou potřeba celkem tři PV -- dva na data a třetí na log.

Toto chování lze pozměnit parametrem --mirrorlog:

Prokládaný oddíl

Zatímco zrcadlený oddíl zvyšuje bezpečnost dat, prokládaný oddíl zásadně ovlivňuje rychlost práce s oddílem. Data jsou zapisována a čtena z několika zařízení současně. Rychlost prokládaného oddílu teoreticky lineárně roste s počtem zařízení, v praxi je to však o něco málo pomalejší. V případě výpadku jednoho disku jsou data na celém prokládaném oddíle ztracena, prokládaný oddíl se tak často používá pro data, ke kterým musí být co nejrychlejší přístup a lze je snadno obnovit. Případně lze použít i kombinace zrcadlení a prokládání (RAID 10), čehož se často využívá pro databáze, ale to už zpravidla na hardwarovém řadiči, a nikoliv pomocí LVM.

Prokládaný oddíl se vytváří příkazem lvcreate, kde kromě běžných parametrů pro velikost a jméno oddílu přibude ještě počet zařízení (parametr --stripes) a velikost jednoho proužku (--stripesize) v kilobytech.

Prokládaný oddíl o velikosti 10 GB nad třemi disky o velikosti stripu 4 kB se vytvoří příkazem:

root@raid:/root# lvcreate --size 10G --name striped --stripes 3 --stripesize 4 data

Pro velikost prokládaného oddílu platí podobná pravidla jako pro zrcadlený oddíl - musí být dostatek volného místa na fyzických oddílech, kde se bude rozkládat. Např. prokládaný logický oddíl o velikosti 30 GB na třech fyzických oddílech (--stripes 3) potřebuje na každém PV 10 GB volného místa.

Seriál Logical Volume Manager (dílů: 3)

První díl: LVM - 1 (úvod, vytvoření oddílu), poslední díl: LVM - 3 (zrcadlený a prokládaný oddíl).
Předchozí díl: LVM - 2 (přidat, odebrat, zvětšit, zmenšit)

Související články

LVM2 - dynamické vytváření diskových oddílů
Seriál: Virtualizace na úrovni jádra
Seriál: Moderní souborové systémy
Chroot prostředí - I
Chroot prostředí - II
Šifrované filesystémy - I
Šifrované filesystémy - II
Na co se často ptáme: /etc/fstab
Na co se často ptáme: Organizácia disku

Další články z této rubriky

Úvod do Dockeru (1)
Paralelizace běžných činností v konzoli pomocí GNU Parallel
Unixové nástroje – 26 (triky pro práci v Bashi)
Unixové nástroje – 25 ((s,c)fdisk, gdisk, parted a findmnt)
Linux: systémové volání splice()

Diskuse k tomuto článku

21.4.2009 09:59 W74
Rozbalit Rozbalit vše Re: LVM - 3 (zrcadlený a prokládaný oddíl)
Odpovědět | Sbalit | Link | Blokovat | Admin
Dotaz: jsou nejake duvody/vyhody/nevyhody proc delat mirror primo nastroji LVM nebo je lepsi pouzit klasicky linuxovy sw raid a nad nim pak LVM?
Nikola Ciprich avatar 21.4.2009 13:25 Nikola Ciprich | skóre: 23 | blog: NiX_blog | Palkovice
Rozbalit Rozbalit vše Re: LVM - 3 (zrcadlený a prokládaný oddíl)
viz muj post nize... YMMV
Did you ever touch the starlight ? Dream for a thousand years? Have you ever seen the beauty Of a newborn century?
21.4.2009 10:00 Yenya
Rozbalit Rozbalit vše Rozdil proti md?
Odpovědět | Sbalit | Link | Blokovat | Admin

Muzete nekdo podrobneji popsat rozdily proti md? Co se napriklad stane s VG, pokud v ni odejde jedna PV? Je nejaky ekvivalent mdadm --monitor, ktery mi vypadek PV oznami? Jak pridam do degradovane LV nove/opravene PV?

Ja napriklad pouzivam obycejne LVM nad md (RAID-10). Delam chybu? Mel bych pouzit LVM stripovane a zaroven zrcadlene oblasti?

-Yenya, http://www.fi.muni.cz/~kas/blog/

Nikola Ciprich avatar 21.4.2009 13:24 Nikola Ciprich | skóre: 23 | blog: NiX_blog | Palkovice
Rozbalit Rozbalit vše Re: Rozdil proti md?
zdravim,

po pravde muj osobni nazor na vec je, ze "raidove" veci v dm jsou zatim dost bidne, a je lepsi pouzivat std swraid, a nad tim pripadne LVM (takto to pouzivame na velkem mnozstvi serveru).

prinasi to minimalne tyto vyhody: - vetsi flexibilita (vice typu raidu (5, 6, ...), sikovnejsi reseni raid1 (nutnost u lvm mit nekde oddeleny log - lepsi vykon - dm raid1 jeste stale ani nerozklada cteni na vice disku! (tomu se skoro ani nechce verit, nicmene patche na tuto funkcionalitu se objevily v dm-devel teprve nedavno)

prestoze by se mi spis libilo kdyby to bylo vsechno pekne integrovane do devicemapperu/lvm, zatim preferuji swraid.
Did you ever touch the starlight ? Dream for a thousand years? Have you ever seen the beauty Of a newborn century?
pavlix avatar 22.4.2009 02:32 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Rozdil proti md?

A linuxový sw raid není postavený na device mapperu? Myslím to co se používá běžně na 2.6? Jen se ptám.

Já už tu vlastně ani nejsem. Abclinuxu umřelo.
Nikola Ciprich avatar 22.4.2009 07:37 Nikola Ciprich | skóre: 23 | blog: NiX_blog | Palkovice
Rozbalit Rozbalit vše Re: Rozdil proti md?
neni
Did you ever touch the starlight ? Dream for a thousand years? Have you ever seen the beauty Of a newborn century?
22.4.2009 16:35 trekker.dk | skóre: 72
Rozbalit Rozbalit vše Re: Rozdil proti md?
Není.

Ale pracuje se na sjednocení, aby v jádře nebylo x implementací RAIDu.
Quando omni flunkus moritati
Nikola Ciprich avatar 22.4.2009 21:41 Nikola Ciprich | skóre: 23 | blog: NiX_blog | Palkovice
Rozbalit Rozbalit vše Re: Rozdil proti md?
mate k tomu nejak vic informaci? nevim ze by na tom nekdo nejak aktivne pracoval, celkem by mne to zajimalo...
Did you ever touch the starlight ? Dream for a thousand years? Have you ever seen the beauty Of a newborn century?
25.4.2009 10:49 trekker.dk | skóre: 72
Rozbalit Rozbalit vše Re: Rozdil proti md?
Koukni na lwn.net (kernel development z 8.dubna) nebo si počkej na Jaderné noviny z toho data, tam to bude taky.
Quando omni flunkus moritati
Nikola Ciprich avatar 25.4.2009 19:31 Nikola Ciprich | skóre: 23 | blog: NiX_blog | Palkovice
Rozbalit Rozbalit vše Re: Rozdil proti md?
diky! no pracuje se je mozna trosku odvazne tvrzeni, ale zda se ze se okolo aspon neco zacina dit, coz je dobre..
Did you ever touch the starlight ? Dream for a thousand years? Have you ever seen the beauty Of a newborn century?
21.4.2009 22:13 ..... Izak ..... | skóre: 14
Rozbalit Rozbalit vše Re: Rozdil proti md?
ne, je to lepsi. kdyz jsem meril strip pres LVM a pres SWraid, tak SW raid byl rychlejsi.

LVM mirror ma jedno zasadni vyuziti a to pri cLVM (tedy Cluster LVM2) ... to je jediny pripad, kdy bych jej pouzil, nebot SWraid nemuzou ridit 2 stroje.
Nikola Ciprich avatar 22.4.2009 07:40 Nikola Ciprich | skóre: 23 | blog: NiX_blog | Palkovice
Rozbalit Rozbalit vše Re: Rozdil proti md?
no zrovna mirror target (zatim) neni cluster-aware, alespon pokud nepouzivate RHAS nebo nejake jine distro ktere ma ty moduly pridany.. i zda se ze se to konecne dostane do upstreamu...

nicmene ad pouzivani cluster LVM - pouzivate to? co pouzivate jako cluster stack a v jakych verzich? ja to pouzivam uz dost dlouho a spokojeny moc nejsem :(
Did you ever touch the starlight ? Dream for a thousand years? Have you ever seen the beauty Of a newborn century?

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.