An Introduction To OpenStack
Technical Session
By Haim Ateya
Session Goals
 Get the audience familiar with OpenStack IaaS platform
 Go over the project, releases and community around it
 Review and explain OpenStack terminology
 Deep dive into OpenStack projects and architecture
 Review installation, deployment and testing around OpenStack
Agenda
 Quick introduction to OpenStack project
 Explain the OpenStack architecture and how its built
 Get you familiar with the different terminology and concepts
 Get you familiar with OpenStack services (components)
 Go over installation methods and tools
 Review risks
Project History
 Began in 2010 as a joint project of Rackspace hosting and NASA to build
Cloud based operating system
 Free and open source software platform under the apache license
 Actively driven by a strong open-source community with thousands of developers
and more than 500 companies that actively contributing to the project: IBM, Red
Hat, HP, Cisco, Intel, Google, Oracle, Dell, EMC, VMware.
 OpenStack Releases
o 11 releases since birth
o Release cycle is every 6 months
o Last release is Liberty
o Next release is Mitaka
OpenStack In A Nutshell
Is a cloud operating system
that controls large pools of
compute, storage, and
networking resources
throughout a datacenter, all
managed through a
dashboard that gives
administrators control while
empowering their users to
provision resources through
a web interface.
OpenStack In A Nutshell – Cont.
 Open source IaaS cloud computing platform that meets the needs of public and
private cloud providers regardless of size.
 Controls large pools of storage, network and compute resources throughout a data-
center.
 Believes in open source, open design, open development, all in an open
community that encourages participation by anyone
 Consists of a series of interrelated projects delivering various components for a
cloud infrastructure solution
 One of the fastest growing open-source communities in the world with more than
15,0000 contributors
 Code submission
 Code reviews
 Testing
 Documentation
OpenStack Services
OpenStack Distributions
Distributions
OpenStack Project Timeline
Release
Name
Release Date Code Name Of Included Components
Austin October 21 2010 Nova, Swift
Bexar February 3, 2011 Nova, Swift, Glance
Cactus April 15, 2011 Nova, Swift, Glance
Diablo September 22, 2011 Nova, Swift, Glance
Essex April 5, 2012 Nova, Swift, Glance, Horizon, Keystone
Folsom September 27, 2012 Nova, Swift, Glance, Horizon, Keystone, Quantum, Cinder
Grizzly April 4, 2013 Nova, Swift, Glance, Horizon, Keystone, Quantum, Cinder
Havana October 17, 2013 Nova, Swift, Glance, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer
Icehouse April 17, 2014 Nova, Swift, Glance, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer, Trove
Juno October 16, 2014 Nova, Swift, Glance, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer, Trove, Sahara
Kilo April 30, 2015 Nova, Swift, Glance, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer, Trove, Sahara, Ironic
Liberty October 16, 2015 Nova, Swift, Glance, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer, Trove, Sahara, Ironic,
Zaqar, Manila, Designate, Barbican
OpenStack Architecture
OpenStack Logical Architecture
OpenStack Common Terminology
 PTL – Project Team Lead for one of OpenStack
projects (cinder, glance, swift, etc)
 Blueprint – a detailed suggestion for new code
enhancement  project in upstream (Open Source
community)
 Incubation – the process in which new project is
maintained until it becomes one of the core projects
 Instance – virtual machine running in Nova node
 Image – an attribute of a virtual machine which
includes disk and OVF
 Tenant – logical entity that creates a shared pool of
resources (network, storage, compute, security)
between users & groups.
 Flavor - virtual hardware templates which defines
the hardware characteristics of a virtual machine
(tiny, medium, large, small)
 Volume – virtual disk attached to a VM instance
(mostly refers to block device)
 Ephemeral storage – disk or storage device is not
persistent and will be destroyed upon VM instance
termination
OpenStack Services
Common Properties in OpenStack Services
 Every OpenStack service share the following common properties:
 Has a dedicated API, mostly in the form of CLI and and Restful API
 Can be configured  accessed using Horizon (dashboard)
 Support scale up  out and can be installed
 Support different deployment models:
o All-in-one
o Standalone
o Distributed  partly distributed
o Highly available
 Communicate directly with Keystone for authentication and authorization services
 Most of the services uses internal Database service (MariaDB)
 Most of the services use AMQP message queuing bus for internal communicate
Cinder – Block Storage
 OpenStack Block Storage service provides persistent block storage management
