FehlerdomänenunterstützungFault domain awareness

Gilt für: Windows Server 2019 und Windows Server 2016Applies to: Windows Server 2019 and Windows Server 2016

Failoverclustering ermöglicht die Zusammenarbeit mehrerer Server, um hohe Verfügbarkeit zu bieten – oder anders ausgedrückt, um Knotenfehlertoleranz zu bieten.Failover Clustering enables multiple servers to work together to provide high availability – or put another way, to provide node fault tolerance. Aber moderne Unternehmen verlangen eine immer höhere Verfügbarkeit ihrer Infrastruktur.But today's businesses demand ever-greater availability from their infrastructure. 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.To achieve cloud-like uptime, even highly unlikely occurrences such as chassis failures, rack outages, or natural disasters must be protected against. Deshalb Failoverclustering in Windows Server 2016 eingeführt, Gehäuse-, Rack- und Fehlertoleranz sowie Standort.That's why Failover Clustering in Windows Server 2016 introduced chassis, rack, and site fault tolerance as well.

FehlerdomänenunterstützungFault domain awareness

Fehlerdomänen und Fehlertoleranz sind eng miteinander verwandte Konzepte.Fault domains and fault tolerance are closely related concepts. Eine Fehlerdomäne ist eine Reihe von Hardwarekomponenten, die einen gemeinsamen Single Point of Failure haben.A fault domain is a set of hardware components that share a single point of failure. Um ein bestimmtes Niveau an Fehlertoleranz zu erzielen, benötigen Sie mehrere Fehlerdomänen auf dieser Ebene.To be fault tolerant to a certain level, you need multiple fault domains at that level. Beispielsweise setzt Rackfehlertoleranz voraus, dass Ihre Server und Daten auf mehrere Racks verteilt sind.For example, to be rack fault tolerant, your servers and your data must be distributed across multiple racks.

Dieses kurze Video bietet einen Überblick über Fehlerdomänen in Windows Server 2016:This short video presents an overview of fault domains in Windows Server 2016:
Klicken Sie auf dieses Bild, um einen Überblick über Fehlerdomänen in Windows Server 2016 dabei zu sein.Click this image to watch an overview of fault domains in Windows Server 2016

Fehlerdomänenunterstützung in Windows Server-2019Fault domain awareness in Windows Server 2019

Fehlerdomänenunterstützung in Windows Server-2019 verfügbar ist, aber es ist standardmäßig deaktiviert und muss über die Windows-Registrierung aktiviert werden.Fault domain awareness is available in Windows Server 2019 but it's disabled by default and must be enabled through the Windows Registry.

Fehlerdomänenunterstützung in Windows Server-2019 aktivieren, wechseln zu der Windows-Registrierung und festlegen (Get-Cluster). AutoAssignNodeSite den Registrierungsschlüssel auf 1 fest.To enable fault domain awareness in Windows Server 2019, go to the Windows Registry and set the (Get-Cluster).AutoAssignNodeSite registry key to 1.

    (Get-Cluster).AutoAssignNodeSite=1

Um fehlerdomänenunterstützung in Windows 2019 zu deaktivieren, wechseln Sie zu der Windows-Registrierung aus, und legen Sie die (Get-Cluster). AutoAssignNodeSite den Registrierungsschlüssel auf 0 fest.To disable fault domain awareness in Windows 2019, go to the Windows Registry and set the (Get-Cluster).AutoAssignNodeSite registry key to 0.

    (Get-Cluster).AutoAssignNodeSite=0

VorteileBenefits

  • -Speicherplätzen, einschließlich "direkte Speicherplätze", verwendet Fehlerdomänen, um die datensicherheit zu maximieren.Storage Spaces, including Storage Spaces Direct, uses fault domains to maximize data safety.
    Die Resilienz in „Speicherplätze“ ist konzeptionell wie verteiltes, softwaredefiniertes RAID.Resiliency in Storage Spaces is conceptually like distributed, software-defined 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.Multiple copies of all data are kept in sync, and if hardware fails and one copy is lost, others are recopied to restore resiliency. Um die bestmögliche Resilienz zu erreichen, sollten Kopien in separaten Fehlerdomänen beibehalten werden.To achieve the best possible resiliency, copies should be kept in separate fault domains.

  • Die Integritätsdienst verwendet Fehlerdomänen, um nützlichere Warnungen auszugeben.The Health Service uses fault domains to provide more helpful alerts.
    Jeder Fehlerdomäne können Speicherortmetadaten zugeordnet werden, die automatisch in alle nachfolgenden Warnungen aufgenommen werden.Each fault domain can be associated with location metadata, which will automatically be included in any subsequent alerts. Diese Deskriptoren können Vorgänge oder Wartungspersonal unterstützen und Fehler reduzieren, indem sie Hardware eindeutig machen.These descriptors can assist operations or maintenance personnel and reduce errors by disambiguating hardware.

  • Stretch-clustering verwendet Fehlerdomänen für Storage-Affinität.Stretch clustering uses fault domains for storage affinity. Stretch-Clustering ermöglicht weit entfernten Servern, einem gemeinsamen Cluster beitreten.Stretch clustering allows faraway servers to join a common cluster. 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.For the best performance, applications or virtual machines should be run on servers that are nearby to those providing their storage. Fehlerdomänenunterstützung ermöglicht dieser Speicher-Affinität.Fault domain awareness enables this storage affinity.

