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.

8fbd28ad59a1aa317a5ec175b0778359?s=128

Stephen Finucane

June 10, 2020
Tweet

Transcript

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

    Finucane (@stephenfin) Senior Software Engineer
  2. Stephen Finucane (@stephenfin) Senior Software Engineer

  3. Intro to Cloud and OpenStack Nova in OpenStack The Nova

    Services Random Stuff
  4. Why Cloud?

  5. I want a VM with this amount of RAM and

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

    storage, connected to networks X and Y, running FooOS. ” “
  7. 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. ” “
  8. None
  9. Why OpenStack?

  10. Modular Scalable Production ready Open source Proven No vendor lock-in

    Hybrid cloud ...
  11. Nova in OpenStack

  12. None
  13. None
  14. 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
  15. 1 2 3 4

  16. None
  17. The Services

  18. 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
  19. 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
  20. 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
  21. The Utilities

  22. 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.
  23. 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
  24. None
  25. None
  26. ➡ 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.
  27. nova-api

  28. 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
  29. nova-scheduler

  30. 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, …
  31. nova-compute

  32. 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, ...
  33. More Stuff

  34. 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
  35. Using It

  36. $ openstack server create --flavor my-flavor --image my-image --network my-network

    my-server
  37. What is Nova? Intro to the OpenStack Compute Project Stephen

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

    Bishop Phone Mast Photo by Tony Stoddard
  39. Resources 2013 Red Hat Summit: OpenStack Architecture