OpenStack
+
Communit
y
Communit
+
Communit
y
Technolog
y
creating open source software to build
public and private clouds
Software to provision virtual machines
on commodity hardware at massive
scale
Software to reliably store billions of
objects distributed across commodity
hardware
OpenStack C om pute
OpenStack O bjec t S tora g e
creating open source software to build
public and private clouds
OpenStack Mission
‣
“To produce the ubiquitous open source
cloud computing platform that will meet
the needs of public and private cloud
providers regardless of size, by being
s im ple to im plem ent and m a s s ively
s c a la ble.”
OpenStack Founding Principles
‣
Apache 2.0 license, no paid ‘enterprise’ version
‣Open design process, 2x year public Design
Summits
‣
Publicly available source code repository
‣
All community processes documented and
transparent
‣
Commitment to drive and adopt open standards
‣
Modular design for deployment flexibility via
Architect for
in-hous e Re-Architect for s ervic e provider
Architect onc e
Deploy
a nyw here
N o Standards W ith OpenStack
OpenStack History
Rackspace Decides to Open Source Cloud SoftwareMarch
NASA Open Sources Nebula PlatformMay
June
July
OpenStack formed b/w Rackspace and NASA Inaugural Design Summit in Austin
2
0
1
0
OpenStack History
OpenStack launches with
25+ partners
July
First ‘Austin’ code release with 35+
partners
October
November
February
First public Design Summit in San Antonio Second ‘Bexar’ code release planned
2
0
1
1
N A S A
Founding
members
operate at
massive scale
OpenStack Community
Today
HOW TO:
Turn Racks of
Commodity Hardware
Into a Cloud with
Start with an open, scalable platform
OpenStack C om pute OpenStack O bjec t S tora g e
C LO U D O S
U s er
C ontrol P a nel Tic ketingS ys tem M a na g em entN etw ork M onitoringS ys tem s M a na g em entH os t S erver
E C O S Y S T E M
OpenStack C om pute OpenStack O bjec t S tora g e
C LO U D O S
U s er
C ontrol P a nel Tic ketingS ys tem M a na g em entN etw ork M onitoringS ys tem s M a na g em entH os t S erver
A c c ount
B illing A dm in C L ITools L ive C ha tS upport M a na g em entA c c ount
E C O S Y S T E M
P U B L IC C L O U D
OpenStack C om pute OpenStack O bjec t S tora g e
C LO U D O S
U s er
C ontrol P a nel Tic ketingS ys tem M a na g em entN etw ork M onitoringS ys tem s M a na g em entH os t S erver
E C O S Y S T E M A dm in C ontrol P a nel D ept. A c c ounting C ha rg eba c k U s er
M a na g em ent Integ ra tion S ys tem sE nterpris e S oftw a re
P R IV A T E C L O U D
OpenStack C om pute OpenStack O bjec t S tora g e
C LO U D O S
OpenStack Compute Details
Software to provision virtual machines on commodity hardware at massive scale.
A s ync hronous eventua lly c ons is tent c om m unic a tion
R E S T-ba s ed A P I
H orizonta lly a nd m a s s ively s c a la ble
H ypervis or a g nos tic :
support for Xen ,XenServer, KVM, UML and Hyper-V is coming
H a rdw a re a g nos tic : commodity
hardware, RAID not required
API: Receives HTTP requests,
converts commands to/from API format, and sends requests to cloud controller
Cloud Cont roller: Global state of
system, talks to LDAP, OpenStack Object Storage, and node/storage workers through a queue
User Manager
ATAoE / iSCSI
Host Machines: workers
that spawn instances
Glance: HTTP + OpenStack Object
Storage for server images
S erver G roups
1 GigE Connectivity Dual Quad Core RAID 10 Drives
P ublic N etw ork
P riva te N etw ork
(intra data center)
M a na g em en t
Example OpenStack Compute Hardware
OpenStack Object Storage
Details
Software to reliably store billions of objects distributed across commodity hardwareREST-based A P I D a ta dis tributed evenly throughout system
H a rdw a re a g nos tic : commodity
hardware, RAID not required
OpenStack Storage Key Features
N o central
database
S c a la ble to multiple
petabytes, billions of objects
A c c ount/C onta iner/O bjec t
structure (not file system, no nesting) plus R eplic a tion (N copies of accounts, containers, objects)
System Components
‣ T he R ing : Mapping of names to entities (accounts,
containers, objects) on disk.
‣ Stores data based on zones, devices, partitions, and replicas ‣ Weights can be used to balance the distribution of partitions ‣ Used by the Proxy Server for many background processes
‣ P roxy S erver: Request routing, exposes the public API ‣ O bjec t S erver: Blob storage server, uses xattrs, uses
binary format
‣ Recommended to run on XFS
System Components (Cont.)
• C onta iner S erver: Handles listing of objects,
stores as SQLite DB
• A c c ount S erver: Handles listing of containers,
stores as SQLite DB
• R eplic ation: Keep the system consistent, handle
failures
• U pda ters : Process failed or queued updates
‣ A uditors : Verify integrity of objects, containers,
Software Dependencies
Object Storage (Swift) development currently targets Ubuntu Server 10.04, but should work on most Linux platforms with the following software:
‣ Python 2.6 ‣ rsync 3.0
And the following python libraries:
‣ Eventlet 0.9.8 ‣ WebOb 0.9.8 ‣ Setuptools ‣ Simplejson ‣ Xattr ‣ Nose ‣ Sphinx
Evolution of Object Storage
Architecture
Version 1: Cent ral DB (Rackspace 2009)
Version 2: Fully Dist ribut ed (OpenStack Object Storage 2009)
5 Z ones 2 Proxies per 25 Storage Nodes 10 GigE to Proxies 1 GigE to Storage Nodes 24 x 2TB Drives per Storage Node
P ublic Internet
Example OpenStack Object Storage
Hardware
Planning an OpenStack
Deployment
Requirements & Technology
Choices
Hardware Selection
‣ OpenStack is designed to run on industry standard
hardware with flexible configurations
‣ C om pute
‣ X86 Server
‣ Storage flexible (Local, SAN, NAS) ‣ O bjec t S tora g e
‣ X86 Server (other architectures possible)
Physical Hardware Remote Management Host Networking Host Seed OS Install Host OS Install Post OS Configuration Rack Cable Dell DRAC HP iLO IPMI DHCP BOOTP / TFTP GPXE Preseed Kickstart YAST Puppet Chef CFEngine Static
Bootstrapping Your Physical Nodes
Server Vendor Support
Find out how much configuration your hardware can provide ‣ B a s ic N eeds ‣ BIOS settings ‣ Network boot ‣ IP on IPMI card ‣ A dva nc ed S upport ‣ Host OS installation
‣ Build in a manner that requires minimal change ‣ Lay out addressing in a block-based model
‣ Go to Layer 3 from the top of rack uplink ‣ Keep configuration simple
‣ More bandwidth is better than advanced QoS
‣ Let the compute host machines create logical zones
Host Networking
‣ DHCP for the management network ‣ Infinite leases
‣ Base DNS on IP
‣ Ex. nh-pod-a-10-241-61-8.example.org
‣ OpenStack Compute handles IP provisioning for all
guest instances – Cloud deployment tools only need to setup management Ips
Host OS Seed Installation – Choosing a
Method
‣ BOOTP / TFTP – Simple to configure
‣ Security must be handled outside of TFTP
‣ Host node must be able to reach management
system via broadcast request
‣ Top of rack router can be configured to forward ‣ GPXE
‣ Not all hardware supports
Options to Automate Host OS
Installation
‣ Building a configuration based on a scripted installation
is better than a monolithic “golden image”
‣ KickPreseed for Ubuntu / Debian hosts ‣ start for Fedora / CentOS / RHEL hosts ‣ YaST for SUS / SLES hosts
‣ Scripted configuration allows for incremental updates
Post OS Configuration
‣ Choose a configuration management solution ‣ Puppet / Chef / Cfengine
‣ Create roles to scale out controller infrastructure ‣ Queue
‣ Database ‣ Controller
‣ Automate registration of new host machines
OpenStack Release Process: Four
Phases
‣
Design: Starting the day of the release to one
week after the summit (when the Blueprints are
accepted and prioritized)
‣
Development: until Feature Freeze date
‣
QA: until Final Freeze date
‣
Release: final testing and development tasks in
OpenStack Releases
Cactus:
April/May
2011
Bexar:
February
2011
Austin:
October 2010
• OpenStack Object Storage production-ready • OpenStack Computedeveloper preview, ready for testing and proofs of concept
• OpenStack Compute ready for enterprise
private cloud deployments and mid-size service
provider deployments
• Enhanced documentation • Easier to install and
deploy
•OpenStack Compute ready for large service provider scale
OpenStack Compute ‘Austin’ Release
Features
‣ Multi-hypervisor support: KVM, QEMU, User-Mode Linux, Xen and
XenServer
‣ Introduces official OpenStack API, while maintaining EC2 API option ‣ New image registry and delivery service, called the Glance project
‣ Support for two network models on compute nodes: VLANs with DHCP
and flat with either static IP pools or DHCP
‣ Addition of base scheduling service
‣ Implements WSGI to create a standard API layer with reusable
components
‣ Support for user-friendly naming
‣ Refactored ORM and networking code for simpler code that is easier to
understand
‣ Addition of SQLAlchemy Database toolkit so users can leverage
Object Storage ‘Austin’ Release
Features
‣ Addition of a stats system that produces per-account
hourly summaries of system usage
‣ Ability for users to set ACL’s and grant public access to
containers
‣ Support for API access to account and container
metadata
‣ Rate limiting was extended to allow requests to be
slowed down and support stair stepped rate limits based on container size
Join Us
‣ General Information: http://openstack.org
‣ Developers & Testers
‣ http://launchpad.net/openstack ‣ http://wiki.openstack.org ‣ Writers: http://wiki.openstack.org/Documentation ‣ Blog: http://openstack.org/blog ‣ Twitter: http://twitter.com/openstack ‣ Jobs: http://openstack.org/jobs