Erstellen von Server- und Standortaffinitätsregeln für VMs

Gilt für: Azure Stack HCI, Versionen 23H2 und 22H2

Mit Windows Admin Center oder Windows PowerShell können Sie ganz einfach Affinitäts- und Antiaffinitätsregeln für Ihre VMs in einem Cluster erstellen.

Hinweis

Die empfohlene Möglichkeit zum Erstellen und Verwalten von VMs in Azure Stack HCI 23H2 ist die Verwendung der Azure Arc-Steuerungsebene. Verwenden Sie den unten beschriebenen Mechanismus, um Ihre VMs nur dann zu verwalten, wenn Sie Funktionen benötigen, die in Azure Arc-VMs nicht verfügbar sind.

Affinität ist eine Regel, die eine Beziehung zwischen zwei oder mehr Ressourcengruppen oder Rollen (z. B. VMs) einrichtet, um sie in demselben Server, Cluster oder Standort zusammenzuhalten. Antiaffinität ist das Gegenteil, da sie verwendet wird, um die angegebenen VMs oder Ressourcengruppen voneinander getrennt zu halten, z. B. zwei Domänencontroller, die auf separaten Servern oder an separaten Standorten für die Notfallwiederherstellung platziert werden.

Affinitäts- und Antiaffinitätsregeln werden auf ähnliche Weise verwendet wie Verfügbarkeitszonen in Azure. In Azure können Sie Verfügbarkeitszonen konfigurieren, um VMs getrennt voneinander in separaten Zonen oder zusammen in ein und derselben Zone zu platzieren.

Affinitäts- und Antiaffinitätsregeln sorgen dafür, dass gruppierte VMs entweder auf demselben Clusterknoten bleiben oder daran gehindert werden, sich auf demselben Clusterknoten zu befinden. In einem solchen Setup kann eine VM nur manuell aus einem Knoten verschoben werden. Sie können VMs auch in ihrem eigenen Speicher zusammenhalten, z. B. in einem freigegebenen Clustervolume (Cluster Shared Volume, CSV), in dem sich die zugehörige VHDX befindet.

Durch Kombination von Affinitäts- und Antiaffinitätsregeln können Sie auch einen Stretched Cluster über zwei Standorte hinweg konfigurieren und die VMs in dem Standort zusammenhalten, in dem sie sich befinden müssen.

Verwenden von Windows Admin Center

Mithilfe von Windows Admin Centers können Sie grundlegende Affinitäts- und Antiaffinitätsregeln erstellen.

Bildschirm „Virtuelle Computer“

  1. Wählen Sie auf der Startseite von Windows Admin Center unter Alle Verbindungen den Server oder Cluster aus, für den Sie die VM-Regel erstellen möchten.
  2. Wählen Sie unter Extras die Option Einstellungen aus.
  3. Wählen Sie unter Einstellungen die Option Affinitätsregeln und dann Regel erstellen unter Affinitätsregeln aus.
  4. Geben Sie unter Regelname einen Namen für Ihre Regel ein.
  5. Wählen Sie unter „Regeltyp“ entweder Zusammen (gleicher Server) oder Getrennt (verschiedene Server) aus, um die VMs auf demselben Server oder auf unterschiedlichen Servern zu platzieren.
  6. Wählen Sie unter Gilt für die VMs aus, für die diese Regel gilt. Fügen Sie mit der Schaltfläche Hinzufügen der Regel weitere VMs hinzu.
  7. Wenn Sie fertig sind, wählen Sie Regel erstellen aus.
  8. Um eine Regel zu löschen, wählen Sie sie einfach aus, und wählen Sie Regel löschen aus.

Verwenden von Windows PowerShell

Sie können mit Windows PowerShell komplexere Regeln erstellen als mit Windows Admin Center. Üblicherweise richten Sie Regeln auf einem Remotecomputer ein, nicht auf einem Hostserver in einem Cluster. Dieser Remotecomputer wird als Verwaltungscomputer bezeichnet.

Wenn Sie Windows PowerShell Befehle von einem Verwaltungscomputer ausführen, schließen Sie den -Name Parameter oder -Cluster mit dem Namen des Clusters ein, den Sie verwalten. Falls zutreffend, müssen Sie auch den vollqualifizierten Domänennamen (FQDN) angeben, wenn Sie den -ComputerName Parameter für einen Serverknoten verwenden.

Neue PowerShell-Cmdlets

Zum Erstellen von Affinitätsregeln für Cluster verwenden Sie die folgenden neuen PowerShell-Cmdlets:

New-ClusterAffinityRule

Das Cmdlet New-ClusterAffinityRule dient zum Erstellen neuer Regeln. Mit diesem Befehl geben Sie den Namen der Regel und den Typ der Regel an, wobei Folgendes gilt:

-Name ist der Name der Regel.

-RuleType-Werte sind SameFaultDomain | SameNode | DifferentFaultDomain | DifferentNode

Beispiel:

New-ClusterAffinityRule -Name Rule1 -RuleType SameFaultDomain

Set-ClusterAffinityRule

