Server- en siteaffiniteitsregels maken voor VM's

Van toepassing op: Azure Stack HCI, versies 23H2 en 22H2

Met Windows Admin Center of Windows PowerShell kunt u eenvoudig affiniteits- en antiaffiniteitsregels maken voor uw virtuele machines (VM's) in een cluster.

Notitie

De aanbevolen manier om VM's te maken en beheren in Azure Stack HCI 23H2 is met behulp van het Azure Arc-besturingsvlak. Gebruik het mechanisme dat hieronder wordt beschreven om uw VM's alleen te beheren als u functionaliteit nodig hebt die niet beschikbaar is in Azure Arc-VM's.

Affiniteit is een regel die een relatie tot stand brengt tussen twee of meer resourcegroepen of rollen, zoals virtuele machines (VM's), om deze bij elkaar te houden op dezelfde server, cluster of site. Antiaffiniteit is het tegenovergestelde omdat deze wordt gebruikt om de opgegeven VM's of resourcegroepen van elkaar gescheiden te houden, zoals twee domeincontrollers die op afzonderlijke servers of in afzonderlijke sites voor herstel na noodgevallen worden geplaatst.

Affiniteits- en antiaffiniteitsregels worden op dezelfde manier gebruikt als in Azure Beschikbaarheidszones. In Azure kunt u Beschikbaarheidszones configureren om VM's in afzonderlijke zones en uit de buurt van elkaar of in dezelfde zone met elkaar te houden.

Met behulp van affiniteits- en antiaffiniteitsregels blijft elke geclusterde VM in hetzelfde clusterknooppunt of wordt voorkomen dat deze zich samen in hetzelfde clusterknooppunt bevinden. Op deze manier is de enige manier om een virtuele machine uit een knooppunt te verplaatsen door dit handmatig te doen. U kunt vm's ook bij elkaar houden met een eigen opslag, zoals het CLUSTER Shared Volume (CSV) waarop de VHDX zich bevindt.

Door affiniteits- en antiaffiniteitsregels te combineren, kunt u ook een stretched cluster op twee sites configureren en uw VM's op de site houden waarin ze zich moeten bevinden.

Windows Admin Center gebruiken

U kunt basisaffiniteits- en antiaffiniteitsregels maken met behulp van Windows Admin Center.

Scherm Virtuele machines

  1. Selecteer in Windows Admin Center startpagina onder Alle verbindingen de server of het cluster waarvoor u de VM-regel wilt maken.
  2. Selecteer onder Extrade optie Instellingen.
  3. Selecteer onder Instellingende optie Affiniteitsregels en selecteer vervolgens Regel maken onder Affiniteitsregels.
  4. Voer onder Regelnaam een naam in voor de regel.
  5. Selecteer onder Regeltype de optie Samen (dezelfde server) of Apart (verschillende servers) om uw VM's op dezelfde server of op verschillende servers te plaatsen.
  6. Selecteer onder Van toepassing op de VM's waarop deze regel van toepassing is. Gebruik de knop Toevoegen om meer VM's aan de regel toe te voegen.
  7. Wanneer u klaar bent, selecteert u Regel maken.
  8. Als u een regel wilt verwijderen, selecteert u deze en selecteert u Regel verwijderen.

Windows PowerShell gebruiken

U kunt complexere regels maken met behulp van Windows PowerShell dan met Windows Admin Center. Normaal gesproken stelt u uw regels in vanaf een externe computer in plaats van op een hostserver in een cluster. Deze externe computer wordt de beheercomputer genoemd.

Wanneer u Windows PowerShell opdrachten uitvoert vanaf een beheercomputer, neemt u de -Name parameter of -Cluster op met de naam van het cluster dat u beheert. Indien van toepassing moet u ook de FQDN (Fully Qualified Domain Name) opgeven wanneer u de -ComputerName parameter voor een serverknooppunt gebruikt

Nieuwe PowerShell-cmdlets

Gebruik de volgende nieuwe PowerShell-cmdlets om affiniteitsregels voor clusters te maken:

New-ClusterAffinityRule

De New-ClusterAffinityRule cmdlet wordt gebruikt om nieuwe regels te maken. Met deze opdracht geeft u de naam van de regel en het type regel op, waarbij:

-Name is de naam van de regel

-RuleType waarden zijn SameFaultDomain | SameNode | DifferentFaultDomain | DifferentNode

Voorbeeld:

New-ClusterAffinityRule -Name Rule1 -RuleType SameFaultDomain

Set-ClusterAffinityRule

De Set-ClusterAffinityRule cmdlet wordt gebruikt om een regel in of uit te schakelen, waarbij:

-Name is de naam van de regel die u wilt in- of uitschakelen

-Enabled | Disabled schakelt de regel in of uit

Voorbeeld:

Set-ClusterAffinityRule -Name Rule1 -Enabled

Get-ClusterAffinityRule

De Get-ClusterAffinityRule cmdlet wordt gebruikt om de opgegeven regel weer te geven en welk type deze is. Als -Name niet is opgegeven, worden alle regels weergegeven.

Voorbeeld:

Get-ClusterAffinityRule -Name Rule1

Add-ClusterGroupToAffinityRule

De Add-ClusterGroupToAffinityRule cmdlet wordt gebruikt om een VM-rol of groepsnaam toe te voegen aan een specifieke affiniteitsregel, waarbij:

-Groups is de naam van de groep of rol die aan de regel moet worden toegevoegd

-Name is de naam van de regel waaraan moet worden toegevoegd

Voorbeeld:

Add-ClusterGroupToAffinityRule -Groups Group1 -Name Rule1

Add-ClusterSharedVolumeToAffinityRule

Met Add-ClusterSharedVolumeToAffinityRule de kunnen uw VM's samen blijven met het gedeelde clustervolume waarop de VHDX zich bevindt, waarbij:

-ClusterSharedVolumes is de CSV-schijf(en) die u aan de regel wilt toevoegen

-Name is de naam van de regel waaraan moet worden toegevoegd

Voorbeeld:

Add-ClusterSharedVolumeToAffinityRule -ClusterSharedVolumes CSV1 -Name Rule1

Remove-ClusterAffinityRule

De Remove-ClusterAffinityRule verwijdert de opgegeven regel, waarbij -Name de naam van de regel is.

Voorbeeld:

Remove-ClusterAffinityRule -Name Rule1

Remove-ClusterGroupFromAffinityRule

De Remove-ClusterGroupFromAffinityRule verwijdert een VM-groep of -rol uit een specifieke regel, maar de regel wordt niet uitgeschakeld of verwijderd, waarbij:

-Name is de naam van de regel

-Groups zijn de groepen of rollen die u uit de regel wilt verwijderen

Voorbeeld:

Remove-ClusterGroupFromAffinityRule -Name Rule1 -Groups Group1

Remove-ClusterSharedVolumeFromAffinityRule

De Remove-ClusterSharedVolumeFromAffinityRule cmdlet wordt gebruikt om de gedeelde clustervolumes uit een specifieke regel te verwijderen, maar de regel wordt niet uitgeschakeld of verwijderd, waarbij:

-ClusterSharedVolumes is de CSV-schijf(en) die u uit de regel wilt verwijderen

-Name is de naam van de regel waaraan moet worden toegevoegd

Voorbeeld:

Remove-ClusterSharedVolumeFromAffinityRule -ClusterSharedVolumes CSV1 -Name Rule1

Bestaande PowerShell-cmdlets

Met de komst van de nieuwe cmdlets hebben we ook extra nieuwe schakelopties toegevoegd aan enkele bestaande cmdlets.

Move-ClusterGroup

De nieuwe -IgnoreAffinityRule schakeloptie negeert de regel en verplaatst de geclusterde resourcegroep naar een ander clusterknooppunt. Zie Move-ClusterGroup voor meer informatie over deze cmdlet.

Voorbeeld:

Move-ClusterGroup -IgnoreAffinityRule -Cluster Cluster1

Notitie

Als een verplaatsingsregel geldig is (ondersteund), worden alle betrokken groepen en rollen ook verplaatst. Als een VM-verplaatsing bewust een regel schendt, maar deze eenmalig tijdelijk nodig is, gebruikt u de -IgnoreAffinityRule schakeloptie om de verplaatsing toe te staan. In dit geval wordt een waarschuwing voor schending van de VM weergegeven. U kunt de regel vervolgens zo nodig weer inschakelen.

Start-ClusterGroup

De nieuwe -IgnoreAffinityRule schakeloptie negeert de regel en brengt de geclusterde resourcegroep online op de huidige locatie. Zie Start-ClusterGroup voor meer informatie over deze cmdlet.

Voorbeeld:

Start-ClusterGroup -IgnoreAffinityRule -Cluster Cluster1

Voorbeelden van affiniteitsregel

Affiniteitsregels zijn 'samen'-regels die resources op dezelfde server, cluster of site houden. Hier volgen enkele veelvoorkomende scenario's voor het instellen van affiniteitsregels.

Scenario 1

Stel dat u een SQL Server VM en een webserver-VM hebt. Deze twee VM's moeten altijd op dezelfde site blijven, maar hoeven zich niet noodzakelijkerwijs op hetzelfde clusterknooppunt in de site te bevinden. Met behulp van SameFaultDomainis dit mogelijk, zoals hieronder wordt weergegeven:

New-ClusterAffinityRule -Name WebData -Ruletype SameFaultDomain -Cluster Cluster1

Add-ClusterGroupToAffinityRule -Groups SQL1,WEB1 –Name WebData -Cluster Cluster1

Set-ClusterAffinityRule -Name WebData -Enabled 1 -Cluster Cluster1

Als u deze regel wilt zien en hoe deze is geconfigureerd, gebruikt u de Get-ClusterAffinityRule cmdlet om de uitvoer te bekijken:

Get-ClusterAffinityRule -Name WebData -Cluster Cluster1

Name        RuleType          Groups        Enabled
----        ---------         ------        -------
WebData     SameFaultDomain   {SQL1, WEB1}     1

Scenario 2

We gebruiken hetzelfde scenario hierboven, behalve dat u opgeeft dat de VM's zich op hetzelfde clusterknooppunt moeten bevinden. Met behulp van SameNodekunt u dit als volgt instellen:

New-ClusterAffinityRule -Name WebData1 -Ruletype SameNode -Cluster Cluster1

Add-ClusterGroupToAffinityRule -Groups SQL1,WEB1 –Name WebData1 -Cluster Cluster1

Set-ClusterAffinityRule -Name WebData1 -Enabled 1 -Cluster Cluster1

Als u de regel wilt zien en hoe deze is geconfigureerd, gebruikt u de Get-ClusterAffinityRule cmdlet om de uitvoer te bekijken:

Get-ClusterAffinityRule -Name WebData1 -Cluster Cluster1

Name    RuleType    Groups        Enabled
----    --------    ------        -------
DC      SameNode    {SQL1, WEB1}     1

Voorbeelden van antiaffiniteitsregel

Antiaffiniteitsregels zijn 'aparte' regels waarmee resources worden gescheiden en op verschillende servers, clusters of sites worden geplaatst.

Scenario 1

U hebt twee VM's die elk SQL Server uitvoeren in hetzelfde Azure Stack HCI-cluster met meerdere sites. Elke VM maakt gebruik van veel geheugen, CPU en opslagresources. Als de twee op hetzelfde knooppunt terechtkomen, kan dit prestatieproblemen veroorzaken met een of beide, omdat ze concurreren om geheugen, CPU en opslagcycli. Als u een antiaffiniteitsregel gebruikt met DifferentNode als regeltype, blijven deze VM's altijd op verschillende clusterknooppunten.

De voorbeeldopdrachten hiervoor zijn:

New-ClusterAffinityRule -Name SQL -Ruletype DifferentNode -Cluster Cluster1

Add-ClusterGroupToAffinityRule -Groups SQL1,SQL2 –Name SQL -Cluster Cluster1

Set-ClusterAffinityRule -Name SQL -Enabled 1 -Cluster Cluster1

Als u de regel wilt zien en hoe deze is geconfigureerd, gebruikt u de Get-ClusterAffinityRule cmdlet om de uitvoer te bekijken:

Get-ClusterAffinityRule -Name SQL -Cluster Cluster1

Name    RuleType        Groups        Enabled
----    -----------     -------       -------
SQL     DifferentNode   {SQL1, SQL2}     1

Scenario 2

Stel dat u een Azure Stack HCI stretched cluster hebt met twee sites (foutdomeinen). U hebt twee domeincontrollers die u op afzonderlijke sites wilt bewaren. Met behulp van een antiaffiniteitsregel met DifferentFaultDomain als regeltype blijven deze domeincontrollers altijd op verschillende sites. De voorbeeldopdrachten hiervoor zijn:

New-ClusterAffinityRule -Name DC -Ruletype DifferentFaultDomain -Cluster Cluster1

Add-ClusterGroupToAffinityRule -Groups DC1,DC2 –Name DC -Cluster Cluster1

Set-ClusterAffinityRule -Name DC -Enabled 1 -Cluster Cluster1

Als u deze regel wilt zien en hoe deze is geconfigureerd, gebruikt u de Get-ClusterAffinityRule cmdlet om de uitvoer te bekijken:

Get-ClusterAffinityRule -Name DC -Cluster Cluster1

Name    RuleType                Groups        Enabled
----    --------                -------       -------
DC      DifferentFaultDomain    {DC1, DC2}       1

Voorbeelden van gecombineerde regels

Door affiniteit en antiaffiniteitsregels te combineren, kunt u eenvoudig verschillende VM-combinaties configureren in een cluster met meerdere sites. In dit scenario heeft elke site drie VM's: SQL Server (SQL), Webserver (WEB) en domeincontroller (DC). Voor elk van de combinaties kunt u affiniteitsregels gebruiken met SameFaultDomain om ze allemaal op dezelfde site te houden. U kunt ook de domeincontrollers voor elke site instellen met antiaffiniteitsregels en DifferentFaultDomain om de domeincontroller-VM's in afzonderlijke sites te houden, zoals hieronder wordt weergegeven:

New-ClusterAffinityRule -Name Site1Trio -Ruletype SameFaultDomain -Cluster Cluster1

New-ClusterAffinityRule -Name Site2Trio -Ruletype SameFaultDomain -Cluster Cluster1

New-ClusterAffinityRule -Name TrioApart -Ruletype DifferentFaultDomain -Cluster Cluster1

Add-ClusterGroupToAffinityRule -Groups SQL1,WEB1,DC1 –Name Site1Trio -Cluster Cluster1

Add-ClusterGroupToAffinityRule -Groups SQL2,WEB2,DC2 –Name Site2Trio -Cluster Cluster1

Add-ClusterGroupToAffinityRule -Groups DC1,DC2 –Name TrioApart -Cluster Cluster1

Set-ClusterAffinityRule -Name Site1Trio -Enabled 1 -Cluster Cluster1

Set-ClusterAffinityRule -Name Site2Trio -Enabled 1 -Cluster Cluster1

Set-ClusterAffinityRule -Name TrioApart -Enabled 1 -Cluster Cluster1

Als u de regels wilt zien en hoe deze zijn geconfigureerd, gebruikt u de Get-ClusterAffinityRule cmdlet zonder de -Name schakeloptie. U kunt alle gemaakte regels en de uitvoer ervan zien.

Get-ClusterAffinityRule -Cluster Cluster1

Name        RuleType               Groups            Enabled
----        --------               ------            -------
Site1Trio   SameFaultDomain        {SQL1, WEB1, DC1}    1
Site2Trio   SameFaultDomain        {SQL2, WEB2, DC2}    1
TrioApart   DifferentFaultDomain   {DC1, DC2}           1

Regels voor opslagaffiniteit

U kunt ook een VM en de bijbehorende VHDX op een gedeeld clustervolume (CSV) op hetzelfde clusterknooppunt houden. Dit voorkomt dat CSV-omleiding plaatsvindt, waardoor het starten of stoppen van een VM kan worden vertraagd. Rekening houdend met het scenario voor gecombineerde affiniteit en anti-affiniteit, kunt u de SQL-VM en het gedeelde clustervolume op hetzelfde clusterknooppunt houden. Gebruik hiervoor de volgende opdrachten:

New-ClusterAffinityRule -Name SQL1CSV1 -Ruletype SameNode -Cluster Cluster1

New-ClusterAffinityRule -Name SQL2CSV2 -Ruletype SameNode -Cluster Cluster1

Add-ClusterGroupToAffinityRule -Groups SQL1 –Name SQL1CSV1 -Cluster Cluster1

Add-ClusterGroupToAffinityRule -Groups SQL2 –Name SQL2CSV2 -Cluster Cluster1

Add-ClusterSharedVolumeToAffinityRule -ClusterSharedVolumes CSV1 -Name SQL1CSV1 -Cluster Cluster1

Add-ClusterSharedVolumeToAffinityRule -ClusterSharedVolumes CSV2 -Name SQL2CSV2 -Cluster Cluster1

Set-ClusterAffinityRule -Name SQL1CSV1 -Enabled 1 -Cluster Cluster1

Set-ClusterAffinityRule -Name SQL2CSV2 -Enabled 1 -Cluster Cluster1

Als u deze regels wilt zien en hoe ze zijn geconfigureerd, gebruikt u de Get-ClusterAffinityRule cmdlet zonder de schakeloptie -Name en bekijkt u de uitvoer.

Get-ClusterAffinityRule -Cluster Cluster1

Name        RuleType               Groups            Enabled
----        --------               ------            -------
Site1Trio   SameFaultDomain        {SQL1, WEB1, DC1}    1
Site2Trio   SameFaultDomain        {SQL2, WEB2, DC2}    1
TrioApart   DifferentFaultDomain   {DC1, DC2}           1
SQL1CSV1    SameNode               {SQL1, <CSV1-GUID>}  1
SQL2CSV2    SameNode               {SQL2, <CSV2-GUID>}  1

Volgende stappen

Meer informatie over het beheren van uw VM's. Zie VM's beheren in Azure Stack HCI met behulp van Windows Admin Center.