Für L2ARC und ZIL: Ist es besser, eine große SSD für beide oder zwei kleinere SSDs zu haben?

22

Hauptreferenzen

ZFS L2ARC (Brendan Gregg) (2008-07-22) und ZFS und das Hybrid Storage Concept (Anatol Studlers Blog) (2008-11-11) enthalten das folgende Diagramm:

eine ZFS-Pyramidenansicht von ARC, L2ARC, ZIL und einem Plattenspeicherpool

Frage

Soll ich die vertikale weiße Linie - auf der Ebene der SSDs - als Präferenz für die Verwendung separater SSDs interpretieren ?

  • Vorzug nicht L2ARC und ZIL auf einer einzigen Platte mischen?

Hintergrund (Antwort auf Kommentare)

Persönlich kann ich zu Hause weder L2ARC noch ZIL mit einem Computer verwenden, der mir zur Verfügung steht. (Mein normaler Computer ist ein MacBookPro5,2 mit 8 GB Speicher und einem Hybrid-Seagate ST750LX003-1AC154. Es ist nicht geplant, das optische Laufwerk durch eine SSD zu ersetzen.)

An anderer Stelle: Bei der Arbeit wird das Kit neu verwendet, aber ich habe kein Datum und keine vollständigen Details. (Xserve RAID x2 in der Mischung ... zur Zeit stelle ich mir nicht vor, diese an ZFS weiterzugeben, aber ich bin aufgeschlossen.)

Meine Neugier für SSD-Best Practices sowohl für L2ARC als auch für ZIL begann, als ich Performance-bezogene Diskussionen im ZEVO-Bereich führte - insbesondere das unten erwähnte Thema, bei dem ein Benutzer sowohl L2ARC als auch ZIL auf einer einzigen Festplatte hat.

Andere Referenzen und Diskussionen

L2ARC-Screenshots (Brendan Gregg) (30.01.2009)

SLOG-Screenshots (Brendan Gregg) (26.06.2009)

[zfs-discussion] ZFS-Root-Backup / "Disaster" -Recovery und das Verschieben des Root-Pools (10.01.2011) empfehlen eine Kombination aus drei Dingen (Root-Pool, ZIL und L2ARC) auf einer einzelnen Festplatte.

… Die Kopfschmerzen nicht wert, die auftreten können, wenn versucht wird, alle 3 auf derselben Festplatte zu verwalten. Zum Beispiel, wenn Sie sich entschließen, den Inhalt der ZIL für Ihren Datenpool neu zu installieren und versehentlich zu löschen. Geben Sie keine Festplatten für Poolkomponenten oder für Pools frei, um die Verwaltung und Wiederherstellung zu vereinfachen. …

- Mich interessiert eher, ob es empfehlenswert ist, zwei dieser Dinge nicht auf einer einzigen Festplatte zu mischen .

/superuser//a/238744/84988 (2011-01-28) erwähnt "Cache (L2ARC-Cache) und Schreibprotokoll (ZIL) auf SSD" ( Singular ). Da es sich jedoch um FUSE und Windows handelt, sehe ich diese Antwort nicht als besonders relevant für allgemeinere und leistungsorientiertere Anwendungen von ZFS an.

@ChrisS hat ZIL und L2ARC am 16.08.2011 im Kommunikationsraum erwähnt.

http://forums.macrumors.com/showpost.php?p=14248388 (2012-01-31) behandelt mehrere SSDs:

Was Sie über ZFS wissen müssen: Es gibt zwei verschiedene Arten von Cache, Lese- und Schreibzugriff (L2ARC und ZIL), die normalerweise auf SSDs gespeichert sind. Die ZIL ist der Schreibcache. Das ist wahrscheinlich der Grund für dieses Missverständnis. Die ZIL wird bei jedem Schreibzugriff auf den Zpool gehämmert (vorausgesetzt, es handelt sich um ein aktives System). Das Problem ist, dass die Verwendung einer mlc-basierten SSD als ZIL dazu führt, dass sie sich abnutzen und recht schnell ausfallen. Sie benötigen eine (viel teurere) SLC-basierte SSD als ZIL-Laufwerk.

