Como interromper a ressincronização do software RAID?

46

Eu quero interromper uma operação de ressincronização em execução em uma invasão do software debian squeeze. (Esta é a ressincronização comparativa programada regular. A matriz de ataque ainda está limpa em tal caso. Não confunda isso com uma reconstrução depois que um disco falhou e foi substituído.)

Como parar esta operação de ressincronização agendada enquanto está em execução? Outro array de raid é "resync pending", porque todos são verificados no mesmo dia (domingo à noite), um após o outro. Eu quero uma parada completa desta noite de ressincronização.

[Edit: sudo kill -9 1010 não o impede, 1010 é o PID do processo md2_resync]

Eu também gostaria de saber como posso controlar os intervalos entre os ressincronos e o tempo restante até o próximo.

[Edit2: O que eu fiz agora foi fazer com que a ressincronização fosse muito lenta, por isso não atrapalha mais:

sudo sysctl -w dev.raid.speed_limit_max=1000

retirado do link

Durante a noite, irei configurá-lo de volta para um valor alto, para que o resync possa terminar.

Esta solução alternativa é boa para a maioria das situações, no entanto, seria interessante saber se o que eu pedi é possível. Por exemplo, não parece ser possível desenvolver um array, enquanto ele está ressincronizando ou ressincronizando "pendente"]

    
por Adam5 27.12.2010 / 20:20

9 respostas

46

Se sua matriz for md0 , então echo "idle" > /sys/block/md0/md/sync_action

'idle' will stop an active resync/recovery etc. There is no guarantee that another resync/recovery may not be automatically started again, though some event will be needed to trigger this.

link

    
por 27.12.2010 / 22:05
28

Eu queria desacelerar ou pausar o processo de resync para salvar algumas E / S para fazer backup de algumas coisas em outro computador. Este tópico ajudou-me, mas encontrei outra solução.

No meu Debian Lenny:

  • echo "idle" > /sys/block/md0/md/sync_action funciona, mas o processo de ressincronização é reiniciado imediatamente.

  • checkarray -x --all : funciona, mas o mesmo resultado: o processo de resync é reiniciado imediatamente.

Então eu uso esse método: echo 0 > /proc/sys/dev/raid/speed_limit_max

    
por 04.10.2011 / 12:09
9

Você pode cancelar uma nova sincronização da matriz em andamento usando a seguinte sequência de comandos (como root):

echo frozen > /sys/block/md0/md/sync_action
echo none > /sys/block/md0/md/resync_start
echo idle > /sys/block/md0/md/sync_action

Observe que isso pode deixar sua matriz em um estado inconsistente . Não faça isso, a menos que você tenha certeza de que a matriz esteja em boa forma e execute a sincronização novamente mais tarde.

(Crédito onde o crédito é devido: encontrei este encantamento neste tópico . )

    
por 22.12.2016 / 07:57
8

Como mencionado acima, nos sistemas Debian / Ubuntu, o script /etc/cron.d/mdadm invoca o script /usr/share/mdadm/checkarray para iniciar as verificações de nova sincronização.

Este script tem a opção de cancelar todas as verificações de sincronização em execução:

/usr/share/mdadm/checkarray -x --all
    
por 24.05.2011 / 18:26
3

Não tenho certeza sobre como cancelar uma nova sincronização, mas a programação é controlada por /etc/cron.d/mdadm nos sistemas Debian / Ubuntu.

O script /usr/share/mdadm/checkarray pode lançar alguma luz sobre a outra parte da sua pergunta, já que é isso que está sendo chamado pelo cron.

    
por 27.12.2010 / 20:36
3

Se o seu dispositivo md for md0 e você quiser parar a gravação de ressincronização:

echo "idle" > /sys/block/md0/md/sync_action
    
por 04.07.2012 / 01:30
2
echo "idle" > /sys/block/md0/md/sync_action

Não funciona quando o / sys / block / md * / md / sync_action é "resync" (diferentemente de seu estado ser "verificar" ou "reparar". Você pode echo "ocioso" no arquivo sync_action, mas não não afeta o progresso Este arquivo de documentação do kernel aqui afirma incorretamente que ele funcionará, mas nunca funcionou para mim:

'idle' will stop an active resync/recovery etc. There is no guarantee that another resync/recovery may not be automatically started again, though some event will be needed to trigger this.

    
por 29.10.2012 / 02:18
2

Possível solução para isso, demorou um pouco para entrar nos detalhes.

Meu sistema: CentOS 6.5 mdadm v3.3.2

Constant verifica toda semana, quer pausar um deles, RAID está limpo, check foi chamado pelo script /etc/cron.d/raid-check que é executado semanalmente.

Para cancelar a verificação, use a função --misc --action. Assumindo que o dispositivo RAID é / dev / md0 e isso é apenas a verificação de consistência semanal e não uma falha do dispositivo, você deve, como root:

mdadm --misc --action=idle /dev/md0

Da mesma forma, para iniciar a verificação de consistência

mdadm --misc --action=check /dev/md0

    
por 15.05.2016 / 19:07
0

Eu sei que este é um post de 4 anos de idade, mas você também pode fazer isso (assumindo md0 como array e sdb4 como o "disk" de ressincronização):

    mdadm /dev/md0 --fail /dev/sdb4 && mdadm /dev/md0 --remove /dev/sdb4

Esse comando finge que o sdb4 é um disco com falha e, portanto, o expulsa da matriz, parando a ressincronização. Se não houve erro durante a ação resync-stop, este comando também removerá sdb4 da matriz md0. Se houve algum erro, o disco permanece em estado de falha, mas permanece na matriz.

Se você falhar em um disco em qualquer lugar em mdadm , defina-o logicamente . Se a matriz estava limpa (não degradada), o disco permanece consistente e pode ser adicionado novamente pelo --add < < disco > > - opção de limpeza absoluta sem qualquer medo. Se houve qualquer ação depois de ter sido desanexado (por exemplo, ressincronizar, reconstruir ou até mesmo escrever), então --assume-clean will probalby falhar e iniciar uma ação de ressincronização imediatamente.

A alteração de raid.speed_limit_min e raid.speed_limit_max é de alguma forma uma má ideia porque afeta não apenas as velocidades de ressincronização / recriação, mas também as velocidades normais de operação e provavelmente você perderá muito desempenho obtido usando matrizes RAID.

    
por 14.08.2015 / 11:53