How openstack/nova works
Nova is OpenStack’s compute fabric controller. A client submits compute API requests; Nova’s compute and conductor services coordinate instance operations, scheduling, and placement, then interact with networking, storage, and a hypervisor or bare-metal driver. The graph preserves those domain stages and major documented compute backends. Evidence is limited to the README and SOURCE INDEX references: some runtime handoffs are therefore shown as dashed, unverified links rather than asserted call chains.
Main entry points: api.py Instance operations · conductor/manager.py Conductor tasks · driver.py Virtualization drivers · scheduler/manager.py Host scheduling
Components 20
API and access
- Compute API routes
nova/api/openstack/compute/routes.py - Compute handlers
nova/api/openstack/compute
Compute lifecycle
- Instance operations
nova/compute/api.py - Conductor tasks
nova/conductor/manager.py - Compute service
nova/compute/manager.py
Scheduling and placement
- Host scheduling
nova/scheduler/manager.py - Host selection
nova/scheduler/host_manager.py - Placement client
nova/scheduler/client/report.py
Infrastructure integrations
- Virtualization drivers
nova/virt/driver.py - Libvirt backend
nova/virt/libvirt/driver.py - VMware backend
nova/virt/vmwareapi/driver.py - Bare-metal backend
nova/virt/ironic/driver.py - Neutron networking
nova/network/neutron.py - Cinder volumes
nova/volume/cinder.py - Glance images
nova/image/glance.py - Accelerator integration
nova/accelerator/cyborg.py
State and messaging
- Domain objects
nova/objects/base.py - Nova database
nova/db/main/api.py - RPC messaging
nova/rpc.py
Other components
- Cloud client
Connections 19
- Cloud client → Compute API routes: requests compute
- Compute API routes → Compute handlers: routes requests
nova/api/openstack/compute/routes.py - Compute handlers → Instance operations: invokes operations
nova/api/openstack/compute/services.py - Instance operations → Conductor tasks: delegates tasks
nova/compute/api.py - Conductor tasks → Host scheduling: requests scheduling
- Host scheduling → Host selection: selects hosts
nova/scheduler/manager.py - Host scheduling → Placement client: reports allocations
nova/scheduler/manager.py - Conductor tasks → Compute service: dispatches compute
- Compute service → Virtualization drivers: uses driver interface
- Virtualization drivers → Libvirt backend: implements backend
- Virtualization drivers → VMware backend: implements backend
- Virtualization drivers → Bare-metal backend: implements backend
- Instance operations → Neutron networking: coordinates networking
nova/compute/api.py - Instance operations → Cinder volumes: coordinates volumes
- Instance operations → Glance images: uses images
nova/compute/api.py - Instance operations → Accelerator integration: integrates accelerators
nova/compute/api.py - Instance operations → Domain objects: uses domain objects
- Domain objects → Nova database: persists records
nova/objects/service.py - Conductor tasks → RPC messaging: uses messaging
nova/conductor/manager.py