Vraag Hoe software-inval-resync onderbreken?


Ik wil een actieve hersynchronisatiebewerking onderbreken tijdens een debian-software-inval. (Dit is de standaard geplande vergelijkingsreconc.De invalserie is in een dergelijk geval nog steeds schoon. Verwar dit niet met een rebuild nadat een schijf is mislukt en is vervangen.)

Hoe deze geplande hersynchronisatiebewerking stoppen terwijl deze wordt uitgevoerd? Een andere raid-array is "hersynchronisatie in behandeling", omdat ze allemaal dezelfde dag (zondagavond) na elkaar worden gecontroleerd. Ik wil een volledige stop van deze zondagavond-hersynchronisatie.

[Bewerk: sudo kill -9 1010 stopt het niet, 1010 is de PID van het md2_reync-proces]

Ik zou ook graag willen weten hoe ik de intervallen tussen resyncs en de resterende tijd tot de volgende kan regelen.

[Edit2: Wat ik nu deed was om de hersynchronisatie heel langzaam te laten verlopen, zodat het niet meer stoort:

sudo sysctl -w dev.raid.speed_limit_max=1000

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

Tijdens de nacht zal ik het terugzetten naar een hoge waarde, zodat de hersynchronisatie kan worden beëindigd.

Deze oplossing is prima voor de meeste situaties, maar het zou interessant zijn om te weten of wat ik vroeg mogelijk is. Het lijkt bijvoorbeeld niet mogelijk om een ​​array te laten groeien, terwijl het 'in afwachting van' wordt gesynchroniseerd of opnieuw gesynchroniseerd]


45
2017-12-27 19:20


oorsprong


Ik denk niet dat ik de ballen heb om een ​​hersynchronisatie te annuleren. Ik ben bang dat het misschien nooit meer zal beginnen. - Tom O'Connor
@Tom: dit is alleen de normale hersynchronisatie die elke zondag controleert of alles overeenkomt. als het wordt gestopt (bijvoorbeeld door de machine uit te schakelen) gaat het door bij de volgende keer opstarten. - Adam5
Oh oke. Dat is oké dan - Tom O'Connor


antwoorden:


Als je array is md0 dan echo "idle" > /sys/block/md0/md/sync_action

'inactief' zal een actief stoppen   hersynchronisatie / herstel enz. Er is geen   garanderen dat een ander hersyndroom / herstel   kan niet automatisch worden gestart   alweer, hoewel er een evenement zal zijn   nodig om dit te activeren.

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


46
2017-12-27 21:05



Ik zou het tekstbestand kunnen bijwerken na het wijzigen van de machtigingen, maar de inhoud van het bestand wordt in dezelfde instantie terug gewijzigd in 'hersynchroniseren' van achteren. En de hersynchronisatie gaat verder in de andere array (die voorheen "in behandeling was"). Wanneer ik "inactief" schrijf naar het bestand van de andere array, wisselt het opnieuw, maar stopt het nooit. - Adam5
Als u meerdere aanvallen heeft: echo inactief | sudo tee / sys / block / md * / md / sync_action - Ole Tange
Eigenlijk "inactief" pauzeert alleen de controle. De volgende "check" zou verder gaan /sys/block/md0/md/sync_min’. To reset this write 0` naar dit bestand. - rudimeier


Ik wilde het resync-proces vertragen of pauzeren om wat I / O te besparen om een ​​back-up te maken van sommige dingen op een andere computer. Deze thread heeft me geholpen, maar ik heb een andere oplossing gevonden.

Op mijn Debian Lenny:

  • echo "idle" > /sys/block/md0/md/sync_action werkt, maar het hersynchronisatieproces wordt onmiddellijk opnieuw gestart.

  • checkarray -x --all : werkt, maar hetzelfde resultaat: het hersynchronisatieproces wordt onmiddellijk opnieuw gestart.

Dus ik gebruik deze methode: echo 0 > /proc/sys/dev/raid/speed_limit_max


27
2017-10-04 10:09



Interessante benadering. Ik vond dat je ook de waarde moet verlagen in speed_limit_min. - Diomidis Spinellis
Ik moest ook instellen speed_limit_min op 0 om de hersynchronisatie volledig te onderbreken. - njahnke


U kunt een array-hersynchronisatie die bezig is annuleren met behulp van de volgende reeks opdrachten (als 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

Let daar op dit kan uw array in een inconsistente staat achterlaten. Doe dit niet tenzij u zeker weet dat de array in goede staat is en voer de synchronisatie later opnieuw uit.

(Krediet waar het krediet verschuldigd is: vond deze incantatie in deze thread.)


8
2017-12-22 06:57





Zoals hierboven vermeld, op Debian / Ubuntu-systemen het /etc/cron.d/mdadm script roept de /usr/share/mdadm/checkarray script om hersynchronisatiecontroles te starten.

Dit script heeft een optie voor het annuleren van alle actieve synchronisatiecontroles:

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

8
2018-05-24 16:26





Weet niet zeker hoe u een hersynchronisatie kunt annuleren, maar het schema wordt beheerd door /etc/cron.d/mdadm op Debian / Ubuntu-systemen.

Het script /usr/share/mdadm/checkarray kan enig ander licht werpen op het andere deel van je vraag, want dat is wat cron noemt.


3
2017-12-27 19:36





Als uw md-apparaat md0 is en u wilt de hersynchronisatie-schrijven stoppen:

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

3
2017-07-03 23:30





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

Werkt niet wanneer / sys / block / md * / md / sync_action is "hersynchroniseerd" (in tegenstelling tot wanneer de staat "check" of "repair" is.) U kunt "idle" in het sync_action-bestand weergeven, maar dit heeft geen effect op de vooruitgang. Dit kerneldocumentatiebestand hier geeft ten onrechte aan dat het zal werken, maar het heeft nog nooit voor mij gewerkt:

'inactief' stopt een actieve hersynchronisatie / herstel enz. Er is geen garantie   dat een andere hersynchronisatie / herstel niet automatisch opnieuw wordt gestart,   hoewel er een evenement nodig is om dit te activeren.


2
2017-10-29 01:18



U kunt echter de snelheid van de "hersynchronisatie" met / sys / block / md * / md / sync_speed_max in deze status beïnvloeden. Ik weet niet zeker waarom de documentatie niet juist is, misschien weet niemand het - brian
Neem even de tijd om het te leren Stack Exchange markdown-syntaxis (meta.serverfault.com/editing-help) - Sven♦


Mogelijke oplossing hiervoor, duurde even om in details te treden.

Mijn systeem: CentOS 6.5 mdadm v3.3.2

Constante controles elke week, wilde een van hen pauzeren, RAID is schoon, controle werd gebeld via het script /etc/cron.d/raid-check dat wekelijks wordt uitgevoerd.

Om het vinkje te annuleren, gebruikt u de --misc --action-functie. Ervan uitgaande dat het RAID-apparaat / dev / md0 is en dit slechts de wekelijkse consistentiecontrole is en geen apparaatstoring, zou je als root:

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

Evenzo, om de consistentiecontrole te starten

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


2
2018-05-15 17:07