Partage via


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.

Écran Machines virtuelles

  1. 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.
  2. Sous Outils, sélectionnez Paramètres.
  3. Sous Paramètres, sélectionnez Règles d’affinité, puis sélectionnez Créer une règle sous Règles d’affinité.
  4. Sous Nom de la règle, entrez un nom pour votre règle.
  5. 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.
  6. 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.
  7. Lorsque vous avez terminé, sélectionnez Créer une règle.
  8. 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 SameFaultDomainde 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.