nodes and compute nodes Compute nodes are where VMs (“instances”) run and interact with other services for things like networking or storage Control nodes handle everything else, including API requests, choosing a compute node, managing access, … Anything more than a toy deployment will have multiple control nodes and many compute nodes
Determine which compute node to schedule an instance on; talks to placement nova-conductor Manages DB access on behalf of compute nodes and “conducts” long running tasks like live migration nova-compute Host and manage the lifecycle of instances
part of nova-api nova-novncproxy Provide a proxy for VNC consoles nova-serialproxy (unsupported in OSP) Provide a proxy for serial console nova-spicehtml5proxy (unsupported in OSP) Provide a proxy for SPICE console
and flavors and image metadata to configure instances Most operations can be achieved via the RESTful API, but some management operations require a separate tool.
nova-policy Inspect policy configuration (admin only) nova (novaclient) CLI for the nova API with some admin-only APIs openstack (openstackclient) Unified CLI for all OpenStack APIs; mostly end-user focused
to the conductor Conductor ➡ Scheduler (➡ Placement) The scheduler requests allocation candidates (here, a compute node) from placement and then filters and weighs these to select one Conductor ⬅➡ Compute Instance is scheduled to host and compute takes over, building the instance and talking to other services (e.g. neutron) where necessary Fin.
APIs. Microversions Each change requires a new version (2.1, 2.2, …, 2.87). Support all microversions but some APIs will 404 No (more) proxy APIs or extensions Want networking? Talk to neutron. Ditto for storage etc. Documentation! docs.openstack.org/api-ref/compute
Configurable Additional filters and weighers ✅ (but different schedulers ) Placement is king An authoritative resource tracker; VCPU, DISK_GB, MEMORY_MB, …
that make you sandwiches? Multiple hypervisors Supports libvirt (), Xen (☠), Hyper-V, VMWare, Ironic, PowerVM and ZVM Lots of server “actions” Reboot, rebuild, resize, (cold) migrate, live migrate, shelve/unshelve, ...