mdadm RAID6 remontar com unidades ausentes

3

Estou procurando um pequeno conselho aqui. Eu tenho uma máquina-franken rodando o Ubuntu 14, que adicionei um RAID6 de quatro unidades há alguns anos atrás e acabei encontrando um problema. Resumindo, duas das unidades foram conectadas a uma placa PCI que morreu. Provavelmente um layout de hardware ruim, mas agora é tarde demais. Eu reconectei as duas unidades ausentes e elas estão aparecendo novamente.  No entanto, a matriz não consegue montar com o erro:

mdadm: /dev/md0 assembled from 2 drives - not enough to start the array while not clean - consider --force.

Eu estava lendo e este artigo dizia para não usar a força se as contagens do evento estivessem muito distantes apart. Que no meu caso é 300772 a 309. Então, um pouco distante. Ele diz para forçar a montagem dos mais próximos e depois adicionar os outros.

Assumindo que sdb e sdc são bons com contagem de eventos de 300772, e sdd e sde são os ruins com a contagem de eventos de 309. Devo forçar a montagem de sdb e sdc. E então fazer um padrão adicionar e crescer? Assim:

mdadm --assemble --force /dev/md0 /dev/sdb1 /dev/sdc1
mdadm --add /dev/md0 /dev/sdd1
mdadm --grow /dev/md0 --raid-devices=3
mdadm --add /dev/md0 /dev/sde1
mdadm --grow /dev/md0 --radid-devices=4

Preciso reduzir o array antes de recriá-lo?

Isso parece uma jogada segura?

Obrigado antecipadamente

    
por user2659205 12.05.2017 / 07:27

1 resposta

1

Eu diria que você não precisa aumentar a matriz. Ele saberá automaticamente que deve haver 4 unidades. Basta adicionar os que faltam:

mdadm --assemble --force /dev/md0 /dev/sdb1 /dev/sdc1
# At this point I would test /dev/md0! mount, fsck, etc. (before destroyng the content of the other two disks.)
mdadm --add /dev/md0 /dev/sdd1
mdadm --add /dev/md0 /dev/sde1

Mas uma nota. O IMO Raid6 não faz muito sentido para 4 drives. Eu usaria o Raid10, ele deveria ter um desempenho muito melhor e fornecer o mesmo tamanho e redundância como o Raid6.

Então você pode criar um novo Raid10 (degradado), copiar o antigo raid para o novo e reconstruir.

mdadm --assemble --force /dev/md0 /dev/sdb1 /dev/sdc1
mdadm --create /dev/md1 --level=10 --raid-devices=4 missing  missing /dev/sdd1 /dev/sde1
dd if=/dev/md0 of=/dev/md1 bs=4M
mdadm -S /dev/md0
mdadm --add /dev/md1 /dev/sdb1
mdadm --add /dev/md1 /dev/sdc1
    
por 12.05.2017 / 11:00