Eu finalmente resolvi isso, 24 horas de dor, então pensei em compartilhar:
Estas são as informações, se você perder um controlador de disco, todos os seus discos entrarão em estado de falha. Quando você desliga a matriz e substitui o controlador na reinicialização, todos os discos têm rótulos diferentes. Repare que eu não disse reiniciar. Eu reiniciei o array RAID, pois o sistema não pode ser reinicializado.
Passo 1 - Diga ao mdadm para esquecer o disco separado assim:
$ & mt: mdadm / dev / md1 --remove desanexado
Se você tentar usar o mdadm / dev / md1 --remove / dev / sdX, isso falhará, então você terá que usar o 'desanexado'. Se isso não desanexar todos os discos em seu grupo de ataque, provavelmente será necessário executá-lo mais de uma vez. Eu fiz. No terceiro gato / proc / mdstat, todos eles foram removidos.
Etapa 2 - Se você tentar desligar o array e tiver algum volume lógico ou usuário ativo no momento em que o controlador falhou, você não poderá:
$ & mt; mdadm --stop / dev / md1
No entanto, se isso funcionar, ignore o passo 3.
Passo 3 - usando o dmsetup remove para liberar o array
Então ... você precisa executar o comando dmsetup remove -f -j 1234 -m 1. Esses números vêm da execução de informações do dmsetup e da procura dos volumes que falharam. No meu caso, eles eram fáceis de identificar porque os quebrados tinham uma bandeira aberta de zero como essa. Executar isso em um sistema ativo é uma forma assustadora, portanto, certifique-se de obter esses números corretamente. Esse comando ajudará:
$ > dmsetup info .. .. .. Nome: raid5_vol2-u03 Estado: ACTIVE Leia adiante: 1024 Tabelas presentes: LIVE Contagem aberta: 0 Número do evento: 0 Maior, menor: 253, 6 Número de alvos: 1 UUID: LVM-fPJWYWhBhTO7tzHMBbc01qR20Nazc8N93S0bMPqstrg0sFFVtipaWYi7NYzas12d
O volume na caixa que estava ativa tinha um 1 em contagem aberta. Os quebrados tiveram uma contagem aberta de 0.
Se você tiver certeza de que tem o volume correto, poderá emitir o comando. No meu caso, os dois números eram 253 e 6.
$ > dmsetup remove -f -j 253 -m 6 aguarde 30 segundos $ & mt; mdadm --stop / dev / md1
Passo 4 - supondo que você foi capaz de parar o array que você precisa para tentar montá-lo novamente.
Para fazer isso, você precisa saber quais são as novas etiquetas de disco, se você sabe os números de série dos seus discos antes da falha, o que é uma boa prática, você pode executar
$ > smartctl -i / dev / sdN para descobrir qual etiqueta corresponde a qual disco agora. Alternativamente, você pode desligar o array novamente e verificá-los fisicamente.
Quando souber:
$ > mdadm --assemble / dev / md1 / dev / sdn1 / dev / sds1 / dev / sdt1 ... etc.
Se isso funcionar, você receberá um ataque iniciado com mensagens, se não for hmm ... Não tenho certeza!
espere um pouco ...
$ > cat / proc / mdstat
O array deve estar sincronizando / reconstruindo. Meu pequeno levou minutos o grande levou horas. Se isso funciona.
Passo 5 - neste momento, os grupos de volumes, os volumes lógicos, etc, estarão todos em um estado para corrigi-los. Eu corri:
$ > pvscan $ > vgscan $ > lvscan
Para minha sorte, isso identificou minha matriz e ligou as coisas, mas deixou o grupo de volumes inativo.
Então lvs mostrou:
inactive raid5_vol1 ...
Etapa 6 - reativar o grupo de volumes:
vgchange -a y raid5_vol1
Passo 7 - Se tudo correu bem, isso não seria montável novamente e você pode me agradecer neste post por ajudar.
Boa sorte!
Katie