Skip to main content

Overview

Host aggregates are admin-defined logical groups of compute hosts that share common characteristics — GPU hardware, NVMe storage, specific CPU models, high-memory configurations, or compliance designations. The scheduler uses aggregate metadata and flavor extra specs to place instances on the right hosts. Aggregates can be exposed to project users as (AZs) — users select the AZ when launching instances; the scheduler picks a host within the matching aggregate.
Prerequisites
  • admin role
  • Navigate to Admin → Compute → Host Aggregates

Host Aggregates vs Availability Zones

FeatureHost AggregateAvailability Zone
Visible to usersNo (admin only)Yes (shown at launch)
PurposeScheduling hints and hardware groupingFailure domain separation
Overlapping membershipA host can be in multiple aggregatesA host belongs to one AZ
Created byAdminAdmin (via aggregate AZ property)
A host aggregate becomes an Availability Zone when you set its availability_zone metadata property. One aggregate = one AZ; a host can belong to multiple non-AZ aggregates but only one AZ aggregate.

Create a Host Aggregate

Open Host Aggregates

Navigate to Admin → Compute → Host Aggregates and click Create Host Aggregate.

Configure the aggregate

FieldDescription
NameDescriptive name (e.g., gpu-nodes, ssd-storage, compliance-pci)
Availability ZoneOptional — set to expose this aggregate as an AZ visible to users

Add metadata

After creation, click the aggregate name to open its detail view. Navigate to the Metadata tab. Click Add Metadata to add key-value pairs:
KeyExample ValuePurpose
aggregate_instance_extra_specs:ssdtrueMatch flavor with hw:aggregate_instance_extra_specs:ssd=true
availability_zoneaz-pciExpose as AZ named az-pci
gpuv100Tag GPU hosts
cpu_archx86_64Architecture tag

Add compute hosts

In the Hosts tab, click Add Host and select compute hosts to include in the aggregate.
A host can belong to multiple non-AZ aggregates simultaneously. For AZ aggregates, each host can only be in one AZ at a time.

Schedule Instances to Specific Aggregates

The scheduler places instances in an aggregate when the flavor’s extra specs match the aggregate’s metadata.

Tag the aggregate

Add metadata to the aggregate. For example, to create a GPU pool:
Tag aggregate for GPU scheduling
openstack aggregate set --property "gpu=v100" gpu-nodes

Create a matching flavor

Create a flavor with extra specs that match:
Create GPU flavor with aggregate match
openstack flavor create --vcpus 8 --ram 32768 --disk 100 gpu.8vcpu.32gb

openstack flavor set gpu.8vcpu.32gb \
  --property "aggregate_instance_extra_specs:gpu=v100"

Launch an instance

When a user launches an instance with the gpu.8vcpu.32gb flavor, the scheduler’s AggregateInstanceExtraSpecsFilter matches the flavor property against aggregate metadata and places the instance only on hosts in the gpu-nodes aggregate.

Availability Zone Management

Create an AZ via aggregate

Create a host aggregate and set the availability_zone property:
Create AZ-backed aggregate
openstack aggregate create az-pci --zone az-pci
openstack aggregate add host az-pci <compute-host-1>
openstack aggregate add host az-pci <compute-host-2>

User selects AZ at launch

The AZ az-pci appears in the Availability Zone field of the Launch Instance wizard. Instances scheduled to az-pci land on hosts in that aggregate.

Troubleshooting Aggregate Scheduling

Cause: Flavor extra specs do not match aggregate metadata, or AggregateInstanceExtraSpecsFilter is not in the scheduler’s filter list.Fix: Verify the filter is active:
Check scheduler filters on a compute host
grep -i aggregate /etc/xavs/nova-scheduler/nova.conf
Verify flavor properties match aggregate metadata exactly (case-sensitive).
Cause: The compute host’s nova-compute service may not be running or not registered.Fix:
List registered compute hosts
openstack hypervisor list
Only hosts appearing in the hypervisor list can be added to aggregates.

Next Steps

Compute Scheduling

Full scheduler filter and weigher configuration

Flavors

Create flavors with extra specs for aggregate scheduling

Advanced Features

CPU pinning, NUMA, and PCI passthrough with aggregates

Quotas

Set resource limits per project