Primeiramente, as letras de unidade só acontecem algumas vezes, dependendo de como a sua máquina está configurada. Não se espera que as letras de unidade sejam estáveis durante as reinicializações desde, ummm, um tempo. Por isso, não é uma grande preocupação que o seu disco tenha mudado para você.
Assumindo que o dmraid e o mapeador de dispositivos não estejam usando seus dispositivos:
Bem, mdadm --stop /dev/md0
pode cuidar de suas mensagens ocupadas, acho que é por isso que está reclamando. Então você pode tentar sua linha de montagem novamente. Se não funcionar, - pare novamente seguido por montar com --run
(sem executar, --assemble --scan não iniciará uma matriz degradada). Em seguida, você pode remover e adicionar novamente o disco com falha para permitir que ele tente uma reconstrução.
/ dev / sde está desatualizado (veja o contador de eventos). Os outros parecem bem à primeira vista, então eu acho que você realmente tem uma boa chance de não ter dificuldades.
Você não deve zerar nenhum superbloco ainda. Muito alto risco de perda de dados. Se --run não funcionar, acho que você vai querer encontrar alguém localmente (ou quem pode ssh in) que sabe o que está fazendo para tentar consertar.
Em resposta à Atualização 1
Isso "não é suficiente para iniciar a matriz" nunca é uma boa mensagem para obter do mdadm. O que significa é que o mdadm encontrou 10 drives fora do seu array RAID5 de 12 drives, e como espero que você esteja ciente, o RAID5 só pode sobreviver a um um falha, não dois.
Bem, vamos tentar juntar o que aconteceu. Primeiro, durante a reinicialização, houve uma mudança na letra da unidade, o que é irritante para nós tentarmos descobrir, mas o mdraid não se importa com isso. Lendo através da sua saída mdadm, aqui está o remapeamento que aconteceu (classificado pelo disco de raid #):
00 sdh1 -> sdb1
02 sdk1 -> sde1 [OUTDATED]
03 sdg1 -> sda1
04 sdf1 -> sdm1
05 sdd1 -> sdk1
06 sdm1 -> sdg1
07 sdc1 -> sdj1
08 sdi1 -> sdc1
09 sde1 -> sdl1
10 sdj1 -> sdd1
11 sdl1 -> sdf1
13 sdb1 -> sdi1 [SPARE]
# 02 tem um contador de 'eventos' menor que os outros. Isso significa que deixou a matriz em algum momento.
Seria bom se você conhecesse parte do histórico dessa matriz, por exemplo, "RAID5 de 12 unidades e 1 hot spare" correto?
Não sei bem qual é a sequência de falhas que levam a isso, no entanto. Parece que, em algum momento, o dispositivo nº 1 falhou e uma reconstrução no dispositivo nº 12 começou.
Mas não consigo entender exatamente o que aconteceu depois. Talvez você tenha registros - ou um administrador para perguntar. Aqui está o que eu não consigo explicar:
De alguma forma, o # 12 tornou-se # 13. De alguma forma, o # 2 se tornou # 12.
Então, a reconstrução para o # 12 deve ter terminado e o # 12 seria o # 1. Talvez não - talvez não tenha conseguido reconstruir por algum motivo. Então talvez o # 2 falhou - ou talvez o # 2 tenha falhado, é por isso que a reconstrução não foi concluída e alguém tentou remover e adicionar novamente o # 2? Isso pode torná-lo # 12. Então talvez removido e re-adicionado o sobressalente, tornando # 13.
Ok, mas é claro que, neste momento, você teve uma falha de dois discos. Está bem. Isso faz sentido.
Se foi isso que aconteceu, você sofreu uma falha de dois discos. Isso significa que você perdeu dados. O que você faz a seguir depende da importância desses dados (considerando também o quanto seus backups são bons).
Se os dados forem muito valiosos (e você não tiver bons backups), entre em contato com especialistas em recuperação de dados. Caso contrário:
Se os dados forem valiosos o suficiente, você deve usar dd
para criar imagens de todos os discos envolvidos (você pode usar discos maiores e arquivos em cada um para economizar dinheiro. Externos de 2 ou 3 TB, por exemplo). Em seguida, faça uma cópia das imagens. Em seguida, trabalhe na recuperação dessa cópia (você pode usar dispositivos de loop para fazer isso).
Obtenha mais peças de reposição. Provavelmente, você tem um disco morto. Você tem pelo menos alguns discos questionáveis - smartctl
pode ser capaz de lhe dizer mais.
Próximo --force
à sua linha --assemble
. Isso fará com que o mdadm use o disco desatualizado de qualquer maneira. Isso significa que alguns setores agora terão dados desatualizados, outros não. Adicione um desses novos discos como sobressalente, deixe o recondicionamento terminar. Espero que você não acerte nenhum bloco defeituoso (o que causaria falha na reconstrução, e acredito que a única resposta é fazer com que o disco seja mapeado). Em seguida, fsck -f
o disco. Provavelmente haverá erros. Depois que eles forem corrigidos, monte o disco e veja em que formato seus dados estão.
Recomendações
No futuro, não crie RAID5s de 12 discos. A probabilidade de falha de dois discos é muito alta. Use RAID6 ou RAID10. Além disso, certifique-se de esfregar rotineiramente seus arrays em busca de blocos defeituosos ( echo check > /sys/block/md0/md0/sync_action
).