An Introduction To OpenStack
By Haim Ateya
07.11.2017
Introduction
 Married + 1
 Works for EMC as a Group Manager In the
Quality Assurance department of XtremIO
 Previous companies: Red hat, Microsoft,
Radware.
 Professional trainer for Linux, Storage,
DevOps and Cloud technologies
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
Definition of Cloud Computing
• Cloud computing, also known as 'on-demand computing', is a
kind of Internet-based computing, where shared resources, data
and information are provided to computers and other devices on-
demand.
• It is a model for enabling ubiquitous, on-demand access to a
shared pool of configurable computing resources
10 Amendments Of The Cloud
• Massive scale
• Agility  Elasticity
• Abstraction
• Automation
• Infinite capacity
• Converged API’s
• Quick provisioning of resources
• On demand service
• Metering (billing)
• Pay as you go
Applications
Data
Run Time
Middleware
OS
Virtualization
Servers
Storage
Networking
Applications
Data
Run Time
Middleware
OS
Virtualization
Servers
Storage
Networking
Applications
Data
Run Time
Middleware
OS
Virtualization
Servers
Storage
Networking
Applications
Data
Run Time
Middleware
OS
Virtualization
Servers
Storage
Networking
ITManaged
ITManaged
ITManaged
CloudProvider
Managed
CloudProvider
Managed
Cloud Service Types
What Is OpenStack ?
OpenStack is a cloud computing
project aimed at providing
an Infrastructure as a service (IaaS). ”
It’s Open Source!
Cloud Computing platform that will meet the needs of public and private
clouds regardless of size, by being simple to implement and massively
scalable.”
What OpenStack Provides ?
 Virtual machines on demand
 Virtual networks management
 Storage for VMs and arbitrary files
 Multi-tenancy
 Metering
 Orchestration
History
 Begun 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.
 15 releases to this point (Havana  Pike)
OpenStack In A Nutshell
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.
Cont.
 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
OpenStack Statistics (stackalytics.com)
 One of the fastest growing open-source communities in the world
with more than 15,0000 contributors
o Code submission
o Code reviews
o Testing
o Documentation
OpenStack Distributions
OpenStack Projects
Common Attributes
 API – each service has 3 sets of API’s
o CLI
o Rest
o GUI (via Horizon)
 Database – all services store their data on a rational data base (MariaDB)
 Scaling – each service support scale up  out of the different internal components
 Security & Access – keystone controls all access between the different services
 Communication – all services are communicating using AMQP
OpenStack Architecture (Start Point)
OpenStack Architecture (Advanced)
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.
Cont.
 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)
OpenStack
Components
Deployments
 Designed for scale
 Can be configured and deployed in many ways
 Main deployments are:
 All-in-one (POC’s)
 Standalone  multi-node
 Distributed  partly distributed
 Highly available
 Scale
OpenStack Production Deployment (Mirantis)
Cinder – Block Storage
 Responsible for block device provisioning of virtual machines
 Provides an API for various storage array vendors to manage their
block device and translate commands between Nova and other
services
 Best used for performance-sensitive scenarios, such as database
storage or expandable file systems
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
XtremIO Cinder Driver
• XtremIO provides a way to interact with OpenStack Cinder
component (block device API server)
• Cinder API allows cloud administrator manage volumes / snapshots and
attach / detach them to a virtual machine
• Cinder API allows simple access to any given storage array by exposing
a known set of commands (same command for NetApp, VMAX, XtremIO, HP,
Solid Fire and others).
• XtremIO Cinder driver is developed by the XMS plugins team (based on
RestAPI)
XtremIO Cinder Topology
Swift – Object Storage
 Provides an HTTP-accessible storage system for large amounts of data
 Objects are stored as binaries along with stored metadata
 Usually stores videos, images, email messages, files, or VM images
 Each object is stored with 3 replicas to ensure availability and redundancy of data
 Runs on commodity hardware
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 – Basic Architecture
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
Glance – Image Types
 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, VMware,
