Erhöhen Sie die Zuverlässigkeit, indem Sie Festplatten unterschiedlicher Größe partitionieren?

8

Ich verstehe, dass ZFS alle Festplatten mit der gleichen Größe bevorzugen würde. Für den Fall, dass ich zwei Festplatten mit unterschiedlicher Größe (1 TB und 1,5 TB) habe, möchte ich eine gewisse Redundanz, aber keine Spiegelung. Also zerhacke ich zwei Festplatten in 5 Partitionen, wobei jede Partition ungefähr 500 GB groß ist, und erstelle einen "raidz" -Pool ... zfs glücklich verpflichtet. Erhöht das Setup tatsächlich die Zuverlässigkeit? Der Gedanke ist, dass ich trotzdem auf die Daten zugreifen kann, wenn eine Festplatte nicht vollständig kaputt geht und nur ein Teil davon ausfällt.

python152
quelle
5
Dies erhöht die Zuverlässigkeit nicht und beeinträchtigt die Leistung.
Michael Hampton
1
Die meisten Antworten / Kommentare, die ich erhielt, gingen nicht tiefer genug, um zu begründen, warum. Das einfache "gegen Best Practice" oder "gleiche Festplatten machen nur gesunden Menschenverstand" bedeutet mir eigentlich nicht viel. Angesichts dieser besonderen Festplatten, die ich habe, strebe ich natürlich nicht nach den Besten der Besten in Bezug auf Zuverlässigkeit und Leistung. Ich frage, was getan werden kann, wenn ich was habe. Auch die Dinge ändern sich: Im Buch "Master FreeBSD ZFS" ... sagen die Autoren deutlich, dass in der alten / Solaris-Zeit die Bereitstellung der gesamten Festplatte als entscheidend angesehen wurde, jetzt ist dies nicht mehr der Fall. Partitionsbasierte Bereitstellung ist ebenso gut oder wird sogar empfohlen.
Python152
Insbesondere für paritätsbasierte Redundanz gibt es keine absolute Anforderung für die gleiche Größe (ich erinnere mich vage, dass im zfs-Buch auch angegeben wurde, dass das gleiche Kapazitätslaufwerk von verschiedenen Anbietern unterschiedliche Größen aufweist). Es hängt davon ab, wie der ZFS-Datenplatzierungsalgorithmus dies handhabt, um die Verteilung der Paritätsbits auszugleichen und die Leistung auszugleichen.
Python152
@ python152 Es hängt immer davon ab, ob Sie mit den Nachteilen leben können (ZFS ist wirklich sehr flexibel, Best Practices sind Empfehlungen, keine Regeln). Wenn Sie Ausfallzeiten akzeptieren und sich auf die Partitionsverwaltung verlassen können, ist das Ersetzen teilweise fehlerhafter Festplatten beispielsweise nicht so wichtig. Ich wäre immer noch vorsichtig mit dem RAID5-Schreibloch, das unabhängig davon existiert, ob es sich bei Ihrer Backing-Hardware um Festplatten, Partitionen oder sogar Dateien handelt.
user121391
1
@ user121391 ZFS raidz leidet nicht unter dem RAID5-Schreibloch. Siehe blogs.oracle.com/bonwick/entry/raid_z und pthree.org/2012/12/05/zfs-administration-part-ii-raidz
nickcrabtree

Antworten:

3

Der Gedanke ist, dass ich trotzdem auf die Daten zugreifen kann, wenn eine Festplatte nicht vollständig kaputt geht und nur ein Teil davon ausfällt.

Theoretisch ist dieser Gedanke richtig. Solange auf einem einzelnen Gerät Ihres RAIDZ1 vdev ein Fehler auftritt, kann und wird ZFS Sie informieren und den Fehler beheben, sofern die anderen Geräte fehlerfrei sind.

