ARDC Nectar Research Cloud · Source-traced walkthroughs

How it really works, traced from the source

Self-contained, interactive courses on the cloud services we run. Each one follows a single real request end to end through the actual source code, with scroll-based modules, animated message flows, glossaries, quizzes, and an ops check panel at every step showing exactly what to look at (database rows, openstack CLI output, queues) to confirm the system is where it should be. Pick a service below.

NOVA

Compute: message-flow walkthroughs

7 walkthroughs

Follow a single request as it travels between nova-api, conductor, scheduler and compute, and out over REST to Placement, Neutron, Cinder, Glance and Cyborg. Every excerpt is an exact quote from the Nova source on branch nectar/2024.1 (OpenStack 2024.1 / Caracal); the reservation course also quotes warre and blazar. Start with Booting a server for the foundations: the two message channels (RPC on the queue versus REST over HTTP) and the cast of services.

00🚀
Booting a server

From POST /servers to vm_state=ACTIVE: the six services and two message channels that turn one command into a running VM. The best place to start.

~25 min6 services2 channelsops checks
nova/00-server-boot-flow.html
01📦
Resize & cold migration

Moving an instance to a new flavor or host. The migration UUID that custodies Placement allocations, the source/destination compute handshake, and the confirm-or-revert dance.

~14 min7 servicesconfirm / revertops checks
nova/01-resize-cold-migration.html
02🔀
Live migration

A zero-downtime move. The nested "can we migrate?" handshake (two blocking calls), the late network cutover, the Cinder attachment swap, and the JOB_COMPLETED point of no return.

~14 min6+ servicescall · cast · RESTops checks
nova/02-live-migration.html
03🎮
GPU & PCI devices

Four device models kept distinct: legacy PCI alias, PCI-in-Placement, vGPU/mdev, and Cyborg accelerators. From flavor extra-specs to the libvirt <hostdev>.

~16 min6 services4 device modelsops checks
nova/03-gpu-pci-device.html
04💾
Volume attach & detach

Cinder's three-step attachment handshake (create → update → complete), the BlockDeviceMapping spine, the os-brick connector, and libvirt live hot-plug, both directions.

~12 min3 servicesattachment APIops checks
nova/04-volume-attach-detach.html
05🧭
The scheduling procedure

How nova-scheduler picks a host: request filters that mutate the spec, Placement allocation candidates, pass/fail filters, scoring weighers, and claim-based placement with alternates. Includes an interactive aggregate-isolation map.

~16 min9 stagesfilters · weighersops checks
nova/05-scheduling.html
06🗓️
The reservation lifecycle

Reserving capacity end to end: warre books the slot, blazar fences the hosts with a private flavor, an aggregate and a CUSTOM_RESERVATION_* resource class, and nova/placement enforce it. Includes a troubleshooting playbook.

~22 minwarre · blazar · novaops checkstroubleshooting
nova/06-warre-reservation-lifecycle.html

Also here Aggregate Routing Board: who lands where? — a standalone worked example of host-aggregate routing, companion to the scheduling course.