Fehlertoleranz und Speichereffizienz auf Azure Stack HCI- und Windows Server-Clustern

Gilt für: Azure Stack HCI, Versionen 22H2 und 21H2; Windows Server 2022, Windows Server 2019

In diesem Artikel werden die verfügbaren Resilienzoptionen erläutert und jeweils Skalierungsanforderungen, Speichereffizienz und allgemeine Vor- und Nachteile beschrieben.

Übersicht

„Direkte Speicherplätze“ bietet Fehlertoleranz für Ihre Daten (häufig als „Resilienz“ bezeichnet). Die Implementierung ähnelt RAID, aber sie ist auf Server verteilt und wird per Software implementiert.

Wie auch bei RAID gibt es für „Direkte Speicherplätze“ verschiedene Möglichkeiten, dies zu erreichen. Es handelt sich jeweils um unterschiedliche Kompromisse in Bezug auf Fehlertoleranz, Speichereffizienz und Computekomplexität. Hierbei gelten im Allgemeinen zwei Kategorien: „Spiegelung“ und „Parität“ (auch als „Erasure Coding“ bezeichnet).

Spiegelung

Die Spiegelung ermöglicht Fehlertoleranz, indem mehrere Kopien aller Daten aufbewahrt werden. Dies ähnelt am ehesten RAID-1. Das Striping und die Anordnung dieser Daten ist nicht trivial (weitere Informationen in diesem Blog), aber es lässt sich festhalten, dass alle per Spiegelung gespeicherten Daten vollständig mehrfach geschrieben werden. Jede Kopie wird auf andere physische Hardware (unterschiedliche Laufwerke von nicht identischen Servern) geschrieben, für die angenommen wird, dass sie nicht gemeinsam ausfallen.

Sie können zwischen zwei Spiegelungsvarianten wählen: „Zwei-Wege-Spiegelung“ und „Drei-Wege-Spiegelung“.

Zwei-Wege-Spiegelung

Bei der Zwei-Wege-Spiegelung werden jeweils zwei Kopien aller Daten geschrieben. Die Speichereffizienz beträgt hierbei 50 Prozent. Zum Schreiben von 1 TB an Daten benötigen Sie mindestens 2 TB an physischer Speicherkapazität. Darüber hinaus benötigen Sie mindestens zwei Hardwarefehlerdomänen. Bei „Direkte Speicherplätze“ bedeutet dies, dass zwei Server verwendet werden.

Zwei-Wege-Spiegelung

Warnung

Wenn Sie über mehr als zwei Server verfügen, empfehlen wir Ihnen, stattdessen die Drei-Wege-Spiegelung zu nutzen.

Drei-Wege-Spiegelung

Bei der Drei-Wege-Spiegelung werden jeweils drei Kopien aller Daten geschrieben. Die Speichereffizienz beträgt hierbei 33,3 Prozent. Zum Schreiben von 1 TB an Daten benötigen Sie mindestens 3 TB an physischer Speicherkapazität. Darüber hinaus benötigen Sie mindestens drei Hardwarefehlerdomänen. Bei „Direkte Speicherplätze“ bedeutet dies, dass drei Server verwendet werden.

Bei der Drei-Wege-Spiegelung können mindestens zwei gleichzeitige Hardwareprobleme (Laufwerk oder Server) problemlos toleriert werden. Wenn Sie beispielsweise einen Server neu starten und plötzlich ein anderes Laufwerk bzw. ein Server ausfällt, bleiben alle Daten geschützt und sind ohne Unterbrechung zugänglich.

Drei-Wege-Spiegelung

Parität

Bei der Paritätscodierung (häufig als „Erasure Coding“ bezeichnet) wird die Fehlertoleranz per bitweiser Arithmetik bereitgestellt, und dies kann erstaunlich kompliziert sein. Die Funktionsweise ist hierbei weniger offensichtlich als bei der Spiegelung. Es sind viele hervorragende Onlineressourcen verfügbar (z. B. die „Erasure Coding“-Anleitung für Anfänger eines Drittanbieters), in denen die Grundlagen vermittelt werden. Kurz gesagt: Hierbei wird eine höhere Speichereffizienz ermöglicht, ohne dass dies zu Lasten der Fehlertoleranz geht.

