ubuntuusers.de

mdadm RAID extrem langsamer resync

Status: Ungelöst | Ubuntu-Version: Ubuntu 16.04 (Xenial Xerus)
Antworten |

donchris

Avatar von donchris

Anmeldungsdatum:
28. Mai 2007

Beiträge: 230

Wohnort: localhost

Ich habe mir bei einem Hoster einen VPS genommen und 4 kleinere (100GB) Festplatten per nbd eingehängt. Die Platten sind recht langsam (u.a durch das Netzwerk) daher schaffe ich nur in etwa 50 MB/s lesen und schreiben. Um mehr Performance zu bekommen wollte ich diese Platten jetzt mittels Software-RAID zu einem RAID 10 Verbund zusammenfügen. Dieser sollte ja in der Theorie zumindest die Leseraten deutlich erhöhen.

Mit dem folgenden Befehl habe ich dann das Array erstellt. Mein Anwendungsfall empfiehlt das fat-layout das höhere Leseraten verspricht (--layout f2) des weiteren wollte ich eine größere Chunk-Size nutzen:

1
mdadm --create /dev/md0 --auto md --level=10 --chunk=1024 --layout f2 --raid-devices=4 /dev/nbd[1-4]

Der Befehl funktioniert auch einwandfrei, aber die Resynchronisierung dauert viel zu lange. Nach 3 Tagen sagt mir der Befehl cat /proc/mdstat, dass erst 3,7% synchronisiert wurden und das bei einer Rate von 64K/sec. Es würde daher noch über ein Monat dauern und das für relativ kleine Festplatten (100GB) und halbwegs erträgliche Lese/Schreibraten.

Ich habe auch schon die Resync-Rate auf 200-400MB/s erhöht, jedoch ohne Erfolg:

1
2
echo 200000 > /proc/sys/dev/raid/speed_limit_min
echo 400000 > /proc/sys/dev/raid/speed_limit_max

Was könnte eventuell noch nicht passen oder hättet ihr Tipps?

frostschutz

Avatar von frostschutz

Anmeldungsdatum:
18. November 2010

Beiträge: 7790

donchris schrieb:

Dieser sollte ja in der Theorie zumindest die Leseraten deutlich erhöhen.

Nein. Wie du siehst.

Wenn du eh schon mit Netzwerk einen Flaschenhals hast, dann eher sowieso nicht, hinzu kommen dann lange Zugriffszeiten (Pings).

Wo kommen diese NBD Laufwerke überhaupt her? Ist das intern vom Hoster? Sonst wirst du da irgendwann auch dein Traffic-Kontingent sprengen?

Was könnte eventuell noch nicht passen oder hättet ihr Tipps?

RAID wenn dann serverseitig und der Client bekommt das fertige RAID zur Verfügung gestellt.

Oder gleich einen richtigen Server nehmen und alles lokal machen. Anders ist Performanz nicht zu bekommen, das muss man lernen wenn man das erste mal auf eine verteilte Lösung setzt, da wird erstmal alles langsamer wenn die Anwendung nicht darauf optimiert ist, weil dann plötzlich erstmal alles an einem anderen Flaschenhals hängt.

donchris

(Themenstarter)
Avatar von donchris

Anmeldungsdatum:
28. Mai 2007

Beiträge: 230

Wohnort: localhost

frostschutz schrieb:

donchris schrieb:

Dieser sollte ja in der Theorie zumindest die Leseraten deutlich erhöhen.

Nein. Wie du siehst.

Das würde ich so noch nicht sagen. Das Netzwerk ist mit Sicherheit deutlich schneller als die 64K, daher handelt es sicher um ein anderes "Konfigurationsproblem" oder ähnliches.

Wenn du eh schon mit Netzwerk einen Flaschenhals hast, dann eher sowieso nicht, hinzu kommen dann lange Zugriffszeiten (Pings).

Zugriffszeiten wären nicht allzu problematisch. Ich will damit Daten analysieren und daher sind sequenzielle Leseraten von Bedeutung, und die sollten sich schon deutlich erhöhen lassen.

Wo kommen diese NBD Laufwerke überhaupt her? Ist das intern vom Hoster? Sonst wirst du da irgendwann auch dein Traffic-Kontingent sprengen?

Die kommen direkt vom Hoster (dieser stellt zusätzliche Laufwerke nur so zur Verfügung). Und anstatt einem ganz großen würde ich halt lieber mehrere kleinere nehmen und so mittels Software RAID sowohl Performance als auch Sicherheit erhöhen (zumindest in der Theorie).

Was könnte eventuell noch nicht passen oder hättet ihr Tipps?

RAID wenn dann serverseitig und der Client bekommt das fertige RAID zur Verfügung gestellt.

Oder gleich einen richtigen Server nehmen und alles lokal machen. Anders ist Performanz nicht zu bekommen, das muss man lernen wenn man das erste mal auf eine verteilte Lösung setzt, da wird erstmal alles langsamer wenn die Anwendung nicht darauf optimiert ist, weil dann plötzlich erstmal alles an einem anderen Flaschenhals hängt.

Ich werde das System (so wie es jetzt ist) nie produktiv einsetzen und will hier nur einmal mdadm testen von dem ich schon viel Gutes gehört habe. Und es muss hier doch etwas ganz anderes falsch laufen. Bei halbwegs guten Festplatten und einem 300MB/s Netzwerk das sonst nicht genutzt wird muss doch ein Software RAID aus 4 Platten machbar sein.

frostschutz

Avatar von frostschutz

Anmeldungsdatum:
18. November 2010

Beiträge: 7790

donchris schrieb:

Zugriffszeiten wären nicht allzu problematisch.

NBD ist ein Request-Reply-Pingpongspiel. ( https://github.com/NetworkBlockDevice/nbd/blob/master/doc/proto.md#transmission )

RAID Resync liest einen Block, schreibt einen Block, liest einen Block, ... das ist jedes Mal ein request-reply und jedes Mal der Netzwerkping/die Zugriffszeit.

Ggf. müsste man da direkt am Client mal debugtechnisch ansetzen um zu sehen, wie das eigentlich abläuft und wieviel % der Zeit "warten auf Antwort vom Server" ist (und wie groß die einzelnen Requests).

Ich will damit Daten analysieren und daher sind sequenzielle Leseraten von Bedeutung, und die sollten sich schon deutlich erhöhen lassen.

Bau das RAID mit --assume-clean, so entfällt der Resync, und probiers aus.

Wenn das Netzwerk dein Flaschenhals ist, dann erhöht sich da gar nichts.

Und es muss hier doch etwas ganz anderes falsch laufen. Bei halbwegs guten Festplatten und einem 300MB/s Netzwerk das sonst nicht genutzt wird muss doch ein Software RAID aus 4 Platten machbar sein.

Bei vServer teilst du dir immer die Resourcen und Platten immer mit anderen. vServer sind für Anwendungen mit dauerhaft hohem Durchsatz eher nicht geeignet.

Ein vernünftiger vServer-Hoster sollte dir eh nur Storage zur Verfügung stellen, die im Hintergrund bereits mit RAID abgedeckt ist. Selber nochmal RAID obendrauf ist sinnlos.

Wenn du trotzdem weiter experimentieren möchtest, fällt mir nur noch das hier ein: https://www.cyberciti.biz/tips/linux-raid-increase-resync-rebuild-speed.html

Antworten |