Sur VMware, il est possible de créer des règles d’affinités pour gérer le placement de ces VMs.
Plusieurs types de règles sont possibles :
- Affinités VM-VM : forcer des machines à s’exécuter sur le même hôte
- Anti-affinités VM-VM : empêcher des machines à s’exécuter sur le même hôte
- Affinités VM-Hôte : forcer l’exécution d’une machine sur un hôte particulier
- Anti-affinité VM-Hôte : une machine ne doit pas s’exécuter sur un hôte spécifié
Qu’en est-il aujourd’hui pour l’hyperviseur Nutanix AHV ?
Aujourd’hui officiellement, deux types de règles sont possibles sur AHV :
- Affinités VM-Hôte : via Prism Element
- Anti-affnités VM-VM : en acli
La documentation Nutanix indique que l’affinité VM-VM n’est aujourd’hui pas encore disponible, ainsi que l’anti-affinité VM-Hôte.
Autre point d’attention, la création d’une règle anti-affinity VM-VM peut être surpassé par le mécanisme ADS (Acropolis Dynamic Scheduling) pour répartir la charge en fonction de contention de ressources sur un hôte.
Nous allons voir comment cela se met en place.
Règle affinité VM-Hôte
Cette action va permettre de préférer l’exécution d’une VM sur un ou plusieurs hôtes.
Pour réaliser celà, il faut se rendre simplement sur Prism Element et procéder à un update sur la machine en question. Il faut ensuite régler le paramètre VM Host affinity.
Il est possible de sélectionner un seul hôte mais dans le cadre d’une perte de noeud il est mieux d’en sélectionner plusieurs
Règle d’anti-affinité VM-VM
Contrairement à une règle d’affinité VM-hôte, cette option est disponible pour le moment qu’en acli.
Il y a là, 3 étapes à faire :
– Créer un groupe
– Inscrire les machines dans le groupe
– Ajouter le paramètre d’anti-affinité au groupe
Donc, en SSH sur n’importe quelle CVM, en acli :
Création du groupe
vm_group.create group_name
(Remplacer group_name par le nom du groupe)
Ajout des VMs au groupe
vm_group.add_vms group_name vm_list=vm1_name,vm2_name
(Remplacer group_name par le nom du groupe, vm1_name et vm2_name par les noms de VMs)
Mise en anti-affinité du groupe
vm_group.antiaffinity_set group_name
(Remplacer group_name par le nom du groupe)
Exemple :
Quelques tests
Voici quelques tests pour vérifier que tout cela s’applique. A savoir, l’anti-affinité s’applique au démarrage de la VM et est overridé par une migration manuelle via l’option Migrate.
Pour tester, je migre mes deux machines sur le même hôte et procède à leurs extinction.
Je redémarre les machines et vérifie qu’elles s’exécutent sur des hôtes différents.
C’est tout bon.
Suppression de la règle d’anti-affinité
Ici aussi, pour supprimer la règle cela s’effectue en acli.
vm_group.antiaffinity_unset group_name
(Remplacer group_name par le nom du groupe)
Exemple :
Pour tester que ma règle n’est plus active, je migre les VMs sur le même hôte et les redémarre.
Migration :
Et redémarrage :