for virtual hard drives
 Cinder supports creation, deletion and management of block devices (volumes
and snapshots)
 Cinder provides an API that allow various vendors to write their own driver and
support their designated storage array:
 EMC – VMXA, XtremIO, VNX, ScaleIO
 HP – HPE 3PAR
 Pure – Pure Storage
 Redhat (Linux) – GlusterFS, NFS, LVM
 Nimble Storage
Cinder – Basic Features
 Create/delete volumes
 Specify custom "types/extra-specs”
 Clone
 Copy image to volume and volume to
image
 Point in time copy (snapshots of
volumes)
 Create volume from snapshot
 Backup volume (to object store, SWIFT
and CEPH)
 Transfer volume ownership
 Per tenant quota
 Customized scheduling filters
Cinder – Internal Services
 openstack-cinder-api
 openstack-cinder-backup
 openstack-cinder-scheduler
 openstack-cinder-volume
 cinder
Swift – Object Storage
 Provides an HTTP accessible storage for large amounts of data including static
entities such as videos, images, email messages, files, or VM images.
 Objects are stored as a binaries on the underlying storage along with metadata
attributes such as files.
 Support horizontal scaling and failover  redundancy with software based data-
replication
 File has no meaning – stored as blobs of data (useful for big data, NoSQL)
 No file hierarchy
Swift – Basic Features
 Distributed
 Scalable to several Peta-bytes
 Highly available (by design)
 Robust
 S3 API support
 Can work on simple (commodity
hardware)
 Support several storage types
 Quotas and access control
Swift – Internal Services
 openstack-swift-account
 openstack-swift-container
 openstack-swift-object
 openstack-swift-proxy
 swift
Glance – Image Repository
 OpenStack Image service acts as a registry for virtual disk images
 Users can add new images or take a snapshot of an existing server for immediate
storage
 Registered images can be stored in the Object Storage service or in other
locations, such as simple file systems or external Web servers
 The following image disk formats are supported:
 aki/ami/ari (Amazon kernel, ramdisk, or machine image)
 iso (archive format for optical discs, such as CDs)
 qcow2 (Qemu/KVM, supports Copy on Write)
 raw (unstructured format)
 vhd (Hyper-V, common for virtual machine monitors from vendors such as VMware, Xen,
 Microsoft, and VirtualBox)
 vdi (Qemu/VirtualBox)
 vmdk (VMware)
Glance – Internal Services
 openstack-glance-api
 openstack-glance-registry
 glance
Nova – Compute
 OpenStack Compute serves as the core of the OpenStack cloud by providing virtual
machines on demand
 Compute schedules virtual machines to run on a set of nodes by defining drivers
that interact with underlying virtualization mechanisms
 Compute interacts with the Identity service to authenticate instance and database
access
 Compute supports the libvirt driver libvirtd that uses KVM as the hypervisor. The
hypervisor creates
 Instances  servers
 Flavors  instance type
 Drivers (for virt drivers)
 Support bare metal provision
 Support several API (for virtualization vendors)
Nova – Internal Services
 openstack-nova-api
 openstack-nova-cert
 openstack-nova-compute
 openstack-nova-conductor
 openstack-nova-consoleauth
 openstack-nova-network
 openstack-nova-novncproxy
 openstack-nova-scheduler
 nova
Neutron – Networking (SDN)
 Handles management of virtual network infrastructure in OpenStack cloud
 Including networks, subnets, routers, switches, firewalls and VPN.
 Users can create network, control traffic and connect servers and devices to one
or more networks
 Flexible networking models
 IP addresses can dedicated or floating
 Support FWaaS, LBaaS and VPNaaS
 Support GRE and VXLAN tunneling
Neutron – Internal Services
 network agent
 neutron-dhcp-agent
 neutron-ml2
 neutron-server
 neutron
 ovs-agent
 open Vswitch
Horizon - Dashboard
 Self service UI (allows you to see and manage your cloud)
 Python WSGI application (written in python)
 Stateless client of OpenStack API's
 Support Horizontal scaling
 Session state must be kept (using Django)
 Interact with all other services (nova, cinder, glance, swift, neutron)
Keystone – Identity Management
 OpenStack Identity provides user authentication and authorization to all
OpenStack components
 Supports multiple authentication mechanisms, including user name and password
credentials, token-based systems, and AWS-style log-ins
 User account management, including associated information such as a name and