Es gibt für „Direkte Speicherplätze“ zwei Arten von Parität: „Einzelparität“ und „Duale Parität“. Bei der dualen Parität wird bei größeren Umfängen ein erweitertes Verfahren mit dem Namen „Local Reconstruction Codes“ (Lokale Wiederherstellungscodes) genutzt.

Wichtig

Wir empfehlen Ihnen für die meisten leistungsempfindlichen Workloads die Nutzung der Spiegelung. Weitere Informationen zum Abwägen zwischen Leistung und Kapazität je nach Workload finden Sie unter Planen von Volumes.

Einzelparität

Bei Einzelparität wird nur ein Symbol für bitweise Parität beibehalten, sodass nur Fehlertoleranz für jeweils einen Fehler vorhanden ist. Dies ähnelt am ehesten RAID-5. Für die Nutzung der Einzelparität benötigen Sie mindestens drei Hardwarefehlerdomänen. Bei „Direkte Speicherplätze“ bedeutet dies, dass drei Server verwendet werden. Da die Drei-Wege-Spiegelung bei gleichem Umfang eine höhere Fehlertoleranz ermöglicht, raten wir von der Nutzung der Einzelparität ab. Diese Option steht Ihnen aber offen, falls Sie dies möchten, und die Nutzung wird vollständig unterstützt.

Warnung

Wir raten von der Einzelparität ab, da nur jeweils ein Hardwarefehler problemlos toleriert werden kann: Wenn Sie einen Server neu starten und plötzlich ein anderes Laufwerk oder ein anderer Server ausfällt, kommt es zu Ausfallzeit. Falls Sie nur drei Server haben, empfehlen wir Ihnen, die Drei-Wege-Spiegelung zu verwenden. Bei vier oder mehr helfen Ihnen die Informationen im nächsten Abschnitt weiter.

Duale Parität

Bei der dualen Parität werden Reed-Solomon-Fehlerkorrekturcodes implementiert, um zwei Symbole für bitweise Parität beizubehalten. So wird die gleiche Fehlertoleranz wie bei der Drei-Wege-Spiegelung ermöglicht (also bis zu zwei Fehler auf einmal), aber es wird eine höhere Speichereffizienz erzielt. Dies ähnelt am ehesten RAID-6. Für die Nutzung der dualen Parität benötigen Sie mindestens vier Hardwarefehlerdomänen. Bei „Direkte Speicherplätze“ bedeutet dies, dass vier Server verwendet werden. Auf dieser Ebene beträgt die Speichereffizienz 50 %. Zum Speichern von 2 TB an Daten benötigen Sie 4 TB an physischer Speicherkapazität.

Duale Parität

Die Speichereffizienz der dualen Parität steigert sich bei einer höheren Anzahl von Fehlerdomänen von 50 % auf bis zu 80 %. Bei einer Anzahl von sieben (bei „Direkte Speicherplätze“ sieben Server) erhöht sich die Effizienz auf 66,7 Prozent. Zum Speichern von 4 TB an Daten benötigen Sie lediglich 6 TB an physischer Speicherkapazität.

Duale Parität (breit)

Informationen zur Effizienz von dualer Parität und „Local Reconstruction Codes“ für jeden Umfang finden Sie im Abschnitt Zusammenfassung.

Local Reconstruction Codes

Für „Speicherplätze“ wird ein erweitertes Verfahren eingeführt, das von Microsoft Research entwickelt wurde und als „Local Reconstruction Codes“ (LRC) bezeichnet wird. Bei größerem Umfang wird LRC für die duale Parität genutzt, um die Codierung bzw. Decodierung in kleinere Gruppen zu unterteilen. So soll der Mehraufwand reduziert werden, der mit Schreibvorgängen oder der Wiederherstellung nach Fehlern verbunden ist.

