UPDATE-8/22
Se você quiser resolver esse problema rapidamente, basta substituir as duas unidades que têm as piores estatísticas de smartctl e reavaliam. Quando você estiver fora dos blocos reservados, sua unidade será EOL. Vendo que compramos tudo de uma vez, eles tendem a falhar na mesma época. Então não importa qual é o bloco ruim está preso a. Depois de substituir os dois piores criminosos (o que significa substituir um e ressincronizar e repetir), você terá aumentado a saúde geral do array, provavelmente substituído o disco de reclamação e reduzido drasticamente o risco de uma falha dupla, em que você perderá tudo.
No final do dia, seus dados valem mais do que algumas centenas de dólares.
ENDUPDATE-8/22
UPDATE-8/21
Toni Sim, seu post original tem espaço para melhorias. Dados esses fatos, esta é a conclusão a que cheguei. Também não ficou claro até agora que você já sofreu corrupção de dados.
Seria útil incluir os cabeçalhos com a saída smartctl. Isso é mais fácil no scsi, o sg_reassign irá dizer quantos blocos livres você tem para reatribuir, uma vez que vai para zero, você está pronto. Vendo que o smartctl está relatando "prefail" em várias categorias, parece que você também acabou em breve.
Em breve, você receberá erros de mídia pesada e o MD kickará a unidade. O fsck seria uma boa ideia nesse meio tempo. Quando as unidades falham em uma gravação, elas reatribuem o destino do bloco de blocos livre; quando você acaba, isso se torna um erro de mídia irrecuperável.
Também habilite "scrubber de disco" no MD e execute-o no cron semanalmente, ele irá ler e reescrever cada setor e desabilitar isso antes que ele se torne um problema real. Veja Documentation / md.txt no kernel.
[exemplo de lavagem de disco] link
Você ainda precisa executar o smartmon em todas as unidades (uma vez por dia, fora das horas), analisar a saída e criar alarmes para evitar esse problema.
Pessoal, isso é o que os invasores de hardware fazem por você. A ironia é que temos todas as ferramentas para fornecer uma melhor experiência de MD, mas ninguém as une em uma solução integrada.
Você está praticamente no final da corrupção silenciosa de dados. Um fsck pode ajudá-lo, mas realmente a melhor coisa a fazer é consultar seus backups (você manteve os backups corretos? Os RAIDs não são backups) e se preparar para que esse RAID comece a afundar.
Então você encontrará o disco ruim.
Desculpe.
ENDUPDATE-8/21
Para começar, você leu a man page de badblocks para as opções que usou?
-w Use write-mode test. With this option, badblocks scans for bad blocks by writing
some patterns (0xaa, 0x55, 0xff, 0x00) on every block of the device, reading every
block and comparing the contents. This option may not be combined with the -n
option, as they are mutually exclusive.
Então seus dados se foram, -n foi a versão não destrutiva. Talvez o que você realmente fez foi puxar um disco da matriz, executar badblocks nele e reinseri-lo? Por favor, esclareça.
O fato de você não saber qual disco falhou ao começar me diz que não é uma matriz de ataque MD. Então, quaisquer que sejam as ferramentas "raid" lvm inexistentes para ajudá-lo a se recuperar dessa falha simples, é isso que você precisa descobrir.
Eu diria que a maioria dos usuários usa uma solução de ataque MD. O restante se distrai com "o que é essa coisa?" ou "oh, isso é LVM, é o que eu devo fazer, certo?" e depois acaba onde você está agora. Imploro a implementação com ferramentas de gerenciamento terríveis que, na verdade, criaram mais riscos do que você tentou atenuar construindo um RAID 6 para começar.
Não é sua culpa, você não sabia. Francamente, eles devem desativar a coisa exatamente por esse motivo.
Em relação à reparação de blocos defeituosos. Você pode fazer isso colocando a máquina offline e inicializando em uma unidade USB viva e executando um dos seguintes procedimentos de reparo.
Quanto a onde esse setor está em sua matriz. Bem, você teria que considerar a rotação de paridade, que é uma PITA. Eu sugiro que você simplesmente verifique cada unidade até encontrar o problema.
Você pode ajudar a evitar isso no futuro ativando a "limpeza de disco" no MD, que lê e reescreve cada setor em uma janela de manutenção para descobrir exatamente esses tipos de problemas e potencialmente repará-los.
Espero que isso ajude.