Frage Wie unterbricht man Software Raid Resync?


Ich möchte eine laufende Resynchronisierungsoperation bei einem Debian-Squeeze-Software-Raid unterbrechen. (Dies ist die reguläre geplante Neusynchronisierung. Das RAID-Array ist in einem solchen Fall immer noch sauber. Verwechseln Sie das nicht mit einer Neuerstellung, nachdem eine Festplatte ausgefallen ist und ersetzt wurde.)

Wie wird diese geplante Neusynchronisierungsoperation angehalten, während sie ausgeführt wird? Ein weiteres RAID-Array ist "resync pending", weil alle nacheinander am selben Tag (Sonntagabend) überprüft werden. Ich möchte einen kompletten Stopp dieser Sonntagnacht Resyncing.

[Bearbeiten: sudo kill -9 1010 hört nicht auf, 1010 ist die PID des md2_resync-Prozesses

Ich würde auch gerne wissen, wie ich die Intervalle zwischen Resyncs und der verbleibenden Zeit bis zum nächsten kontrollieren kann.

[Edit2: Was ich jetzt gemacht habe, war, die Resynchronisation sehr langsam zu machen, also stört es nicht mehr:

sudo sysctl -w dev.raid.speed_limit_max=1000

genommen von http://www.cyberciti.biz/tips/linux-raid-increase-resyncre-build-speed.html

Während der Nacht stelle ich es auf einen hohen Wert zurück, so dass die Resynchronisation beendet werden kann.

Diese Problemumgehung ist für die meisten Situationen in Ordnung, dennoch wäre es interessant zu wissen, ob das, was ich gefragt habe, möglich ist. Zum Beispiel scheint es nicht möglich zu sein, ein Array zu wachsen, während es "ausstehend" resynciert oder resynciert.


45
2017-12-27 19:20


Ursprung


Ich glaube nicht, dass ich die Bälle habe, eine Resynchronisation abzubrechen. Ich befürchte, es könnte nie wieder von vorne beginnen. - Tom O'Connor
@ Tom: Dies ist nur die normale Resynchronisation, die jeden Sonntag überprüft, ob alles übereinstimmt. Wenn es angehalten wird (z. B. durch Herunterfahren der Maschine), wird es beim nächsten Booten fortgesetzt. - Adam5
Oh ok. Das ist dann ok - Tom O'Connor


Antworten:


Wenn Ihr Array ist md0 dann echo "idle" > /sys/block/md0/md/sync_action

'untätig' stoppt ein aktives   Resynchronisation / Wiederherstellung usw. Es gibt keine   garantieren, dass eine weitere Resynchronisierung / Wiederherstellung   wird möglicherweise nicht automatisch gestartet   wieder, obwohl irgendein Ereignis sein wird   benötigt, um dies auszulösen.

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


46
2017-12-27 21:05



Ich konnte die Textdatei aktualisieren, nachdem ich ihre Berechtigungen geändert hatte, aber der Inhalt der Datei wurde in derselben Instanz wieder auf "resync" von hinten geändert. Und die Resynchronisierung wird am anderen Array fortgesetzt (das zuvor "ausstehend" war). Wenn ich "idle" in die Datei des anderen Arrays schreibe, wechselt es erneut, hört aber nie auf. - Adam5
Wenn Sie mehrere Raids haben: echo idle | sudo tee / sys / block / md * / md / sync_action - Ole Tange
Eigentlich "pausiert" nur die Prüfung. Der nächste "Check" würde bei /sys/block/md0/md/sync_min’. To reset this write 0 'zu dieser Datei. - rudimeier


Ich wollte den Resync-Prozess verlangsamen oder pausieren, um einige I / O zu speichern, um etwas auf einem anderen Computer zu sichern. Dieser Thread hat mir geholfen, aber ich habe eine andere Lösung gefunden.

Auf meinem Debian Lenny:

  • echo "idle" > /sys/block/md0/md/sync_action funktioniert, aber der Resync-Prozess wird sofort neu gestartet.

  • checkarray -x --all : funktioniert, aber dasselbe Ergebnis: Der Resync-Prozess wird sofort neu gestartet.

Also ich benutze diese Methode: echo 0 > /proc/sys/dev/raid/speed_limit_max


27
2017-10-04 10:09



Interessanter Ansatz. Ich habe festgestellt, dass Sie auch den Wert in speed_limit_min drosseln müssen. - Diomidis Spinellis
Ich musste auch einstellen speed_limit_min auf 0, um die Resynchronisation vollständig zu unterbrechen. - njahnke


Sie können eine Array-Resynchronisierung mit der folgenden Befehlssequenz (als Root) abbrechen:

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

Beachten Sie, dass Dies kann dazu führen, dass Ihr Array inkonsistent ist. Tun Sie dies nicht, es sei denn, Sie sind sicher, dass das Array in gutem Zustand ist, und führen Sie die Synchronisierung später erneut aus.

(Kredit, wo Kredit fällig ist: fand diese Beschwörung in diesem Thread.)


8
2017-12-22 06:57





Wie oben erwähnt, auf Debian / Ubuntu Systemen /etc/cron.d/mdadm Skript ruft die /usr/share/mdadm/checkarray Skript, um Re-Sync-Prüfungen zu initiieren.

Dieses Skript verfügt über eine Option zum Abbrechen aller laufenden Synchronisierungsüberprüfungen:

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

8
2018-05-24 16:26





Ich bin mir nicht sicher, wie ich eine erneute Synchronisierung abbrechen kann, aber der Zeitplan wird von gesteuert /etc/cron.d/mdadm auf Debian / Ubuntu Systemen.

Das Skript /usr/share/mdadm/checkarray Vielleicht erhellst du den anderen Teil deiner Frage, denn das nennt man Cron.


3
2017-12-27 19:36





Wenn Ihr MD-Gerät md0 ist und Sie den Resync-Schreibvorgang anhalten möchten:

echo "idle" > /sys/block/md0/md/sync_action

3
2017-07-03 23:30





echo "idle" > /sys/block/md0/md/sync_action

Funktioniert nicht, wenn / sys / block / md * / md / sync_action "resync" ist (anders als wenn der Status "check" oder "repair" ist.) Sie können "idle" in die sync_action-Datei zurücksenden, dies wirkt sich jedoch nicht auf die Fortschritt Diese Kernel-Dokumentationsdatei Hier sagt falsch, dass es funktioniert, aber es hat nie für mich funktioniert:

'idle' stoppt eine aktive Resync / Recovery etc. Es gibt keine Garantie   dass eine andere Resync / Wiederherstellung möglicherweise nicht automatisch erneut gestartet wird,   obwohl einige Ereignisse benötigt werden, um dies auszulösen.


2
2017-10-29 01:18



Sie können jedoch die Rate der "Resynchronisation" mit / sys / block / md * / md / sync_speed_max in diesem Zustand beeinflussen. Ich bin nicht sicher, warum die Dokumentation falsch ist, vielleicht weiß niemand - brian
Bitte nehmen Sie sich eine Minute Zeit, um das zu lernen Stapeltausch Abschriften-Syntax (meta.serverfault.com/editing-help) - Sven♦