Ein Zpool, der ausschließlich aus SSDs besteht, ist nicht nur möglich, sondern funktioniert auch ganz gut. Außerdem sind für ZIL und L2ARC keine separaten Laufwerke erforderlich. Ja, Sie haben keine TRIM-Unterstützung, aber aufgrund des Copy-on-Write-Charakters von ZFS ist dies wahrscheinlich eine gute Sache.

ZFS funktioniert jedoch NICHT mit fast vollen (beispielsweise 85% oder höher) Zpools. Die Leistung beginnt erheblich zu sinken - unabhängig davon, ob Sie rotierende magnetische Medien oder Festkörper verwenden. Ein Mangel an TRIM-Unterstützung würde dieses Problem wahrscheinlich noch verschlimmern, aber es ist bereits ein Problem.

/server//a/397431/91969 (2012-06-11) empfiehlt:

  • SLC-Typ-SSD (speziell nicht MLC) für ZIL
  • MLC-Typ SSD für L2ARC.

/superuser//a/451145/84988 (2012-07-19) erwähnt eine singuläre "SSD für ZIL und L2ARC zur Beschleunigung von ZFS".

zevo.getgreenbytes.com • Thema anzeigen - Leistungsproblem mit der FW800-Verbindungsreihenfolge? (2012-09-24) befasst sich mit der Reihenfolge der Dinge in einem FireWire-Bus mit einer einzelnen SSD für ZIL und L2ARC

  • Abgesehen von der Busbestellung hat mich dieses ZEVO-Thema dazu veranlasst, mich zu fragen, ob separate SSDs vorzuziehen sind.

Genauer gesagt: Ich habe mich über Interpretationen der weißen Linie im obigen Diagramm gewundert.

Graham Perrin
quelle
2
Dies scheint eher eine Serverfehlerfrage zu sein. Sie sollten jedoch die Last für Lesen und Schreiben in Ihrem Speicherpool berücksichtigen. Es gibt einige Untersuchungen, die belegen, dass SSD-Raids im Allgemeinen eine drastisch geringere Leistung beim Schreiben aufweisen können als die Konfiguration einzelner Laufwerke. xbitlabs.com/articles/storage/display/…
2
Diejenigen, die mit ZFS am ehesten vertraut sind, sind mit größerer Wahrscheinlichkeit am Serverfehler beteiligt als der SuperUser. Abstimmung zu bewegen, aber eine ausgezeichnete Frage.
Afrazier
Ich sehe, dass zwei aktuelle Abstimmungen abgeschlossen sind. Können wir die Frage stattdessen einfach verschieben? Thanks @afrazier
Graham Perrin
1
Willkommen bei Serverfehler. Wie in den häufig gestellten Fragen angegeben , bevorzugen wir praktische, beantwortbare Fragen, die auf bestimmten Problemen basieren, mit denen Sie konfrontiert sind . Das heißt, Sie haben hier viel Theorie und Diskussion durchgearbeitet, aber das, was zu fehlen scheint, ist das Problem, das Sie zu lösen versuchen. Fügen Sie die praktischen Details hinzu, und dies ist das Zeug zu einer großen Frage.
Michael Hampton
1
Just zu beachten, CBO sind ein Weg , um Antworten zu bewegen. Wenn die Mehrheit der VTCs zu einem Standort umziehen soll, wird dieser umgezogen. Und ja, praktische Details, bitte, dies sieht wirklich gut geschrieben und detailliert aus, aber ohne zu wissen, in welcher Situation Sie sich befinden, ist es schwierig, tatsächlich eine spezifische Antwort zu erhalten. Sie erstellen offensichtlich ein Kickass-ZFS-Setup, und Details wären hilfreich, um die Antwort zu finden.
Geselle Geek

Antworten:

14

Kurze Antwort, da ich nicht sehe, welches Problem Sie lösen möchten ...

Wenn Sie können, verwenden Sie separate Geräte. Dies hängt von der Größe Ihrer Umgebung ab. Wenn es sich nur um ein einfaches Heimsystem oder eine virtualisierte oder eine All-in-One-ZFS-Lösung handelt , können Sie ein einzelnes Gerät verwenden.

