Créer des règles d’affinité de machine et de site pour les machines virtuelles
S’applique à : Azure Local, versions 23H2 et 22H2
À l’aide de Windows Admin Center ou de Windows PowerShell, vous pouvez facilement créer des règles d’affinité et d’anti-affinité pour les machines virtuelles dans votre instance locale Azure.
Remarque
La méthode recommandée pour créer et gérer des machines virtuelles sur Azure Local, version 23H2 utilise le plan de contrôle Azure Arc. Utilisez le mécanisme décrit ci-dessous pour gérer vos machines virtuelles uniquement si vous avez besoin d'une fonctionnalité qui n'est pas disponible dans les machines virtuelles Azure ARC.
L’affinité est une règle qui établit une relation entre deux groupes de ressources ou rôles, tels que des machines virtuelles, pour les maintenir ensemble sur le même ordinateur, système ou site. L’anti-affinité est l’inverse dans le sens où il est utilisé pour séparer les machines virtuelles ou groupes de ressources spécifiés, tels que deux contrôleurs de domaine placés sur des ordinateurs distincts ou dans des sites distincts pour la récupération d’urgence.
Les règles d’affinité et d’anti-affinité sont utilisées de la même façon qu’Azure utilise les zones de disponibilité. Dans Azure, vous pouvez configurer des zones de disponibilité pour conserver les machines virtuelles dans des zones distinctes et les séparer les unes des autres ou pour les conserver dans la même zone les unes avec les autres.
À l’aide de règles d’affinité et d’anti-affinité, toute machine virtuelle en cluster reste sur la même machine ou n’est pas empêchée d’être ensemble sur le même ordinateur. De cette façon, la seule façon de déplacer une machine virtuelle hors d’une machine consiste à le faire manuellement. Vous pouvez également conserver des machines virtuelles ensemble avec leur propre stockage, tel que le volume partagé de cluster (CSV) sur lequel réside le VHDX.
Utilisation de Windows Admin Center
Vous pouvez créer des règles d’affinité et d’anti-affinité de base à l’aide de Windows Admin Center.
- Dans la page d’accueil de Windows Admin Center, sous Toutes les connexions, sélectionnez l’ordinateur ou le système pour lequel vous souhaitez créer la règle de machine virtuelle.
- Sous Outils, sélectionnez Paramètres.
- Sous Paramètres, sélectionnez Règles d’affinité, puis sélectionnez Créer une règle sous Règles d’affinité.
- Sous Nom de la règle, entrez un nom pour votre règle.
- Sous Type de règle, sélectionnez Ensemble (même ordinateur) ou Apart (différents ordinateurs) pour placer vos machines virtuelles sur la même machine ou sur des ordinateurs différents.
- Sous S’applique à, sélectionnez les machines virtuelles auxquelles cette règle s’applique. Utilisez le bouton Ajouter pour ajouter d’autres machines virtuelles à la règle.
- Lorsque vous avez terminé, sélectionnez Créer une règle.
- Pour supprimer une règle, sélectionnez-la et sélectionnez Supprimer une règle.
Utilisation de Windows PowerShell
Windows PowerShell vous permet de créer des règles plus complexes qu’avec Windows Admin Center. En règle générale, vous configurez vos règles à partir d’un ordinateur distant plutôt que sur un ordinateur hôte dans un système. Cet ordinateur distant est appelé ordinateur de gestion.
Lorsque vous exécutez des commandes Windows PowerShell à partir d’un ordinateur de gestion, incluez le ou -Cluster
le -Name
paramètre avec le nom du système que vous gérez. Le cas échéant, vous devez également spécifier le nom de domaine complet (FQDN) lors de l’utilisation du -ComputerName
paramètre pour une machine.
Nouvelles applets de commande PowerShell
Pour créer des règles d’affinité pour des clusters, utilisez les nouvelles applets de commande PowerShell suivantes :
New-ClusterAffinityRule
L’applet de commande New-ClusterAffinityRule
permet de créer des règles. Avec cette commande, vous spécifiez le nom de la règle et le type de règle, où :
-Name
est le nom de la règle.
-RuleType
Les valeurs sont SameFaultDomain
| SameNode
| DifferentFaultDomain
| DifferentNode
Exemple :
New-ClusterAffinityRule -Name Rule1 -RuleType SameFaultDomain
Set-ClusterAffinityRule
L’applet de commande Set-ClusterAffinityRule
permet d’activer ou de désactiver une règle, où :
-Name
est le nom de la règle à activer ou désactiver.
-Enabled
| Disabled
active ou désactive la règle.
Exemple :
Set-ClusterAffinityRule -Name Rule1 -Enabled
Get-ClusterAffinityRule
L’applet de commande Get-ClusterAffinityRule
permet d’afficher la règle spécifiée et son type. Si -Name
elle n’est pas spécifiée, elle répertorie toutes les règles.
Exemple :
Get-ClusterAffinityRule -Name Rule1
Add-ClusterGroupToAffinityRule
L’applet de commande Add-ClusterGroupToAffinityRule
permet d’ajouter un nom de groupe ou de rôle de machine virtuelle à une règle d’affinité spécifique, où :
-Groups
est le nom du groupe ou du rôle à ajouter à la règle.
-Name
est le nom de la règle à ajouter.
Exemple :
Add-ClusterGroupToAffinityRule -Groups Group1 -Name Rule1
Add-ClusterSharedVolumeToAffinityRule
Add-ClusterSharedVolumeToAffinityRule
permet à vos machines virtuelles de rester ensemble avec le Volume partagé de cluster sur lequel réside le VHDX, où :
-ClusterSharedVolumes
est le disque CSV que vous souhaitez ajouter à la règle
-Name
est le nom de la règle pour l’ajout.
Exemple :
Add-ClusterSharedVolumeToAffinityRule -ClusterSharedVolumes CSV1 -Name Rule1
Remove-ClusterAffinityRule
Remove-ClusterAffinityRule
supprime la règle spécifiée, où -Name
est le nom de la règle.
Exemple :
Remove-ClusterAffinityRule -Name Rule1
Remove-ClusterGroupFromAffinityRule
Supprime Remove-ClusterGroupFromAffinityRule
un groupe de machines virtuelles ou un rôle d’une règle spécifique, mais ne désactive pas ou ne supprime pas la règle, où :
-Name
est le nom de la règle.
-Groups
sont les groupes ou les rôles que vous souhaitez supprimer de la règle
Exemple :
Remove-ClusterGroupFromAffinityRule -Name Rule1 -Groups Group1
Remove-ClusterSharedVolumeFromAffinityRule
L’applet Remove-ClusterSharedVolumeFromAffinityRule
de commande permet de supprimer les volumes partagés de cluster d’une règle spécifique, mais ne désactive pas ou ne supprime pas la règle, où :
-ClusterSharedVolumes
est le disque CSV que vous souhaitez supprimer de la règle.
-Name
est le nom de la règle à ajouter.
Exemple :
Remove-ClusterSharedVolumeFromAffinityRule -ClusterSharedVolumes CSV1 -Name Rule1
applets de commande PowerShell existantes
Avec l’avènement des nouvelles applets de commande, nous avons également ajouté de nouveaux commutateurs supplémentaires à quelques applets de commande existantes.
Move-ClusterGroup
Le nouveau -IgnoreAffinityRule
commutateur ignore la règle et déplace le groupe de ressources de cluster vers un autre ordinateur. Pour plus d’informations sur cette applet de commande, consultez Move-ClusterGroup.
Exemple :
Move-ClusterGroup -IgnoreAffinityRule -Cluster Cluster1
Remarque
Si une règle de déplacement est valide (prise en charge), tous les groupes et rôles concernés sont également déplacés. Si un déplacement de machine virtuelle viole sciemment une règle mais qu’il est provisoirement nécessaire, utilisez le commutateur -IgnoreAffinityRule
pour autoriser le déplacement. Dans ce cas, un avertissement de violation s’affiche pour la machine virtuelle. Vous pouvez ensuite réactiver la règle en fonction des besoins.
Start-ClusterGroup
Le nouveau -IgnoreAffinityRule
commutateur ignore la règle et met le groupe de ressources de cluster en ligne à son emplacement actuel. Pour plus d’informations sur cette applet de commande, consultez Start-ClusterGroup.
Exemple :
Start-ClusterGroup -IgnoreAffinityRule -Cluster Cluster1
Exemples de règles d’affinité
Les règles d’affinité sont des règles « ensemble » qui conservent les ressources sur le même ordinateur, système ou site. Voici quelques scénarios courants pour la configuration de règles d’affinité.
Scénario 1
Supposons que vous disposez d’une machine virtuelle SQL Server et d’une machine virtuelle de serveur web. Ces deux machines virtuelles doivent toujours rester sur le même site, mais n’ont pas nécessairement besoin d’être sur la même machine. À l’aide SameFaultDomain
de ce qui est possible, comme indiqué :
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
Pour voir cette règle et comment elle est configurée, utilisez l’applet Get-ClusterAffinityRule
de commande pour afficher la sortie :
Get-ClusterAffinityRule -Name WebData -Cluster Cluster1
Name RuleType Groups Enabled
---- --------- ------ -------
WebData SameFaultDomain {SQL1, WEB1} 1
Scénario 2
Utilisons le même scénario, sauf spécifier que les machines virtuelles doivent résider sur la même machine. Utilisez SameNode
, définissez-le comme suit :
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
Pour voir la règle et la façon dont elle est configurée, utilisez l’applet Get-ClusterAffinityRule
de commande pour afficher la sortie :
Get-ClusterAffinityRule -Name WebData1 -Cluster Cluster1
Name RuleType Groups Enabled
---- -------- ------ -------
DC SameNode {SQL1, WEB1} 1
Exemples de règles d’anti-affinité
Les règles d’anti-affinité sont des règles « distinctes » qui séparent les ressources et les placent sur différents ordinateurs, systèmes ou sites.
Scénario 1
Vous disposez de deux machines virtuelles exécutant SQL Server sur le même système multis site Azure Local. Chaque machine virtuelle utilise beaucoup de ressources de mémoire, de processeur et de stockage. Si les deux se terminent sur le même ordinateur, cela peut entraîner des problèmes de performances avec un ou les deux en concurrence avec la mémoire, le processeur et les cycles de stockage. À l’aide d’une règle anti-affinité avec DifferentNode
comme type de règle, ces machines virtuelles restent toujours sur différentes machines.
Les exemples de commandes sont les suivants :
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
Pour voir la règle et la façon dont elle est configurée, utilisez l’applet Get-ClusterAffinityRule
de commande pour afficher la sortie :
Get-ClusterAffinityRule -Name SQL -Cluster Cluster1
Name RuleType Groups Enabled
---- ----------- ------- -------
SQL DifferentNode {SQL1, SQL2} 1
Règles d’affinité de stockage
Vous pouvez également conserver une machine virtuelle et son VHDX sur un volume partagé de cluster (CSV) sur le même ordinateur. Cela empêcherait la redirection CSV de se produire, ce qui peut ralentir le démarrage ou l’arrêt d’une machine virtuelle. En tenant compte de l’affinité combinée et du scénario d’anti-affinité précédemment, vous pouvez conserver la machine virtuelle SQL et le volume partagé de cluster sur le même ordinateur. Pour ce faire, utilisez les commandes suivantes :
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
Pour voir ces règles et la façon dont elles sont configurées, utilisez l’applet Get-ClusterAffinityRule
de commande sans le -Name
commutateur et affichez la sortie.
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
Étapes suivantes
Découvrez comment gérer vos machines virtuelles. Consultez Gérer les machines virtuelles sur Azure Local à l’aide de Windows Admin Center.