Delen via


Foutdomeinbewustzijn

Met failoverclustering kunnen meerdere servers samenwerken om hoge beschikbaarheid te bieden, of anders gezegd, knooppunt fouttolerantie te leveren. Maar de huidige bedrijven vragen steeds meer beschikbaarheid van hun infrastructuur. Om cloud-achtige beschikbaarheid te bereiken, moet zelfs voor zeer onwaarschijnlijke gebeurtenissen, zoals chassisstoringen, rekstoringen of natuurrampen, bescherming worden voorzien. Daarom heeft Failover Clustering in Windows Server 2016 ook fouttolerantie voor chassis, rek en site geïntroduceerd.

Foutdomeinen en fouttolerantie

Foutdomeinen en fouttolerantie zijn nauw gerelateerde concepten. Een foutdomein is een set hardwareonderdelen die één storingspunt delen. Als u fouttolerant wilt zijn voor een bepaald niveau, hebt u meerdere foutdomeinen op dat niveau nodig. Om rekfouttolerant te zijn, moeten uw servers en uw data verdeeld zijn over meerdere rekken.

Deze korte video geeft een overzicht van foutdomeinen in Windows Server 2016.

Foutdomeinbewustzijn in Windows Server 2019

Foutdomeinbewustzijn is beschikbaar in Windows Server 2019, maar deze is standaard uitgeschakeld en moet worden ingeschakeld via het Windows-register.

Als u foutdomeinbewustzijn wilt inschakelen in Windows Server 2019, gaat u naar het Windows-register en stelt u de registersleutel (Get-Cluster).AutoAssignNodeSite in op 1.

    (Get-Cluster).AutoAssignNodeSite=1

Als u foutdomeinherkenning in Windows 2019 wilt uitschakelen, gaat u naar het Windows-register en stelt u de registersleutel (Get-Cluster) AutoAssignNodeSite op 0 in.

    (Get-Cluster).AutoAssignNodeSite=0

Benefits

  • Opslagruimten, waaronder Opslagruimten Direct, maakt gebruik van foutdomeinen om de veiligheid van gegevens te maximaliseren. Veerkracht in Opslagruimten is conceptueel vergelijkbaar met gedistribueerde, softwaregedefinieerde RAID. Meerdere kopieën van alle gegevens worden gesynchroniseerd en als de hardware mislukt en één kopie verloren gaat, worden anderen opnieuw gecopieerd om de tolerantie te herstellen. Om de best mogelijke tolerantie te bereiken, moeten kopieën in afzonderlijke foutdomeinen worden bewaard.

  • Health Service maakt gebruik van foutdomeinen om nuttigere waarschuwingen te bieden. Elk foutdomein kan worden gekoppeld aan locatiemetagegevens, die automatisch worden opgenomen in eventuele volgende waarschuwingen. Deze descriptors kunnen het personeel dat zich bezighoudt met operaties of onderhoud ondersteunen en fouten verminderen door meer duidelijkheid te verschaffen over hardware.

  • Stretch-clustering maakt gebruik van foutdomeinen voor opslagaffiniteit. Met stretch-clustering kunnen verre servers lid worden van een gemeenschappelijk cluster. Voor de beste prestaties moeten toepassingen of virtuele machines worden uitgevoerd op servers die zich in de buurt bevinden van de servers die hun opslag leveren. Foutdomeinbewustzijn maakt deze opslagaffiniteit mogelijk.

Niveaus van foutdomeinen

Er zijn vier canonieke niveaus van foutdomeinen: site, rek, chassis en knooppunt. Knooppunten worden automatisch gedetecteerd; elk extra niveau is optioneel. Als uw implementatie bijvoorbeeld geen bladeservers gebruikt, is het chassisniveau mogelijk niet zinvol voor u.

Diagram van de verschillende niveaus van foutdomeinen

Usage

U kunt PowerShell of XML-markeringen gebruiken om foutdomeinen op te geven. Beide benaderingen zijn gelijkwaardig en bieden volledige functionaliteit.

Important

Geef foutdomeinen op voordat u Opslagruimten Direct inschakelt, indien mogelijk. Hierdoor kan de automatische configuratie de pool, lagen en instellingen voorbereiden, zoals tolerantie en kolomaantal, voor chassis- of rackfouttolerantie. Zodra de pool en volumes zijn gemaakt, worden gegevens niet met terugwerkende kracht verplaatst als reactie op wijzigingen in de topologie van het foutdomein. Als u knooppunten tussen chassis of rekken wilt verplaatsen nadat u Opslagruimten Direct hebt ingeschakeld, moet u eerst het knooppunt en de bijbehorende stations uit de pool verwijderen met behulp van Remove-ClusterNode -CleanUpDisks.

Foutdomeinen definiëren met PowerShell

Windows Server 2016 introduceert de volgende cmdlets om te werken met foutdomeinen:

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

In deze korte video ziet u het gebruik van PowerShell-opdrachten voor clusterfouten.

Gebruik Get-ClusterFaultDomain om de huidige foutdomeintopologie te bekijken. Hiermee worden alle knooppunten in het cluster weergegeven, evenals chassis, rekken of locaties die u hebt gemaakt. U kunt filteren met parameters zoals -Type of -Name, maar deze zijn niet vereist.

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

Gebruik New-ClusterFaultDomain om nieuwe chassis, racks of sites te maken. De parameters -Type en -Name zijn vereist. De mogelijke waarden hiervoor -Type zijn Chassis, Racken Site. De -Name mag elke willekeurige tekenreeks zijn. (Voor Node foutdomeinen van het type moet de naam de werkelijke knooppuntnaam zijn, zoals automatisch ingesteld).

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

