Die meisten Ihrer Punkte sind richtig, deshalb konzentriere ich mich nur auf den Rest:
Die Verwendung eines SLOG-Geräts für das ZIL hilft Ihnen nur bei kleinen synchronisierten Schreibvorgängen. Es ist daher zwingend erforderlich, wenn Sie virtuelle Maschinen darauf speichern möchten, und in den meisten anderen Heimanwendungsfällen, vor allem bei Sicherungen und Streaming-Medien, ziemlich nutzlos. Da Sie es später immer hinzufügen und entfernen können, sollten Sie ohne starten und erst dann hinzufügen, wenn dies erforderlich ist.
L2ARC kann die Leseleistung verbessern, ist jedoch langsamer als der Arbeitsspeicher, benötigt zusätzlichen Arbeitsspeicher und hilft nur, wenn dieselben Daten gelesen werden. Wieder schlecht für das Streamen eines ganzen Films oder von Musik, aber gut, wenn Sie eine Website hosten, auf die häufig zugegriffen wird, oder wenn Hunderte von Benutzern auf Dateifreigaben zugreifen. Als Faustregel gilt: Zuerst sollte der Arbeitsspeicher maximal ausgeschöpft werden (abhängig von der Platine wahrscheinlich 32, 64, 128 oder 256 GB), und dann über L2ARC nachdenken.
ZIL und L2ARC auf demselben Gerät sind normalerweise keine gute Idee, da sich ihre Bedürfnisse direkt widersprechen:
- ZIL wird ständig für kleine zufällig synchronisierte IO geschrieben (große und sequentielle IO umgehen sie, asynchrone IO verwenden sie überhaupt nicht), was bedeutet, dass Sie eine SSD mit sehr geringer Schreiblatenz wünschen (Intel ist der einzige Anbieter, der ich anbiete. ' Wir haben festgestellt, dass diese Eigenschaft auch für die günstigeren Consumer-SSDs gilt), akzeptable IOPS-Schreibvorgänge (hier sind fast alle SSDs ausreichend) und eine hohe TBW-Menge, damit Ihre SSD nicht jedes Jahr vor Erschöpfung stirbt. In der Regel reichen für kleine Systeme <10 GB. Spiegelung wird bevorzugt, um Datenverlust zu vermeiden, wenn Strom und SSD gleichzeitig ausfallen.
- L2ARC muss jedoch um ein Vielfaches größer sein (> 64 GB sind in Abhängigkeit vom Arbeitsspeicher üblich), wird selten geschrieben, aber häufig gelesen, sodass Sie hohe IOPS-Lesevorgänge, eine akzeptable Leselatenz benötigen und TBW nicht so wichtig sind . Das Spiegeln ist in den meisten Fällen eine Geldverschwendung, da es nur ein Cache-Gerät ist und ohne Probleme verloren gehen und erneut erstellt werden kann.
Ein einzelner Root-Pool ist natürlich möglich, aber Sie sparen sich einige Kopfschmerzen, wenn Sie ihn spiegeln. Da es normalerweise nicht so sehr betroffen ist, sind zwei langsame Festplatten oder sogar USB-Geräte (jedes Mainboard hat mindestens zwei USB-Anschlüsse als Header) für den Heimgebrauch perfekt geeignet und Sie erhalten einen weiteren verwendbaren Festplattensteckplatz. Besonders wenn Sie ohne USV laufen, geben Ihnen zwei Rpool-Geräte wirklich Sicherheit.
Ihre Poolgröße ist korrekt, es kann jedoch eine Option für 12 Festplatten mit 2x Z2 (jeweils 6 Festplatten) oder 1x Z3 (jeweils 12 Festplatten) gewählt werden. Als Faustregel gilt, dass Sie bei der Verwendung von Z1 / 2/3 zunächst alle verfügbaren Festplattensteckplätze auffüllen müssen, da die Aktualisierung der Festplattengröße nur geringfügig ist und später keine weiteren Platten hinzugefügt werden können.
Ich kenne mich mit Linux nicht aus (sollte gut funktionieren), aber haben Sie sich andere illumos-basierte Systeme angesehen? OmniOS ist klein, einfach und stabil und kann an Ihre Bedürfnisse angepasst werden (dazu gehören auch Zonen mit KVM- und LX-Marken). SmartOS ist ähnlich, konzentriert sich jedoch stark auf Zonen (Container), sodass Sie alle Ihre Services unabhängig voneinander ausführen können und sogar Linux-Gäste in diesen Zonen für die wenigen Dienste ausführen können, die unter Solaris nicht verfügbar sind. Es gibt auch Delphix und NexentaStore Community Edition, aber ich habe sie nicht getestet.
Mein persönlicher Vorschlag:
- Verwenden Sie das Betriebssystem, mit dem Sie vertraut sind (wenn Sie die Stabilität von Solaris mögen, versuchen Sie es mit OmniOS oder wenn Sie Virtualisierung möchten, versuchen Sie es mit SmartOS)
- Verwenden Sie gespiegelte Rpools auf USB-Festplatten (USB3-Festplatten oder USB3-Sticks mit SLC-Speicher), um weitere Steckplätze für Festplatten verfügbar zu machen
- Verwenden Sie 6 Ports von den Mainboards und 6 Ports von der HBA-Karte, damit Sie einen Controller verlieren und Ihr System weiter läuft
- In Zukunft können je nach Bedarf 2 freie Ports für SLOG- oder L2ARC-Geräte verwendet werden
- Layout (12 ist eine sehr schöne Zahl, 16 wäre am besten, da die meisten Controller 4 oder 8 Ports haben):
- Wenn Sie maximale Leistung benötigen: 6x2 Spiegel, jeweils auf beiden Controllern
- Wenn Sie maximale Belastbarkeit benötigen: 4x3 Spiegel oder 1x RAID Z3 (12) oder 2x RAID Z2 (6)
- Wenn Sie maximalen Speicherplatz benötigen: 1x RAID Z2 (12)
- Maximieren Sie zuerst den RAM, dann etwas anderes
Zu Ihren Folgefragen aus Kommentaren:
Ich mag die Idee, zwei gespiegelte USB3-Sticks für das System zu verwenden, aber ist es startfähig?
USB-Sticks sind im Wesentlichen die gleichen wie USB-Festplatten, sodass Sie problemlos von ihnen booten können (außer auf sehr alten Mainboards, aber alles aus den letzten zehn Jahren sollte in Ordnung sein). Einige Systeme wie SmartOS oder ESXi machen dies sogar als bewährte Methode bekannt.
Einige dagegen (wie FreeNAS) empfehlen es nicht, da sie nicht auf USB-Sticks zugeschnitten sind und daher ständig auf die Festplatten schreiben und billigere Sticks ziemlich schnell verbrauchen (weshalb so viele Raspberry Pis früh ausfallen - das Linux-System denkt, es hat eine unzerstörbare Festplatte und nicht etwa 5 EUR USB-Stick oder eine SD-Karte, die für gelegentliches Schreiben wie von einer Digitalkamera entwickelt wurde.
Bei SLC-Sticks (oder echten SSDs) treten diese Probleme nicht auf. Natürlich sind sie teurer, etwa 30 bis 40 EUR für 16-GB-Sticks (MachExtreme MX-ES sind ungefähr die einzigen Dinge, die es wert sind, in diesem Sektor zu arbeiten). SSD kann billiger sein (30 EUR für 32 GB), aber Sie benötigen einen USB-Adapter, der mehr Platz benötigt. Sie können sie außerhalb des Gehäuses für schnelle Backups / Swaps oder innen für die Zugriffskontrolle verwenden (lesen Sie: Wenn Sie Kinder haben, die glänzendes Spielzeug mögen).
Anscheinend brauche ich keine Log / Cache-Platten. Sollte ich alle 14 Ports für Festplatten verwenden?
Abhängig von Ihren Bedürfnissen und Ihrem Budget. Wenn Sie Spiegel verwenden, können Sie sie später flexibel hinzufügen. Wenn Sie RAID-Zn verwenden, würde ich den endgültigen Betrag vor dem Erstellen des Pools festlegen, da Sie nicht einfach mehr hinzufügen können. Auf der anderen Seite möchten Sie vielleicht einige Ports für die Sicherung freigeben (z. B. mit Slot-In-Caddys für 3,5-Zoll-Laufwerke) oder für Cache-Zwecke, wenn sich Ihre Anforderungen ändern. Es liegt an Ihnen, wenn Sie mehr als nur auf die Flexibilität Wert legen (und es hängt von Ihren Erweiterungskarten ab, die von Ihrer Hardware unterstützt werden).
So etwas wie 2x7 RaidZ2 zusammen gestreift? Wenn ich dies tue und der Controller ausfällt, wird der Pool ausfallen, aber wenn ich den Controller durch einen identischen Controller ersetze, wird er erneut ausgeführt?
Ja, und es funktioniert auch, wenn Sie einen anderen Controller verwenden, da alles in Software ausgeführt wird. Sie müssen nur genügend Festplatten hinzufügen, damit jedes vdev funktioniert, und Sie können den Pool wieder online stellen.
Wenn in Ihrem Fall der Controller mit 8 Ports ausfällt, müssen Sie dem System in beliebiger Weise fünf (7 - 2) dieser Festplatten hinzufügen (die Acht ist ohnehin entbehrlich, da die anderen sechs Festplatten noch laufen), z mit einem 4-Port-Controller und einer einzelnen USB-Festplatte (nicht zu empfehlen, nur um zu zeigen, dass die Verbindung grundsätzlich bedeutungslos ist).
In der Regel ersetzen Sie einfach den Controller durch dasselbe Modell, da Sie wissen, dass die Konfiguration problemlos funktioniert und die Leistung ausreicht (bei 8 Festplatten pro Controller ist der Preis des Controllers an sich ohnehin recht niedrig.
Und wenn ich das tue, kann ich einen Teil des Beckens wachsen lassen, ohne den anderen zu berühren?
Sie können die vdevs separat vergrößern, jedoch nur, wenn der Pool selbst online ist (dh, nachdem der Controller ausgetauscht wurde und Fehler aufgetreten sind). Berücksichtigen Sie, dass Ihre Daten nicht ausgewuchtet werden, wenn Sie den Wert "unausgewogen" vergrößern, wenn der andere vdev erweitert wird. Dies gilt nicht für neue und geänderte Blöcke (beim Schreiben werden die Daten beim Lesen nicht neu angeordnet). Dies sollte für Ihre Leistungsanforderungen kein Problem sein, aber ich dachte, ich würde es der Vollständigkeit halber erwähnen.