Uma das unidades do meu servidor falhou e, por isso, removi a unidade com falha de todas as três matrizes relevantes, a unidade foi desativada e, em seguida, a nova unidade foi adicionada às matrizes. Duas das matrizes funcionaram perfeitamente. O terceiro adicionou a unidade de volta como sobressalente e há uma entrada estranha "removida" nos detalhes mdadm
.
Eu tentei os dois
mdadm /dev/md2 --remove failed
e
mdadm /dev/md2 --remove detached
como sugerido aqui e aqui , nenhum dos quais reclamou, mas nenhum dos quais teve algum efeito, também.
Alguém sabe como posso me livrar dessa entrada e recuperar a unidade corretamente? (Idealmente sem ressincronizar uma terceira vez, eu já tive que fazer isso duas vezes e isso leva horas. Mas se é o que é preciso, é o que é necessário.) A nova unidade é /dev/sda
, a partição relevante é /dev/sda3
.
Veja os detalhes da matriz:
# mdadm --detail /dev/md2
/dev/md2:
Version : 0.90
Creation Time : Wed Oct 26 12:27:49 2011
Raid Level : raid1
Array Size : 729952192 (696.14 GiB 747.47 GB)
Used Dev Size : 729952192 (696.14 GiB 747.47 GB)
Raid Devices : 2
Total Devices : 2
Preferred Minor : 2
Persistence : Superblock is persistent
Update Time : Tue Nov 12 17:48:53 2013
State : clean, degraded
Active Devices : 1
Working Devices : 2
Failed Devices : 0
Spare Devices : 1
UUID : 2fdbf68c:d572d905:776c2c25:004bd7b2 (local to host blah)
Events : 0.34665
Number Major Minor RaidDevice State
0 0 0 0 removed
1 8 19 1 active sync /dev/sdb3
2 8 3 - spare /dev/sda3
Se for relevante, é um servidor de 64 bits. Ele normalmente roda o Ubuntu, mas agora eu estou no sistema operacional de "resgate" do data center, que é o Debian 7 (wheezy). A entrada "removida" estava lá na última vez que eu estava no Ubuntu (ela não irá, atualmente, inicializar a partir do disco), então eu não acho que isso seja algum conflito Ubuntu / Debian (e eles estão, é claro, próximos relacionado).
Atualizar :
Tendo feito testes extensivos com dispositivos de teste em uma máquina local, estou simplesmente obtendo um comportamento anormal de mdadm
com essa matriz. Por exemplo, com /dev/sda3
removido da matriz novamente, fiz isso:
mdadm /dev/md2 --grow --force --raid-devices=1
E isso livrou-se do dispositivo "removido", deixando-me apenas com /dev/sdb3
. Então eu nuked /dev/sda3
(escrevi um sistema de arquivos para ele, então ele não tinha mais o raid fs), então:
mdadm /dev/md2 --grow --raid-devices=2
... que me deu uma matriz com /dev/sdb3
no slot 0 e "removido" no slot 1 como seria de esperar. Então
mdadm /dev/md2 --add /dev/sda3
... adicionou-o novamente como novamente . (Mais 3,5 horas pelo ralo.)
Então, com o sobressalente recriado na matriz, dado que a página do manual mdadm
diz
RAID-DEVICES CHANGES
...
When the number of devices is increased, any hot spares that are present will be activated immediately.
... Eu cresci o array para três dispositivos, para tentar ativar o "spare":
mdadm /dev/md2 --grow --raid-devices=3
O que eu recebi? Dois dispositivos "removidos" e o sobressalente. E, no entanto, quando faço isso com uma matriz de teste, não obtenho esse comportamento.
Por isso, eu derrubei /dev/sda3
novamente, usei-o para criar uma matriz totalmente nova e copiei os dados da matriz antiga para a nova:
rsync -r -t -v --exclude 'lost+found' --progress /mnt/oldarray/* /mnt/newarray
Isso, é claro, levará horas. Espero que quando eu terminar, eu possa parar completamente a matriz antiga, nuke /dev/sdb3
, e adicioná-la à nova matriz. Espero que não seja adicionado como sobressalente!