Leistungsprobleme bei FreeBSD ZFS RAID-Z2

7

Ich versuche, meinen eigenen Netzwerkspeicher basierend auf FreeBSD + ZFS + -Standardkomponenten aufzubauen, aber es gibt seltsame Leistungsprobleme.

Die Hardwarespezifikationen sind:

  • AMD Athlon II X2 240e Prozessor
  • ASUS M4A78LT-M LE Mainboard
  • 2GiB Kingston ECC DDR3 (zwei Sticks)
  • Intel Pro / 1000 CT PCIe-Netzwerkadapter
  • 5x Western Digital Caviar Green 1,5 TB

Ich habe aus allen Festplatten einen RAID-Z2-Zpool erstellt. Ich habe FreeBSD 8.1 nach dem Tutorial auf diesem Zpool installiert . Die SATA-Controller laufen im AHCI-Modus.

Ausgabe des Zpool-Status:

pool: zroot
state: ONLINE
scrub: none requested
config:
    NAME                                            STATE     READ WRITE CKSUM
    zroot                                           ONLINE       0     0     0
      raidz2                                        ONLINE       0     0     0
        gptid/7ef815fc-eab6-11df-8ea4-001b2163266d  ONLINE       0     0     0
        gptid/80344432-eab6-11df-8ea4-001b2163266d  ONLINE       0     0     0
        gptid/81741ad9-eab6-11df-8ea4-001b2163266d  ONLINE       0     0     0
        gptid/824af5cb-eab6-11df-8ea4-001b2163266d  ONLINE       0     0     0
        gptid/82f98a65-eab6-11df-8ea4-001b2163266d  ONLINE       0     0     0

Das Problem ist, dass die Schreibleistung im Pool sehr, sehr schlecht ist (<10 MB / s) und jede Anwendung, die auf die Festplatte zugreift, beim Schreiben alle paar Sekunden nicht reagiert. Es scheint, dass das Schreiben in Ordnung ist, bis der ZFS-Arche-Cache voll ist, und dann blockiert ZFS die gesamte System-E / A, bis das Schreiben dieser Daten abgeschlossen ist.

Außerdem bekomme ich kmem_malloc to smallKernel-Panik. Ich habe schon versucht zu setzen

vm.kmem_size="1500M"
vm.kmem_size_max="1500M"

in /boot/loader.conf, aber es hilft nicht.

Weiß jemand, was hier los ist? Habe ich wirklich nicht genug Speicher für ZFS, um dieses RAID-Z2 zu handhaben?

Axel Gneiting
quelle
2
Versuchen Sie, <enter> auszuführen, systatund :vmbeobachten Sie dann diesen Bildschirm, während Sie einen großen Schreibvorgang ausführen, um festzustellen, wo der Engpass liegt. Die erweiterten Funktionen von ZFS sind noch nicht genau optimiert, und Sie könnten auf einen Fehler stoßen.
Chris S

Antworten:

10

Ich vermute, Sie stoßen wahrscheinlich auf das Problem, dass ich das Problem "512-Byte-Sektoren sind keine 4K-Sektoren" nennen werde. Wie auch immer, googeln Sie auf Gnop, 4K-Sektor, WD Green und ich vermute, Sie werden das Update finden. Ich habe es zum ersten Mal auf dieser Website erfahren und es war sehr informativ zu diesem Thema sowie zu einer Vielzahl anderer Einstellungen für FreeBSD und ZFS. Viel Glück!

Bearbeiten: um von der verlinkten Seite zu zitieren:

... Schließlich stieß ich auf Hinweise auf Probleme mit den 1,5 TB (WE15EADS) Green-Laufwerken von Western Digital, die ich verwende.