Xen, Microsoft, and
VirtualBox
 vdi (Qemu/VirtualBox)
 vmdk (VMware)
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
Nova – Cont.
 Compute supports the libvirt driver libvirtd that uses KVM as the
hypervisor. The hypervisor creates
oInstances  servers
oFlavors  instance type
oDrivers (for virt drivers)
oSupport bare metal provision
oSupport several API (for virtualization vendors)
Libvirt – Virtualization API
 A toolkit to interact with the virtualization capabilities of recent versions of Linux
 Libvirt supports the following virtualization engines:
o The KVM/QEMU Linux hypervisor
o The Xen hypervisor on Linux and Solaris hosts.
o The LXC Linux container system
o The VirtualBox hypervisor
o The VMware ESX and GSX hypervisors
o The Microsoft Hyper-V hypervisor
o The IBM PowerVM hypervisor
Nova - Flavors
 Virtual hardware templates which defines sizes for RAM disk,
number of cores, and so on
 Default install provides five flavors
 Admin may want to customize depending of the workload and
hardware
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
 Support FWaaS, LBaaS and VPNaaS
 Support GRE and VXLAN tunneling
Neutron – Concepts
 Ports
 Networks
 Subnet
 VIF (Virtual Interface)
 Floating IP (NAT)
 External network
 Provider Network
 Tenenat network
Neutron – Basic Topology
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)
Horizon – Quick Look
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
OpenStack – Additional Services
 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
 Heat – Automation and orchestration service
 Ceilometer - Telemetry provides user-level usage data or OpenStack-based clouds
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
 OpenStack Ansible – deploying OpenStack from ansible playbook files
Tempest – OpenStack CI Tool
 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
Risks
 Many stability issues
 Not enterprise  production ready
 Involves complex technologies
 Lack of support
 Open Source
 Requires unique skills
Q&A
Q & A
Q & A
The End.
Haim Ateya
Group Manager, Dell-EMC
Email: haim.ateya@emc.com
LinkedIn: https://il.linkedin.com/in/haimateya
Blog: https://blog.haimateya.tech

