Host groups
With host groups, also called host aggregates in OpenStack, you can create virtual boundaries around a group of hosts. This lets you logically partition your hosts.
Overview
Host groups allow you to logically group hosts regardless of any features that they might or might not have in common. For example, the hosts do not have to have the same architecture, network configuration, or storage. Host groups have these important features:- Every host must be in a host group
- Any hosts that do not belong to a user-defined host group are members of the default host group. The default host group cannot be deleted.
- Virtual machines are kept within the host group
- A virtual machine can be deployed to a specific host or to a host group. After deployment, if that virtual machine is migrated, it must always be migrated within the host group. Additionally, virtual machines that are recovered by using an untargeted remote restart must stay within the host group. However, you can use a targeted remote restart to recover a virtual machine onto a host that is not a member of the host group.
- Placement policies are associated with host groups
- Every host within a host group is subject to the host group's placement policy. The default placement policy is striping.
- Nova availability zone support for host groups
Similar to host groups, availability zones are another way to create logical groupings of hosts. When a host group is created through the user interface, an availability zone with the same name is created and assigned to the host group. PowerVC also supports the standard OpenStack APIs for host groups and availability zones.
Notes:For more information, see Availability Zones.- The availability zone name must be unique across PowerVC and can be mapped to one host group only.
- While creating a host group from the REST API, admin users can choose a unique name for the availability zone.
- When a host group is created from the user interface, an availability zone is created with the host group's name. It is not recommended to update the availability zone name because it might result in any unexpected behavior of the host group on user interface.
- During an upgrade, PowerVC creates the availability zone for existing host groups with the respective host group's name.
What host groups are used for
An enterprise can benefit in many ways from using host groups:- Logically separate groups of hosts based on business need
- You might create separate host groups for test, development, and production, for example.
- Employ multiple placement policies
- Because each host group uses its own placement policy, such as striping or packing, each host group can be assigned the appropriate placement policy, depending on the workload.
- Realize Infrastructure as a Service (IaaS) Service Level Agreements (SLAs)
- For example, one host group might use high-end storage while a different host group uses commodity storage.
Example virtual machine lifecycles
The following examples assume this environment:
- Deploy and migrate virtual machine 1 (
vm1
): - Deploy
vm1
- You specify host group B when deploying
vm1
and PowerVC uses the striping policy to put it on a host in group B. - Migrate
vm1
- If you then migrate
vm1
, it is placed on a different host in group B, according to the striping policy. You cannot migratevm1
to a host in group A. To migratevm1
to a host in host group A, move the host into group A before migration. - Recover
vm1
- If you use remote restart to recover
vm1
and do not specify a host, it is placed on a different host in group B, according to the striping policy.If you use remote restart to recover
vm1
and specify a specific host, it is placed there regardless of its host group membership.
- Deploy
- Targeted deploy of virtual machine 2 (
vm2
) - If you deploy
vm2
to host 1, it is placed on host 1 (assuming that the host has sufficient resources) and the packing placement policy is ignored.