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




--
FreeBSD mailing list (users-l@freebsd.cz)
http://www.freebsd.cz/listserv/listinfo/users-l

Odpovedet emailem