Per la tua domanda bonus:
mdadm --examine --scan >> /etc/mdadm/mdadm.conf
Ho scoperto che devo aggiungere l'array manualmente in /etc/mdadm/mdadm.conf
per fare in modo che Linux lo monti al riavvio. Altrimenti ottengo esattamente quello che hai qui - md_d1
-dispositivi inattivi ecc.
Il file conf dovrebbe apparire come sotto - cioè un ARRAY
-line per ogni dispositivo md. Nel mio caso i nuovi array mancavano in questo file, ma se li hai elencati probabilmente non è una soluzione al tuo problema.
# definitions of existing MD arrays
ARRAY /dev/md0 level=raid5 num-devices=3 UUID=f10f5f96:106599e0:a2f56e56:f5d3ad6d
ARRAY /dev/md1 level=raid1 num-devices=2 UUID=aa591bbe:bbbec94d:a2f56e56:f5d3ad6d
Aggiungi un array per dispositivo md e aggiungili dopo il commento incluso sopra o, se non esiste tale commento, alla fine del file. Ottieni gli UUID facendo sudo mdadm -E --scan
:
$ sudo mdadm -E --scan
ARRAY /dev/md0 level=raid5 num-devices=3 UUID=f10f5f96:106599e0:a2f56e56:f5d3ad6d
ARRAY /dev/md1 level=raid1 num-devices=2 UUID=aa591bbe:bbbec94d:a2f56e56:f5d3ad6d
Come puoi vedere, puoi semplicemente copiare l'output dal risultato della scansione nel file.
Eseguo Ubuntu desktop 10.04 LTS e, per quanto ricordo, questo comportamento è diverso dalla versione server di Ubuntu, tuttavia è passato così tanto tempo da quando ho creato i miei dispositivi md sul server che potrei sbagliarmi. Può anche darsi che mi sia sfuggita qualche opzione.
Ad ogni modo, l'aggiunta dell'array nel file conf sembra fare il trucco. Ho eseguito i suddetti raid 1 e raid 5 per anni senza problemi.
Avviso: Prima di tutto lasciami dire che quanto segue (a causa dell'uso di "--force") mi sembra rischioso, e se hai dati irrecuperabili ti consiglio di fare copie delle partizioni coinvolte prima di iniziare a provare una qualsiasi delle cose sotto. Tuttavia, questo ha funzionato per me.
Ho avuto lo stesso problema, con un array visualizzato come inattivo, e nulla di ciò che ho fatto, incluso "mdadm --examine --scan>/etc/mdadm.conf", come suggerito da altri qui, mi ha aiutato.
Nel mio caso, quando ha provato ad avviare l'array RAID-5 dopo la sostituzione di un'unità, diceva che era sporco (tramite dmesg
):
md/raid:md2: not clean -- starting background reconstruction
md/raid:md2: device sda4 operational as raid disk 0
md/raid:md2: device sdd4 operational as raid disk 3
md/raid:md2: device sdc4 operational as raid disk 2
md/raid:md2: device sde4 operational as raid disk 4
md/raid:md2: allocated 5334kB
md/raid:md2: cannot start dirty degraded array.
Facendolo apparire come inattivo in /proc/mdstat
:
md2 : inactive sda4[0] sdd4[3] sdc4[2] sde4[5]
3888504544 blocks super 1.2
Ho scoperto che tutti i dispositivi contenevano gli stessi eventi, ad eccezione dell'unità che avevo sostituito (/dev/sdb4
):
[[email protected] sr]# mdadm -E /dev/sd*4 | grep Event
mdadm: No md superblock detected on /dev/sdb4.
Events : 8448
Events : 8448
Events : 8448
Events : 8448
Tuttavia, i dettagli dell'array mostravano che aveva 4 dispositivi su 5 disponibili:
[[email protected] sr]# mdadm --detail /dev/md2
/dev/md2:
[...]
Raid Devices : 5
Total Devices : 4
[...]
Active Devices : 4
Working Devices : 4
[...]
Number Major Minor RaidDevice State
0 8 4 0 inactive dirty /dev/sda4
2 8 36 2 inactive dirty /dev/sdc4
3 8 52 3 inactive dirty /dev/sdd4
5 8 68 4 inactive dirty /dev/sde4
(Quanto sopra è a memoria nella colonna "Stato", non riesco a trovarlo nel mio buffer di scorrimento).
Sono stato in grado di risolvere questo problema arrestando l'array e quindi riassemblandolo:
mdadm --stop /dev/md2
mdadm -A --force /dev/md2 /dev/sd[acde]4
A quel punto l'array era attivo, funzionante con 4 dei 5 dispositivi, e sono stato in grado di aggiungere il dispositivo sostitutivo ed è in fase di ricostruzione. Sono in grado di accedere al file system senza alcun problema.