OpenStack Overview
Rajdeep Dua
April 2014
Twitter : @rajdeepdua
What is OpenStack
Provide scalable, elastic cloud
computing for both public and
private clouds, large and small
Defining OpenStack
• OpenStack is a virtualization platform
which abstracts out Compute, Storage and
Networking from the underlying Hardware
• All the components are managed through
a central Dashboard
OpenStack Github Activity
Trends : OpenStack vs Other Open
Source Cloud Projects
Source : Google trends
OpenStack has won the
Open Source battle
OpenStack Deployments : 2013
Source OpenStack survey Oct 2013
Top 10 countries
13
14
23
24
24
25
39
57
63
336
IT
BR
DE
AU
GB
CA
FR
CN
IN
US
Finance 1%
Healthcare 1%
Retail 1%
Manufacturing/Indu
2%
Government / Defen
Film/Media 3%
Unspecified 3%
Other 6%
Telecommunications
7%Academic / Research
11%
Information
Technology
63%
Other
19%
Industries
1-20 employees
26%
21-100
employees
16%
101 to 500
employees
14%
501 to 1,000
employees
5%
1,001 to 5,000
employees
10%
5,001 to 10,000
employees
8%
More than 10,000
employees
21%
Organization size
Business Drivers for Adopting
OpenStack
4
48
52
65
86
87
95
95
95
98
Other
Attracting talent
Control
Time to market
Ability to innovate, compete
Flexibility of underlying technology…
Avoiding vendor lock-in
Open technology
Operational efficiency
Cost savings
Source OpenStack survey Oct 2013
OpenStack Components
OpenStack - Components
Component Component Function Definition
Nova Compute Provides virtual servers on demand
Glance Image Service Provides a catalog of images used to
create VMs
Swift Object Storage Provides Object Storage
Horizon Web based UI Provides a way to interact with other
OpenStack services
Neutron Networking Service Provides Network as a Service
Cinder Block Storage
Service
Provides Block Storage Service for guest
VMs
Keystone Identity Services Provides Authorization and
Authentication services for
Ceilometer Monitoring Service Collects metrics from various Open Stack
Components
OpenStack Components..
OpenStack – Compute
Nova
OpenStack – Compute
• Tool to orchestrate cloud.
• Main Functions
– Manage running instances
– Manage access to the cloud through users and
tenants
• OpenStack compute relies in the underlying
hypervisors to spawn actual instances
OpenStack Computes
• Hypervisors Supported
Hypervisor
KVM Kernel Virtual Machine
Xen Based on Citrix Xen Server
vSphere 4.1, 5.1 VMWare’s hypervisor
QEMU Quick Emulator
LXC Linux Containers : User Control Packages for Linux
Containers
Nova Architecture
• Nova is architected as a distributed application with many components
• Majority of these are custom-written Python daemons of two varieties:
– API Service : Web Server Gateway Interface (WSGI)* applications to
receive and mediate API calls
– nova-compute : Nova Compute Service
– nova-volume : Nova Volume Service
– nova-network : Nova Network service which connects to Neutron
– nova-cert : Manages the x509 certificates
– nova-scheduler : Scheduler to choose the host to run instances on
– nova-conductor : Updates DB on behalf of other APIs like network,
volumes etc
Nova Architecture – Service to
Manager Mapping
• Each Service has an associated Manager class which
manages the API calls to the underlying implementation
– API Service :
– nova-compute : nova.compute.ComputeManager
– nova-volume : nova.volume.VolumeManager
– nova-network : nova.network.NetworkManager
– nova-cert : nova.cert.CertManager
– nova-scheduler : nova.scheduler.SchedulerManager
– nova-conductor : nova.conductor.CondutorManager
Nova Runtime Components
Nova - API Service
• API Service is the entry point for all the REST
service requests
• The API endpoints are basic http REST which
handle authentication, authorization, and
basic command and control functions using
various API interfaces
• Forwards the API requests to
ComputeManager and Scheduler.
Nova – RPC Communication
• API uses RPC Messaging to communicate with
various services like Compute, Conductor,
Scheduler
• RPC is currently implemented using AMPQ
messaging
Service Workers
• Every Service is associated with one or more
workers.
• Each worker is spawned in a separate process
and helps in scaling out the associated service
Nova Scheduler
• Component responsible for scheduling a VM
provisioning call on one the hosts
• It can choose from multiple algorithms to
choose the host.
• Example of some of these algorithms
Drivers for Virtualization
• Base class for all the driver implementations is
nova.virt.compute.ComputeDriver
• All the drivers extend this class for implementing
the functionality
Driver for KVM
Driver for ESXi and vCenter
Neutron
What is Neutron
• Networking service to virtualize Network
Management
• Neutron is to networking what Nova for
Compute
Why Neutron
• Enterprise Networks are complex
• Traditional Open Stack Networking has
limitations
• New Concepts like SDN and Tunneling
protocols need a more extendible model
Limitations of Nova-Network
• Single VLAN for all the VMs
• Limited by the number of
VLANs which can be
created – 4096
• Little or No Control
Neutron
• Provides tools and control for Enterprise class
Networking
– Services Firewalls, Load Balancers, Virtual Routers
• Provide APIs to build advanced network
Configurations
Challenges from Cloud on Networking
• Massive Scale
• Cost Effective
• Vendor Agnostic
• Dynamic and programmatic configuration
Neutron Basics
• Provides API for configuration of Virtual
Networks and connecting VMs
• Connect Virtual and Physical Switches
• Provide Pluggin mechanism for different
control components.
Neutron Principles
• Implementation Abstraction : Networking
implementation at Physical level is abstracted
• Association of an Interface with a Network is
an explicit step
• Plugins can expose extensions from the core
APIs
Neutron API Abstractions
• Network
• Subnet
• Ports
• Routers
Network-Subnet-port
Neutron Components
Neutron Components – neutron
daemon
• Neutron daemon
exposes the REST APIs
for Nova and Horizon
interaction
• Passes on the messages
to the agents running
on Neutron Service
Host as well as Nova
Compute
Neutron Components – neutron
daemon
• Neutron daemon
exposes the REST APIs
for Nova and Horizon
interaction
• Passes on the messages
to the agents running
on Neutron Service
Host as well as Nova
Compute
Neutron Components –
l3 agent and l3 metering agent
• L3 agent : Provides L3/NAT
forwarding to provide
external network access
for VMs on tenant
networks. Some plug-ins
use this agent.
• L3 metering Agent :
Provides L3 traffic
measurements for tenant
networks.
• Run on the main Neutron
Service
Neutron Components –
l3 agent and l3 metering agent
• plugin-in agent : Runs on
each hypervisor to perform
local vswitch configuration.
The agent that runs depends
on the plug-in that you use,
and some plug-ins do not
require an agent.
• dhcp agent: Provides DHCP
services to tenant networks.
• Run on each Nova Compute
Node
Neutron Create a VM Flow
Plugin Architecture
• Allows Network/Port abstraction with multiple
implementations
– Process All API Calls and pass them to the
underlying Physical Layer
– Manage Virtual Switches – Triggered by Nova
interfaces being attached to a network
Neutron– Pluggin Architecture
Neutron-Plugin-Nova Interaction
Neutron Plugins
• Open Source plugins based on OpenVSwitch
and Linux bridge – hardware Independent
• Vendors plugins
– NSX (VMware)
– Big Switch Networks – Floodlight
– Open Daylight Controller
– Cisco
– Brocade
Example SDN : OpenDay Light
OpenDaylight
• OpenDaylight is an Open Source Software project
under the Linux Foundation with the goal of
furthering the adoption and innovation of Software
Defined Networking (SDN) through the creation of a
common industry supported platform
OpenDaylight Framework
Example – vSphere and NSX
Integration with OpenStack
Key Takeaways
• Open Stack is a SDN agnostic and Hypervisor
Agnostic Open Source Framework
• Open Source also brings its own challenges to
the product in terms of complexity
• Lot of value added services being built around
OpenStack – Trove, Savanna, Solum, Congress

