The OpenStack Foundation supported the creation of this book with plane tickets to Austin, lodging (including one adventurous evening without power after a windstorm), and delicious food. For about USD $10,000, we could collaborate intensively for a week in the same room at the Rackspace Austin office. The authors are all members of the OpenStack Foundation, which you can join. Go to the Foundation web site at

We want to acknowledge our excellent host Rackers at Rackspace in Austin:

  • Emma Richards of Rackspace Guest Relations took excellent care of our lunch orders and even set aside a pile of sticky notes that had fallen off the walls.

  • Betsy Hagemeier, a Fanatical Executive Assistant, took care of a room reshuffle and helped us settle in for the week.

  • The Real Estate team at Rackspace in Austin, also known as "The Victors," were super responsive.

  • Adam Powell in Racker IT supplied us with bandwidth each day and second monitors for those of us needing more screens.

  • On Wednesday night we had a fun happy hour with the Austin OpenStack Meetup group and Racker Katie Schmidt took great care of our group.

We also had some excellent input from outside of the room:

  • Tim Bell from CERN gave us feedback on the outline before we started and reviewed it mid-week.

  • Sébastien Han has written excellent blogs and generously gave his permission for re-use.

  • Oisin Feeley read it, made some edits, and provided emailed feedback right when we asked.

Inside the book sprint room with us each day was our book sprint facilitator Adam Hyde. Without his tireless support and encouragement, we would have thought a book of this scope was impossible in five days. Adam has proven the book sprint method effectively again and again. He creates both tools and faith in collaborative authoring at

We couldn't have pulled it off without so much supportive help and encouragement.


Introduction to OpenStack
Getting Started with OpenStack
Who This Book Is For
How This Book Is Organized
Why and How We Wrote This Book
How to Contribute to This Book
1. Example Architectures
Example Architecture - Legacy Networking (nova)
Example Architecture - OpenStack Networking
Parting Thoughts on Architectures
2. Provisioning and Deployment
Automated Deployment
Automated Configuration
Remote Management
Parting Thoughts for Provisioning and Deploying OpenStack
3. Designing for Cloud Controllers and Cloud Management
Hardware Considerations
Separation of Services
Message Queue
Conductor Services
Application Programming Interface (API)
Authentication and Authorization
Network Considerations
4. Compute Nodes
Choosing a CPU
Choosing a Hypervisor
Instance Storage Solutions
5. Scaling
The Starting Point
Adding Cloud Controller Nodes
Segregating Your Cloud
Scalable Hardware
6. Storage Decisions
Ephemeral Storage
Persistent Storage
OpenStack Storage Concepts
Choosing Storage Back ends
7. Network Design
Management Network
Public Addressing Options
IP Address Planning
Network Topology
Services for Networking
8. Lay of the Land
Using the OpenStack dashboard for Administration
Command-Line Tools
Network Inspection
Users and Projects
Running Instances
9. Managing Projects and Users
Projects or Tenants?
Managing Projects
User Management
Creating New Users
Associating Users with Projects
10. User-Facing Operations
Security Groups
Block Storage
Associating Security Groups
Floating IPs
Attaching Block Storage
Taking Snapshots
Instances in the Database
Good Luck!
11. Maintenance, Failures, and Debugging
Cloud Controller and Storage Proxy Failures and Maintenance
Compute Node Failures and Maintenance
Storage Node Failures and Maintenance
Handling a Complete Failure
Configuration Management
Working with Hardware
Determining Which Component Is Broken
12. Network Troubleshooting
Using "ip a" to Check Interface States
Nova-Network Traffic in the Cloud
OpenStack Networking Service Traffic in the Cloud
Finding a Failure in the Path
Network Configuration in the Database for Nova-Network
Debugging DHCP Issues with Nova-Network
Debugging DNS Issues
Troubleshooting Open vSwitch
Dealing with Network Namespaces
13. Logging and Monitoring
Where Are the Logs?
Reading the Logs
Tracing Instance Requests
Adding Custom Logging Statements
RabbitMQ Web Management Interface or rabbitmqctl
Centrally Managing Logs
14. Backup and Recovery
What to Backup
Database Backups
File System Backups
Recovering Backups
15. Customization
Create an OpenStack Development Environment
Customizing Object Storage (Swift) Middleware
Customizing the OpenStack Compute (nova) Scheduler
Customizing the Dashboard (Horizon)
16. Upstream OpenStack
Getting Help
Reporting Bugs
Join the OpenStack Community
How to Contribute to the Documentation
Security Information
Finding Additional Information
17. Advanced Configuration
Differences Between Various Drivers
Implementing Periodic Tasks
Specific Configuration Topics
18. Upgrades
Pre-upgrade Testing Environment
Preparing for a Roll Back
How to Perform an Upgrade from Grizzly to Havana - Ubuntu
How to Perform an Upgrade from Grizzly to Havana—Red Hat Enterprise Linux and Derivatives
Cleaning Up and Final Configuration File Updates
Rolling Back a Failed Upgrade
A. Use Cases
B. Tales From the Cryp^H^H^H^H Cloud
Double VLAN
The Issue
Disappearing Images
The Valentine's Day Compute Node Massacre
Down the Rabbit Hole
Havana Haunted by the Dead
C. Working with Roadmaps
Information Available to You
Influencing the Roadmap
Aspects to Watch
Replacement of Open vSwitch Plug-in with Modular Layer 2
Compute V3 API
OpenStack on OpenStack (TripleO)
Data Processing (Sahara)
Bare-Metal Deployment (Ironic)
Database as a Service (Trove)
Messaging as a Service (Marconi)
Scheduler Improvements
D. Resources
Questions? Discuss on
Found an error? Report a bug against this page

loading table of contents...