password
Keystone – Internal Services
 openstack-keystone
 keystone
Heat – Orchestration
 Automation and orchestration framework for OpenStack cloud
 Consumes all other Openstack API's
 Allows the user to define all his configuration (VM's, storage, network,
packages, bootstrapping information) and kick it into a template
 You can version your deployment and repeatable one
 Includes monitoring and auto-scaling
Additional Project
 Trove - OpenStack Database-as-a-Service allows users to select, provision, and
operate a variety of relational and non-relational database
 Sahara – OpenStack Hadoop-as-a-Service allows rapidly configure, reliably auto-
deploy and scale Hadoop clusters on OpenStack
 Ironic – Bare metal provisioning that enables the user to provision physical, or bare
metal machines, for a variety of hardware vendors with hardware-specific drivers
 TripleO – TripleO is a community developed approach and set of tools for
deploying, and managing an OpenStack cloud.
 Ceilometer - Telemetry provides user-level usage data for OpenStack-based clouds
Deployment, installation
Testing and debugging
Installation Methods
 PackStack – OpenStack installer (deprecated – very good for POC’s and small
deployments
 DevStack – Development environment that allows developers to install basic
OpenStack server and debug their code
 TryStack – an easy way to try OpenStack on remote servers (http://trystack.org/)
 TripleO - “OpenStack on OpenStack”. It is an official OpenStack project with the
goal of allowing you to deploy and manage a production cloud onto bare metal
hardware using a subset of existing OpenStack components
Tempest
 OpenStack integration testing suite
 Includes set of integration tests to be run against a live OpenStack cluster
 Both tests and infrastructure are written in Python
 Based on Unittest2 and nose runner
 Very good for API testing
 Every developer  code contributor must test his code in OpenStack CI
environment before submission and code review
Deployment Risks
 Project is fairly young
 Relies mostly on Open Source (less stable – many bugs !)
 No official support (unless you go for an official distro)
 Can get really hard and complex to debug and troubleshoot
problems
 Requires knowledge in many fields such as storage, networking and compute
including also Python to deploy and maintain a production OpenStack cloud
Q & A
The End
Haim Ateya
Group Manager, Quality Assurance, EMC
Email: haim.ateya@emc.com
LinkedIn: https://il.linkedin.com/in/haim-ateya-82b0b68

Introduction To OpenStack

  • 1.
    An Introduction ToOpenStack Technical Session By Haim Ateya
  • 2.
    Session Goals  Getthe audience familiar with OpenStack IaaS platform  Go over the project, releases and community around it  Review and explain OpenStack terminology  Deep dive into OpenStack projects and architecture  Review installation, deployment and testing around OpenStack
  • 3.
    Agenda  Quick introductionto OpenStack project  Explain the OpenStack architecture and how its built  Get you familiar with the different terminology and concepts  Get you familiar with OpenStack services (components)  Go over installation methods and tools  Review risks
  • 4.
    Project History  Beganin 2010 as a joint project of Rackspace hosting and NASA to build Cloud based operating system  Free and open source software platform under the apache license  Actively driven by a strong open-source community with thousands of developers and more than 500 companies that actively contributing to the project: IBM, Red Hat, HP, Cisco, Intel, Google, Oracle, Dell, EMC, VMware.  OpenStack Releases o 11 releases since birth o Release cycle is every 6 months o Last release is Liberty o Next release is Mitaka
  • 5.
    OpenStack In ANutshell Is a cloud operating system that controls large pools of compute, storage, and networking resources throughout a datacenter, all managed through a dashboard that gives administrators control while empowering their users to provision resources through a web interface.
  • 6.
    OpenStack In ANutshell – Cont.  Open source IaaS cloud computing platform that meets the needs of public and private cloud providers regardless of size.  Controls large pools of storage, network and compute resources throughout a data- center.  Believes in open source, open design, open development, all in an open community that encourages participation by anyone  Consists of a series of interrelated projects delivering various components for a cloud infrastructure solution  One of the fastest growing open-source communities in the world with more than 15,0000 contributors  Code submission  Code reviews  Testing  Documentation
  • 7.
  • 8.
  • 9.
    OpenStack Project Timeline Release Name ReleaseDate Code Name Of Included Components Austin October 21 2010 Nova, Swift Bexar February 3, 2011 Nova, Swift, Glance Cactus April 15, 2011 Nova, Swift, Glance Diablo September 22, 2011 Nova, Swift, Glance Essex April 5, 2012 Nova, Swift, Glance, Horizon, Keystone Folsom September 27, 2012 Nova, Swift, Glance, Horizon, Keystone, Quantum, Cinder Grizzly April 4, 2013 Nova, Swift, Glance, Horizon, Keystone, Quantum, Cinder Havana October 17, 2013 Nova, Swift, Glance, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer Icehouse April 17, 2014 Nova, Swift, Glance, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer, Trove Juno October 16, 2014 Nova, Swift, Glance, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer, Trove, Sahara Kilo April 30, 2015 Nova, Swift, Glance, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer, Trove, Sahara, Ironic Liberty October 16, 2015 Nova, Swift, Glance, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer, Trove, Sahara, Ironic, Zaqar, Manila, Designate, Barbican
  • 10.
  • 11.
  • 12.
    OpenStack Common Terminology PTL – Project Team Lead for one of OpenStack projects (cinder, glance, swift, etc)  Blueprint – a detailed suggestion for new code enhancement project in upstream (Open Source community)  Incubation – the process in which new project is maintained until it becomes one of the core projects  Instance – virtual machine running in Nova node  Image – an attribute of a virtual machine which includes disk and OVF  Tenant – logical entity that creates a shared pool of resources (network, storage, compute, security) between users & groups.  Flavor - virtual hardware templates which defines the hardware characteristics of a virtual machine (tiny, medium, large, small)  Volume – virtual disk attached to a VM instance (mostly refers to block device)  Ephemeral storage – disk or storage device is not persistent and will be destroyed upon VM instance termination
  • 13.
  • 14.
    Common Properties inOpenStack Services  Every OpenStack service share the following common properties:  Has a dedicated API, mostly in the form of CLI and and Restful API  Can be configured accessed using Horizon (dashboard)  Support scale up out and can be installed  Support different deployment models: o All-in-one o Standalone o Distributed partly distributed o Highly available  Communicate directly with Keystone for authentication and authorization services  Most of the services uses internal Database service (MariaDB)  Most of the services use AMQP message queuing bus for internal communicate
  • 15.
    Cinder – BlockStorage  OpenStack Block Storage service provides persistent block storage management for virtual hard drives  Cinder supports creation, deletion and management of block devices (volumes and snapshots)  Cinder provides an API that allow various vendors to write their own driver and support their designated storage array:  EMC – VMXA, XtremIO, VNX, ScaleIO  HP – HPE 3PAR  Pure – Pure Storage  Redhat (Linux) – GlusterFS, NFS, LVM  Nimble Storage
  • 16.
    Cinder – BasicFeatures  Create/delete volumes  Specify custom "types/extra-specs”  Clone  Copy image to volume and volume to image  Point in time copy (snapshots of volumes)  Create volume from snapshot  Backup volume (to object store, SWIFT and CEPH)  Transfer volume ownership  Per tenant quota  Customized scheduling filters
  • 17.
    Cinder – InternalServices  openstack-cinder-api  openstack-cinder-backup  openstack-cinder-scheduler  openstack-cinder-volume  cinder
  • 18.
    Swift – ObjectStorage  Provides an HTTP accessible storage for large amounts of data including static entities such as videos, images, email messages, files, or VM images.  Objects are stored as a binaries on the underlying storage along with metadata attributes such as files.  Support horizontal scaling and failover redundancy with software based data- replication  File has no meaning – stored as blobs of data (useful for big data, NoSQL)  No file hierarchy
  • 19.
    Swift – BasicFeatures  Distributed  Scalable to several Peta-bytes  Highly available (by design)  Robust  S3 API support  Can work on simple (commodity hardware)  Support several storage types  Quotas and access control
  • 20.
    Swift – InternalServices  openstack-swift-account  openstack-swift-container  openstack-swift-object  openstack-swift-proxy  swift
  • 21.
    Glance – ImageRepository  OpenStack Image service acts as a registry for virtual disk images  Users can add new images or take a snapshot of an existing server for immediate storage  Registered images can be stored in the Object Storage service or in other locations, such as simple file systems or external Web servers  The following image disk formats are supported:  aki/ami/ari (Amazon kernel, ramdisk, or machine image)  iso (archive format for optical discs, such as CDs)  qcow2 (Qemu/KVM, supports Copy on Write)  raw (unstructured format)  vhd (Hyper-V, common for virtual machine monitors from vendors such as VMware, Xen,  Microsoft, and VirtualBox)  vdi (Qemu/VirtualBox)  vmdk (VMware)
  • 22.
    Glance – InternalServices  openstack-glance-api  openstack-glance-registry  glance
  • 23.
    Nova – Compute OpenStack Compute serves as the core of the OpenStack cloud by providing virtual machines on demand  Compute schedules virtual machines to run on a set of nodes by defining drivers that interact with underlying virtualization mechanisms  Compute interacts with the Identity service to authenticate instance and database access  Compute supports the libvirt driver libvirtd that uses KVM as the hypervisor. The hypervisor creates  Instances servers  Flavors instance type  Drivers (for virt drivers)  Support bare metal provision  Support several API (for virtualization vendors)
  • 24.
    Nova – InternalServices  openstack-nova-api  openstack-nova-cert  openstack-nova-compute  openstack-nova-conductor  openstack-nova-consoleauth  openstack-nova-network  openstack-nova-novncproxy  openstack-nova-scheduler  nova
  • 25.
    Neutron – Networking(SDN)  Handles management of virtual network infrastructure in OpenStack cloud  Including networks, subnets, routers, switches, firewalls and VPN.  Users can create network, control traffic and connect servers and devices to one or more networks  Flexible networking models  IP addresses can dedicated or floating  Support FWaaS, LBaaS and VPNaaS  Support GRE and VXLAN tunneling
  • 26.
    Neutron – InternalServices  network agent  neutron-dhcp-agent  neutron-ml2  neutron-server  neutron  ovs-agent  open Vswitch
  • 27.
    Horizon - Dashboard Self service UI (allows you to see and manage your cloud)  Python WSGI application (written in python)  Stateless client of OpenStack API's  Support Horizontal scaling  Session state must be kept (using Django)  Interact with all other services (nova, cinder, glance, swift, neutron)
  • 28.
    Keystone – IdentityManagement  OpenStack Identity provides user authentication and authorization to all OpenStack components  Supports multiple authentication mechanisms, including user name and password credentials, token-based systems, and AWS-style log-ins  User account management, including associated information such as a name and password
  • 29.
    Keystone – InternalServices  openstack-keystone  keystone
  • 30.
    Heat – Orchestration Automation and orchestration framework for OpenStack cloud  Consumes all other Openstack API's  Allows the user to define all his configuration (VM's, storage, network, packages, bootstrapping information) and kick it into a template  You can version your deployment and repeatable one  Includes monitoring and auto-scaling
  • 31.
    Additional Project  Trove- OpenStack Database-as-a-Service allows users to select, provision, and operate a variety of relational and non-relational database  Sahara – OpenStack Hadoop-as-a-Service allows rapidly configure, reliably auto- deploy and scale Hadoop clusters on OpenStack  Ironic – Bare metal provisioning that enables the user to provision physical, or bare metal machines, for a variety of hardware vendors with hardware-specific drivers  TripleO – TripleO is a community developed approach and set of tools for deploying, and managing an OpenStack cloud.  Ceilometer - Telemetry provides user-level usage data for OpenStack-based clouds
  • 32.
  • 33.
    Installation Methods  PackStack– OpenStack installer (deprecated – very good for POC’s and small deployments  DevStack – Development environment that allows developers to install basic OpenStack server and debug their code  TryStack – an easy way to try OpenStack on remote servers (http://trystack.org/)  TripleO - “OpenStack on OpenStack”. It is an official OpenStack project with the goal of allowing you to deploy and manage a production cloud onto bare metal hardware using a subset of existing OpenStack components
  • 34.
    Tempest  OpenStack integrationtesting suite  Includes set of integration tests to be run against a live OpenStack cluster  Both tests and infrastructure are written in Python  Based on Unittest2 and nose runner  Very good for API testing  Every developer code contributor must test his code in OpenStack CI environment before submission and code review
  • 35.
    Deployment Risks  Projectis fairly young  Relies mostly on Open Source (less stable – many bugs !)  No official support (unless you go for an official distro)  Can get really hard and complex to debug and troubleshoot problems  Requires knowledge in many fields such as storage, networking and compute including also Python to deploy and maintain a production OpenStack cloud
  • 36.
  • 37.
    The End Haim Ateya GroupManager, Quality Assurance, EMC Email: haim.ateya@emc.com LinkedIn: https://il.linkedin.com/in/haim-ateya-82b0b68