Openstack Overview

  • 1.
    OpenStack Overview Rajdeep Dua April2014 Twitter : @rajdeepdua
  • 2.
    What is OpenStack Providescalable, elastic cloud computing for both public and private clouds, large and small
  • 3.
    Defining OpenStack • OpenStackis a virtualization platform which abstracts out Compute, Storage and Networking from the underlying Hardware • All the components are managed through a central Dashboard
  • 4.
  • 5.
    Trends : OpenStackvs Other Open Source Cloud Projects Source : Google trends OpenStack has won the Open Source battle
  • 6.
    OpenStack Deployments :2013 Source OpenStack survey Oct 2013 Top 10 countries 13 14 23 24 24 25 39 57 63 336 IT BR DE AU GB CA FR CN IN US
  • 7.
    Finance 1% Healthcare 1% Retail1% Manufacturing/Indu 2% Government / Defen Film/Media 3% Unspecified 3% Other 6% Telecommunications 7%Academic / Research 11% Information Technology 63% Other 19% Industries 1-20 employees 26% 21-100 employees 16% 101 to 500 employees 14% 501 to 1,000 employees 5% 1,001 to 5,000 employees 10% 5,001 to 10,000 employees 8% More than 10,000 employees 21% Organization size
  • 8.
    Business Drivers forAdopting OpenStack 4 48 52 65 86 87 95 95 95 98 Other Attracting talent Control Time to market Ability to innovate, compete Flexibility of underlying technology… Avoiding vendor lock-in Open technology Operational efficiency Cost savings Source OpenStack survey Oct 2013
  • 9.
  • 10.
    OpenStack - Components ComponentComponent Function Definition Nova Compute Provides virtual servers on demand Glance Image Service Provides a catalog of images used to create VMs Swift Object Storage Provides Object Storage Horizon Web based UI Provides a way to interact with other OpenStack services Neutron Networking Service Provides Network as a Service Cinder Block Storage Service Provides Block Storage Service for guest VMs Keystone Identity Services Provides Authorization and Authentication services for Ceilometer Monitoring Service Collects metrics from various Open Stack Components
  • 11.
  • 12.
  • 13.
    OpenStack – Compute •Tool to orchestrate cloud. • Main Functions – Manage running instances – Manage access to the cloud through users and tenants • OpenStack compute relies in the underlying hypervisors to spawn actual instances
  • 14.
    OpenStack Computes • HypervisorsSupported Hypervisor KVM Kernel Virtual Machine Xen Based on Citrix Xen Server vSphere 4.1, 5.1 VMWare’s hypervisor QEMU Quick Emulator LXC Linux Containers : User Control Packages for Linux Containers
  • 15.
    Nova Architecture • Novais architected as a distributed application with many components • Majority of these are custom-written Python daemons of two varieties: – API Service : Web Server Gateway Interface (WSGI)* applications to receive and mediate API calls – nova-compute : Nova Compute Service – nova-volume : Nova Volume Service – nova-network : Nova Network service which connects to Neutron – nova-cert : Manages the x509 certificates – nova-scheduler : Scheduler to choose the host to run instances on – nova-conductor : Updates DB on behalf of other APIs like network, volumes etc
  • 16.
    Nova Architecture –Service to Manager Mapping • Each Service has an associated Manager class which manages the API calls to the underlying implementation – API Service : – nova-compute : nova.compute.ComputeManager – nova-volume : nova.volume.VolumeManager – nova-network : nova.network.NetworkManager – nova-cert : nova.cert.CertManager – nova-scheduler : nova.scheduler.SchedulerManager – nova-conductor : nova.conductor.CondutorManager
  • 17.
  • 18.
    Nova - APIService • API Service is the entry point for all the REST service requests • The API endpoints are basic http REST which handle authentication, authorization, and basic command and control functions using various API interfaces • Forwards the API requests to ComputeManager and Scheduler.
  • 19.
    Nova – RPCCommunication • API uses RPC Messaging to communicate with various services like Compute, Conductor, Scheduler • RPC is currently implemented using AMPQ messaging
  • 20.
    Service Workers • EveryService is associated with one or more workers. • Each worker is spawned in a separate process and helps in scaling out the associated service
  • 21.
    Nova Scheduler • Componentresponsible for scheduling a VM provisioning call on one the hosts • It can choose from multiple algorithms to choose the host. • Example of some of these algorithms
  • 22.
    Drivers for Virtualization •Base class for all the driver implementations is nova.virt.compute.ComputeDriver • All the drivers extend this class for implementing the functionality
  • 23.
  • 24.
    Driver for ESXiand vCenter
  • 25.
  • 26.
    What is Neutron •Networking service to virtualize Network Management • Neutron is to networking what Nova for Compute
  • 27.
    Why Neutron • EnterpriseNetworks are complex • Traditional Open Stack Networking has limitations • New Concepts like SDN and Tunneling protocols need a more extendible model
  • 28.
    Limitations of Nova-Network •Single VLAN for all the VMs • Limited by the number of VLANs which can be created – 4096 • Little or No Control
  • 29.
    Neutron • Provides toolsand control for Enterprise class Networking – Services Firewalls, Load Balancers, Virtual Routers • Provide APIs to build advanced network Configurations
  • 30.
    Challenges from Cloudon Networking • Massive Scale • Cost Effective • Vendor Agnostic • Dynamic and programmatic configuration
  • 31.
    Neutron Basics • ProvidesAPI for configuration of Virtual Networks and connecting VMs • Connect Virtual and Physical Switches • Provide Pluggin mechanism for different control components.
  • 32.
    Neutron Principles • ImplementationAbstraction : Networking implementation at Physical level is abstracted • Association of an Interface with a Network is an explicit step • Plugins can expose extensions from the core APIs
  • 33.
    Neutron API Abstractions •Network • Subnet • Ports • Routers
  • 34.
  • 35.
  • 36.
    Neutron Components –neutron daemon • Neutron daemon exposes the REST APIs for Nova and Horizon interaction • Passes on the messages to the agents running on Neutron Service Host as well as Nova Compute
  • 37.
    Neutron Components –neutron daemon • Neutron daemon exposes the REST APIs for Nova and Horizon interaction • Passes on the messages to the agents running on Neutron Service Host as well as Nova Compute
  • 38.
    Neutron Components – l3agent and l3 metering agent • L3 agent : Provides L3/NAT forwarding to provide external network access for VMs on tenant networks. Some plug-ins use this agent. • L3 metering Agent : Provides L3 traffic measurements for tenant networks. • Run on the main Neutron Service
  • 39.
    Neutron Components – l3agent and l3 metering agent • plugin-in agent : Runs on each hypervisor to perform local vswitch configuration. The agent that runs depends on the plug-in that you use, and some plug-ins do not require an agent. • dhcp agent: Provides DHCP services to tenant networks. • Run on each Nova Compute Node
  • 40.
  • 41.
    Plugin Architecture • AllowsNetwork/Port abstraction with multiple implementations – Process All API Calls and pass them to the underlying Physical Layer – Manage Virtual Switches – Triggered by Nova interfaces being attached to a network
  • 42.
  • 43.
  • 44.
    Neutron Plugins • OpenSource plugins based on OpenVSwitch and Linux bridge – hardware Independent • Vendors plugins – NSX (VMware) – Big Switch Networks – Floodlight – Open Daylight Controller – Cisco – Brocade
  • 45.
    Example SDN :OpenDay Light
  • 46.
    OpenDaylight • OpenDaylight isan Open Source Software project under the Linux Foundation with the goal of furthering the adoption and innovation of Software Defined Networking (SDN) through the creation of a common industry supported platform
  • 47.
  • 48.
    Example – vSphereand NSX Integration with OpenStack
  • 50.
    Key Takeaways • OpenStack is a SDN agnostic and Hypervisor Agnostic Open Source Framework • Open Source also brings its own challenges to the product in terms of complexity • Lot of value added services being built around OpenStack – Trove, Savanna, Solum, Congress