Was sich in der Realität unterscheiden kann, sind verschiedene Dinge:

  • Fehler können sich über Partitionen erstrecken und daher sind zwei oder mehr Geräte betroffen, was zu nicht behebbaren Fehlern oder sogar zum Verlust des gesamten Pools führen kann (je nach Standort und Anzahl der Fehler). Sie könnten RAIDZ2 oder Z3 verwenden, um dies etwas zu mildern, aber das Problem ist immer da.
  • Beim Resilvering einer Partition muss die Festplatte gleichzeitig und zufällig auf dieselbe Festplatte lesen (2 Mal) und schreiben (1 Mal). Wenn Sie Solaris 11.3 nicht mit sequentiellem Resilvering verwenden, ist dies sehr, sehr langsam. Bis Sie mit dem Resilver-Prozess fertig sind, sind Sie anfällig für Fehler auf den anderen Partitionen. Wenn Ihre Resilvering-Zeit länger ist, steigt Ihre Chance, auf ein zusätzliches URE zu stoßen. Außerdem wird das Laufwerk zusätzlich belastet, wodurch die Wahrscheinlichkeit eines vollständigen Laufwerksausfalls erhöht wird.
  • Stellen Sie sich vor, Ihre dritte Partition (die letzte auf der 1,5-TB-Festplatte) weist genügend Fehler auf, um den Pool zu verschlechtern und einen Ersatz anzufordern. Wenn Sie keine weitere Festplatte hinzufügen können, können Sie ohne Herunterfahren / Exportieren keinen Austausch durchführen, und selbst dann ist dies komplizierter als gewöhnlich.

Aufgrund dieser Punkte würde ich raten, dies nicht zu tun, wenn Zuverlässigkeit Ihr Hauptziel ist. Unter der Annahme einer festen Hardwaresituation würde ich eine der folgenden Aktionen ausführen:

  1. Verwenden Sie Spiegel und verlieren Sie 500 GB, aber erhalten Sie in Zukunft eine einfache Einrichtung mit einfacher Erweiterbarkeit
  2. Verwenden Sie zwei separate Pools und copies = 2wenn Sie eine gewisse Ausfallsicherheit gegen kleinere Fehler wünschen (ein Ausfall der gesamten Festplatte würde im Vergleich zu Ihrem Setup nur 2/5 oder 3/5 Ihrer Daten töten).
  3. Verwenden Sie andere Dateisysteme als ZFS, wenn Sie Ihren Kuchen auch essen möchten
user121391
quelle
5

Was Sie beschreiben, ist ein bisschen klebrig.

ZFS möchte vollständige Festplatten mit gleicher Größe und Kapazität. Dies ist aus verschiedenen Gründen kritisch, macht aber auch nur gesunden Menschenverstand.

Alles, was Sie in der von Ihnen beschriebenen Situation tun würden, ist, die Umgebung komplexer zu gestalten und Ihr Risiko zu erhöhen .

ewwhite
quelle
1
Ganz zu schweigen von der Leistungsminderung.
Michael Hampton
@ MichaelHampton Wie ist das?
Katze
2
@cat Weil ZFS denkt, Sie haben fünf Spindeln, wenn Sie tatsächlich zwei haben.
Michael Hampton
4

Sagen wir mal so:

  • Wenn Sie 1 TB Daten auf Datenträger 1 haben, können Sie diese auf Datenträger 2 replizieren, und Sie können es sich leisten, einen der Datenträger zu verlieren.

  • Wenn sich auf Datenträger zwei 1,5 TB Daten befinden, können Sie nur die ersten 1 TB Daten auf Datenträger 1 replizieren. In diesem Szenario gehen Daten verloren, wenn Datenträger zwei ausfällt.

ZFS ist sehr leistungsfähig, aber in der Regel sind gemischte Festplatten-Setups gemäß den beiden obigen Punkten albern und nicht besonders nützlich. Wenn Sie Wert auf Zuverlässigkeit und Redundanz legen, tun Sie so, als wäre die zweite Festplatte ebenfalls nur 1 TB groß.

Benny Mackney
quelle
4
Ich schreibe dieses Bit in einen Kommentar, weil ich nicht das Gefühl habe, dass es wirklich in eine "Antwort" als solche passt, aber wenn Sie wirklich den gesamten Speicherplatz auf Ihren Festplatten nutzen möchten, würde ich einen 1-TB-Spiegel einrichten und Verwenden Sie dann die letzten 500 GB als normales, nicht repliziertes Volume für Arbeitsbereichs- und temporäre Dateien, die mir nicht wirklich wichtig sind (z. B. den Download-Ordner meines Browsers - schön, wenn alte Inhalte dort zwischengespeichert werden, aber es gibt nichts, was ich wirklich hätte vermisse wenn ich es verloren habe).
Benny Mackney