Jak jednoduše rozbít LVM

2. září 2007 v 21:55 | PaulMan |  Počítadla
Některé programy neodpouští ani drobné omyly. Pozor na ně.

Tento článek je z oboru. Počítám s tím, že člověka, který se nevěnuje počítačům, nebude zajímat a nebude ho číst, takže předpokládám, že čtenář rozumí tomu, co dále píšu :)
LVM (Logical Volume Manager, viz Wikipedia) jsem si při práci se servery celkem oblíbil. Na strojích, které mají často 8 - 16 disků, poskytuje LVM efektivní řešení využití diskového prostoru i rozložení datové a I/O zátěže. Při používání LVM nad jednotlivými disky je samozřejmě riziko ztráty dat neúměrně velké, stačí závada na jednom disku a celá logická jednotka se rozsype - data jsou v trapu. Pro minimalizaci tohoto rizika stavím obvykle LVM nad RAID-1 poli.

Žonglování s RAIDy

Vydal jsem se tuhle do serverovny s úkolem vyměnit vadné disky v jednom stroji, sloužícímu jako datové úložiště. V krátké době tam odešly dva disky; díky zmíněnému zapojení do RAID-1 polí systém dále fungoval, ale degradovaná pole znamenala riziko ztráty dat. Kdybych měl stejně velké disky, prostě bych je vyměnil za ty stávající, pustil resynchronizaci dvou postižených RAIDů a bylo by. Jenže já měl nové, větší disky, takže to znamenalo vytvořit nová RAID-1 pole, přidat je do volume group, přenést na ně data ze stávajících degradovaných polí, ty pak z volume group odebrat a na závěr zvětšit velikost logical volume jednotky a na ní běžícího filesystému.
Všechno šlo dobře až do chvíle, kdy jsem měl nově vytvořené pole přidat do volume group. Tehdy jsem se dopustil malé, ale v důsledku fatální chyby. Před zařazením do volume group je třeba daný disk / partici / RAID pole inicializovat příkazem pvcreate, který provede zápis do superbloku a identifikuje zařízení jako součást LVM architektury. No a já jsem v tu chvíli namísto nového pole inicializoval pro LVM pole, které už bylo součástí volume group. Chyba v jediné číslici, tuším, že to bylo pvcreate /dev/md4 namísto pvcreate /dev/md7. Příkaz se provedl bez jakéhokoli zaváhání, a jak jsem si velice brzo všiml, volume group se rozsypala a celé datové úložiště šlo do kytiček. Přišel jsem o cca 1 200 GB dat. Před úplnou katastrofou mě zachránil jen fakt, že tatáž data se zachovala na vedlejším serveru (100% duplicita jednak kvůli rozložení zátěže, jednak právě kvůli redundanci dat).

Chybička se vloudí

Chyby jsem se dopustil já, přepsal jsem se, to nepopírám. Ale stejně jsem byl na LVM pěkně naštvaný za to, s jakou odevzdaností byl můj špatný příkaz vykonán. Stalo se mi třeba už několikrát při vytváření mnoha RAID polí najednou, že jsem se ve spěchu přepsal a chtěl jsem disk, který už v jednom poli byl, přidat do pole jiného. Vždy vyskočila varovná hláška, která mě na toto upozornila a já byl uchráněn před sebou samým. Ale v případě LVM, bohužel, ticho po pěšině.
Nepřeberné množství programů a nástrojů se neustále snaží ujišťovat, že vážně chceme provést to, co jsme jim právě přikázali. Hlavně u procedur, které už důvěrně známe, nás takové ujišťování často otravuje, bušíme do Enteru a v duchu pobízíme program, ať sklapne a kouká makat. Inu, program pvcreate tohle nedělá - a stejně se nezavděčil.

Nový komentář

Přihlásit se
  Ještě nemáte vlastní web? Můžete si jej zdarma založit na Blog.cz.