Sto riscontrando il seguente problema con una partizione raid software RAID1 sul mio sistema Ubuntu (10.04 LTS, 2.6.32-24-server nel caso in cui sia importante).
Uno dei miei dischi (sdb5) ha segnalato errori I / O ed è stato quindi contrassegnato come difettoso nell'array. L'array è stato quindi degradato con un dispositivo attivo. Quindi, ho sostituito il disco rigido, ho clonato la tabella delle partizioni e ho aggiunto tutte le nuove partizioni ai miei array raid. Dopo aver sincronizzato tutte le partizioni è finito bene, con 2 dispositivi attivi - tranne uno. La partizione che in precedenza aveva segnalato il disco difettoso, tuttavia, non includeva la nuova partizione come dispositivo attivo ma come disco di riserva:
md3 : active raid1 sdb5[2] sda5[1]
4881344 blocks [2/1] [_U]
Uno sguardo dettagliato rivela:
root@server:~# mdadm --detail /dev/md3
[...]
Number Major Minor RaidDevice State
2 8 21 0 spare rebuilding /dev/sdb5
1 8 5 1 active sync /dev/sda5
Quindi, ecco la domanda: come faccio a dire al mio raid di trasformare il disco di riserva in uno attivo? E perché è stato aggiunto come dispositivo di riserva? Ricreare o riassemblare l'array non è un'opzione, perché è la mia partizione di root. E non riesco a trovare alcun suggerimento su tale argomento nel Software Raid HOWTO.
Qualsiasi aiuto sarebbe apprezzato.
Soluzione attuale
Ho trovato una soluzione al mio problema, ma non sono sicuro che questo sia il modo effettivo di farlo. Dando un'occhiata più da vicino al mio raid, ho scoperto che sdb5 era sempre elencato come dispositivo di riserva:
mdadm --examine /dev/sdb5
[...]
Number Major Minor RaidDevice State
this 2 8 21 2 spare /dev/sdb5
0 0 0 0 0 removed
1 1 8 5 1 active sync /dev/sda5
2 2 8 21 2 spare /dev/sdb5
quindi la lettura del dispositivo sdb5 nell'array md3 ha sempre finito per aggiungere il dispositivo come ricambio.
Alla fine ho appena ricreato l'array
mdadm --create /dev/md3 --level=1 -n2 -x0 /dev/sda5 /dev/sdb5
che ha funzionato.
Ma la domanda rimane aperta per me: esiste un modo migliore per manipolare i riepiloghi nel superblocco e dire all'array di trasformare sdb5 da un disco di riserva a un disco attivo? Sono ancora curioso di avere una risposta.