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:

  • --mirrorlog core — log je veden v operační paměti, není tedy potřeba další fyzický disk, ale při každé aktivaci zrcadleného oddílu (typicky při startu operačního systému) proběhne synchronizace zrcadleného oddílu a vytvoří se log.
  • --mirrorlog disk — Výchozí nastavení; log je uložen na disku. Fyzický oddíl pro log je možné určit posledním parametrem příkazu lvcreate, například zrcadlený oddíl o velikosti 1 GB s daty na fyzických oddílech sdb, sdc1 a logem na oddílu sdd1 se vytvoří takto:
    root@raid:/root# lvcreate --name oddil --size 1G --mirrors 1 data /dev/sdb /dev/sdc1 /dev/sdd1
    

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.

Příspěvek byl publikován v rubrice CentOS, Linux, LVM. Můžete si uložit jeho odkaz mezi své oblíbené záložky.