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.
- 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.
- Wählen Sie unter Extras die Option Einstellungen aus.
- Wählen Sie unter Einstellungen die Option Affinitätsregeln und dann Regel erstellen unter Affinitätsregeln aus.
- Geben Sie unter Regelname einen Namen für Ihre Regel ein.
- 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.
- 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.
- Wenn Sie fertig sind, wählen Sie Regel erstellen aus.
- 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.