Consentitemi di riconoscere innanzitutto che ho commesso errori e che ho un backup per la maggior parte ma non per tutti i dati su questo RAID. Spero ancora di recuperare il resto dei dati. Non ho il tipo di denaro per portare le unità in un'azienda esperta di recupero.
Errore # 0, non avendo un backup del 100%. Lo so.
Ho un mdadm
sistema RAID5 di 4x3 TB. Drives / dev / sd [be], tutti con una partizione /dev/sd[b-e]1
. Sono consapevole che RAID5 su unità molto grandi è rischioso, eppure l'ho fatto comunque.
Eventi recenti
Il RAID si deteriora dopo un guasto a due unità. Un'unità [/ dev / sdc] è davvero sparita, l'altra [/ dev / sde] è tornata su dopo un ciclo di accensione, ma non è stata automaticamente aggiunta di nuovo al RAID. Quindi mi è rimasto un RAID a 4 dispositivi con solo 2 unità attive [/ dev / sdb e / dev / sdd].
Errore n. 1, non utilizzare copie dd delle unità per ripristinare il RAID. Non avevo le unità o il tempo. Errore n. 2, non eseguire un backup del superblocco e mdadm -E
delle unità rimanenti.
Tentativo di recupero
Ho riassemblato il RAID in modalità degradata con
mdadm --assemble --force /dev/md0, using /dev/sd[bde]1.
Potrei quindi accedere ai miei dati. Ho sostituito /dev/sdc
con un ricambio; vuoto; unità identica.
Ho rimosso il vecchio /dev/sdc1
dal RAID
mdadm --fail /dev/md0 /dev/sdc1
Errore n. 3, non farlo prima di sostituire l'unità
Ho quindi partizionato il nuovo /dev/sdc
e l'ho aggiunto al RAID.
mdadm --add /dev/md0 /dev/sdc1
Quindi ha iniziato a ripristinare il RAID. ETA 300 min. Ho seguito il processo /proc/mdstat
fino al 2% e poi sono andato a fare altre cose.
Verifica del risultato
Diverse ore (ma meno di 300 minuti) più tardi, ho controllato il processo. Si era interrotto a causa di un errore di lettura attivato /dev/sde1
.
Qui è dove inizia davvero il problema
Ho quindi rimosso /dev/sde1
dal RAID e l'ho aggiunto di nuovo. Non ricordo perché l'ho fatto; era tardi.
mdadm --manage /dev/md0 --remove /dev/sde1
mdadm --manage /dev/md0 --add /dev/sde1
Tuttavia, /dev/sde1
ora è stato contrassegnato come ricambio. Così ho deciso di ricreare l'intero array usando --assume-clean usando quello che pensavo fosse il giusto ordine e con la /dev/sdc1
mancanza.
mdadm --create /dev/md0 --assume-clean -l5 -n4 /dev/sdb1 missing /dev/sdd1 /dev/sde1
Ha funzionato, ma il filesystem non è stato riconosciuto durante il tentativo di montare. (Avrebbe dovuto essere EXT4).
Ordine del dispositivo
Ho quindi controllato un backup recente di cui disponevo /proc/mdstat
e ho trovato l'ordine dell'unità.
md0 : active raid5 sdb1[0] sde1[4] sdd1[2] sdc1[1]
8790402048 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/4] [UUUU]
Ho poi ricordato che questo RAID aveva subito una perdita di unità circa un anno fa e mi sono ripreso sostituendo l'unità guasta con una di riserva. Ciò potrebbe aver confuso un po 'l'ordine del dispositivo ... quindi non c'erano unità [3] ma solo [0], [1], [2] e [4].
Ho provato a trovare l'ordine dell'unità con lo script Permute_array: https://raid.wiki.kernel.org/index.php/Permute_array.pl ma quello non ha trovato l'ordine giusto.
Domande
Ora ho due domande principali:
Ho rovinato tutti i superblocchi sui dischi, ma ho dato solo:
mdadm --create --assume-clean
comandi (quindi non avrei dovuto sovrascrivere i dati stessi
/dev/sd[bde]1
. Ho ragione che in teoria il RAID può essere ripristinato [supponendo per un momento che/dev/sde1
sia ok] se trovo solo il giusto ordine del dispositivo?È importante che
/dev/sde1
venga assegnato il numero del dispositivo [4] nel RAID? Quando lo creo conmdadm --create /dev/md0 --assume-clean -l5 -n4 \ /dev/sdb1 missing /dev/sdd1 /dev/sde1
gli viene assegnato il numero [3]. Mi chiedo se ciò sia rilevante per il calcolo dei blocchi di parità. Se risulta essere importante, come posso ricreare l'array con
/dev/sdb1[0]
[1] mancante/dev/sdd1[2]
/dev/sde1[4]
? Se riuscissi a farlo funzionare, potrei avviarlo in modalità degradata e aggiungere la nuova unità/dev/sdc1
e lasciarlo risincronizzare di nuovo.
Va bene se vuoi farmi notare che questo potrebbe non essere stato il miglior modo di agire, ma scoprirai che me ne sono reso conto. Sarebbe bello se qualcuno avesse qualche suggerimento.