TICKTOO Systems | Schöne Dinge. Für das Internet und darüber hinaus.

Linux Software Raid: mdadm Performance Tuning

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.

Kernel-Limitierungen aufheben

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

Read-Ahead-Cache für alle beteiligten Festplatten setzen

# blockdev --setra 4096 /dev/sd?
# blockdev --setra 32768 /dev/md0

Stripe-Cache Größe anpassen

# echo 32768 > /sys/block/md0/md/stripe_cache_size

Performance-Zuwachs

Die Grafik zeigt die gelesenen / geschriebenen MB pro Sekunde über das gesamte Array. Ab ca. 12:00 greifen die hier gezeigten Änderungen.

 

Sharing is Caring Facebook | Twitter | Google | LinkedIn