<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <HTML> <HEAD> <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9"> <TITLE>Software-RAID HOWTO: Ricostruzione</TITLE> <LINK HREF="Software-RAID-HOWTO-7.html" REL=next> <LINK HREF="Software-RAID-HOWTO-5.html" REL=previous> <LINK HREF="Software-RAID-HOWTO.html#toc6" REL=contents> </HEAD> <BODY> <A HREF="Software-RAID-HOWTO-7.html">Avanti</A> <A HREF="Software-RAID-HOWTO-5.html">Indietro</A> <A HREF="Software-RAID-HOWTO.html#toc6">Indice</A> <HR> <H2><A NAME="s6">6. Ricostruzione</A></H2> <P>Se avete già letto il resto di questo HOWTO, dovreste già avere un'idea di che cosa significhi la ricostruzione di un array danneggiato. Riassumendo: <UL> <LI>Spegnete il sistema</LI> <LI>Sostituite il disco guasto</LI> <LI>Accendete di nuovo il sistema</LI> <LI>Usate il comando <CODE>raidhotadd /dev/mdX /dev/sdX</CODE> per inserire nuovamente il disco nell'array</LI> <LI>Prendetevi un caffè mentre la ricostruzione automatica avviene</LI> </UL> Ecco tutto. <P>Bene, di solito funziona così, a meno che voi siate sfortunati e il vostro RAID sia stato reso inutilizzabile perché più di un disco si è guastato. Questo può realmente succedere se un certo numero di dischi è collegato sullo stesso bus e uno dei dischi blocca il bus quando si guasta. Gli altri dischi, anche se non sono guasti, saranno irraggiungibili per il RAID layer, perché il bus è bloccato e quindi saranno marcati come danneggiati. Su un RAID-5 su cui è possibile sostituire un disco, il guasto di due o più di essi può essere fatale. <P>Il seguente paragrafo è la spiegazione che Martin Bene mi ha dato, e descrive un possibile recupero dal terrificate scenario mostrato sopra. Esso implica l'uso della direttiva <CODE>failed-disk</CODE> nel nostro file <CODE>/etc/raidtab</CODE>, così funzionerà solo con i kernel 2.2.10 e successivi. <P> <H2><A NAME="ss6.1">6.1 Recupero dal malfunzionamento di più dischi</A> </H2> <P>Lo scenario è: <UL> <LI>Un controller si blocca e mette due dischi offline nello stesso momento,</LI> <LI>Tutti i dischi su un bus SCSI non possono più essere raggiunti se un disco si blocca,</LI> <LI>Un cavo si sgancia...</LI> </UL> In breve: abbastanza spesso si ha un guasto <EM>temporaneo</EM> di diversi dischi nello stesso momento; dopo di che i RAID superblock non sono più sincronizzati e voi non potete più inizializzare (init) il vostro RAID array. <P>Per prima cosa: riscrivete il RAID superblock con il comando <CODE>mkraid --force</CODE> <P>Al fine di farlo lavorare correttamente, avete bisogno di un file <CODE>/etc/raidtab</CODE> aggiornato - se esso non corrisponde <B>ESATTAMENTE</B> ai dispositivi e all'ordine dei dischi originali, non funzionerà. <P>Controllate il syslog prodotto cercando di far partire l'array, vedrete l'"event count" per ogni superblock; di solito è meglio lasciare fuori il disco con il più basso "event count", per esempio il più vecchio. <P>Se date il comando <CODE>mkraid</CODE> senza <CODE>failed-disk</CODE>, il processo di ricostruzione partirà immediatamente ed inizierà a ricostruire i blocchi di parità - il che non è necessariamente quello che volete in questo momento. <P>Con <CODE>failed-disk</CODE> potete specificare quali dischi volete che siano attivi e forse potete provare diverse combinazioni per ottenere i migliori risultati. BTW, monta il filesystem solo read-only durante queste prove... Questo metodo è stato usato da almeno due persone con cui sono in contatto. <P> <P> <HR> <A HREF="Software-RAID-HOWTO-7.html">Avanti</A> <A HREF="Software-RAID-HOWTO-5.html">Indietro</A> <A HREF="Software-RAID-HOWTO.html#toc6">Indice</A> </BODY> </HTML>