Upgrade to Pro — share decks privately, control downloads, hide ads and more …

What is Nova?

What is Nova?

A very high level view of the OpenStack Compute project, nova, presented to a group of Red Hat interns as part of their onboarding.

Stephen Finucane

June 10, 2020
Tweet

More Decks by Stephen Finucane

Other Decks in Technology

Transcript

  1. What is Nova? Intro to the OpenStack Compute Project Stephen

    Finucane (@stephenfin) Senior Software Engineer
  2. I want a VM with this amount of RAM and

    storage running FooOS. ” “
  3. I want a VM with this amount of RAM and

    storage, connected to networks X and Y, running FooOS. ” “
  4. I want a VM with this amount of RAM and

    storage, connected to networks X and Y with a virtual baz device attached running FooOS. ” “
  5. I want a VM with this amount of RAM and

    storage, connected to networks X and Y with a virtual baz device attached running FooOS. ” “ 1 2 3 4
  6. Broadly speaking, hosts running nova can be broken into control

    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
  7. nova-api Receive HTTP requests from users and other services nova-scheduler

    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
  8. nova-api-metadata Expose metadata that can be used by e.g. cloud-init;

    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
  9. nova relies on INI-based configuration files to configure individual services

    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.
  10. nova-manage A collection of various admin-specific admin commands (admin only)

    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
  11. ➡ API ➡ Conductor API validates request and passes it

    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.
  12. RESTful API Well, mostly. There are a couple of RPC’y

    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
  13. Filters and weighers Filters eliminate hosts and weighers set preferences

    Configurable Additional filters and weighers ✅ (but different schedulers ) Placement is king An authoritative resource tracker; VCPU, DISK_GB, MEMORY_MB, …
  14. Highly configurable Simple VMs? ✅ Low-latency real-time VMs? ✅ VMs

    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, ...
  15. Cells (v2) Multiple conductors to help scale to 100s of

    nodes SR-IOV, PCI Passthrough, FPGAs, vGPUs, ... Yes, we support them. Cyborg is cool “I want this specific guest configuration” Use RHEV/oVirt
  16. What is Nova? Intro to the OpenStack Compute Project Stephen

    Finucane (@stephenfin) Senior Software Engineer
  17. Credits Cover Photo by Billy Huynh Diver Photo by Jeremy

    Bishop Phone Mast Photo by Tony Stoddard