Rozpadly mirror s vadnym diskem

Dan Lukes dan at obluda.cz
Tue Sep 11 13:18:14 CEST 2012


Miroslav Prýmek napsal/wrote, On 09/11/12 11:46:
> 1. server ma dva disky v gmirroru (ad4,ad6)
> 2. na disku ad6 se objevily SMART chyby
> 3. disk ad4 je podle SMART v poradku, ale z mirroru vypadl (nejspis
> vlivem toho vypadku se tam neco nezapsalo)
>
> Problem je v tom, ze mirror nejde obnovit, protoze z disku ad6 nejdou
> nektere sektory precist:

> ad6: FAILURE - READ_DMA48 status=51<READY,DSC,ERROR>
> error=40<UNCORRECTABLE>  LBA=488381440
> GEOM_MIRROR: Synchronization request failed (error=5).
> mirror/gm0[READ(offset=250051297280, length=131072)]
> FAILURE - READ_DMA48 status=51<READY,DSC,ERROR>
> error=40<UNCORRECTABLE>  LBA=488395008
> GEOM_MIRROR: Synchronization request failed (error=5).
> mirror/gm0[READ(offset=250058244096, length=131072)]

> Zasadni otazka zni:
> 1. kdyz gmirror vypsal dve oblasti, ktery se nepodarilo
> zesynchronizovat, znamena to, ze zbytek je v poradku? Nebo kdyz se
> vyskytnou
>      dve chyby, tak dalsi pokusy vzda (takze chybi vsechno od offsetu
> 250058244096 do konce disku)?

To ti rict nedokazu. Ale dokazu ti rict jak bych v podobnem casovem 
presu postupoval. Necitelen sektory jsou tak jako tak ztracene. Tudiz je 
mi jedno jakym obsahem je prepisu.

Proto bych oba anouncovane necitelne sektory prepsal odpovidajicim 
sektorem z druheho disku. V nejhorsim pripade nemam horsi data nez 
zadna, v lepsim pripade pujde o sektory, jejichz obsah je na ad4 
"spravny" a tim tedy ziskam i obnovena puvodni data.

Zapis sektoru navic obvykle vyprovokuje vnitrni relokaci a sektory se od 
te chvile budou jevit jako citelne.

Pote by uz resync mel dobehnout do konce. Pokud plati predpoklad [1] tak 
v jednom pruchodu, pokud [2] tak vypise nejake dalsi necitelne sektory a 
postup lze rekurentne opakovat. I kdyz v takovem pripade je mozna lepsi 
pomoci dd disk kompletne precist (do /dev/null a conv=noerror) tim 
ziskat kompletni seznam vadnejch sektoru, pre-zapsat je vsechny a teprve 
pak resynchronizovat.

Po skonceni resynchronizace ziskas system, ktery by mel byt jiz 
spustiteny do te miry, ze uzivatele na nem zavisli ho mohou zacit pouzivat.

Tim pomiji prvotni stress a tlak a mas cas dalsi kroky delat vic v klidu 
a treba i ve vhodnejsi cas.

  --- A ----
Jelikoz bych gmirroru uplne neveril a hned jak lidi odejdou bych ad4 z 
mirroru odstranil, pomoci dd vymazal (kdyz ne celej tak alespon zacatek 
i konec), nasledne ho pridal a nechal resynchronizaci probehnout znovu. 
Teprve pak bych veril, ze mam znovu identicke kopie.

Dale si musis spis rozmyslet, jestli disku na kterem se objevily vadne 
sektory jeste veris, protoze pokud ne, nasleduje vymena ad6 za jiny a 
dalsi resynchronizace, tentokrat opacnym smerem.

  ---- B ---
Pokud jsi ovsem hodne paranoidni pak musto celeho [A] ted zazalohujes 
dumpem obsah svazku, oba disky bud' vymazes nebo nahradis jinym, zalozis 
znovu mirror a obnovis se zalohy.

Problem postupu [A] totiz je, ze kdyz bude smit smulu budes mit vadne 
sektory s potencialne chybnym obsahem soucasti metadat coz ale fsck ne 
vzdy odhali a system by pri praci na takovem fs mohl byt nestabilni. 
Kompletni rekonstrukce FS tohle riziko eliminuje. Je ale casove i 
prostorove narocnejsi a vyzaduje dlouhou uplnou odstavku systemu.

  -------

At uz udelas A nebo B mel bys mit system v normalne pouzitelnem stavu, s 
vyjimkou nejvyse dvou souboru (videl jsem dve cteci chyby, pokud se 
najdou dalsi bude to cislo jine) s poskozenym obsahem

Dohledat do jakeho souboru patri sektor je obtizne, v minulosti se to tu 
v konferenci probiralo, takze hledej, ja si uz detaily nepamatuju. A 
hledat bys mel pred rekonstrukci FS, z kroku B coz je dalsi "proti" teto 
varianty neb hledani vypadek uz jen dal prodlouzi.

Reknu ti co jsem v podobny situaci udelal (vadny sektor na disku, 
nikoliv vsak mirror). Ja jsem preinstaloval kompletne system vcetne 
portu - coz nic moc nestoji a lze to udelat prakticky za plneho provozu 
takze jsem mel jistotu, ze system a programy mam v poradku. Zustala 
sance, ze je poskozeny nejaky uzivatelsky soubor - a od toho jsou 
zalohy, ktere jest treba vytahnouti az se nejaky poskozeny soubor 
(zustal-li tam nejaky) najde.

Mimochodem, dodnes si nikdo nestezoval. Bud' sektor soucasti zadneho 
souboru nebyl, nebo nebyl soucasti zadneho duleziteho souboru ...

Jo - neskodi se na vadny sektor a nejblizsi okoli kouknout. Pri trose 
stesti se z obsahu muze podarit odhalit o jaky soubor je - ani to nemusi 
bejt nutne soubor textovej.

Dan






More information about the Users-l mailing list