Ebenen der FehlerdomänenLevels of fault domains

Es gibt vier kanonische Ebenen von Fehlerdomänen – Standort, Rack, Gehäuse und Knoten.There are four canonical levels of fault domains - site, rack, chassis, and node. Knoten werden automatisch erkannt; jede zusätzliche Ebene ist optional.Nodes are discovered automatically; each additional level is optional. Wenn Ihre Bereitstellung beispielsweise keine Blade Server enthält, ist die Gehäuseebene für Sie wahrscheinlich nicht sinnvoll.For example, if your deployment does not use blade servers, the chassis level may not make sense for you.

Diagramm mit den verschiedenen Ebenen der Fehlerdomänen

VerwendungUsage

Sie können PowerShell oder XML-Markup verwenden, auf die Angabe von Fehlerdomänen.You can use PowerShell or XML markup to specify fault domains. Beide Ansätze sind äquivalent und bieten vollständige Funktionalität.Both approaches are equivalent and provide full functionality.

Wichtig

Geben Sie Fehlerdomänen wenn möglich an, bevor Sie „Direkte Speicherplätze“ aktivieren.Specify fault domains before enabling Storage Spaces Direct, if possible. 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.This enables the automatic configuration to prepare the pool, tiers, and settings like resiliency and column count, for chassis or rack fault tolerance. Wenn Pool und Volumes erstellt sind, werden Daten nicht nachträglich in Reaktion auf Änderungen der Fehlerdomänentopologie verschoben.Once the pool and volumes have been created, data will not retroactively move in response to changes to the fault domain topology. 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.To move nodes between chassis or racks after enabling Storage Spaces Direct, you should first evict the node and its drives from the pool using Remove-ClusterNode -CleanUpDisks.

Definieren von Fehlerdomänen mit PowerShellDefining fault domains with PowerShell

Windows Server 2016 bietet die folgenden Cmdlets zum Arbeiten mit Fehlerdomänen:Windows Server 2016 introduces the following cmdlets to work with fault domains:

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

Dieses kurze Video veranschaulicht die Verwendung dieser Cmdlets.This short video demonstrates the usage of these cmdlets. Klicken Sie auf dieses Image ein kurzes Video zur Nutzung der Fehlerdomäne für Cluster-cmdletsClick this image to watch a short video on the usage of the Cluster Fault Domain cmdlets

Verwendung Get-ClusterFaultDomain , finden in der aktuellen fehlerdomänentopologie.Use Get-ClusterFaultDomain to see the current fault domain topology. Dadurch werden alle Knoten im Cluster sowie alle Gehäuse, Racks oder Standorte aufgelistet, die Sie erstellt haben.This will list all nodes in the cluster, plus any chassis, racks, or sites you have created. Sie können mit Parametern wie -Type oder -Name filtern, aber diese sind nicht erforderlich.You can filter using parameters like -Type or -Name, but these are not required.

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

Verwendung New-ClusterFaultDomain um neue Gehäuse, Racks oder Standorte zu erstellen.Use New-ClusterFaultDomain to create new chassis, racks, or sites. Die -Type und -Name Parameter sind erforderlich.The -Type and -Name parameters are required. Die möglichen Werte für -Type sind Chassis, Rack, und Site.The possible values for -Type are Chassis, Rack, and Site. Die -Name kann eine beliebige Zeichenfolge sein.The -Name can be any string. (Für Node Fehlerdomänen des Typs, der Name der tatsächliche Knotenname, automatisch festgelegt werden müssen).(For Node type fault domains, the name must be the actual node name, as set automatically).

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

Wichtig

