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
adminrole- Navigate to Admin → Compute → Host Aggregates
Host Aggregates vs Availability Zones
| Feature | Host Aggregate | Availability Zone |
|---|---|---|
| Visible to users | No (admin only) | Yes (shown at launch) |
| Purpose | Scheduling hints and hardware grouping | Failure domain separation |
| Overlapping membership | A host can be in multiple aggregates | A host belongs to one AZ |
| Created by | Admin | Admin (via aggregate AZ property) |
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
Configure the aggregate
| Field | Description |
|---|---|
| Name | Descriptive name (e.g., gpu-nodes, ssd-storage, compliance-pci) |
| Availability Zone | Optional — 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:
| Key | Example Value | Purpose |
|---|---|---|
aggregate_instance_extra_specs:ssd | true | Match flavor with hw:aggregate_instance_extra_specs:ssd=true |
availability_zone | az-pci | Expose as AZ named az-pci |
gpu | v100 | Tag GPU hosts |
cpu_arch | x86_64 | Architecture tag |
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
Create a matching flavor
Create a flavor with extra specs that match:
Create GPU flavor with aggregate match
Availability Zone Management
Create an AZ via aggregate
Create a host aggregate and set the
availability_zone property:Create AZ-backed aggregate
Troubleshooting Aggregate Scheduling
Instance not landing in expected aggregate
Instance not landing in expected aggregate
Cause: Flavor extra specs do not match aggregate metadata, or Verify flavor properties match aggregate metadata exactly (case-sensitive).
AggregateInstanceExtraSpecsFilter is not in the scheduler’s filter list.Fix: Verify the filter is active:Check scheduler filters on a compute host
Host not visible in aggregate list
Host not visible in aggregate list
Cause: The compute host’s nova-compute service may not be running or not registered.Fix:Only hosts appearing in the hypervisor list can be added to aggregates.
List registered compute hosts
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