This document provides an overview of OpenStack. It begins with session goals of making the audience familiar with OpenStack, its community and architecture. It then covers the history, terminology, services, architecture, installation methods and risks. Key components discussed include Nova (compute), Neutron (networking), Cinder (block storage), Swift (object storage), Glance (image repository), Keystone (identity), Horizon (dashboard) and Heat (orchestration). The document provides details on each component and the OpenStack project timeline.
2. 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
3. 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
4. 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
5. 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.
6. 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
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
14. 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
15. 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
16. 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
18. 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
19. 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
20. Swift – Internal Services
openstack-swift-account
openstack-swift-container
openstack-swift-object
openstack-swift-proxy
swift
21. 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)
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)
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
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 – 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
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
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 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
35. 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