Windows Server nicht möglich, und überprüft nicht, dass alle Fehlerdomänen aus, die Sie erstellen, die alle Elemente in der realen, physischen Welt entsprechen.Windows Server cannot and does not verify that any fault domains you create correspond to anything in the real, physical world. (Dies erscheint nahe liegend, aber es ist wichtig zu verstehen.) Wenn sich in der realen Welt alle Ihre Knoten in einem einzigen Rack befinden, dann schafft das Erstellen von zwei -Type Rack-Fehlerdomänen in der Software nicht auf magische Weise Rackfehlertoleranz.(This may sound obvious, but it's important to understand.) If, in the physical world, your nodes are all in one rack, then creating two -Type Rack fault domains in software does not magically provide rack fault tolerance. Sie sind dafür verantwortlich, sicherzustellen, dass die Topologie, die Sie mithilfe dieser Cmdlets erstellen, der tatsächlichen Anordnung der Hardware entspricht.You are responsible for ensuring the topology you create using these cmdlets matches the actual arrangement of your hardware.

Verwendung Set-ClusterFaultDomain eine Fehlerdomäne in ein anderes zu verschieben.Use Set-ClusterFaultDomain to move one fault domain into another. Die Begriffe „übergeordnet“ und „untergeordnet“ werden häufig zur Beschreibung dieser geschachtelten Beziehung verwendet.The terms "parent" and "child" are commonly used to describe this nesting relationship. Die -Name und -Parent Parameter sind erforderlich.The -Name and -Parent parameters are required. In -Name, geben Sie den Namen der Fehlerdomäne, die verschoben wird; in -Parent, geben Sie den Namen des Ziels.In -Name, provide the name of the fault domain that is moving; in -Parent, provide the name of the destination. Um mehrere Fehlerdomänen gleichzeitig zu verschieben, listen Sie ihre Namen auf.To move multiple fault domains at once, list their names.

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.When fault domains move, their children move with them. 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.In the above example, if Rack A is the parent of server01.contoso.com, the latter does not separately need to be moved to the Shanghai site – it is already there by virtue of its parent being there, just like in the physical world.

Sehen Sie in der Ausgabe der über-/ unterordnungsbeziehung Get-ClusterFaultDomainin die ParentName und ChildrenNames Spalten.You can see parent-child relationships in the output of Get-ClusterFaultDomain, in the ParentName and ChildrenNames columns.

Sie können auch Set-ClusterFaultDomain bestimmte andere Eigenschaften von Fehlerdomänen ändern.You can also use Set-ClusterFaultDomain to modify certain other properties of fault domains. Beispielsweise können Sie optional bereitstellen -Location oder -Description Metadaten für jede Fehlerdomäne.For example, you can provide optional -Location or -Description metadata for any fault domain. Wenn angegeben, werden diese Informationen in Hardwarewarnungen des Integritätsdiensts einbezogen.If provided, this information will be included in hardware alerting from the Health Service. Sie können auch mithilfe von Fehlerdomänen Umbenennen der -NewName Parameter.You can also rename fault domains using the -NewName parameter. Nicht umbenennen Node Fehlerdomänen des Typs.Do not rename Node type fault domains.

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"

Verwendung Remove-ClusterFaultDomain entfernen, Gehäuse, Racks oder Standorte, die Sie erstellt haben.Use Remove-ClusterFaultDomain to remove chassis, racks, or sites you have created. Der -Name -Parameter ist erforderlich.The -Name parameter is required. Sie können nicht entfernen eine Fehlerdomäne an, die untergeordneten Elemente enthält – zunächst entfernen Sie die untergeordneten Elemente, oder verschieben Sie sie mithilfe von Set-ClusterFaultDomain.You cannot remove a fault domain that contains children – first, either remove the children, or move them outside using Set-ClusterFaultDomain. Um eine Fehlerdomäne außerhalb von allen anderen Fehlerdomänen heraus zu verschieben, legen Sie dessen -Parent auf eine leere Zeichenfolge ("").To move a fault domain outside of all other fault domains, set its -Parent to the empty string (""). Sie können nicht entfernt werden Node Fehlerdomänen des Typs.You cannot remove Node type fault domains. Um mehrere Fehlerdomänen gleichzeitig zu entfernen, listen Sie ihre Namen auf.To remove multiple fault domains at once, list their names.

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

Definieren von Fehlerdomänen mit XML-MarkupDefining fault domains with XML markup

Fehlerdomänen können mithilfe einer XML-Syntax angegeben werden.Fault domains can be specified using an XML-inspired syntax. Sie sollten Ihren bevorzugten Texteditor verwenden, z.B. Visual Studio Code ( hier kostenlos erhältlich) oder Editor, um ein XML-Dokument zu erstellen, das Sie speichern und wiederverwenden können.We recommend using your favorite text editor, such as Visual Studio Code (available for free here) or Notepad, to create an XML document which you can save and reuse.

Dieses kurze Video veranschaulicht die Verwendung von XML-Markup zur Angabe von Fehlerdomänen.This short video demonstrates the usage of XML Markup to specify fault domains.

Klicken Sie auf dieses Image ein kurzes Video zum XML verwenden, um die Angabe von FehlerdomänenClick this image to watch a short video on how to use XML to specify fault domains

Führen Sie in PowerShell das folgende Cmdlet: Get-ClusterFaultDomainXML.In PowerShell, run the following cmdlet: Get-ClusterFaultDomainXML. Dadurch wird die aktuelle Fehlerdomänenspezifikation für den Cluster im XML-Format zurückgegeben.This returns the current fault domain specification for the cluster, as XML. Dies entspricht jede ermittelte <Node>, eingeschlossen in öffnende und schließende <Topology> Tags.This reflects every discovered <Node>, wrapped in opening and closing <Topology> tags.

Führen Sie Folgendes aus, um diese Ausgabe in einer Datei zu speichern.Run the following to save this output to a file.

Get-ClusterFaultDomainXML | Out-File <Path>  

Öffnen Sie die Datei, und fügen <Site>, <Rack>, und <Chassis> Tags angeben, wie diese Knoten auf Standorte, Racks und Gehäuse verteilt werden.Open the file, and add <Site>, <Rack>, and <Chassis> tags to specify how these nodes are distributed across sites, racks, and chassis. Jedes Tag muss durch einen eindeutigen Name identifiziert werden.Every tag must be identified by a unique Name. Für Knoten müssen Sie den Knotennamen als standardmäßig aufgefüllt beibehalten.For nodes, you must keep the node's name as populated by default.

Wichtig

Während alle zusätzlichen Tags optional sind, muss die transitive Hierarchie Standort > Rack > Gehäuse > Knoten beibehalten und ordnungsgemäß geschlossen werden.While all additional tags are optional, they must adhere to the transitive Site > Rack > Chassis > Node hierarchy, and must be properly closed.
Zusätzlich zum Namen können die freiformdeskriptoren Location="..." und Description="..." beliebigen Tags hinzugefügt werden.In addition to name, freeform Location="..." and Description="..." descriptors can be added to any tag.

Beispiel: Zwei Standorte, jeweils ein rackExample: Two sites, one rack each

<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 Gehäuse, Blade ServerExample: two chassis, blade servers

<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>  

Zum Festlegen der neuen fehlerdomänenspezifikation speichern Sie Ihrer XML-Daten, und führen Sie Folgendes in PowerShell.To set the new fault domain specification, save your XML and run the following in PowerShell.

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

Dieses Handbuch enthält nur zwei Beispiele, aber die <Site>, <Rack>, <Chassis>, und <Node> Tags können gemischt und abgeglichen, die auf viele weitere Arten entsprechend die physische Topologie Ihrer Bereitstellung, was auch immer, die möglicherweise.This guide presents just two examples, but the <Site>, <Rack>, <Chassis>, and <Node> tags can be mixed and matched in many additional ways to reflect the physical topology of your deployment, whatever that may be. Wir hoffen, dass diese Beispiele die Flexibilität dieser Tags und den Wert der Freiformpositionsdeskriptoren zu ihrer Unterscheidung veranschaulichen.We hope these examples illustrate the flexibility of these tags and the value of freeform location descriptors to disambiguate them.

Optional: Speicherort und eine Beschreibung von MetadatenOptional: Location and description metadata

Sie können optional angeben Speicherort oder Beschreibung Metadaten für jede Fehlerdomäne.You can provide optional Location or Description metadata for any fault domain. Wenn angegeben, werden diese Informationen in Hardwarewarnungen des Integritätsdiensts einbezogen.If provided, this information will be included in hardware alerting from the Health Service. Dieses kurze Video veranschaulicht den Vorteil des Hinzufügens von solchen Deskriptoren.This short video demonstrates the value of adding such descriptors.

Klicken Sie auf, um ein kurzes Video zur Veranschaulichung des Wert des Hinzufügens von positionsdeskriptoren zu Fehlerdomänen finden Sie unterClick to see a short video demonstrating the value of adding location descriptors to fault domains

Siehe auchSee Also