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 full-size slide

  2. Stephen Finucane (@stephenfin)
    Senior Software Engineer

    View full-size slide

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

    View full-size slide

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


    View full-size slide

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


    View full-size slide

  6. 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 full-size slide

  7. Why OpenStack?

    View full-size slide

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

    View full-size slide

  9. Nova in OpenStack

    View full-size slide

  10. 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 full-size slide

  11. The Services

    View full-size slide

  12. 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 full-size slide

  13. 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 full-size slide

  14. 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 full-size slide

  15. The Utilities

    View full-size slide

  16. 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 full-size slide

  17. 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 full-size slide

  18. ➡ 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 full-size slide

  19. 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 full-size slide

  20. nova-scheduler

    View full-size slide

  21. 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 full-size slide

  22. nova-compute

    View full-size slide

  23. 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 full-size slide

  24. 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 full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  28. Resources
    2013 Red Hat Summit: OpenStack Architecture

    View full-size slide