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
nova-policy Inspect policy conﬁguration (admin only) nova (novaclient) CLI for the nova API with some admin-only APIs openstack (openstackclient) Uniﬁed 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 ﬁlters 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
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, ...