In größeren oder leistungsstärkeren ZFS-Lösungen verwende ich Geräte, die speziell für ihre ZIL- oder L2ARC-Rollen geeignet sind ... ZB STEC ZeusRAM oder DDRDrive für ZIL und jede Enterprise SLC oder MLC SAS SSD für L2ARC.

  • ZIL-Geräte sollten Geräte mit geringer Kapazität und geringer Latenz sein, die über eine hohe IOPS-Leistung verfügen. Sie werden normalerweise gespiegelt.
  • L2ARC-Geräte sollten eine hohe Kapazität haben (aus folgendem Grund: Sie müssen RAM hinzufügen, wenn die L2ARC-Größe zunimmt). Sie skalieren durch Streifen.

Was tun Sie?

ewwhite
quelle
Ich habe der Frage einige Hintergrundinformationen hinzugefügt. Diese Antwort erscheint mir ideal - danke - ich lasse die Dinge ein paar Tage offen, bevor ich sie annehme.
Graham Perrin
Für Link-Zwecke: Eine 2011-Frage von @ewwhite ZFS - Wie partitioniere ich SSD für ZIL- oder L2ARC-Verwendung? und innerhalb der akzeptierten Antwort ist "... dedizierte ZIL- und L2ARC-Geräte pro Pool der richtige Weg".
Graham Perrin
6

Es gibt von Anfang an einige grundlegende Missverständnisse in Bezug auf ZIL, die korrigiert werden müssen, bevor Sie fortfahren.

Verstehen Sie dies: Unter "normalen" Umständen wird ZIL / SLOG nicht berührt.

Es wird nur geschrieben, wenn synchrone Schreibvorgänge befohlen werden oder wenn sync = always für einen bestimmten Pool / Dataset aktiviert ist ("zfs get sync pool / dataset").

ZIL wird unter normalen Umständen niemals gelesen. Es ist eine Disaster Recovery-Funktion.

IE: Das ZIL ist nur da, wenn der Strom ausfällt. Es wird verwendet, um Daten wiederzugeben, die dem Betriebssystem zurückgespielt wurden, bevor diese Daten in den Pool übernommen wurden. Alle ZFS-Schreibvorgänge in den Pool (synchron oder asynchron) stammen aus Speicherpuffern.

Unter normalen Umständen kann der Slog-Eintrag verdunsten, sobald die Daten in den Pool gelangen. Es handelt sich lediglich um einen großen, kreisförmigen Schreibpuffer, der nicht sehr groß sein muss (selbst 1 GB ist in den meisten Fällen zu viel des Guten).

Nicht synchrone Schreibvorgänge werden im RAM gepuffert, sortiert und zu einem geeigneten Zeitpunkt auf die Festplatte geschrieben. Wenn die Stromversorgung unterbrochen wird, gehen diese Daten verloren, die FS-Integrität bleibt jedoch erhalten.

Andererseits ist L2ARC sowohl auf Lese- als auch auf Schreibebene stark ausgelastet.

Es gibt so etwas wie "zu viel l2arc", weil die Metadaten für das, was in l2arc enthalten ist, aus Ihrem ARC-RAM stammen (dh, wenn Sie die Größe von l2arc erhöhen, müssen Sie den RAM entsprechend erhöhen. Andernfalls kann dies zu schwerwiegenden Leistungseinbußen führen und irgendwann wird die Nutzung von l2arc deutlich unter "dem gesamten verfügbaren Speicherplatz" abflachen)

Trotz der Proteste einiger Hersteller können Sie einen Speichermangel nicht ausgleichen, indem Sie die Größe des l2arc erhöhen. (Mehrere Hersteller von Hardware-RAID-Arrays, die in ZFS-Appliances verzweigt sind, haben diese Annahme getroffen.)

tl; dr: Wenn Ihre E / A-Last Datenbankaktivität ist, ist es wahrscheinlich, dass ZIL hart zugeschlagen wird. Wenn es etwas anderes ist, ist es wahrscheinlich, dass es nur leicht berührt wird. Es ist sehr wahrscheinlich, dass bei 99,9% der Aktivitäten die ZIL-Funktionen niemals aktiviert werden.

Wenn Sie wissen, können Sie entscheiden, ob Sie eine SLOG-Partition für ZIL benötigen, ob sie mit der l2arc-Partition zusammenarbeiten kann oder ob sie ein Standalone-Laufwerk benötigt (und welches Leistungsniveau dieses Standalone-Laufwerk haben sollte).

Hermelin
quelle