56 votes

Comment interrompre la resynchronisation logicielle du raid ?

Je souhaite interrompre une opération de resynchronisation en cours sur un raid logiciel debian squeeze. (Il s'agit de la resynchronisation régulière de la comparaison. La matrice raid est toujours propre dans ce cas. Ne pas confondre avec une reconstruction après qu'un disque soit tombé en panne et ait été remplacé).

Comment arrêter cette opération de resynchronisation programmée pendant qu'elle est en cours ? Une autre matrice raid est "en attente de resynchronisation", parce qu'elles sont toutes vérifiées le même jour (dimanche soir) l'une après l'autre. Je veux arrêter complètement cette resynchronisation du dimanche soir.

[Edit : sudo kill -9 1010 ne l'arrête pas, 1010 est le PID du processus md2_resync].

J'aimerais également savoir comment je peux contrôler les intervalles entre les resynchronisations et le temps restant jusqu'à la prochaine resynchronisation.

[Edit2 : Ce que j'ai fait maintenant, c'est que la resynchronisation se fait très lentement, de sorte qu'elle ne dérange plus :

sudo sysctl -w dev.raid.speed_limit_max=1000

extrait de http://www.cyberciti.biz/tips/linux-raid-increase-resync-rebuild-speed.html

Au cours de la nuit, je le ramènerai à une valeur élevée, afin que la resynchronisation puisse se terminer.

Cette solution de contournement convient à la plupart des situations, mais il serait intéressant de savoir si ce que j'ai demandé est possible. Par exemple, il ne semble pas possible d'agrandir un tableau pendant qu'il se resynchronise ou qu'il se resynchronise "en attente"].

54voto

songsong Points 173

Si votre tableau est md0 puis echo "idle" > /sys/block/md0/md/sync_action

L'option "idle" permet d'interrompre une activité resynchronisation/récupération, etc. [ ] garantie qu'une autre resynchronisation/récupération [ ] automatiquement, bien qu'un événement pour le déclencher.

http://www.mjmwired.net/kernel/Documentation/md.txt#477

44voto

small Points 511

Je voulais ralentir ou mettre en pause le processus de resynchronisation afin d'économiser des entrées/sorties pour sauvegarder des données sur un autre ordinateur. Ce fil m'a aidé mais j'ai trouvé une autre solution.

Sur ma Debian Lenny :

  • echo "idle" > /sys/block/md0/md/sync_action fonctionne, mais le processus de resynchronisation est immédiatement relancé.

  • checkarray -x --all La méthode : fonctionne, mais le résultat est le même : le processus de resynchronisation est immédiatement relancé.

J'utilise donc cette méthode : echo 0 > /proc/sys/dev/raid/speed_limit_max

26voto

Vous pouvez annuler une resynchronisation de tableau en cours en utilisant la séquence de commandes suivante (en tant que 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

Il convient de noter que cela peut laisser votre tableau dans un état incohérent . Ne le faites pas si vous n'êtes pas sûr que le tableau est en bon état, et relancez la synchronisation plus tard.

(Le mérite en revient au fait que j'ai trouvé cette incantation dans ce fil .)

11voto

Shanu Shah Points 11

Comme indiqué ci-dessus, sur les systèmes Debian/Ubuntu, l'option /etc/cron.d/mdadm script invoque la fonction /usr/share/mdadm/checkarray script pour lancer les vérifications de resynchronisation.

Ce script dispose d'une option permettant d'annuler tous les contrôles de synchronisation en cours :

/usr/share/mdadm/checkarray -x --all

8voto

bill.rookard Points 71

Solution possible, mais il a fallu un peu de temps pour entrer dans les détails.

Mon système : CentOS 6.5 mdadm v3.3.2

Contrôles constants chaque semaine, j'ai voulu mettre l'un d'entre eux en pause, le RAID est propre, le contrôle a été appelé via le script /etc/cron.d/raid-check script qui est exécuté chaque semaine.

Pour annuler le contrôle, il faut utiliser la fonction --misc --action. En supposant que le périphérique RAID est /dev/md0 et qu'il s'agit simplement d'un contrôle de cohérence hebdomadaire et non d'une défaillance du périphérique, vous pouvez, en tant que super-utilisateur, effectuer les opérations suivantes

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

De même, pour lancer le contrôle de cohérence

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X