Die Laufwerke haben einen physischen Sektor von 4 KB, melden jedoch 512 Byte an das BIOS. Daher sinkt die Leistung bei wirklich großen Schreibvorgängen, da zfs unter FreeBSD 4 KB Daten als 8 separate Schreibvorgänge mit 512 Byte an das Laufwerk sendet. Dies erfordert, dass die Firmware im Laufwerk ihre Arbeitslast um einen geschätzten Faktor von 60 erhöht (1. 512 Byte - Schreiben Sie 4 KB, 2. 512 Bytes, lesen Sie 4 KB, schreiben Sie 4 KB, ..., 8. 512 Bytes, lesen Sie 4 KB, schreiben Sie 4 KB - so werden 4 KB Schreibvorgänge zu 4 KB Schreiben + (4 KB Lesen + 4 KB Schreiben) X (4 KB / 512 Bytes - 1 ) = 60. Die im 32-MB-Cache integrierten Laufwerke helfen, bis sie gefüllt sind und der zfs-Bogen aktiviert wird und sich der Bogen dann füllt. Alles in allem also keine große Sache, oder?

Tatsächlich ist es eine sehr große Sache, wenn Sie Dateien in zfs schreiben, die größer als Ihr Bogen plus die Größe des Puffers auf dem Laufwerk sind. ...

Jed Daniels
quelle
Ich habe davon gehört, aber ich dachte, die Grüns haben keine 4K-Sektoren. Vielen Dank für diesen Hinweis. Ich werde versuchen, die Laufwerke entsprechend neu zu partitionieren.
Axel Gneiting
Recht. Die Grüns haben anscheinend 512-Byte-Sektoren. Aber (zumindest einige von ihnen) melden offenbar auch fälschlicherweise 4K-Sektoren.
Jed Daniels
Nein, ich denke du hast recht. WD15EARS haben 4096.000 physische Sektoren. Ich werde morgen eine Neuinstallation versuchen. Ich werde Ihre Antwort akzeptieren, wenn die Probleme weg sind :)
Axel Gneiting
Ihre Antwort ist richtig, aber das Problem ist problematischer als gedacht. Die Laufwerke liegen in Bezug auf ihre physische Sektorgröße, und ZFS-Fragmente schreiben aus diesem Grund auf 512 Byte herunter, selbst wenn die Partitionen ausgerichtet sind. Danke trotzdem.
Axel Gneiting
Ich weiß nichts über FreeBSD, aber ich verwende seit ungefähr 9 Monaten ohne Probleme 1,5 TB WD Green EARS 4k-Sektorlaufwerke mit ZFS unter OpenSolaris. 6 Laufwerke in raidz2 haben ausgereicht, um das Gigabyte-Netzwerk zu überlasten.
Illotus
4

Zusätzlich zum 4K / 512b-Problem sind grüne WD-Festplatten nicht die ideale Wahl für Ihre Verwendung, da sie nach 8 Sekunden Inaktivität ihre Köpfe abstellen und es einige Sekunden dauert, bis sie wieder funktionsfähig sind. Dies ist die Schreibverzögerung, die Sie beobachten.

http://opensolaris.org/jive/thread.jspa?messageID=480641&tstart=0

jlliagre
quelle
Die Sache ist, dass das "Problem" des Leerlauf-Timers im Grunde immer noch imaginär ist, da es keine Daten zu geben scheint, die darauf hinweisen, dass die Laufwerke vorzeitig ausfallen würden.
Illotus
Bei der Frage geht es nicht um Laufwerksfehler, sondern um Leistungsprobleme. Wie können Sie das Offensichtliche leugnen? Das Problem mit dem Leerlauf-Timer ist nicht imaginär, aber sehr real, und ich erlebe es definitiv auch. Beachten Sie auch, dass es möglich ist, das Leerlaufzeitlimit auf einigen, aber nicht allen dieser Laufwerke abhängig von ihrer Firmware zu ändern.
20.
-1

Versuchen Sie, den Timer mit dem WDidle-Tool zu deaktivieren.

myworldoftech
quelle
1
Der Leerlauf-Timer war kein Problem. Ich habe die Laufwerke in der Zwischenzeit trotzdem zurückgegeben.
Axel Gneiting