No seu caso específico:
mdadm --grow /dev/md1 --raid-devices=3
Para todos os demais, defina --raid-devices
para quantos dispositivos funcionais estiverem no array atualmente.
Eu tive que substituir dois discos rígidos no meu RAID1. Depois de adicionar as duas novas partições, as antigas ainda são exibidas como removidas , enquanto as novas são adicionadas apenas como sobressalentes. Não tive sorte em remover as partições marcadas como removidas .
Aqui está o RAID em questão. Observe os dois dispositivos (0 e 1) com o estado removido .
$ mdadm --detail /dev/md1
mdadm: metadata format 00.90 unknown, ignored.
mdadm: metadata format 00.90 unknown, ignored.
/dev/md1:
Version : 00.90
Creation Time : Thu May 20 12:32:25 2010
Raid Level : raid1
Array Size : 1454645504 (1387.26 GiB 1489.56 GB)
Used Dev Size : 1454645504 (1387.26 GiB 1489.56 GB)
Raid Devices : 3
Total Devices : 3
Preferred Minor : 1
Persistence : Superblock is persistent
Update Time : Tue Nov 12 21:30:39 2013
State : clean, degraded
Active Devices : 1
Working Devices : 3
Failed Devices : 0
Spare Devices : 2
UUID : 10d7d9be:a8a50b8e:788182fa:2238f1e4
Events : 0.8717546
Number Major Minor RaidDevice State
0 0 0 0 removed
1 0 0 1 removed
2 8 34 2 active sync /dev/sdc2
3 8 18 - spare /dev/sdb2
4 8 2 - spare /dev/sda2
Como posso me livrar desses dispositivos e adicionar as novas partições como dispositivos RAID ativos?
Atualização 1
Parece que me livrei deles. Meu RAID está ressincronizando, mas as duas unidades ainda estão marcadas como sobressalentes e são números 3 e 4, o que parece errado. Vou ter que esperar que a ressincronização termine.
Tudo o que fiz foi corrigir o erro de metadados editando meu mdadm.conf e reinicializando. Eu tentei reiniciar antes, mas desta vez funcionou por qualquer motivo.
Number Major Minor RaidDevice State
3 8 2 0 spare rebuilding /dev/sda2
4 8 18 1 spare rebuilding /dev/sdb2
2 8 34 2 active sync /dev/sdc2
Atualização 2
Depois de ressincronizar, o problema é exatamente o mesmo de antes. As duas novas partições são listadas como peças de reposição, enquanto as antigas marcadas como removidas ainda estão lá.
Está parando e recriando a matriz a única opção para mim?
Atualização 3 *
# cat /proc/mdstat
Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] [linear] [multipath]
md1 : active raid1 sdb2[3](S) sdc2[0] sda2[4](S)
1454645504 blocks [3/1] [U__]
md0 : active raid1 sdc1[0] sdb1[2] sda1[1]
10488384 blocks [3/3] [UUU]
unused devices: <none>
No seu caso específico:
mdadm --grow /dev/md1 --raid-devices=3
Para todos os demais, defina --raid-devices
para quantos dispositivos funcionais estiverem no array atualmente.
Acho que isso deve fazer o trabalho:
mdadm /dev/md1 -r detached