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:
raidhotadd /dev/mdX /dev/sdX
per inserire nuovamente il disco nell'arrayBene, 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.
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 failed-disk
nel nostro file /etc/raidtab
, così funzionerà solo con i kernel 2.2.10 e successivi.
Lo scenario è:
Per prima cosa: riscrivete il RAID superblock con il comando mkraid --force
Al fine di farlo lavorare correttamente, avete bisogno di un file /etc/raidtab
aggiornato - se esso non corrisponde ESATTAMENTE ai dispositivi e all'ordine dei dischi originali, non funzionerà.
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.
Se date il comando mkraid
senza failed-disk
, il processo di ricostruzione partirà immediatamente ed inizierà a ricostruire i blocchi di parità - il che non è necessariamente quello che volete in questo momento.
Con failed-disk
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.