Bei Festplattenlaufwerken (HDDs) beträgt die Gruppengröße vier Symbole, und bei Solid State Drives (SSDs) sind es sechs Symbole. Hier ist beispielsweise angegeben, wie das Layout mit Festplattenlaufwerken und zwölf Hardwarefehlerdomänen (zwölf Server) aussieht. Es sind zwei Gruppen mit vier Datensymbolen vorhanden. Es wird eine Speichereffizienz von 72,7 % erzielt.

Local Reconstruction Codes

Wir empfehlen Ihnen diese eingehende und dennoch gut lesbare Beschreibung zum Umgang von Local Reconstruction Codes mit unterschiedlichen Fehlerszenarien und den Gründen für ihre Attraktivität von Claus Joergensen.

Parität mit Beschleunigung per Spiegelung

Bei einem Volume von „Direkte Speicherplätze“ kann teilweise die Spiegelung und teilweise die Parität festgelegt werden. Schreibvorgänge landen zuerst im gespiegelten Teil und werden später dann allmählich in den Paritätsteil verschoben. Hierbei wird praktisch die Spiegelung genutzt, um das Erasure Coding zu beschleunigen.

Zum Mischen von Drei-Wege-Spiegelung und dualer Parität benötigen Sie mindestens vier Fehlerdomänen (also vier Server).

Die Speichereffizienz der Parität mit Beschleunigung per Spiegelung liegt zwischen den Ergebnissen, die Sie bei reiner Spiegelung und bei reiner Parität erzielen, und hängt von den gewählten Proportionen ab. Beispielsweise werden in der Demo bei Minute 37 dieser Präsentation verschiedene Mischungen veranschaulicht, mit denen mit zwölf Servern Effizienzen von 46 %, 54 % und 65 % erzielt werden.

Wichtig

Wir empfehlen Ihnen für die meisten leistungsempfindlichen Workloads die Nutzung der Spiegelung. Weitere Informationen zum Abwägen zwischen Leistung und Kapazität je nach Workload finden Sie unter Planen von Volumes.

Zusammenfassung

In diesem Abschnitt sind die in „Direkte Speicherplätze“ verfügbaren Resilienztypen, die minimalen Skalierungsanforderungen der einzelnen Typen, die tolerierte Anzahl von Ausfällen pro Typ und die entsprechende Speichereffizienz zusammengefasst.

Resilienztypen

Resilienz Fehlertoleranz Speichereffizienz
Zwei-Wege-Spiegelung 1 50,0 %
Drei-Wege-Spiegelung 2 33,3 %
Duale Parität 2 50,0 % bis 80,0 %
Mixed 2 33,3 % bis 80,0 %

Mindestanforderungen für die Skalierung

Resilienz Mindestens erforderliche Fehlerdomänen
Zwei-Wege-Spiegelung 2
Drei-Wege-Spiegelung 3
Duale Parität 4
Mixed 4

Tipp

Wenn Sie keine Chassis- oder Rack-Fehlertoleranz verwenden, bezieht sich die Anzahl von Fehlerdomänen auf die Anzahl von Servern. Die Anzahl von Laufwerken auf jedem Server wirkt sich nicht darauf aus, welche Resilienztypen Sie verwenden können, solange Sie die Mindestanforderungen für „Direkte Speicherplätze“ erfüllen.

Effizienz der dualen Parität für Hybridbereitstellungen

In dieser Tabelle ist die Speichereffizienz der dualen Parität und Local Reconstruction Codes für verschiedene Umfänge von Hybridbereitstellungen angegeben, die sowohl Festplattenlaufwerke (HDDs) als auch Solid State Drives (SSDs) enthalten.

