Quiero interrumpir una operación de resincronización en ejecución en una incursión de Debian Squeeze Software. (Esta es la resincronización de comparación programada regular. La matriz de incursiones todavía está limpia en ese caso. No confunda esto con una reconstrucción después de que un disco fallara y fuera reemplazado).
¿Cómo detener esta operación de resincronización programada mientras se está ejecutando? Otra matriz de incursiones está "pendiente de resincronización", porque todas se verifican el mismo día (domingo por la noche) una tras otra. Quiero una parada completa de este resyncing del domingo por la noche.
[Editar: sudo kill -9 1010
no lo detiene, 1010 es el PID del proceso md2_resync]
También me gustaría saber cómo puedo controlar los intervalos entre resincronizaciones y el tiempo restante hasta la próxima.
[Edit2: Lo que hice ahora fue hacer que la resincronización fuera muy lenta, para que no moleste más:
sudo sysctl -w dev.raid.speed_limit_max=1000
tomado de http://www.cyberciti.biz/tips/linux-raid-increase-resync-rebuild-speed.html
Durante la noche, volveré a configurarlo en un valor alto, para que la resincronización pueda finalizar.
Esta solución alternativa está bien para la mayoría de las situaciones, sin embargo, sería interesante saber si lo que pedí es posible. Por ejemplo, no parece posible hacer crecer una matriz, mientras está resincronizando o resincronizando "pendiente"]
Respuestas:
Si su matriz es
md0
entoncesecho "idle" > /sys/block/md0/md/sync_action
http://www.mjmwired.net/kernel/Documentation/md.txt#477
fuente
/sys/block/md0/md/sync_min’. To reset this write
0` a este archivo.Quería ralentizar o pausar el proceso de resincronización para guardar algunas E / S y hacer copias de seguridad de algunas cosas en otra computadora. Este hilo me ayudó pero encontré otra solución.
En mi Debian Lenny:
echo "idle" > /sys/block/md0/md/sync_action
funciona pero el proceso de resincronización se reinicia inmediatamente.checkarray -x --all
: funciona, pero el mismo resultado: el proceso de resincronización se reinicia inmediatamente.Entonces uso este método:
echo 0 > /proc/sys/dev/raid/speed_limit_max
fuente
speed_limit_min
0 para pausar totalmente la resincronización.Puede cancelar una resincronización de matriz en progreso utilizando la siguiente secuencia de comandos (como root):
Tenga en cuenta que esto puede dejar su matriz en un estado inconsistente . No haga esto a menos que esté seguro de que la matriz está en buena forma y vuelva a ejecutar la sincronización más tarde.
(Crédito donde el crédito es debido: encontré este encantamiento en este hilo ).
fuente
Como se mencionó anteriormente, en los sistemas Debian / Ubuntu la
/etc/cron.d/mdadm
secuencia de comandos invoca la/usr/share/mdadm/checkarray
secuencia de comandos para iniciar verificaciones de resincronización.Este script tiene una opción para cancelar todas las comprobaciones de sincronización en ejecución:
fuente
No estoy seguro de cómo cancelar una resincronización, pero la programación está controlada por los
/etc/cron.d/mdadm
sistemas Debian / Ubuntu.El script
/usr/share/mdadm/checkarray
puede arrojar algo de luz sobre la otra parte de su pregunta, ya que eso es lo que llama cron.fuente
Si su dispositivo md es md0 y desea detener la escritura de resincronización:
fuente
Posible solución para esto, tardó un poco en entrar en detalles.
Mi sistema: CentOS 6.5 mdadm v3.3.2
Verificaciones constantes todas las semanas, quería pausar una de ellas, RAID está limpio, se llamó a la verificación a través del script /etc/cron.d/raid-check que se ejecuta semanalmente.
Para cancelar la verificación, utiliza la función de acción --misc. Suponiendo que el dispositivo RAID es / dev / md0 y esto es solo la verificación de consistencia semanal y no una falla del dispositivo, como root:
Del mismo modo, para iniciar la verificación de consistencia
fuente
No funciona cuando / sys / block / md * / md / sync_action es "resincronizar" (a diferencia de si su estado es "check" o "repair". Puede hacer eco "inactivo" en el archivo sync_action, sin embargo no afecta el Este archivo de documentación del kernel aquí indica incorrectamente que funcionará, pero nunca me ha funcionado:
fuente
Sé que esta es una publicación de 4 años, pero también puede hacer esto (suponiendo que md0 como matriz y sdb4 como el "disco" resincronizador):
Este comando finge que sdb4 es un disco fallido y, por lo tanto, lo elimina de la matriz y detiene la resincronización. Si no hubo ningún error durante la acción resync-stop, este comando también eliminará sdb4 de la matriz md0. Si hubo algún error, el disco permanece en estado fallido pero permanece en la matriz.
Si falla un disco en cualquier lugar
mdadm
, lo configura lógicamente fallido. Si la matriz estaba limpia (no degradada), entonces el disco se mantiene constante y se puede volver a agregar mediante la opción --add << disk >> --assume-clean sin ningún temor. Si hubo alguna acción después de que se desconectó (por ejemplo, resincronización, reconstrucción o incluso una escritura), entonces -asum-clean probablemente fallará y comenzará una acción de resincronización inmediatamente.Cambiar
raid.speed_limit_min
y deraid.speed_limit_max
alguna manera es una mala idea porque afecta no solo las velocidades de resincronización / reconstrucción sino también las velocidades de operación normales, y probablemente perderá mucho rendimiento obtenido al usar matrices RAID.fuente
--assume-clean
en un sistema en vivo, y tuvo alguna escritura en el disco restante, está buscando problemas.