O complexo funcional MD RAID10 repentinamente marca todas as unidades como sobressalentes

1

Esta manhã, durante uma longa operação de leitura ~ 1.5TB enviando dados para um cliente NFS, meu array md complex-RAID10 parou espontaneamente, depois descartou quatro membros por serem "não-recentes" e falhou ao iniciar novamente. A verificação do mdstat mostra todas as unidades consideradas "sobressalentes".

Executando no Debian 7. 6x HGST Deskstar NAS, quatro rodando em uma placa de expansão Marvell 88SE9230 PCIe e duas no interno ICH7 SATA. Todas as unidades passam pela SMART sem realocações. As quatro unidades que foram descartadas estavam todas na placa Marvell, mas também são sda, sdb, sdc e sdd e tenho a sensação de que não é necessariamente o controlador, que testei e continuo a funcionar bem.

Acredito que todos os dados desta matriz devem ser salvos em backup, mas não tenho certeza e todos os dados que ela está lidando são de extrema importância. Meu fluxo de trabalho de armazenamento está em transição agora e os backups para esses dados estão em todo lugar.

Como posso fazer isso começar de novo? Alguns sugeriram falhar e remover cada unidade e adicioná-la novamente, alguns sugeriram iniciar a matriz com --force, e outros ainda disseram para recriar a matriz com --assume-clean, mas todos têm experiência apenas com outros níveis de RAID . Eles e eu não temos ideia de como eles se comportariam com um RAID10 complexo e isso não parece bom.

[UPDATE] Eu descobri que os nomes dos dispositivos haviam mudado. É por isso que a unidade do SO é sdg no mdstat (após a reinicialização) e é sdc no syslog (daí a mensagem de montagem do EXT4). Agora eu não acredito que os quatro que foram expulsos estavam todos no controle da Marvell.

Parei a matriz montada em 1/3 e --assemble --scan mostrou quatro unidades "(possivelmente desatualizadas)" e ela não pôde ser construída a partir das outras duas. Tentei novamente manualmente usando --assemble --force e limpei os sinalizadores FAULTY, montados a partir de 6 drives, mas ainda não consegui iniciar o array porque todos eles ainda estão marcados como SPARE. Então, isso me deixa com o passo de como obter essas unidades reconhecidas novamente como seus respectivos membros funcionais deste RAID10, se isso for possível ...

mdstat:

md0 : inactive sdf[0](S) sdd[5](S) sdc[4](S) sdb[3](S) sda[2](S) sde[1](S)
      23441325072 blocks super 1.2


