Skip to content

OpenStack

Aicerine works with Nova and Placement through their public APIs only. Nothing is installed in nova-scheduler, and no Nova component is patched or forked.

What Aicerine calls

Aicerine holds two Keystone application credentials, each restricted by access rules to the calls below. Neither needs the admin role: a dedicated role is granted rule by rule in your policy.yaml.

Reader, from day one: hypervisors, servers of all projects with their host attributes, aggregates, and Placement resource providers, inventories and usages.

Actuator, created only when you move to assisted:

PurposeCallPolicy rule
Live-migrate a VMPOST /servers/{id}/action (os-migrateLive)os_compute_api:os-migrate-server:migrate_live
Follow a migrationGET /servers/{id}/migrations, /{migration_id}os_compute_api:servers:migrations:index, :show
Abort a migrationDELETE /servers/{id}/migrations/{migration_id}os_compute_api:servers:migrations:delete
Learn migration costsGET /os-migrationsos_compute_api:os-migrations:index
Set a host's VCPU ratioPUT /resource_providers/{uuid}/inventoriesplacement:resource_providers:inventories:update

Aicerine never passes force to a live migration: Nova's filters always apply to the target.

Configuration

These conditions decide what Aicerine can do on your cloud.

ConditionWhyIf it does not hold
Live migration already works between the hosts of an aggregateAicerine plans migrations; it does not make them possibleNo assisted or active on that aggregate
Instances on shared storageNo disk to copyThose VMs stay out of the migration scope
cpu_allocation_ratio absent from the nova.conf of the computes (initial_cpu_allocation_ratio is fine)nova-compute otherwise rewrites the ratio Aicerine sets in PlacementThe prevention lever is lost
Non-migratable flavors identified (PCI passthrough, SR-IOV, dedicated CPUs, NUMA, huge pages)Nova refuses or degrades those migrationsThose VMs stay put; the ratio per host still applies
Maintenance windows declared per aggregatePlans run only inside themOutside them, only the emergencies you defined run
A target ratio and a floor decided per aggregateAicerine moves each host's ratio between the twoPrevention has no bounds to work within

live_migration_permit_auto_converge is recommended for VMs with very active memory. Aicerine follows your max_concurrent_live_migrations; do not raise it for Aicerine.

Notifications (optional)

Nova's versioned notifications make Aicerine react faster and correlate each migration with its events. Without them, Aicerine reconciles from the APIs periodically. When you enable them, the RabbitMQ user Aicerine uses must be limited to versioned_notifications.*: see Security.

Other schedulers

OpenStack Nova is the first platform. Other platforms are part of the vision, with no delivery commitment attached.