Recuperar de raid-5 para raid-6 reshape e crash, mdadm reporta reconstrução de 0K / seg

1

Tenho uma pergunta semelhante à discussão mais antiga , mas não estou com 100% Uso da CPU.

Adicionei mais um disco (sdd1) ao meu array raid-5 de 5x3TB e o atualizei para o raid-6, tudo correu bem até que o backplane da fonte de alimentação falhou e o servidor travou no meio da gravação.

mdadm --assemble requer um arquivo temporário, que eu especifiquei no upgrade e com --assemble --temporary-file =, ele configurou o array como ativo e reformulado. O problema é que ele está sendo remodelado a 0K / seg e não será concluído.

O arquivo temporário é zero byte pelo caminho.

Quais são minhas opções? Eu posso acessar meus arquivos no momento, então se eu puder encontrar 7 TB de armazenamento, posso passar alguns dias para copiar tudo, falhar e reconstruir a matriz do zero, mas existe uma opção mais simples?

Posso falhar o sdd1 (a nova unidade que eu estava tentando adicionar) e reiniciar uma nova reconstrução de cinco discos RAID-5 a seis discos RAID-6? Ou isso vai atrapalhar a raid suposta? -6 matriz, mas principalmente RAID-5, na realidade, uma vez que não terminou o RAID-5 - > raid-6 reformula?

cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md127 : active raid6 sdd[0] sdb1[6] sdf[5] sde[3] sda[2] sdc[1]
      11721060352 blocks super 1.2 level 6, 512k chunk, algorithm 18 [6/5] [UUUUU_]
      [=>...................]  reshape =  8.4% (247529472/2930265088) finish=3353419520.0min speed=0K/sec

unused devices: <none>
    
por winny 01.08.2016 / 19:35

1 resposta

2

Tente:

echo frozen > /sys/block/md127/md/sync_action
echo reshape > /sys/block/md127/md/sync_action

Você provavelmente terá um RAID-6 degradado (com /dev/sdd ausente) neste ponto, então:

  1. execute watch cat /proc/mdstat e fique de olho até que não haja nenhuma atividade de resync ou reformulação.
  2. executar mdadm --add /dev/md127 /dev/sdd
  3. execute watch cat /proc/mdstat novamente.

Isso deve fazer a remodelação rodar a uma velocidade decente.

A BTW, executando cat /proc/mdstat via watch a cada 2 segundos, não deve ter uma carga de CPU significativa, mas você provavelmente não precisa de 2 segundas atualizações para algo que será executado por horas. atualizar a cada 10 ou 30 segundos deve ser adequado, por ex. use watch -n 30 cat /proc/mdstat no passo 3 acima.

    
por 12.08.2016 / 06:19

Tags