Das Cmdlet Set-ClusterAffinityRule dient zum Aktivieren oder Deaktivieren einer Regel, wobei Folgendes gilt:

-Name ist der Name der Regel, die aktiviert oder deaktiviert werden soll.

-Enabled | Disabled aktiviert oder deaktiviert die Regel.

Beispiel:

Set-ClusterAffinityRule -Name Rule1 -Enabled

Get-ClusterAffinityRule

Das Cmdlet Get-ClusterAffinityRule dient zum Anzeigen der angegebenen Regel und des zugehörigen Typs. Wenn -Name nicht angegeben ist, werden alle Regeln aufgelistet.

Beispiel:

Get-ClusterAffinityRule -Name Rule1

Add-ClusterGroupToAffinityRule

Das Cmdlet Add-ClusterGroupToAffinityRule dient zum Hinzufügen einer VM-Rolle oder eines Gruppennamens zu einer bestimmten Affinitätsregel, wobei Folgendes gilt:

-Groups ist der Name der Gruppe oder Rolle, die zur Regel hinzugefügt werden soll.

-Name ist der Name der Regel, aus der die Datenträger entfernt werden sollen.

Beispiel:

Add-ClusterGroupToAffinityRule -Groups Group1 -Name Rule1

Add-ClusterSharedVolumeToAffinityRule

Das Cmdlet Add-ClusterSharedVolumeToAffinityRule dient zum Zusammenhalten der VMs mit dem freigegebenen Clustervolume, in dem sich die VHDX befindet, wobei Folgendes gilt:

-ClusterSharedVolumes sind die CSV-Datenträger, die Sie zur Regel hinzufügen möchten.

-Name ist der Name der Regel, zu der die Datenträger hinzugefügt werden sollen.

Beispiel:

Add-ClusterSharedVolumeToAffinityRule -ClusterSharedVolumes CSV1 -Name Rule1

Remove-ClusterAffinityRule

Das Cmdlet Remove-ClusterAffinityRule löscht die angegebene Regel, wobei -Name der Name der Regel ist.

Beispiel:

Remove-ClusterAffinityRule -Name Rule1

Remove-ClusterGroupFromAffinityRule

Entfernt Remove-ClusterGroupFromAffinityRule eine VM-Gruppe oder -Rolle aus einer bestimmten Regel, deaktiviert oder löscht die Regel jedoch nicht. Dabei gilt Folgendes:

-Name ist der Name der Regel.

-Groups sind die Gruppen oder Rollen, die Sie aus der Regel entfernen möchten.

Beispiel:

Remove-ClusterGroupFromAffinityRule -Name Rule1 -Groups Group1

Remove-ClusterSharedVolumeFromAffinityRule

Das Remove-ClusterSharedVolumeFromAffinityRule Cmdlet wird verwendet, um die freigegebenen Clustervolumes aus einer bestimmten Regel zu entfernen, deaktiviert oder löscht die Regel jedoch nicht. Dabei gilt Folgendes:

-ClusterSharedVolumes sind die CSV-Datenträger, die Sie aus der Regel entfernen möchten.

-Name ist der Name der Regel, aus der die Datenträger entfernt werden sollen.

Beispiel:

Remove-ClusterSharedVolumeFromAffinityRule -ClusterSharedVolumes CSV1 -Name Rule1

Vorhandene PowerShell-Cmdlets

Mit dem Aufkommen der neuen Cmdlets haben wir auch zusätzliche neue Switches zu einigen vorhandenen Cmdlets hinzugefügt.

Move-ClusterGroup

Die neue Option -IgnoreAffinityRule ignoriert die Regel und verschiebt die Clusterressourcengruppe auf einen anderen Clusterknoten. Weitere Informationen zu diesem Cmdlet finden Sie unter Move-ClusterGroup.

Beispiel:

Move-ClusterGroup -IgnoreAffinityRule -Cluster Cluster1

Hinweis

Wenn eine Verschiebungsregel gültig ist (unterstützt wird), werden alle betroffenen Gruppen und Regeln ebenfalls verschoben. Wenn die Verschiebung einer VM gegen eine Regel verstößt, aber vorübergehend und einmalig notwendig ist, verwenden Sie die Option -IgnoreAffinityRule, um die Verschiebung zuzulassen. In diesem Fall wird für die VM eine Warnung zum Verstoß angezeigt. Sie können die Regel danach wieder aktivieren, wenn Sie dies wünschen.

Start-ClusterGroup

Die neue Option -IgnoreAffinityRule ignoriert die Regel und schaltet die Clusterressourcengruppe am aktuellen Speicherort online. Weitere Informationen zu diesem Cmdlet finden Sie unter Start-ClusterGroup.

Beispiel:

Start-ClusterGroup -IgnoreAffinityRule -Cluster Cluster1

Beispiele für Affinitätsregeln

Affinitätsregeln halten Ressourcen auf demselben Server, Cluster oder Standort zusammen. Im Folgenden finden Sie einige gängige Szenarien für das Einrichten von Affinitätsregeln.

Szenario 1