Important

Windows Server kan en controleert niet of foutdomeinen die u maakt overeenkomen met iets in de echte, fysieke wereld. (Dit klinkt duidelijk, maar het is belangrijk om te begrijpen.) Als in de fysieke wereld uw knooppunten zich allemaal in één rek bevinden, biedt het maken van twee -Type Rack foutdomeinen in software geen magisch rekfouttolerantie. U bent verantwoordelijk om ervoor te zorgen dat de topologie die u maakt met behulp van deze cmdlets overeenkomt met de werkelijke rangschikking van uw hardware.

Gebruik Set-ClusterFaultDomain om het ene foutdomein naar het andere te verplaatsen. De termen 'ouder' en 'kind' worden vaak gebruikt om deze geneste relatie te beschrijven. De parameters -Name en -Parent zijn vereist. Geef in -Name de naam van het foutdomein dat wordt verplaatst op; geef in -Parent de naam van de bestemming op. Als u meerdere foutdomeinen tegelijk wilt verplaatsen, vermeldt u de namen.

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

Important

Wanneer foutdomeinen worden verplaatst, gaan hun kinderen mee. In het bovenstaande voorbeeld, als Rack A het bovenliggende element van server01.contoso.com is, hoeft de server niet afzonderlijk te worden verplaatst naar de locatie in Shanghai, omdat het daar al is door de aanwezigheid van het bovenliggende element, net zoals dat in de fysieke wereld zou zijn.

U kunt ouder-kindrelaties zien in de uitvoer van Get-ClusterFaultDomain, in de ParentName en ChildrenNames kolommen.

U kunt Set-ClusterFaultDomain ook gebruiken om bepaalde andere eigenschappen van foutdomeinen te wijzigen. U kunt bijvoorbeeld optioneel -Location of -Description metagegevens opgeven voor elk foutdomein. Indien opgegeven, wordt deze informatie opgenomen in hardwarewaarschuwingen van de Health Service. U kunt ook de naam van foutdomeinen wijzigen met behulp van de -NewName parameter. Wijzig de naam Node van foutdomeinen niet.

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"

Gebruik Remove-ClusterFaultDomain om chassis, rekken of sites die u hebt gemaakt te verwijderen. De parameter -Name is vereist. U kunt een foutdomein met subdomeinen niet verwijderen: verwijder eerst de subdomeinen of verplaats ze met behulp van Set-ClusterFaultDomain. Als u een foutdomein buiten alle andere foutdomeinen wilt verplaatsen, stelt u het domein -Parent in op de lege tekenreeks (""). U kunt foutdomeinen van het type niet verwijderen Node . Als u meerdere foutdomeinen tegelijk wilt verwijderen, vermeldt u de namen.

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

Foutdomeinen definiëren met XML-markeringen

Foutdomeinen kunnen worden opgegeven met behulp van een xml-geïnspireerde syntaxis. U kunt het beste uw favoriete teksteditor gebruiken, zoals Visual Studio Code ( gratis beschikbaar hier) of Kladblok om een XML-document te maken dat u kunt opslaan en opnieuw kunt gebruiken.

In deze korte video ziet u het gebruik van XML voor het opgeven van foutdomeinen in failoverclustering.

Voer in PowerShell de volgende cmdlet uit: Get-ClusterFaultDomainXML. Hiermee wordt de huidige foutdomeinspecificatie voor het cluster geretourneerd als XML. Dit weerspiegelt elke ontdekte <Node>, verpakt in openings- en sluitingslabels <Topology>.

Voer het volgende uit om deze uitvoer op te slaan in een bestand.

Get-ClusterFaultDomainXML | Out-File <Path>

Open het bestand en voeg <Site>, <Rack>, en <Chassis> tags toe om aan te geven hoe deze knooppunten worden gedistribueerd over sites, rekken en chassis. Elke tag moet worden geïdentificeerd met een unieke naam. Voor knooppunten moet u de naam van het knooppunt standaard laten invullen.

Important

Hoewel alle extra tags optioneel zijn, moeten ze voldoen aan de transitieve Site > Rack > Chassis > Node-hiërarchie en moeten ze correct worden gesloten. Naast de naam kunnen vrije vorm Location="..." en Description="..." descriptors worden toegevoegd aan elke tag.

Voorbeeld: Twee sites, één rek elk

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

Voorbeeld: twee 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>

Als u de nieuwe specificatie van het foutdomein wilt instellen, slaat u uw XML op en voert u het volgende uit in PowerShell.

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

Deze handleiding bevat slechts twee voorbeelden, maar de <Site>tags <Rack>, <Chassis>en <Node> tags kunnen op verschillende manieren worden gecombineerd en overeenkomen om de fysieke topologie van uw implementatie weer te geven, wat dat ook kan zijn. We hopen dat deze voorbeelden de flexibiliteit van deze tags en de waarde van vrije locatiedescriptors illustreren om ze te verduidelijken.

Optioneel: Locatie- en beschrijvingsmetagegevens

U kunt optionele locatie- of beschrijvingsmetagegevens opgeven voor elk foutdomein. Indien opgegeven, wordt deze informatie opgenomen in hardwarewaarschuwingen van de Health Service.

In deze korte video ziet u de waarde van het toevoegen van locatiedescriptors aan foutdomeinen.