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

    View Slide

  2. Stephen Finucane (@stephenfin)
    Senior Software Engineer

    View Slide

  3. Intro to Cloud and OpenStack
    Nova in OpenStack
    The Nova Services
    Random Stuff

    View Slide

  4. Why Cloud?

    View Slide

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


    View Slide

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


    View Slide

  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.


    View Slide

  8. View Slide

  9. Why OpenStack?

    View Slide

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

    View Slide

  11. Nova in OpenStack

    View Slide

  12. View Slide

  13. View Slide

  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

    View Slide

  15. 1 2
    3 4

    View Slide

  16. View Slide

  17. The Services

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  21. The Utilities

    View Slide

  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.

    View Slide

  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

    View Slide

  24. View Slide

  25. View Slide

  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.

    View Slide

  27. nova-api

    View Slide

  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

    View Slide

  29. nova-scheduler

    View Slide

  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, …

    View Slide

  31. nova-compute

    View Slide

  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, ...

    View Slide

  33. More Stuff

    View Slide

  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

    View Slide

  35. Using It

    View Slide

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

    View Slide

  37. What is Nova?
    Intro to the OpenStack
    Compute Project
    Stephen Finucane (@stephenfin)
    Senior Software Engineer

    View Slide

  38. Credits
    Cover Photo by Billy Huynh
    Diver Photo by Jeremy Bishop
    Phone Mast Photo by Tony Stoddard

    View Slide

  39. Resources
    2013 Red Hat Summit: OpenStack Architecture

    View Slide