Fehlerdomänen Layout Effizienz
2
3
4 RS 2+2 50,0 %
5 RS 2+2 50,0 %
6 RS 2+2 50,0 %
7 RS 4+2 66,7 %
8 RS 4+2 66,7 %
9 RS 4+2 66,7 %
10 RS 4+2 66,7 %
11 RS 4+2 66,7 %
12 LRC (8, 2, 1) 72,7 %
13 LRC (8, 2, 1) 72,7 %
14 LRC (8, 2, 1) 72,7 %
15 LRC (8, 2, 1) 72,7 %
16 LRC (8, 2, 1) 72,7 %

Effizienz der dualen Parität für reine Flash-Bereitstellungen

In dieser Tabelle ist die Speichereffizienz der dualen Parität und Local Reconstruction Codes für verschiedene Umfänge von reinen Flash-Bereitstellungen angegeben, die nur Solid State Drives (SSDs) enthalten. Für das Paritätslayout können größere Gruppen verwendet werden, und es kann eine bessere Speichereffizienz für eine reine Flash-Konfiguration erzielt werden.

Fehlerdomänen Layout Effizienz
2
3
4 RS 2+2 50,0 %
5 RS 2+2 50,0 %
6 RS 2+2 50,0 %
7 RS 4+2 66,7 %
8 RS 4+2 66,7 %
9 RS 6+2 75,0 %
10 RS 6+2 75,0 %
11 RS 6+2 75,0 %
12 RS 6+2 75,0 %
13 RS 6+2 75,0 %
14 RS 6+2 75,0 %
15 RS 6+2 75,0 %
16 LRC (12, 2, 1) 80,0 %

Beispiele

Sofern Sie nicht nur über zwei Server verfügen, empfehlen wir Ihnen die Nutzung der Drei-Wege-Spiegelung bzw. der dualen Parität, weil diese Verfahren eine bessere Fehlertoleranz bieten. Vor allem wird dabei sichergestellt, dass alle Daten auch dann sicher und dauerhaft zugänglich bleiben, wenn zwei Fehlerdomänen – bei „Direkte Speicherplätze“ also zwei Server – von gleichzeitigen Ausfällen betroffen sind.

Beispiele für den allgemeinen Erhalt des Onlinezustands

In diesen sechs Beispielen ist dargestellt, was bei der Drei-Wege-Spiegelung bzw. bei dualer Parität toleriert werden kann.

  • 1. Ein Laufwerk ist ausgefallen (einschließlich der Cachelaufwerke)
  • 2. Ein Server ist ausgefallen

fault-tolerance-examples-1-and-2

  • 3. Ein Server und ein Laufwerk sind ausgefallen
  • 4. Zwei Laufwerke auf unterschiedlichen Servern sind ausgefallen

fault-tolerance-examples-3-and-4

  • 5. Mehr als zwei Laufwerke sind ausgefallen, sofern höchstens zwei Server betroffen sind
  • 6. Zwei Server sind ausgefallen

fault-tolerance-examples-5-and-6

...in allen Fällen bleiben alle Volumes im Onlinezustand. (Stellen Sie sicher, dass das Quorum für Ihren Cluster erhalten bleibt.)

Beispiele für einen allgemeinen Wechsel in den Offlinezustand

Während der Lebensdauer von „Speicherplätze“ kann das Feature eine beliebige Anzahl von Ausfällen tolerieren, weil nach jedem Ausfall die vollständige Resilienz wiederhergestellt wird – sofern dafür genügend Zeit ist. Es dürfen aber jeweils nur maximal zwei Fehlerdomänen von Ausfällen betroffen sein. Unten sind also Beispiele dafür aufgeführt, was bei der Drei-Wege-Spiegelung bzw. der dualen Parität nicht tolerierbar ist.

  • 7. Ausfall von Laufwerken auf drei oder mehr Servern gleichzeitig
  • 8. Ausfall von drei oder mehr Servern gleichzeitig

fault-tolerance-examples-7-and-8

Verwendung

Lesen Sie Erstellen von Volumes.

Nächste Schritte

Weitere Informationen zu den hier erwähnten Themen finden Sie in den folgenden Artikeln: