Fehlerdomänenunterstützung

Gilt für Windows Server 2022, Windows Server 2019, Windows Server 2016, Azure Stack HCI (Version 21H2 und 20H2)

Failoverclustering ermöglicht die Zusammenarbeit mehrerer Server, um hohe Verfügbarkeit zu bieten – oder anders ausgedrückt, um Knotenfehlertoleranz zu bieten. Unternehmen von heute verlangen jedoch immer mehr Verfügbarkeit von ihrer Infrastruktur. Um cloudähnliche Betriebszeit zu erreichen, ist auch der Schutz bei sehr unwahrscheinlichen Vorfällen wie z.B. Gehäuse- und Rackausfällen oder Naturkatastrophen erforderlich. Aus diesem Grund wurde durch Failoverclustering in Windows Server 2016 auch die Fehlertoleranz für Gehäuse, Rack und Standortfehler eingeführt.

Fehlerdomänen und Fehlertoleranz

Fehlerdomänen und Fehlertoleranz sind eng miteinander verwandte Konzepte. Eine Fehlerdomäne ist eine Reihe von Hardwarekomponenten, die einen gemeinsamen Single Point of Failure haben. Um ein bestimmtes Niveau an Fehlertoleranz zu erzielen, benötigen Sie mehrere Fehlerdomänen auf dieser Ebene. Beispielsweise setzt Rackfehlertoleranz voraus, dass Ihre Server und Daten auf mehrere Racks verteilt sind.

Dieses kurze Video zeigt eine Übersicht über Fehlerdomänen in Windows Server 2016.

Fehlerdomänenerkennung in Windows Server 2019

Fehlerdomänenerkennung ist in Windows Server 2019 verfügbar, ist jedoch standardmäßig deaktiviert und muss über die Windows-Registrierung aktiviert werden.

Um die Fehlerdomänenerkennung in Windows Server 2019 zu aktivieren, wechseln Sie zur Windows-Registrierung, und legen Sie (Get-Cluster) fest. AutoAssignNodeSite-Registrierungsschlüssel auf 1.

    (Get-Cluster).AutoAssignNodeSite=1

Um die Fehlerdomänenerkennung in Windows 2019 zu deaktivieren, wechseln Sie zur Windows-Registrierung, und legen Sie (Get-Cluster) fest. AutoAssignNodeSite-Registrierungsschlüssel auf 0.

    (Get-Cluster).AutoAssignNodeSite=0

Vorteile

  • „Speicherplätze“ einschließlich „Direkte Speicherplätze“ verwendet Fehlerdomänen, um die Datensicherheit zu maximieren. Die Resilienz in „Speicherplätze“ ist konzeptionell wie verteiltes, softwaredefiniertes RAID. Mehrere Kopien aller Daten werden synchron beibehalten, und wenn bei einem Hardwareausfall eine Kopie verloren geht, werden andere zum Wiederherstellen der Resilienz erneut kopiert. Um die bestmögliche Resilienz zu erreichen, sollten Kopien in separaten Fehlerdomänen beibehalten werden.

  • Der Integritätsdienst verwendet Fehlerdomänen, um hilfreichere Warnungen bereitzustellen. Jeder Fehlerdomäne können Speicherortmetadaten zugeordnet werden, die automatisch in alle nachfolgenden Warnungen aufgenommen werden. Diese Deskriptoren können Vorgänge oder Wartungspersonal unterstützen und Fehler reduzieren, indem sie Hardware eindeutig machen.

  • Stretch-Clustering verwendet Fehlerdomänen für die Speicheraffinität. Stretch-Clustering ermöglicht weit entfernten Servern, einem gemeinsamen Cluster beitreten. Für optimale Leistung sollten Anwendungen oder virtuelle Computer auf Servern ausgeführt werden, die sich in der Nähe derer befinden, die ihnen Speicherplatz bereitstellen. Fehlerdomänenerkennung ermöglicht diese Speicheraffinität.

Ebenen der Fehlerdomänen

Es gibt vier kanonische Ebenen von Fehlerdomänen – Standort, Rack, Gehäuse und Knoten. Knoten werden automatisch erkannt; jede zusätzliche Ebene ist optional. Wenn Ihre Bereitstellung beispielsweise keine Blattserver verwendet, ist die Chassisebene möglicherweise nicht sinnvoll für Sie.

Diagramm der verschiedenen Ebenen von Fehlerdomänen

Verwendung

Sie können PowerShell- oder XML-Markup verwenden, um Fehlerdomänen anzugeben. Beide Ansätze sind äquivalent und bieten vollständige Funktionalität.

Wichtig

Geben Sie Fehlerdomänen wenn möglich an, bevor Sie „Direkte Speicherplätze“ aktivieren. Dies ermöglicht die Vorbereitung von Pool, Ebenen und Einstellungen wie Resilienz und Anzahl der Spalten für Gehäuse- oder Rackfehlertoleranz durch automatische Konfiguration. Wenn Pool und Volumes erstellt sind, werden Daten nicht nachträglich in Reaktion auf Änderungen der Fehlerdomänentopologie verschoben. Um nach dem Aktivieren von „Direkte Speicherplätze“ Knoten zwischen Gehäusen oder Racks zu verschieben, sollten Sie zuerst den Knoten sowie seine Laufwerke mit Remove-ClusterNode -CleanUpDisks aus dem Pool entfernen.

Definieren von Fehlerdomänen mit PowerShell

Windows Server 2016 führt die folgenden Cmdlets ein, um mit Fehlerdomänen zu arbeiten:

  • Get-ClusterFaultDomain
  • Set-ClusterFaultDomain
  • New-ClusterFaultDomain
  • Remove-ClusterFaultDomain

In diesem kurzen Video wird die Verwendung von PowerShell-Befehlen der Clusterfehlerdomäne veranschaulicht.

Verwenden Sie Get-ClusterFaultDomain , um die aktuelle Fehlerdomänentopologie anzuzeigen. Hier werden alle Knoten im Cluster sowie alle Chassis, Racks oder Websites aufgelistet, die Sie erstellt haben. Sie können mit Parametern wie -Type oder -Name filtern, aber diese sind nicht erforderlich.

Get-ClusterFaultDomain
Get-ClusterFaultDomain -Type Rack
Get-ClusterFaultDomain -Name "server01.contoso.com"

Verwenden Sie New-ClusterFaultDomain , um neue Chassis, Racks oder Standorte zu erstellen. Die -Type- und -Name-Parameter sind erforderlich. Die möglichen Werte für -Type sind Chassis, Rackund Site. Die -Name kann eine beliebige Zeichenfolge sein. (Bei Node Typfehlerdomänen muss der Name der tatsächliche Knotenname sein, wie automatisch festgelegt).

New-ClusterFaultDomain -Type Chassis -Name "Chassis 007"
New-ClusterFaultDomain -Type Rack -Name "Rack A"
New-ClusterFaultDomain -Type Site -Name "Shanghai"

Wichtig

Windows Server kann und stellt nicht sicher, dass alle von Ihnen erstellten Fehlerdomänen etwas in der realen, physischen Welt entsprechen. (Dies mag offensichtlich klingen, aber es ist wichtig zu verstehen.) Wenn sich ihre Knoten in der physischen Welt alle in einem Rack befinden, bietet das Erstellen von zwei -Type Rack Fehlerdomänen in der Software keine fehlertoleranz im Rack. Sie sind dafür verantwortlich, sicherzustellen, dass die Topologie, die Sie mithilfe dieser Cmdlets erstellen, der tatsächlichen Anordnung der Hardware entspricht.

Verwenden Sie Set-ClusterFaultDomain , um eine Fehlerdomäne in eine andere zu verschieben. Die Begriffe „übergeordnet“ und „untergeordnet“ werden häufig zur Beschreibung dieser geschachtelten Beziehung verwendet. Die -Name- und -Parent-Parameter sind erforderlich. Geben -NameSie in den Namen der sich verschiebenden Fehlerdomäne an. Geben Sie in -Parentden Namen des Ziels an. Um mehrere Fehlerdomänen gleichzeitig zu verschieben, listen Sie ihre Namen auf.

Set-ClusterFaultDomain -Name "server01.contoso.com" -Parent "Rack A"
Set-ClusterFaultDomain -Name "Rack A", "Rack B", "Rack C", "Rack D" -Parent "Shanghai"

Wichtig

Bei der Verschiebung von Fehlerdomänen werden ihre untergeordneten Objekte mit ihnen verschoben. Wenn Rack A im obigen Beispiel server01.contoso.com übergeordnet ist, muss letztere nicht separat an den Standort Shanghai verschoben werden – sie ist schon durch das übergeordnete Element dort, wie in der realen Welt.

Die Beziehungen zwischen übergeordneten und untergeordneten Elementen werden in der Ausgabe von Get-ClusterFaultDomain, in den ParentName Spalten und ChildrenNames angezeigt.

Sie können auch Set-ClusterFaultDomain bestimmte andere Eigenschaften von Fehlerdomänen ändern. Beispielsweise können Sie optional -Location oder -Description Metadaten für jede Fehlerdomäne bereitstellen. Wenn angegeben, werden diese Informationen in Hardwarewarnungen des Integritätsdiensts einbezogen. Sie können Fehlerdomänen auch mithilfe des -NewName Parameters umbenennen. Benennen Sie keine Typfehlerdomänen um Node .

Set-ClusterFaultDomain -Name "Rack A" -Location "Building 34, Room 4010"
Set-ClusterFaultDomain -Type Node -Description "Contoso XYZ Server"
Set-ClusterFaultDomain -Name "Shanghai" -NewName "China Region"

Verwenden Sie Remove-ClusterFaultDomain zum Entfernen von Chassis, Racks oder Websites, die Sie erstellt haben. Der -Name-Parameter ist erforderlich. Sie können keine Fehlerdomäne entfernen, die untergeordnete Elemente enthält. Zuerst entfernen Sie die untergeordneten Domänen oder verschieben Sie sie mithilfe von Set-ClusterFaultDomainnach draußen. Um eine Fehlerdomäne außerhalb aller anderen Fehlerdomänen zu verschieben, legen Sie sie -Parent auf die leere Zeichenfolge ("") fest. Typfehlerdomänen können nicht entfernt werden Node . Um mehrere Fehlerdomänen gleichzeitig zu entfernen, listen Sie ihre Namen auf.

Set-ClusterFaultDomain -Name "server01.contoso.com" -Parent ""
Remove-ClusterFaultDomain -Name "Rack A"

Definieren von Fehlerdomänen mit XML-Markup

Fehlerdomänen können mithilfe einer XML-Syntax angegeben werden. Es wird empfohlen, Ihren bevorzugten Text-Editor wie Visual Studio Code ( hier kostenlos verfügbar) oder Editor zu verwenden, um ein XML-Dokument zu erstellen, das Sie speichern und wiederverwenden können.

In diesem kurzen Video wird die Verwendung von XML zum Angeben von Fehlerdomänen beim Failoverclustering veranschaulicht.

Führen Sie in PowerShell das folgende Cmdlet aus: Get-ClusterFaultDomainXML. Dadurch wird die aktuelle Fehlerdomänenspezifikation für den Cluster im XML-Format zurückgegeben. Dies spiegelt alle ermittelten <Node>, die in öffnende und schließende <Topology> Tags umschlossen sind.

Führen Sie Folgendes aus, um diese Ausgabe in einer Datei zu speichern.

Get-ClusterFaultDomainXML | Out-File <Path>

Öffnen Sie die Datei, und fügen Sie Tags , <Rack>und <Chassis> hinzu<Site>, um anzugeben, wie diese Knoten auf Standorte, Racks und Chassis verteilt sind. Jedes Tag muss durch einen eindeutigen Name identifiziert werden. Für Knoten müssen Sie den Knotennamen als standardmäßig aufgefüllt beibehalten.

Wichtig

Während alle zusätzlichen Tags optional sind, muss die transitive Hierarchie Standort > Rack > Gehäuse > Knoten beibehalten und ordnungsgemäß geschlossen werden. Zusätzlich zum Namen können Freiform- Location="..." und Description="..." Deskriptoren jedem Tag hinzugefügt werden.

Beispiel: zwei Standorte, jeweils ein Rack

<Topology>
  <Site Name="SEA" Location="Contoso HQ, 123 Example St, Room 4010, Seattle">
    <Rack Name="A01" Location="Aisle A, Rack 01">
      <Node Name="Server01" Location="Rack Unit 33" />
      <Node Name="Server02" Location="Rack Unit 35" />
      <Node Name="Server03" Location="Rack Unit 37" />
    </Rack>
  </Site>
  <Site Name="NYC" Location="Regional Datacenter, 456 Example Ave, New York City">
    <Rack Name="B07" Location="Aisle B, Rack 07">
      <Node Name="Server04" Location="Rack Unit 20" />
      <Node Name="Server05" Location="Rack Unit 22" />
      <Node Name="Server06" Location="Rack Unit 24" />
    </Rack>
  </Site>
</Topology>

Beispiel: zwei Chassis-Blattserver

<Topology>
  <Rack Name="A01" Location="Contoso HQ, Room 4010, Aisle A, Rack 01">
    <Chassis Name="Chassis01" Location="Rack Unit 2 (Upper)" >
      <Node Name="Server01" Location="Left" />
      <Node Name="Server02" Location="Right" />
    </Chassis>
    <Chassis Name="Chassis02" Location="Rack Unit 6 (Lower)" >
      <Node Name="Server03" Location="Left" />
      <Node Name="Server04" Location="Right" />
    </Chassis>
  </Rack>
</Topology>

Um die neue Fehlerdomänenspezifikation festzulegen, speichern Sie Ihren XML-Code, und führen Sie Folgendes in PowerShell aus.

$xml = Get-Content <Path> | Out-String
Set-ClusterFaultDomainXML -XML $xml

In diesem Leitfaden werden nur zwei Beispiele vorgestellt, aber die <Site>Tags , <Rack>, <Chassis>und <Node> können auf verschiedene Arten gemischt und abgeglichen werden, um die physische Topologie Ihrer Bereitstellung widerzuspiegeln, unabhängig davon, was dies sein mag. Wir hoffen, dass diese Beispiele die Flexibilität dieser Tags und den Wert der Freiformpositionsdeskriptoren zu ihrer Unterscheidung veranschaulichen.

Optional: Speicherort- und Beschreibungsmetadaten

Sie können optionale Standort- oder Beschreibungsmetadaten für jede Fehlerdomäne bereitstellen. Wenn angegeben, werden diese Informationen in Hardwarewarnungen des Integritätsdiensts einbezogen.

In diesem kurzen Video wird der Wert des Hinzufügens von Standortdeskriptoren zu Fehlerdomänen veranschaulicht.