Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

Stephen Finucane (@stephenfin) Senior Software Engineer

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

Why Cloud?

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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. ” “

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

Why OpenStack?

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

Nova in OpenStack

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

1 2 3 4

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

The Services

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

The Utilities

Slide 22

Slide 22 text

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.

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

nova-api

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

nova-scheduler

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

nova-compute

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

More Stuff

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

Using It

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

Resources 2013 Red Hat Summit: OpenStack Architecture