ZFS resilver Turbo?

mr44er

moderater Moderator
Teammitglied
Moinsn!

Ich hab ein raidz3 mit 8 Platten, bei dem ich unlängst von 1,5TB SATA (3GB/s) Platten auf 2TB SATA (6GB/s) gewechselt habe. Habe alle auf einmal (aber brav eine nach der anderen) ausgetauscht und resilvern lassen. Das dümpelte so bei 350MB/s rum. Ab der vierten Platte ging das ultraschnell mit ca. 680MB/s. Habe zu unterschiedlichen Zeiten nachgeschaut, die Geschwindigkeit ab der vierten Platte beim resilvern bleibt konstant hoch.

Gerade im Moment mach ich das Spielchen erneut mit SAS-Platten (hab wieder günstig nen Posten abgegriffen) und das resilvern stiefelt mit 848MB/s ab der vierten Platte nur so voran. Bei den ersten 3 SAS-Platten lief das auch nur wieder bei 350MB/s.

Warum ist das so?

Mal angenommen mein Pool würde dadurch defragmentiert werden, können da nicht so derbe Unterschiede sein....er ist auch nur zu 10% fragmentiert.
 
Ich vermute, das hat mit der Datenverteilung und den unterschiedlichen Geschwindigkeiten der Platten zu tun.
Anfangs waren alle Platten SATA3 und da durch konnte nicht schneller gelesen werden, nach dem Tausch hattest du einige Quellen die mehr als 3 Gbit/s liefern konnten.
 
Ok, jetzt ists wieder bei 350MB/s bei den letzten Platten durchweg. Bei der vierten Platte wars aber durchweg so fix, das war auch nach 2 Stunden durch. Aktuell bekomm ich wieder ne ETA von 5h52m angezeigt. Merkwürdig.

Anfangs waren alle Platten SATA3 und da durch konnte nicht schneller gelesen werden, nach dem Tausch hattest du einige Quellen die mehr als 3 Gbit/s liefern konnten.

1. Tausch von SATA2 auf SATA3 (6GB/s)
2. Jetzt Tausch SATA3 (6GB/s) auf SAS (6GB/s)

Immer noch merkwürdig. :o
 
Ach Mist, ich meinte natürlich "Anfangs waren alle Platten SATA2 ..." (bei dem ersten Tausch), da waren meine Finger schneller als das Gehirn :/
Ich würde auch vermuten das der belegte Speicherplatz eine Rolle spielt, aber wie gesagt, das sind alles nur Vermutungen.
 
Moinsn!

Ich hab ein raidz3 mit 8 Platten, bei dem ich unlängst von 1,5TB SATA (3GB/s) Platten auf 2TB SATA (6GB/s) gewechselt habe. Habe alle auf einmal (aber brav eine nach der anderen) ausgetauscht und resilvern lassen. Das dümpelte so bei 350MB/s rum. Ab der vierten Platte ging das ultraschnell mit ca. 680MB/s. Habe zu unterschiedlichen Zeiten nachgeschaut, die Geschwindigkeit ab der vierten Platte beim resilvern bleibt konstant hoch.

Gerade im Moment mach ich das Spielchen erneut mit SAS-Platten (hab wieder günstig nen Posten abgegriffen) und das resilvern stiefelt mit 848MB/s ab der vierten Platte nur so voran. Bei den ersten 3 SAS-Platten lief das auch nur wieder bei 350MB/s.

Warum ist das so?

Mal angenommen mein Pool würde dadurch defragmentiert werden, können da nicht so derbe Unterschiede sein....er ist auch nur zu 10% fragmentiert.

Erstens...... resilver ist keine Defragmentierung... zweitens ZFS ähnlich wie WAFL fragmentiert wie der Teufel....
Wenn der I/O so einbricht kann es auch sein das es an der Größe der Dateien liegt... die dein ZFS grade anfasst.... je größer die Daten umso einfacher zu handhaben... fürs Filesystem, liegt dort ein Haufen Daten im Kilobyte oder noch kleiner rum... hat es das Filesystem eben schwer... weil jede Datei angetatscht wird... Im Prinzip kann man hier nur sagen jede Aussage wäre Spekulation, man müsste das genauer beobachten und vor allem mal eruieren was für Daten bei den Peaks nach ob und unten angefasst werden.
Abgesehen davon..... das schwächste Glied ist natürlich die langsamste Platte....

Wie hoch ist den die Poolauslastung?
Poolauslastung weit über 90% ist bei ZFS mehr als nur subotpimal... dann würd ich sagen, häng mal neue Platten in Deinen Pool rein. :D
 
Zuletzt bearbeitet:
Also bis auf den 'Ausrutscher' bei der vierten Platte läufts konstant bei +-350MB/s. Die Platten sind alle 6GB/s. Bzw. manche sind 12GB/s, aber der Controller kann nur 6.

Code:
NAME  SIZE  ALLOC  FREE  EXPANDSZ  FRAG  CAP  DEDUP  HEALTH  ALTROOT
tank  14.5T  6.89T  7.61T  -  10%  47%  1.00x  DEGRADED  -

Kleine Dateien bilden echt die Minderheit auf dem Pool und er ist nichtmal zur Hälfte belegt.

Oder taktet der Controller runter bei Hitze? SAS2308 steckt da drauf...
 
Ich hab jetzt 8x gleiche 12GB/s Pltten drin, weil ichs wissen wollte. Endspurt: 6.17T scanned out of 6.90T at 358M/s, 0h35m to go
Im Laufe des Morgens dauernd mal reingeschaut....immer um die 350M/s. Da war nur die vierte brutal schnell durch....versteh ich nicht.

Dass raidz resilvern generell schnarchig ist, ist mir bekannt. Hat hier wer Vergleichswerte für mich?

Wenn das durch ist und der Controller noch heiß ist, werde ich direkt mal nen speedtest auf dem Pool machen.

Update:

Code:
root@smain:/tank # dd if=/dev/zero of=test bs=1024M count=10
10+0 records in
10+0 records out
10737418240 bytes transferred in 22.998649 secs (466871691 bytes/sec)
root@smain:/tank # dd if=test of=/dev/null bs=1024M count=10
10+0 records in
10+0 records out
10737418240 bytes transferred in 4.630977 secs (2318607373 bytes/sec)

Recht nice, wie ich finde.
 
Zuletzt bearbeitet:
Also noch läuft der RAID-Z rebuild in transaction order d.h. das gibt viele Seeks und by default ist Resilvering ausgebremst damit es den Normalbetrieb nicht zu sehr stört. Du kannst den Sleep zwischen den I/O Requests reduzieren und die Anzahl pro Batch erhöhen, wenn du es eilig hast. Dann wird es allerdings merklich bremsen. Der LSI 2308 Sollte nicht nicht drosseln. Das ist doch keine Consumer SSD *hust*. Falls es doch passiert hast du einfach zu wenig Airflow oder ne zu hohe Inflow Temperatur.
 
Zurück
Oben