Wiederherstellungsgeschwindigkeit von Linux Software RAID erhöhen

Wer kenn das nicht? Man sitzt vor der Konsole und wartet darauf das ein Linux Software RAID wiederhergestellt wurde. Man wartet und wartet. Irgendwann regt man sich darüber auf, das das so dauert.

Man sieht sich mit cat /proc/mdstat immer und immer wieder den aktuellen Stand an, und es hat den Anschein, als ob das niemals zu ende geht. (Am Rande erwähnt: anstatt immer wieder cat /proc/mdstat einzugeben, kann man sich mit watch diese Arbeit sparen)

Um die Geschwindigkeit an der Stelle zu erhöhen gibt es da einen kleinen Trick. Aber Vorsicht! Die Systemauslastung kann dadurch enorm ansteigen.

Lassen wir uns erst einmal die aktuellen Kernel RAID Einstellungen für die Wiederherstellungsgeschwindigkeit anzeigen.

  1. cat /proc/sys/dev/raid/speed_limit_max
  2. 200000
  3.  
  4. cat /proc/sys/dev/raid/speed_limit_max
  5. 1000

In den System Logs finden wir Einträge die die oben genannten Einstellungen bestätigen.
md: minimum _guaranteed_ reconstruction speed: 1000 KB/sec/disc.
md: using maximum available idle IO bandwidth (but not more than 200000 KB/sec) for reconstruction.

Diese Einstellungen bedeuten soviel wie: Es wird eine minimale durchschnittliche Geschwindigkeit von 1MB/s garantiert.
Die aktuelle Geschwindigkeit wird allerdings höher liegen. Kann aber je nach Systemauslastung variieren.

Wenn man nun den minimalen Durchsatz erhöhen möchte, muss man nur einen höheren Wert in speed_limit_min eintragen. In meinem Beispiel möchte ich eine durchschnittliche Rate von 40MB/s ereichen und gebe dafür folgendes in die Konsole ein.

echo 40000 >/proc/sys/dev/raid/speed_limit_min

Die Änderung wirken sofort und man kann sich die Auswirkungen per
watch cat /proc/mdstat
anschauen.

Nun kann man hoffen das die Wiederherstellung in einem Bruchteil der Zeit erledigt ist.
Das hängt aber auch von der Verwendetet Hardware(Festplatten, Controller, etc.) ab.

Neuen Kommentar schreiben