An Intrudction to OpenStack 2017

  • 1.
    An Introduction ToOpenStack By Haim Ateya 07.11.2017
  • 2.
    Introduction  Married +1  Works for EMC as a Group Manager In the Quality Assurance department of XtremIO  Previous companies: Red hat, Microsoft, Radware.  Professional trainer for Linux, Storage, DevOps and Cloud technologies
  • 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.
    Definition of CloudComputing • Cloud computing, also known as 'on-demand computing', is a kind of Internet-based computing, where shared resources, data and information are provided to computers and other devices on- demand. • It is a model for enabling ubiquitous, on-demand access to a shared pool of configurable computing resources
  • 5.
    10 Amendments OfThe Cloud • Massive scale • Agility Elasticity • Abstraction • Automation • Infinite capacity • Converged API’s • Quick provisioning of resources • On demand service • Metering (billing) • Pay as you go
  • 6.
    Applications Data Run Time Middleware OS Virtualization Servers Storage Networking Applications Data Run Time Middleware OS Virtualization Servers Storage Networking Applications Data RunTime Middleware OS Virtualization Servers Storage Networking Applications Data Run Time Middleware OS Virtualization Servers Storage Networking ITManaged ITManaged ITManaged CloudProvider Managed CloudProvider Managed Cloud Service Types
  • 7.
    What Is OpenStack? OpenStack is a cloud computing project aimed at providing an Infrastructure as a service (IaaS). ” It’s Open Source! Cloud Computing platform that will meet the needs of public and private clouds regardless of size, by being simple to implement and massively scalable.”
  • 8.
    What OpenStack Provides?  Virtual machines on demand  Virtual networks management  Storage for VMs and arbitrary files  Multi-tenancy  Metering  Orchestration
  • 9.
    History  Begun in2010 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.  15 releases to this point (Havana  Pike)
  • 10.
    OpenStack In ANutshell 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.
  • 11.
    Cont.  Controls largepools 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
  • 12.
    OpenStack Statistics (stackalytics.com) One of the fastest growing open-source communities in the world with more than 15,0000 contributors o Code submission o Code reviews o Testing o Documentation
  • 13.
  • 14.
  • 15.
    Common Attributes  API– each service has 3 sets of API’s o CLI o Rest o GUI (via Horizon)  Database – all services store their data on a rational data base (MariaDB)  Scaling – each service support scale up out of the different internal components  Security & Access – keystone controls all access between the different services  Communication – all services are communicating using AMQP
  • 16.
  • 17.
  • 18.
    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.
  • 19.
    Cont.  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)
  • 20.
  • 21.
    Deployments  Designed forscale  Can be configured and deployed in many ways  Main deployments are:  All-in-one (POC’s)  Standalone multi-node  Distributed partly distributed  Highly available  Scale
  • 22.
  • 23.
    Cinder – BlockStorage  Responsible for block device provisioning of virtual machines  Provides an API for various storage array vendors to manage their block device and translate commands between Nova and other services  Best used for performance-sensitive scenarios, such as database storage or expandable file systems
  • 24.
    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
  • 25.
    XtremIO Cinder Driver •XtremIO provides a way to interact with OpenStack Cinder component (block device API server) • Cinder API allows cloud administrator manage volumes / snapshots and attach / detach them to a virtual machine • Cinder API allows simple access to any given storage array by exposing a known set of commands (same command for NetApp, VMAX, XtremIO, HP, Solid Fire and others). • XtremIO Cinder driver is developed by the XMS plugins team (based on RestAPI)
  • 26.
  • 27.
    Swift – ObjectStorage  Provides an HTTP-accessible storage system for large amounts of data  Objects are stored as binaries along with stored metadata  Usually stores videos, images, email messages, files, or VM images  Each object is stored with 3 replicas to ensure availability and redundancy of data  Runs on commodity hardware
  • 28.
    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
  • 29.
    Swift – BasicArchitecture
  • 30.
    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
  • 31.
    Glance – ImageTypes  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, VMware, Xen, Microsoft, and VirtualBox  vdi (Qemu/VirtualBox)  vmdk (VMware)
  • 32.
    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
  • 33.
    Nova – Cont. Compute supports the libvirt driver libvirtd that uses KVM as the hypervisor. The hypervisor creates oInstances servers oFlavors instance type oDrivers (for virt drivers) oSupport bare metal provision oSupport several API (for virtualization vendors)
  • 34.
    Libvirt – VirtualizationAPI  A toolkit to interact with the virtualization capabilities of recent versions of Linux  Libvirt supports the following virtualization engines: o The KVM/QEMU Linux hypervisor o The Xen hypervisor on Linux and Solaris hosts. o The LXC Linux container system o The VirtualBox hypervisor o The VMware ESX and GSX hypervisors o The Microsoft Hyper-V hypervisor o The IBM PowerVM hypervisor
  • 35.
    Nova - Flavors Virtual hardware templates which defines sizes for RAM disk, number of cores, and so on  Default install provides five flavors  Admin may want to customize depending of the workload and hardware
  • 36.
    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  Support FWaaS, LBaaS and VPNaaS  Support GRE and VXLAN tunneling
  • 37.
    Neutron – Concepts Ports  Networks  Subnet  VIF (Virtual Interface)  Floating IP (NAT)  External network  Provider Network  Tenenat network
  • 38.
  • 39.
    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)
  • 40.
  • 41.
    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
  • 42.
    OpenStack – AdditionalServices  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  Heat – Automation and orchestration service  Ceilometer - Telemetry provides user-level usage data or OpenStack-based clouds
  • 43.
    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  OpenStack Ansible – deploying OpenStack from ansible playbook files
  • 44.
    Tempest – OpenStackCI Tool  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
  • 45.
    Risks  Many stabilityissues  Not enterprise production ready  Involves complex technologies  Lack of support  Open Source  Requires unique skills
  • 46.
  • 47.
    The End. Haim Ateya GroupManager, Dell-EMC Email: haim.ateya@emc.com LinkedIn: https://il.linkedin.com/in/haimateya Blog: https://blog.haimateya.tech