A VM-Host anti-affinity policy describes a relationship between a category of VMs and a category of hosts.

A VM-Host anti-affinity policy can be useful when you want to avoid placing virtual machines that have specific host requirements such as a GPU or other devices, or capabilities such as IOPS control, on hosts that can't support those requirements. After the policy is created, the placement engine in your SDDC avoids deploying VMs covered by the policy on hosts covered by the policy.

To prevent a VM-Host anti-affinity policy from blocking the upgrade of a host or cluster, these policies are constrained in several ways.
  • A policy cannot prevent a host from entering maintenance mode.
  • A policy cannot prevent a host configured for HA from executing a failover. VMs with an anti-affinity for the failed host can be migrated to any available host in the cluster.
  • A policy cannot prevent a VM from powering-on. If a VM subject to a VM-Host anti-affinity policy specifies a resource reservation that no host can meet, it is powered on on any available host.
These constraints are lifted as soon as a compliant host becomes available.

Prerequisites

This operation is restricted to users who have the CloudAdmin role.

Procedure

  1. Create a category and tag for VMs that you want to include in a VM-Host anti-affinity policy.

    Pick a category name that describes common characteristics of VMs you plan to tag as members of that category.

  2. Create a category and tag for hosts that you want to include in a VM-Host anti-affinity policy.

    You can use existing tags and categories or create new ones specific to your needs. See vSphere Tags and Attributes for more about creating and using tags.

  3. Tag the VMs and hosts that you want to include in a VM-Host anti-affinity policy.
  4. Create a VM-Host anti-affinity policy.
    1. In your SDDC, open vCenter Server.
    2. From the vSphere Client, click Policies and Profiles > Compute Policies.
    3. Click Add to open the New Compute Policy Wizard.
    4. Fill in the policy Name and choose VM-Host anti-affinity from the Policy type drop-down control.
      The policy Name must be unique within your SDDC.
    5. Provide a Description of the policy, then use the VM tag and Host Tag drop-down controls to choose a Category and Tag to which the policy applies.

      Unless you have multiple VM tags associated with a category, the wizard fills in the VM tag after you select the tag Category.

      Note:

      In a stretched cluster, each host is automatically tagged with an Availability zones tag. All hosts in an availability zone are assigned the same tag, so you can use these tags to establish anti-affinity between a VM and any host in the cluster that has a specific availability zone tag.

    6. Click Create to create the policy.
  5. (Optional) To delete a compute policy, open the vSphere Client, click Policies and Profiles > Compute Policies to show each policy as a card. Click DELETE to delete a policy.