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:
| Purpose | Call | Policy rule |
|---|---|---|
| Live-migrate a VM | POST /servers/{id}/action (os-migrateLive) | os_compute_api:os-migrate-server:migrate_live |
| Follow a migration | GET /servers/{id}/migrations, /{migration_id} | os_compute_api:servers:migrations:index, :show |
| Abort a migration | DELETE /servers/{id}/migrations/{migration_id} | os_compute_api:servers:migrations:delete |
| Learn migration costs | GET /os-migrations | os_compute_api:os-migrations:index |
| Set a host's VCPU ratio | PUT /resource_providers/{uuid}/inventories | placement: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.
| Condition | Why | If it does not hold |
|---|---|---|
| Live migration already works between the hosts of an aggregate | Aicerine plans migrations; it does not make them possible | No assisted or active on that aggregate |
| Instances on shared storage | No disk to copy | Those 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 Placement | The prevention lever is lost |
| Non-migratable flavors identified (PCI passthrough, SR-IOV, dedicated CPUs, NUMA, huge pages) | Nova refuses or degrades those migrations | Those VMs stay put; the ratio per host still applies |
| Maintenance windows declared per aggregate | Plans run only inside them | Outside them, only the emergencies you defined run |
| A target ratio and a floor decided per aggregate | Aicerine moves each host's ratio between the two | Prevention 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.