Johannes Truschnigg - SRE & DevOps


Zur Suche ▼Zum Archiv ▼

Eintrag von 2008-07-15

Kurztipp: Linux SoftRAID Resync beschleunigen


Gerade eben habe ich begonnen, CentOS 5.2 auf einen neuen Server zu installieren, wobei eine RAID1-Konfiguration mithilfe von md, dem RAID-Backend des Linux-Kernels, zum Einsatz kommt. Ein solches RAID-Array wird, je nach RAID-Level, beim Erstellen durch den Treiber synchronisiert - sodass sichergestellt ist, dass alle Volumes genau die Daten enthalten, die sie auch enthalten sollen.

Diesen Vorgang nennt man Resync bzw. Rebuild - und er kann ganz schön lange dauern: das von mir erstellte 950GB-Volume, das eine LVM2-Volume Group aufnehmen sollte, hätte mit der ursprünglichen Resync-Geschwindigkeit von etwa 800kb/s fast eineinhalb Tage gedauert, was mir natürlich inakzeptabel schien.

Nach kurzem Umsehen im unter /sys gemounteten sysfs war auch schnell klar, wo der Hund begraben lag: Die maximale Geschwindigkeit, mit der der Resync stattfinden durfte, war auf 1MByte/s beschränkt. Mit einem Plattensetup, das gut und gerne 110MByte/s sequentiell zu schreiben vermag, ist das natürlich unvernünftig. Mit einem schnellen

# for array in /sys/block/md*/md/sync_speed_max;
> do echo 1000000 > "${array}";
> done

war die Limitation (für alle im System aktiven md-Arrays) aufgehoben, und nach deutlich weniger als drei Stunden konnte man sich über das konsistente Array freuen.
So soll es sein.

direkter Link ▲

© 2007-2019 Johannes Truschnigg | valid xhmtl & css