syslog:

    Dec 13 02:30:02 mWproduction rpc.mountd[2790]: authenticated mount request from 10.10.1.124:993 for /media/MainStore (/media/MainStore)
    Dec 13 02:33:22 mWproduction kernel: [ 2238.437611] md: md0 stopped.
    Dec 13 02:33:22 mWproduction kernel: [ 2238.437628] md: unbind
    Dec 13 02:33:22 mWproduction kernel: [ 2238.456050] md: export_rdev(sdf)
    Dec 13 02:33:22 mWproduction kernel: [ 2238.456131] md: unbind
    Dec 13 02:33:22 mWproduction kernel: [ 2238.472043] md: export_rdev(sdd)
    Dec 13 02:33:22 mWproduction kernel: [ 2238.472130] md: unbind
    Dec 13 02:33:22 mWproduction kernel: [ 2238.472183] md: export_rdev(sdc)
    Dec 13 02:33:22 mWproduction kernel: [ 2238.472233] md: unbind
    Dec 13 02:33:22 mWproduction kernel: [ 2238.476282] md: export_rdev(sdb)
    Dec 13 02:33:22 mWproduction kernel: [ 2238.476329] md: unbind
    Dec 13 02:33:22 mWproduction kernel: [ 2238.476369] md: export_rdev(sda)
    Dec 13 02:33:22 mWproduction kernel: [ 2238.476421] md: unbind
    Dec 13 02:33:22 mWproduction kernel: [ 2238.480171] md: export_rdev(sde)
    Dec 13 02:33:27 mWproduction kernel: [ 2243.889311] md: md0 stopped.
    Dec 13 02:33:27 mWproduction kernel: [ 2243.890748] md: bind
    Dec 13 02:33:27 mWproduction kernel: [ 2243.890902] md: bind
    Dec 13 02:33:27 mWproduction kernel: [ 2243.891047] md: bind
    Dec 13 02:33:27 mWproduction kernel: [ 2243.891190] md: bind
    Dec 13 02:33:27 mWproduction kernel: [ 2243.891327] md: bind
    Dec 13 02:33:27 mWproduction kernel: [ 2243.891503] md: bind
    Dec 13 02:33:27 mWproduction kernel: [ 2243.891528] md: kicking non-fresh sdd from array!
    Dec 13 02:33:27 mWproduction kernel: [ 2243.891534] md: unbind
    Dec 13 02:33:27 mWproduction kernel: [ 2243.904065] md: export_rdev(sdd)
    Dec 13 02:33:27 mWproduction kernel: [ 2243.904079] md: kicking non-fresh sdc from array!
    Dec 13 02:33:27 mWproduction kernel: [ 2243.904090] md: unbind
    Dec 13 02:33:27 mWproduction kernel: [ 2243.916138] md: export_rdev(sdc)
    Dec 13 02:33:27 mWproduction kernel: [ 2243.916155] md: kicking non-fresh sdb from array!
    Dec 13 02:33:27 mWproduction kernel: [ 2243.916173] md: unbind
    Dec 13 02:33:27 mWproduction kernel: [ 2243.928029] md: export_rdev(sdb)
    Dec 13 02:33:27 mWproduction kernel: [ 2243.928039] md: kicking non-fresh sda from array!
    Dec 13 02:33:27 mWproduction kernel: [ 2243.928046] md: unbind
    Dec 13 02:33:27 mWproduction kernel: [ 2243.944040] md: export_rdev(sda)
    Dec 13 02:33:27 mWproduction kernel: [ 2243.962667] md: raid10 personality registered for level 10
    Dec 13 02:33:27 mWproduction kernel: [ 2243.963132] bio: create slab  at 1
    Dec 13 02:33:27 mWproduction kernel: [ 2243.967055] md/raid10:md0: not enough operational mirrors.
    Dec 13 02:33:27 mWproduction kernel: [ 2243.967264] md: pers->run() failed ...
    Dec 13 02:33:35 mWproduction kernel: [ 2251.460454] md: md0 stopped.
    Dec 13 02:33:35 mWproduction kernel: [ 2251.460465] md: unbind
    Dec 13 02:33:35 mWproduction kernel: [ 2251.480313] md: export_rdev(sdf)
    Dec 13 02:33:35 mWproduction kernel: [ 2251.480476] md: unbind
    Dec 13 02:33:35 mWproduction kernel: [ 2251.498418] md: export_rdev(sde)
    Dec 13 02:33:44 mWproduction kernel: [ 2260.905447] md: md0 stopped.
    Dec 13 02:33:44 mWproduction kernel: [ 2260.911283] md: bind
    Dec 13 02:33:44 mWproduction kernel: [ 2260.911576] md: bind
    Dec 13 02:33:44 mWproduction kernel: [ 2260.911844] md: bind
    Dec 13 02:33:44 mWproduction kernel: [ 2260.912306] md: bind
    Dec 13 02:33:44 mWproduction kernel: [ 2260.912475] md: bind
    Dec 13 02:33:44 mWproduction kernel: [ 2260.912650] md: bind
    Dec 13 02:42:48 mWproduction shutdown[4245]: shutting down for system reboot
    
por moot 13.12.2014 / 12:08

1 resposta

1

O problema está resolvido. Fui aconselhado a executar o mdadm -E em todas as unidades. Ele revelou que, agora que a matriz foi reagrupada à força, todas, exceto uma das unidades, tinham um status de matriz de AAAAAA. /dev/sde tinha seu status preso em AA .... (dois ativos, quatro inativos) e isso indicava algum tipo de anomalia.

Eu remontei as unidades, sem --force , omitindo /dev/sde e ele indicou que precisava de --run porque queria que todos os membros estivessem presentes. Com --run, o array foi iniciado corretamente, degradado. Agora estou testando o disco restante, verificando novamente se tudo foi feito backup e adicionando-o novamente à matriz.

Grande, muito obrigado aos usuários spreeuw e mumixam do irc.freenode.net #linux e #mdadm, respectivamente, por sua contribuição valiosa.

    
por 14.12.2014 / 01:21