Sur AHV, deux règles de placement se ressemblent par le nom et s’opposent par la force. L’affinité VM-hôte est une contrainte que même HA ne contourne pas ; l’anti-affinité VM-VM est une préférence que le cluster abandonne quand il manque de place.
Deux règles, deux forces
Affinité VM-hôte. La Nutanix Bible la décrit ainsi : elle « strictly ties a VM to a host or group of hosts ». La règle est appliquée obligatoirement : une VM ne peut être ni démarrée ni migrée sur un hôte hors de sa liste. Cas d’usage typique : cantonner une application licenciée par hôte aux nœuds licenciés. L’anti-affinité VM-hôte, « exclure tel hôte », n’existe pas.
Anti-affinité VM-VM. Les VM d’une liste ne devraient pas partager un hôte, par exemple deux contrôleurs de domaine. Mais, selon la Bible, « to prefer VM availability over VM separation, the system overrides this type of rule when a cluster becomes constrained ».
Ce qu’en fait ADS
ADS (Acropolis Dynamic Scheduler) tourne en permanence : placement initial des VM, résorption des points chauds et application des politiques, en déplaçant les VM pour respecter affinités et anti-affinités.
Conséquences pratiques, données par des employés Nutanix sur le forum :
- poser une anti-affinité sur des VM allumées ne demande pas de les redémarrer : ADS les sépare, mais pas immédiatement ;
- sur des VM éteintes, la règle s’applique au démarrage.
Ce qu’en fait HA
HA respecte affinité et anti-affinité. L’exemple d’un employé Nutanix : une VM épinglée aux hôtes 1 et 2 n’est pas relancée ailleurs si ces deux hôtes tombent, sauf si la règle cite un autre hôte. Une affinité vers un seul hôte prive donc la VM de redémarrage HA. La Bible précise que, pour la réservation HA, le cluster vérifie avant de démarrer une VM qu’elle peut tourner sur au moins un autre hôte, en tenant compte des règles d’affinité VM-hôte.
Côté anti-affinité, une VM dont l’hôte tombe redémarre sur un autre hôte en respectant la règle, dans la limite des ressources. Quand les garanties HA sont activées, ADS déplace aussi des VM pour que toutes restent récupérables après la perte d’un hôte ; le dimensionnement de ce mode est traité dans la simulation de capacité.
Maintenance et migration manuelle
Lors d’une migration manuelle ou d’une mise en maintenance, l’anti-affinité peut ne pas s’appliquer. Côté affinité, l’entrée en maintenance migre à chaud les VM non épinglées ; selon Mike Dent (2023), les VM épinglées (« pinned ») ou RF1 sont éteintes jusqu’à la sortie de maintenance. Une VM dont l’affinité ne cite que l’hôte à maintenir ne peut migrer nulle part. Sur un cluster hybride, la fenêtre coûte aussi en latence : voir la maintenance d’un nœud hybride.
Syntaxe aCLI relevée par Mike Dent :
acli host.enter_maintenance_mode <ip_hote> [wait="{ true | false }"] [non_migratable_vm_action="{ acpi_shutdown | block }"]
acpi_shutdown les éteint le temps de la maintenance. Pour block, valeur par défaut, un fil du forum Nutanix (2025, resté sans réponse) relève que des guides récents la décrivent aussi comme un arrêt, alors que le nom suggère une mise en maintenance bloquée : testez sur votre version.
Où créer les règles
L’affinité VM-hôte se pose en aCLI, dans Prism Element (VM par VM) ou dans Prism Central (par catégories). L’anti-affinité VM-VM n’existe pas dans Prism Element ; avant AOS 7.0 et pc.2024.3, elle ne se créait qu’en aCLI, désormais dans Prism Central par catégories. Depuis une CVM :
# Affinité VM-hôte
acli vm.affinity_set <VM1>,<VM2> host_list=<ip_hote_1>,<ip_hote_2>
acli vm.affinity_unset <VM>
# Anti-affinité VM-VM, méthode aCLI historique
acli vm_group.create <groupe>
acli vm_group.add_vms <groupe> vm_list=<VM1>,<VM2>
acli vm_group.set_rule <groupe> anti_affinity=True
acli vm_group.get <groupe>
vm_group.set_rule répond par un avertissement : « VM group operations through ACLI will be removed in future releases. Use Prism Central based anti-affinity policies instead. »
Ce qu’il faut retenir
- L’affinité VM-hôte est une contrainte : ni démarrage, ni migration, ni relance HA hors des hôtes listés.
- L’anti-affinité VM-VM est une préférence, levée quand le cluster manque de ressources.
- ADS remet les VM en conformité en tâche de fond, sans redémarrage ; pour l’anti-affinité, pas immédiatement.
- Une affinité vers un seul hôte prive la VM de relance HA et l’empêche de migrer en maintenance.
- À partir d’AOS 7.0 et pc.2024.3, créez l’anti-affinité dans Prism Central par catégories ; l’aCLI
vm_groupest dépréciée.
In English
VM-host affinity is a strict constraint, VM-VM anti-affinity a preference. What this changes when a host fails, goes into maintenance, or the cluster runs short of resources: HA does not restart a VM outside its affinity hosts, anti-affinity is relaxed to favor availability, and ADS enforces both rule types in the background without restarting VMs.
Sources & vérification
Relevé sur : Documentation publique Nutanix (Nutanix Bible, Nutanix Community) et blogs techniques, relevé 2026-10
- Nutanix Bible, AHV Architecture (ADS, affinity policies) nutanixbible.com
- Nutanix Bible, How AHV Works (HA) nutanixbible.com
- Nutanix Community, Virtual Machine High Availability (2021) next.nutanix.com
- Nutanix Community, VM-VM Anti-Affinity (2020) next.nutanix.com
- Nutanix Community, VM-VM Anti Afinity configuration (2021) next.nutanix.com
- Nutanix Community, VM-VM Anti Afinity configuration (2023) next.nutanix.com
- mikedent.io, Smarter VM Placement with Nutanix AHV, Part 1 (2025) mikedent.io
- mikedent.io, Smarter VM Placement with Nutanix AHV, Part 2 (2025) mikedent.io
- mikedent.io, Mastering Maintenance Mode Operations in Nutanix (2023) mikedent.io
- Nutanix Community, non_migratable_vm_action, block vs acpi_shutdown (2025) next.nutanix.com
- juliendumur.fr, Nutanix AHV, configure anti-affinity between 2 VMs (2024) juliendumur.fr
