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říkazulvcreate
, například zrcadlený oddíl o velikosti 1 GB s daty na fyzických oddílechsdb, sdc1
a logem na oddílusdd1
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.