Angenommen, Sie verfügen über eine SQL Server-VM und eine Webserver-VM. Diese beiden VMs müssen immer am selben Standort verbleiben, müssen sich aber nicht unbedingt auf demselben Clusterknoten am Standort befinden. Mit SameFaultDomain ist dies möglich, wie hier gezeigt:

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

Um diese Regel und ihre Konfiguration anzuzeigen, verwenden Sie das Get-ClusterAffinityRule Cmdlet, um die Ausgabe anzuzeigen:

Get-ClusterAffinityRule -Name WebData -Cluster Cluster1

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

Szenario 2

Wir verwenden dasselbe Szenario oben, mit dem Unterschied, dass sich die VMs auf demselben Clusterknoten befinden müssen. Dieses Szenario können Sie mit SameNode wie folgt einrichten:

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

Um die Regel und ihre Konfiguration anzuzeigen, verwenden Sie das Get-ClusterAffinityRule Cmdlet, um die Ausgabe anzuzeigen:

Get-ClusterAffinityRule -Name WebData1 -Cluster Cluster1

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

Beispiele für Antiaffinitätsregeln

Antiaffinitätsregeln trennen Ressourcen und platzieren sie auf unterschiedlichen Servern, Clustern oder Standorten.

Szenario 1

Sie verfügen über zwei VMs, auf denen SQL Server ausgeführt wird, im selben Azure Stack HCI-Cluster mit mehreren Standorten. Beide VMs verbrauchen viele Arbeitsspeicher-, CPU- und Massenspeicherressourcen. Wenn sich beide VMs auf demselben Knoten befänden, könnte dies zu Leistungsproblemen bei einer oder beiden führen, da sie um Arbeitsspeicher, CPU und Speicherzyklen konkurrieren würden. Indem Sie eine Antiaffinitätsregel mit dem Regeltyp DifferentNode verwenden, bleiben diese VMs immer auf unterschiedlichen Clusterknoten.

Die Befehle für dieses Beispiel sehen wie folgt aus:

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

Um die Regel und ihre Konfiguration anzuzeigen, verwenden Sie das Get-ClusterAffinityRule Cmdlet, um die Ausgabe anzuzeigen:

Get-ClusterAffinityRule -Name SQL -Cluster Cluster1

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

Szenario 2

Angenommen, Sie verfügen über einen Azure Stack HCI-Stretchingcluster mit zwei Standorten (Fehlerdomänen). Sie verfügen zudem über zwei Domänencontroller, die sich immer in verschiedenen Standorten befinden sollen. Indem Sie eine Antiaffinitätsregel mit dem Regeltyp DifferentFaultDomain verwenden, bleiben diese Domänencontroller immer in unterschiedlichen Standorten. Die Befehle für dieses Beispiel sehen wie folgt aus:

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

Um diese Regel und ihre Konfiguration anzuzeigen, verwenden Sie das Get-ClusterAffinityRule Cmdlet, um die Ausgabe anzuzeigen:

Get-ClusterAffinityRule -Name DC -Cluster Cluster1

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

Beispiele für kombinierte Regeln

Durch Kombinieren von Affinitäts- und Antiaffinitätsregeln können Sie ganz einfach verschiedene VM-Kombinationen in einem Cluster mit mehreren Standorten konfigurieren. In diesem Szenario befinden sich drei VMs in jedem Standort: SQL Server (SQL), Webserver (WEB) und Domänencontroller (DC). Für jede der Kombinationen können Sie Affinitätsregeln mit SameFaultDomain verwenden, um alle VMs im selben Standort zusammenzuhalten. Sie können auch die Domänencontroller für jeden Standort mit Antiaffinitätsregeln und DifferentFaultDomain einrichten, um dafür zu sorgen, dass die Domänencontroller-VMs sich immer in separaten Standorten befinden:

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

Um die Regeln und deren Konfiguration anzuzeigen, verwenden Sie das Get-ClusterAffinityRule Cmdlet ohne den -Name Schalter, und Sie können alle erstellten Regeln und deren Ausgabe anzeigen.

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

Speicheraffinitätsregeln

Sie können auch eine VM und die zugehörige VHDX in einem freigegebenen Clustervolume auf demselben Clusterknoten zusammenhalten. So lassen sich Sie CSV-Weiterleitungen verhindern, die das Starten oder Beenden einer VM verlangsamen können. Sie können die SQL-VM und das freigegebene Clustervolume auf demselben Clusterknoten speichern, wenn Sie das oben beschriebene Szenario mit kombinierten Affinitäts- und Antiaffinitätsregeln berücksichtigen. Verwenden Sie dazu die folgenden Befehle:

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

Um diese Regeln und deren Konfiguration anzuzeigen, verwenden Sie das Get-ClusterAffinityRule Cmdlet ohne den Schalter -Name, und zeigen Sie die Ausgabe an.

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

Nächste Schritte

Erfahren Sie, wie Sie Ihre VMs verwalten. Mehr dazu finden Sie unter Verwalten von VMs in Azure Stack HCI mithilfe von Windows Admin Center.