Sebastian Kraus — 20.06.2012
Bei größeren RAID-Verbünden steigt die Wahrscheinlichkeit überproportional, dass eine Festplatte ausfällt. Die häufig verwendeten SATA-Festplatten mit den heute üblichen Kapazitäten ab 2 TB brauchen teilweise mehrere Tage, um die Synchronizität des RAID wiederherzustellen. Diese Rebuild-Geschwindigkeit kann man - zumindest etwas - beeinflussen.
Bei der Arbeit mit mdadm, dem Linux-Software-Raid, kommt es gelegentlich dazu, dass das Array ein Reshape, ein Rebuild oder einen Check-Prozess durchläuft. Viele verschiedene Faktoren haben einen Einfluss auf die Geschwindigkeit dieses Prozesses. Auch wenn man als Festplatten die günstigen SATA-Platten verwendet, kann man noch ein paar MB/s herausholen, vor allem beim Rebuild und beim Check.
mdadm setzt sich selbst Bandbreitenbegrenzungen, um die Systemressourcen zu schonen und die Performance für andere Anwendungen des Servers während einer Rebuild/Check-Phase nicht zu sehr zu beeinträchtigen.
# cat /proc/sys/dev/raid/speed_limit_max
20000
# cat /proc/sys/dev/raid/speed_limit_min
1000
Diese Limitierung lässt sich relativ einfach aufheben:
# echo 50000 > /proc/sys/dev/raid/speed_limit_max
# echo 50000 > /proc/sys/dev/raid/speed_limit_min
# blockdev --setra 4096 /dev/sd?
# blockdev --setra 32768 /dev/md0
# echo 32768 > /sys/block/md0/md/stripe_cache_size
Die Grafik zeigt die gelesenen / geschriebenen MB pro Sekunde über das gesamte Array. Ab ca. 12:00 greifen die hier gezeigten Änderungen.