OpenStack: Building a Cloud Environment
By Shrivastwa Alok, Sarat Sunil, Kevin Jackson and
()
About this ebook
Learn how you can put the features of OpenStack to work in the real world in this comprehensive path
About This Book- Harness the abilities of experienced OpenStack administrators and architects, and run your own private cloud successfully
- Learn how to install, configure, and manage all of the OpenStack core projects including topics on Object Storage, Block Storage, and Neutron Networking services such as LBaaS and FWaaS
- Get better equipped to troubleshoot and solve common problems in performance, availability, and automation that confront production-ready OpenStack environments
This course is for those who are new to OpenStack who want to learn the cloud networking fundamentals and get started with OpenStack networking. Basic understanding of Linux Operating System, Virtualization, and Networking, and Storage principles will come in handy.
What You Will Learn- Get an introduction to OpenStack and its components
- Store and retrieve data and images using storage components, such as Cinder, Swift, and Glance
- Install and configure Swift, the OpenStack Object Storage service, including configuring Container Replication between datacenters
- Gain hands on experience and familiarity with Horizon, the OpenStack Dashboard user interface
- Learn how to automate OpenStack installations using Ansible and Foreman
- Follow practical advice and examples for running OpenStack in production
- Fix common issues with images served through Glance and master the art of troubleshooting Neutron networking
OpenStack is a collection of software projects that work together to provide a cloud fabric.
Learning OpenStack Cloud Computing course is an exquisite guide that you will need to build cloud environments proficiently. This course will help you gain a clearer understanding of OpenStack's components and their interaction with each other to build a cloud environment.
The first module, Learning OpenStack, starts with a brief look into the need for authentication and authorization, the different aspects of dashboards, cloud computing fabric controllers, along with 'Networking as a Service' and 'Software defined Networking'. Then, you will focus on installing, configuring, and troubleshooting different architectures such as Keystone, Horizon, Nova, Neutron, Cinder, Swift, and Glance. After getting familiar with the fundamentals and application of OpenStack, let's move deeper into the realm of OpenStack.
In the second module, OpenStack Cloud Computing Cookbook, preview how to build and operate OpenStack cloud computing, storage, networking, and automation. Dive into Neutron, the OpenStack Networking service, and get your hands dirty with configuring ML2, networks, routers, and distributed virtual routers. Further, you'll learn practical examples of Block Storage, LBaaS, and FBaaS.
The final module, Troubleshooting OpenStack, will help you quickly diagnose, troubleshoot, and correct problems in your OpenStack. We will diagnose and remediate issues in Keystone, Glance, Neutron networking, Nova, Cinder block storage, Swift object storage, and issues caused by Heat orchestration.
This Learning Path combines some of the best that Packt has to offer in one complete, curated package. It includes content from the following Packt products:
- Learning OpenStack by Alok Shrivastwa, Sunil Sarat
- OpenStack Cloud Computing Cookbook - Third Edition by Kevin Jackson , Cody Bunch, Egle Sigler
- Troubleshooting OpenStack by Tony Campbell
This course aims to create a smooth learning path that will teach you how to get started with setting up private and public clouds using a free and open source cloud computing platform—OpenStack. Through this comprehensive course, you'll learn OpenStack Cloud computing from scrat
Read more from Shrivastwa Alok
OpenStack Trove Essentials Rating: 0 out of 5 stars0 ratingsHybrid Cloud for Architects: Build robust hybrid cloud solutions using AWS and OpenStack Rating: 0 out of 5 stars0 ratings
Related authors
Related to OpenStack
Related ebooks
Troubleshooting Ubuntu Server Rating: 0 out of 5 stars0 ratingsLearning OpenStack Networking (Neutron) - Second Edition Rating: 0 out of 5 stars0 ratingsLearning OpenStack Networking (Neutron) Rating: 5 out of 5 stars5/5Production Ready OpenStack - Recipes for Successful Environments Rating: 0 out of 5 stars0 ratingsInfrastructure as Code (IAC) Cookbook Rating: 0 out of 5 stars0 ratingsBuilding Clouds with Windows Azure Pack Rating: 0 out of 5 stars0 ratingsLearning OpenStack Networking: Build a solid foundation in virtual networking technologies for OpenStack-based clouds Rating: 0 out of 5 stars0 ratingsNode.js Web Development - Third Edition Rating: 2 out of 5 stars2/5MCA Microsoft Certified Associate Azure Network Engineer Study Guide: Exam AZ-700 Rating: 0 out of 5 stars0 ratingsMastering Go Network Automation Rating: 0 out of 5 stars0 ratingsMastering Go Network Automation: Automating Networks, Container Orchestration, Kubernetes with Puppet, Vegeta and Apache JMeter Rating: 0 out of 5 stars0 ratingsMEAN Web Development - Second Edition Rating: 0 out of 5 stars0 ratingsMastering GeoServer Rating: 0 out of 5 stars0 ratingsOpenStack Essentials - Second Edition Rating: 0 out of 5 stars0 ratingsDocker Orchestration Rating: 0 out of 5 stars0 ratingsOpenStack Networking Essentials Rating: 0 out of 5 stars0 ratingsMEAN Web Development Rating: 5 out of 5 stars5/5IoT: Building Arduino-Based Projects Rating: 0 out of 5 stars0 ratingsManaging Microsoft Hybrid Clouds Rating: 0 out of 5 stars0 ratingsSnow Leopard Server Rating: 0 out of 5 stars0 ratingsMastering System Center Configuration Manager Rating: 0 out of 5 stars0 ratingsMastering CoreOS Rating: 0 out of 5 stars0 ratingsOpenNebula 3 Cloud Computing Rating: 0 out of 5 stars0 ratingsIBM WebSphere Application Server 8.0 Administration Guide Rating: 0 out of 5 stars0 ratingsAmazon Web Services: Migrating your .NET Enterprise Application Rating: 0 out of 5 stars0 ratingsAWS Certified Solutions Architect Study Guide: Associate SAA-C02 Exam Rating: 0 out of 5 stars0 ratingsKubernetes on AWS: Deploy and manage production-ready Kubernetes clusters on AWS Rating: 0 out of 5 stars0 ratingsWCF Multi-layer Services Development with Entity Framework - Fourth Edition Rating: 0 out of 5 stars0 ratingsWeb Application Development with MEAN Rating: 0 out of 5 stars0 ratings
System Administration For You
Learn PowerShell in a Month of Lunches, Fourth Edition: Covers Windows, Linux, and macOS Rating: 5 out of 5 stars5/5Linux Bible Rating: 0 out of 5 stars0 ratingsCybersecurity: The Beginner's Guide: A comprehensive guide to getting started in cybersecurity Rating: 5 out of 5 stars5/5Linux: Learn in 24 Hours Rating: 5 out of 5 stars5/5CompTIA A+ Complete Review Guide: Core 1 Exam 220-1101 and Core 2 Exam 220-1102 Rating: 5 out of 5 stars5/5Linux for Beginners: Linux Command Line, Linux Programming and Linux Operating System Rating: 4 out of 5 stars4/5Learning Microsoft Endpoint Manager: Unified Endpoint Management with Intune and the Enterprise Mobility + Security Suite Rating: 0 out of 5 stars0 ratingsLinux Command-Line Tips & Tricks Rating: 0 out of 5 stars0 ratingsPractical Data Analysis Rating: 4 out of 5 stars4/5Linux Commands By Example Rating: 5 out of 5 stars5/5Bash Command Line Pro Tips Rating: 5 out of 5 stars5/5Mastering Windows PowerShell Scripting Rating: 4 out of 5 stars4/5Learn PowerShell Scripting in a Month of Lunches Rating: 0 out of 5 stars0 ratingsThe Complete Powershell Training for Beginners Rating: 0 out of 5 stars0 ratingsNetworking for System Administrators: IT Mastery, #5 Rating: 5 out of 5 stars5/5Design and Build Modern Datacentres, A to Z practical guide Rating: 3 out of 5 stars3/5Windows Security Basics: User Accounts Rating: 0 out of 5 stars0 ratingsMastering Linux Shell Scripting,: A practical guide to Linux command-line, Bash scripting, and Shell programming Rating: 0 out of 5 stars0 ratingsRHCSA Exam Pass: Red Hat Certified System Administrator Study Guide Rating: 0 out of 5 stars0 ratingsGit Essentials Rating: 4 out of 5 stars4/5Linux: A complete guide to Linux command line for beginners, and how to get started with the Linux operating system! Rating: 0 out of 5 stars0 ratingsEmail Newsletter Strategies For Profit Rating: 0 out of 5 stars0 ratingsMastering Linux Network Administration Rating: 4 out of 5 stars4/5Wordpress 2023 A Beginners Guide : Design Your Own Website With WordPress 2023 Rating: 0 out of 5 stars0 ratingsPowerShell: A Comprehensive Guide to Windows PowerShell Rating: 4 out of 5 stars4/5Ethical Hacking Rating: 4 out of 5 stars4/5PowerShell: A Beginner's Guide to Windows PowerShell Rating: 4 out of 5 stars4/5
Reviews for OpenStack
0 ratings0 reviews
Book preview
OpenStack - Shrivastwa Alok
Table of Contents
OpenStack: Building a Cloud Environment
OpenStack: Building a Cloud Environment
Credits
Preface
What this course covers
What you need for this learning path
Who this learning path is for
Reader feedback
Customer support
Errata
Piracy
Questions
1. Module 1
1. An Introduction to OpenStack
Choosing an orchestrator
Building a private cloud
Commercial orchestrators
OpenStack
When to choose OpenStack?
OpenStack architecture
Service relationships
Services and releases history
Service functions
Keystone
Horizon
Nova
Glance
Swift
Cinder
Neutron
Heat
Ceilometer
Trove
Sahara
Designate
Ironic
Zaqar
Barbican
Manila
Murano
Magnum
Kolla
Congress
Service dependency maps
Preparing for the OpenStack setup
Selecting the services
Service layout
Controller node
Network node
Compute node
Storage node
Operating system
Network layout
Summary
2. Authentication and Authorization Using Keystone
Identity concepts in Keystone
User
Project (or tenant)
Role
Architecture and subsystems
Identity
Resource
Assignment
Policy
Token
Catalog
Installing common components
Setting up the database
Installing MariaDB
Step 1: Setting MariaDB repository
Step 2: Installing the MariaDB package
Configuring the database
Securing the database
Testing the installation
Setting up the messaging broker
Installing RabbitMQ
Step 1: Setting up the RabbitMQ repository
Step 2: Installing the RabbitMQ package
Configuring the RabbitMQ server
Testing the installation
Installing Keystone
Setting up the OpenStack repository
Creating the database
Installing the package
The initial configuration
Generating the admin token
Modifying the Keystone configuration file
Populating the Keystone DB
Setting up your first tenant
Setting up environment variables
Creating the tenant
Creating the user
Creating and mapping the role
Creating service endpoints
Creating the service
Creating the endpoint
Verifying the installation
Using Keystone CLI
Using the API
Troubleshooting the installation and configuration
DB sync errors
System language settings
Configuration errors
Failing Keystone commands
Service non-responsive
DNS issues
Network issues
Summary
3. Storing and Retrieving Data and Images using Glance, Cinder, and Swift
Introducing storage services
Working with Glance
Creating the database
Installing the packages
Initial configuration of Glance
Creating a user in Keystone
Creating a Glance service in Keystone
Creating a Glance endpoint
Modifying Glance configuration
Populating the Glance database
Finalizing the installation
Validating the installation
Working with Cinder
Controller node
Creating the database
Installing packages
Initial configuration
Creating a user in Keystone
Creating Cinder service in Keystone
Creating Cinder endpoints
Modifying the configuration files
Populating the Cinder database
Finalizing the installation
Storage node
Understanding the prerequisites
Installing the packages
Modifying the configuration files
Finalizing the installation
Validating the installation
Working with Swift
Controller node
Installing packages
Initial configuration
Creating a user in Keystone
Creating a Swift service in Keystone
Creating a Swift endpoint
Modifying the configuration files
The storage node
Understanding the prerequisites
Installing the packages
Modifying the configuration files
Account server configuration
Container server configuration
Object server configuration
Creating the rings
Account ring
Container ring
Object ring
Distributing the ring
Finalizing and validating the install
Troubleshooting steps
Swift authentication error
Ring files don't get created
Summary
4. Building Your Cloud Fabric Controller Using Nova
Working with Nova
Installing Nova components
Installing on the controller node
Creating the database
Installing components
Initial configuration
Creating the Nova user in Keystone
Creating the Nova service in Keystone
Creating the Nova endpoint in Keystone
Modifying the configuration file
Populating the database
Finalizing the installation
Installing on the compute node
Installing KVM
Installing Nova compute components
Modifying the host files
Modifying the configuration file
Finalizing the installation
Verifying the installation
Console access
Designing your Nova environment
Logical constructs
Region
Availability zone
The host aggregates
Virtual machine placement logic
Sample cloud design
Troubleshooting installation
Summary
5. Technology-Agnostic Network Abstraction Using Neutron
The software-defined network paradigm
What is an overlay network?
Components of overlay networks
Overlay technologies
GRE
VXLAN
Underlying network considerations
Open flow
Underlying network consideration
Neutron
Architecture of Neutron
The Neutron server
L2 agent
L3 agent
Understanding the basic Neutron process
Networking concepts in Neutron
Installing Neutron
Installing on the controller node
Creating the database
Installing Neutron control components
Initial configuration
Creating the Neutron user in Keystone
Creating the Neutron service in Keystone
Creating the Neutron endpoint in Keystone
Modifying the configuration files
Setting up the database
Finalizing the installation
Validating the installation
Installing on the network node
Setting up the prerequisites
Installing Neutron packages
Initial configuration on the network node
Neutron configuration
ML2 plugin
Configuring agents
Layer 3 agent
Layer 3 agent
Configuring the metadata agent
Setting up OVS
Finalizing the installation
Validating the installation
Installing on the compute node
Setting up the prerequisites
Installing packages
Initial configuration
Neutron configuration
ML2 plugin
Nova configuration
Finalizing the installation
Validating the installation
Troubleshooting Neutron
Summary
6. Building Your Portal in the Cloud
Working with Horizon
Some basic terminologies
System requirements to install Horizon
Installing Horizon
The initial configuration of Horizon
Finalizing the installation
Validating the installation
The structure of the Horizon dashboard
Troubleshooting Horizon
Understanding the Horizon log
Summary
7. Your OpenStack Cloud in Action
Gathering service requirements
Tenant and user management
GUI
Creating the project
Adding users
Associating users to the project
CLI
Creating the project
Creating the users
Associating users to the roles
Network management
Network types
Physical network
Virtual network
Tenant network
Provider network
Implementations of virtual networks
External network
Creating the network
Creating the subnet
Tenant network
Create the tenant network
Creating a subnet
Creating a router
Requesting services
Access and security
Security groups
Key pairs
Requesting your first VM
Creating a security group
Creating a key pair
Launching an instance
Using CLI tools
Generating a key pair
Requesting a server
Behind the scenes - how it all works
Creating VM templates
Installing Oz and its dependencies
RHEL/CentOS
Ubuntu
Oz templates
Creating VM templates using Oz
Uploading the image
Summary
8. Taking Your Cloud to the Next Level
Working with Heat
The components of Heat
Heat Orchestration Template (HOT)
Installing Heat
Creating the database
Installing components
The initial configuration
Creating a Heat user in Keystone
Creating additional Heat stack roles
Creating Heat services in Keystone
Creating Heat endpoints in Keystone
Modifying the configuration file
Populating the database
Finalizing the installation
Deploying your first HOT
Ceilometer
Installing Ceilometer
Installing Ceilometer on the controller node
Installing and configuring MongoDB
Creating the database
Installing packages
Initial configuration
Creating the Ceilometer user in Keystone
Creating the Ceilometer service
Creating the Ceilometer endpoint
Generating a random password
Editing the configuration files
Enabling the Glance notification
Enabling the Cinder notification
Enabling the Swift notification
Creating the ResellerAdmin role
Enabling notifications
Allowing Swift access to Ceilometer files
Finalizing the installation
Installing Ceilometer on the compute node
Installing the packages
Ceilometer-Agent-Compute
Initial configuration
Enable Nova notification
Finalizing the installation
Installing Ceilometer on the storage node
Enabling Cinder notification
Finalizing the installation
Testing the installation
Billing and usage reporting
Summary
9. Looking Ahead
OpenStack distributions
Devstack
Operating system distributions
Ubuntu OpenStack
RedHat OpenStack
Oracle OpenStack
Vendor offerings
VMware integrated OpenStack
Rackspace cloud
HP Helion
Cisco OpenStack
Mirantis OpenStack
SwiftStack
IBM Cloud manager
Suse Cloud
Other public clouds
Choosing a distribution
OpenStack in action
Enterprise Private Cloud
Service providers
Schools/Research centers
Web/SaaS providers
The roadmap
What is in it for you?
Summary
A. New Releases
The releases
Features and differences
Changes in the installation procedure
Adding the repository
The OpenStack client
Installing Keystone
Service configurations
Upgrading from Juno
Cleanup
Backup
Adding the repositories
Running the upgrade
Installing additional components
Updating the DB schema
Modifying configuration files
Restarting services
2. Module 2
1. Keystone – OpenStack Identity Service
Introduction
Installing the OpenStack Identity Service
Getting ready
How to do it...
How it works...
Configuring OpenStack Identity for SSL communication
Getting ready
How to do it...
How it works...
Creating tenants in Keystone
Getting ready
How to do it...
How it works...
Configuring roles in Keystone
Getting ready
How to do it...
How it works...
Adding users to Keystone
Getting ready
How to do it...
How it works...
Defining service endpoints
Getting ready
How to do it...
How it works...
Creating the service tenant and service users
Getting ready
How to do it...
How it works...
Configuring OpenStack Identity for LDAP Integration
Getting ready
How to do it...
How it works...
2. Glance – OpenStack Image Service
Introduction
Installing OpenStack Image Service
Getting ready
How to do it...
How it works...
See also
Configuring OpenStack Image Service with OpenStack Identity Service
Getting ready
How to do it...
How it works...
Configuring OpenStack Image Service with OpenStack Object Storage
Getting ready
How to do it...
How it works...
Managing images with OpenStack Image Service
Getting ready
How to do it...
Uploading Ubuntu images
Listing images
Viewing image details
Deleting images
Making private images public
How it works
Registering a remotely stored image
Getting ready
How to do it...
How it works...
Sharing images among tenants
Getting ready
How to do it...
How it works...
Viewing shared images
Getting ready
How to do it...
How it works...
Using image metadata
Getting ready
How to do it...
Updating image properties
Deleting all image properties
Deleting specific image properties
Using metadata for host scheduling
How it works...
See also
Migrating a VMware image
Getting ready
How to do it...
How it works...
Creating an OpenStack image
Getting ready
How to do it...
How it works...
3. Neutron – OpenStack Networking
Introduction
Installing Neutron and Open vSwitch on a dedicated network node
Getting ready…
How to do it...
How it works...
Configuring Neutron and Open vSwitch
Getting ready
How to do it...
How it works...
Installing and configuring the Neutron API service
Getting ready
How to do it...
How it works...
See Also
Creating a tenant Neutron network
Getting ready
How to do it...
How it works...
Deleting a Neutron network
Getting ready
How to do it...
How it works...
Creating an external floating IP Neutron network
Getting ready
How to do it...
How it works...
Using Neutron networks for different purposes
Getting ready
How to do it...
How it works...
Configuring Distributed Virtual Routers
Getting ready
How to do it...
Network node
The Controller Node
Compute nodes
How it works...
Using Distributed Virtual Routers
Getting ready
How to do it...
How it works...
4. Nova – OpenStack Compute
Introduction
Installing OpenStack Compute controller services
Getting ready
How to do it...
How it works...
Installing OpenStack Compute packages
Getting ready
How to do it...
How it works...
There’s more...
Using an alternative release
Configuring database services
Getting ready
How to do it...
How it works...
See also
Configuring OpenStack Compute
Getting ready
How to do it...
How it works...
There’s more...
See also
Configuring OpenStack Compute with OpenStack Identity Service
Getting ready
How to do it...
How it works...
Stopping and starting nova services
Getting ready
Controller
Compute
How to do it...
How it works...
Installation of command-line tools on Ubuntu
Getting ready
How to do it...
How it works...
See also
Using the command-line tools with HTTPS
Getting ready
How to do it...
How it works...
Checking OpenStack Compute services
Getting ready
How to do it...
How it works...
Using OpenStack Compute
Getting ready
How to do it...
How it works...
Managing security groups
Getting ready
How to do it...
Creating security groups
Removing a rule from a security group
Deleting a security group
How it works...
Defining groups and rules using Nova client
Creating and managing key pairs
Getting ready
How to do it...
Listing and deleting key pairs using Nova client
Listing the key pairs
Deleting the key pairs
How it works...
Launching our first cloud instance
Getting ready
How to do it...
How it works...
Fixing a broken instance deployment
Getting ready
How to do it...
How it works...
Terminating your instances
How to do it...
How it works...
Using live migration
Getting ready
Checking network connectivity
Ensuring resources
How to do it...
How it works...
Working with nova-schedulers
Getting ready
How to do it...
How it works...
There’s more...
Creating flavors
Getting ready
How to do it...
How it works...
Defining host aggregates
Getting ready
How to do it...
How it works...
Launching instances in specific Availability Zones
Getting ready
How to do it...
How it works...
Launching instances on specific Compute hosts
Getting ready
How to do it...
How it works...
Removing Nova nodes from a cluster
Getting ready
How to do it...
How it works...
5. Swift – OpenStack Object Storage
Introduction
Configuring Swift services and users in Keystone
Getting ready
How to do it...
How it works...
Installing OpenStack Object Storage services – proxy server
Getting ready
How to do it...
How it works...
Configuring OpenStack Object Storage – proxy server
Getting ready
How to do it...
How it works...
See also
Installing OpenStack Object Storage services – storage nodes
Getting ready
How to do it...
How it works...
Configuring physical storage for use with Swift
Getting ready
How to do it...
How it works...
Configuring Object Storage replication
Getting ready
How to do it...
How it works...
Configuring OpenStack Object Storage – storage services
Getting ready
How to do it...
How it works...
Making the Object Storage rings
Getting ready
How to do it...
How it works…
Stopping and starting OpenStack Object Storage
Getting ready
How to do it...
How it works...
Setting up SSL access
Getting ready
How to do it...
How it works...
6. Using OpenStack Object Storage
Introduction
Installing the swift client tool
Getting ready
How to do it...
How it works…
Creating containers
Getting ready
How to do it...
How it works...
Uploading objects
Getting ready
How to do it...
Uploading files
Uploading directories and their contents
Uploading multiple objects
How it works...
Uploading large objects
Getting ready
How to do it...
How it works...
Listing containers and objects
Getting ready
How to do it...
Listing all objects in a container
Listing specific object paths in a container
How it works...
Downloading objects
Getting ready
How to do it...
Downloading objects
Downloading objects with the -o parameter
Downloading all objects from a container
Downloading all objects from our OpenStack Object Storage account
How it works...
Deleting containers and objects
Getting ready
How to do it...
Deleting objects
Deleting multiple objects
Deleting containers
Deleting everything from our account
How it works...
Using OpenStack Object Storage ACLs
Getting ready
How to do it...
How it works
Using Container Synchronization between two Swift Clusters
Getting ready
How to do it...
How it works...
There's more…
7. Administering OpenStack Object Storage
Introduction
Managing the OpenStack Object Storage cluster with swift-init
Getting ready
How to do it...
How it works...
There's more…
Checking cluster health
Getting ready
How to do it...
How it works...
Managing the Swift cluster capacity
Getting ready
How to do it...
Proxy server creation
Storage node creation
How it works...
Removing nodes from a cluster
Getting ready
How to do it...
Proxy Server
How it works...
Detecting and replacing failed hard drives
Getting ready
How to do it...
Storage node
How it works...
Collecting usage statistics
Getting ready
How to do it...
How it works...
8. Cinder – OpenStack Block Storage
Introduction
Configuring Cinder-volume services
Getting ready
How to do it...
How it works...
Configuring OpenStack Compute for Cinder-volume
Getting ready
How to do it...
How it works...
Creating volumes
Getting ready
How to do it...
How it works...
Attaching volumes to an instance
Getting ready
How to do it...
How it works...
Detaching volumes from an instance
Getting ready
How to do it...
How it works...
Deleting volumes
Getting ready
How to do it...
How it works...
Configuring third-party volume services
Getting ready
How to do it...
How it works...
Working with Cinder snapshots
Getting ready
How to do it...
How it works...
Booting from volumes
Getting ready
How to do it...
How it works...
9. More OpenStack
Introduction
Using cloud-init to run post-installation commands
Getting ready
How to do it...
How it works...
There's more…
Using cloud-config to run the post-installation configuration
Getting ready
How to do it...
How it works...
There's more...
Installing OpenStack Telemetry
Getting ready
How to do it...
How it works...
Using OpenStack Telemetry to interrogate usage statistics
Getting ready
How to do it...
How it works...
Installing Neutron LBaaS
Getting ready
How to do it...
How it works...
Using Neutron LBaaS
Getting ready
How to do it...
How it works...
Configuring Neutron FWaaS
Getting ready
How to do it...
How it works...
Using Neutron FWaaS
Getting ready
How to do it...
How it works...
Installing the Heat OpenStack Orchestration service
Getting ready
How to do it...
How it works...
Using Heat to spin up instances
Getting ready
How to do it...
How it works...
10. Using the OpenStack Dashboard
Introduction
Installing OpenStack Dashboard
Getting ready
How to do it...
How it works...
Using OpenStack Dashboard for key management
Getting ready
How to do it...
Adding key pairs
Deleting key pairs
Importing key pairs
How it works...
Using OpenStack Dashboard to manage Neutron networks
Getting ready
How to do it...
Creating networks
Deleting networks
Viewing networks
How it works...
Using OpenStack Dashboard for security group management
Getting ready
How to do it...
Creating a security group
Editing security groups to add and remove rules
Deleting security groups
How it works...
Using OpenStack Dashboard to launch instances
Getting ready
How to do it...
How it works...
Using OpenStack Dashboard to terminate instances
Getting ready
How to do it...
How it works...
Using OpenStack Dashboard to connect to instances using a VNC
Getting ready
How to do it...
How it works...
Using OpenStack Dashboard to add new tenants – projects
Getting ready
How to do it...
How it works...
Using OpenStack Dashboard for user management
Getting ready
How to do it...
Adding users
Deleting users
Updating user details and passwords
Adding users to tenants
Removing users from tenants
How it works...
Using OpenStack Dashboard with LBaaS
Getting ready
How to do it...
Creating pools
Adding pool members
Adding a VIP to the Load Balancer pool
Deleting the Load Balancer
How it works...
Using OpenStack Dashboard with OpenStack Orchestration
Getting ready
How to do it...
Launching stacks
Viewing stack details
Deleting stacks
How it works...
11. Production OpenStack
Introduction
Installing the MariaDB Galera cluster
Getting ready
How to do it...
How it works...
Configuring HA Proxy for the MariaDB Galera cluster
Getting ready
How to do it...
How it works...
Configuring HA Proxy for high availability
Getting ready
How to do it...
OpenStack backend configuration using FloatingIP address
How it works...
Installing and configuring Pacemaker with Corosync
Getting ready
How to do it...
Setting up the first node – controller1
Setting up the second node – controller2
Configuring the first node – controller1
Configuring the second node – controller2
Starting the Pacemaker and Corosync services
How it works...
Configuring OpenStack services with Pacemaker and Corosync
Getting ready
How to do it...
Glance across two nodes with FloatingIP
Configuring Pacemaker for use with Glance and Keystone
How it works...
Bonding network interfaces for redundancy
Getting ready
How to do it...
How it works...
See also
Automating OpenStack installations using Ansible – host configuration
Getting ready
How to do it...
How it works...
Automating OpenStack installations using Ansible – Playbook configuration
Getting ready
How to do it...
How it works...
See also
Automating OpenStack installations using Ansible – running Playbooks
Getting ready
How to do it...
How it works...
There's more...
See also
3. Module 3
1. The Troubleshooting Toolkit
The project overview of OpenStack
Keystone
Glance
Neutron
Nova
Cinder
Swift
Heat
Ceilometer
Horizon
Oslo
Documentation
Ironic
Magnum
Trove
Barbican
Congress
Designate
The supporting technologies
Linux
Databases
Message queue
The Apache web server
Basic troubleshooting methodology and tools
General Linux tools
Linux processes
ps
pgrep
pkill
top and htop
Hard drives
df
fdisk
parted
cat /proc/partitions
Installed packages
General tools
The watch command
File tools
Message broker tools
RabbitMQ
Summary
2. Troubleshooting OpenStack Identity
Know your version
Running Keystone under Eventlet
Checking the Keystone service
Checking the Keystone client
Checking the OpenStack Client
The client debug mode
Checking the API
Keystone process not starting
Database stopped
The service catalog endpoint
Running under WSGI
mod_wsgi
wsgi-keystone.conf
Stopping the Eventlet process
Checking WSGI files
Checking the Keystone service
Summary
3. Troubleshooting the OpenStack Image Service
Glance services
Confirming the Glance database
Confirming the Glance authentication
Keystone up
Service User Set Up
The service user setup
Service endpoints correct
Confirming the Glance API setup
Checking the command-line interface client
Glance logging and configuration
The log level
Where to look
Searching logs
Common errors
Unable to establish connection
Internal server errors (HTTP 500)
Unable to validate token
Summary
4. Troubleshooting OpenStack Networking
Identifying Neutron issues
Neutron services and agents
Neutron logs
Common problems
When you can't ping an instance
Security groups
Network namespaces
No IP address
Troubleshooting tools
ovs-vsctl
The Neutron client
Summary
5. Troubleshooting OpenStack Compute
Checking the services
nova-api
Address already in use
The permission error
nova-scheduler
nova-compute
nova-conductor
Supporting services
The Nova database
Nova authentication
Keystone up
Setting up the service user
Service endpoints correct
Nova and Glance
Nova and Neutron
Summary
6. Troubleshooting OpenStack Block Storage
Cinder processes
Logging
Cinder dependencies
Keystone authentication problems
RabbitMQ problems
Cinder errors
Missing the cinder-volumes volume group
The volume stuck in the creating state
Insufficient free space
Not sending heartbeat
Summary
7. Troubleshooting OpenStack Object Storage
Swift processes
The proxy server
Swift authentication
Troubleshooting TempAuth
TempAuth configuration
The account and username
The password
400 Bad Request
Troubleshooting Swauth
Swauth initialization
Swift with Keystone
Swift users
Summary
8. Troubleshooting the OpenStack the Orchestration Service
Heat services
Running heat-api
Running heat-engine
Heat authentication
The Keystone service
Auth credentials
Heat template errors
Summary
9. Troubleshooting the OpenStack Telemetry Service
Ceilometer processes
Ceilometer authentication
Ceilometer dependencies
The message broker
Databases
The command-line client
The meter list command
Glance meters
Nova meters
The sample list
Summary
10. OpenStack Performance, Availability, and Reliability
Databases
Availability
MySQL with Galera Cluster
Postgres
Performance
MySQL
Show status
Mytop
The Mytop header section
The Mytop thread section
Percona Toolkit
Postgres
The PostgreSQL statistics collector
Database backups
Monitoring
Resource monitoring
OpenStack quotas
RabbitMQ
Clustering
Mirrored queues
Services
Monitoring service processes
Backing up services
Community resources
Testing
Bugs
Ask.openstack.org
Summary
A. Bibliography
Index
OpenStack: Building a Cloud Environment
OpenStack: Building a Cloud Environment
Learn how you can put the features of OpenStack to work in the real world in this comprehensive path
A course in three modules
OpenStack: Building a Cloud EnvironmentBIRMINGHAM - MUMBAI
OpenStack: Building a Cloud Environment
Copyright © 2016 Packt Publishing
All rights reserved. No part of this course may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this course to ensure the accuracy of the information presented. However, the information contained in this course is sold without warranty, either express or implied. Neither the authors, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this course.
Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this course by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
Published on: August 2016
Published by Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham B3 2PB, UK.
ISBN 978-1-78712-318-2
www.packtpub.com
Credits
Authors
Alok Shrivastwa
Sunil Sarat
Kevin Jackson
Cody Bunch
Egle Sigler
Tony Campbell
Reviewers
Dr. Ketan Maheshwari
Ben Silverman
Chris Beatty
Walter Bentley
Victoria Martinez de la Cruz
Stefan Lenz
Andy McCrae
Melissa Palmer
Sriram Rajan
Content Development Editor
Mayur Pawanikar
Production Coordinator
Nilesh Mohite
Preface
The cloud is the new IT paradigm and has moved beyond being probable to being inevitable. No one can ignore it. Organizations have embraced cloud for various reasons such as agility, scalability, capex reduction, and a faster time to market their products and services. The cloud operating system, or cloud control layer or cloud software system or simply put cloud orchestrator, is at the heart of building a cloud delivering IaaS. While there are many choices available as far as the cloud orchestrator goes, OpenStack is a popular choice in the open source segment.
OpenStack is rapidly gaining momentum and is poised to become the leader in this segment. Therefore, it becomes imperative for organizations and IT managers / support teams to have these critical OpenStack skills. The challenge, however, stems from the fact that OpenStack is not a single product, but is a collection of multiple open source projects. Therefore, the challenge really is to have an understanding of these projects independently along with their interactions with the other projects and how they all are orchestrated together. While there is documentation available from the OpenStack project, it is important to have the necessary knowledge to stitch all of these services/components together and build your own cloud
This course is specifically designed to quickly help you get up to speed with OpenStack and give you the confidence and understanding to roll it out into your own data centers. From test installations of OpenStack running under VirtualBox to automated installation recipes that help you scale out production environments, this course covers a wide range of topics that help you install and configure a private cloud. The skills you will learn in this course will help you position yourself as an effective OpenStack troubleshooter.
This course is an attempt to provide all the information that is just about sufficient to kick start your learning of OpenStack and build your own cloud. We hope you will enjoy reading this course and more importantly find it useful in your journey towards learning and mastering OpenStack.
What this course covers
Module 1, Learning OpenStack, It is imperative for all the aspiring cloud administrators to possess OpenStack skills if they want to succeed in the cloud-led IT infrastructure space. This module comprises of installation prerequisites and basic troubleshooting instructions to help you build an error-free OpenStack cloud easily.
Module 2, OpenStack Cloud Computing Cookbook, in this module will show you exactly how to install the components that are required to make up a private cloud environment. Further you will learn to install and configure the components that are required to make up a private cloud environment.
Module 3, Troubleshooting OpenStack, in this module we'll walk through each OpenStack service and see how you can quickly diagnose, troubleshoot, and correct problems in your OpenStack. It will also provide high value information so that you can solve issues in storage, networking and compute.
What you need for this learning path
Module 1:
The complete installation guidelines can be found at this URL:
http://docs.openstack.org/juno/install-guide/install/apt/content/
Module 2:
OpenStack runs on Linux. This module has been developed on Linux in a virtual environment such as VirtualBox or VMware Fusion or Workstation.
To run the accompanying virtual environment, you will need:
Hardware: At least 30Gb Disk with minimum 16Gb Ram
Software: Vagrant 1.6 or newer, VirtualBox 4.5 or newer or VMware Fusion/Workstation
Note: The accompanying virtual environment Vagrant scripts have not been tested on Windows. Please find the GitHub link for the supporting scripts for this module:
https://github.com/OpenStackCookbook/OpenStackCookbook
Module 3:
Software required through this module: Keystone, Glance, Neutron, Nova, Neutron, Cinder, Swift, Heat, Ceilometer, Elasticsearch, Logstash, Kibana with Ubuntu as the OS.
Who this learning path is for
This course is for those who are new to OpenStack who want to learn the cloud networking fundamentals and get started with OpenStack networking. Basic understanding of Linux Operating System, Virtualization, and Networking and Storage principles will come in handy.
Reader feedback
Feedback from our readers is always welcome. Let us know what you think about this course—what you liked or disliked. Reader feedback is important for us as it helps us develop titles that you will really get the most out of.
To send us general feedback, simply e-mail <feedback@packtpub.com>, and mention the course's title in the subject of your message.
If there is a topic that you have expertise in and you are interested in either writing or contributing to a course, see our author guide at www.packtpub.com/authors.
Customer support
Now that you are the proud owner of a Packt course, we have a number of things to help you to get the most from your purchase.
You can download the code files by following these steps:
Log in or register to our website using your e-mail address and password.
Hover the mouse pointer on the SUPPORT tab at the top.
Click on Code Downloads & Errata.
Enter the name of the course in the Search box.
Select the course for which you're looking to download the code files.
Choose from the drop-down menu where you purchased this course from.
Click on Code Download.
You can also download the code files by clicking on the Code Files button on the course's webpage at the Packt Publishing website. This page can be accessed by entering the course's name in the Search box. Please note that you need to be logged in to your Packt account.
Once the file is downloaded, please make sure that you unzip or extract the folder using the latest version of:
WinRAR / 7-Zip for Windows
Zipeg / iZip / UnRarX for Mac
7-Zip / PeaZip for Linux
The code bundle for the course is also hosted on GitHub at https://github.com/PacktPublishing/repository-name. We also have other code bundles from our rich catalog of books and videos available at https://github.com/PacktPublishing/. Check them out!
Errata
Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you find a mistake in one of our courses—maybe a mistake in the text or the code—we would be grateful if you could report this to us. By doing so, you can save other readers from frustration and help us improve subsequent versions of this course. If you find any errata, please report them by visiting http://www.packtpub.com/submit-errata, selecting your course, clicking on the Errata Submission Form link, and entering the details of your errata. Once your errata are verified, your submission will be accepted and the errata will be uploaded to our website or added to any list of existing errata under the Errata section of that title.
To view the previously submitted errata, go to https://www.packtpub.com/books/content/support and enter the name of the course in the search field. The required information will appear under the Errata section.
Piracy
Piracy of copyrighted material on the Internet is an ongoing problem across all media. At Packt, we take the protection of our copyright and licenses very seriously. If you come across any illegal copies of our works in any form on the Internet, please provide us with the location address or website name immediately so that we can pursue a remedy.
Please contact us at <copyright@packtpub.com> with a link to the suspected pirated material.
We appreciate your help in protecting our authors and our ability to bring you valuable content.
Questions
If you have a problem with any aspect of this course, you can contact us at <questions@packtpub.com>, and we will do our best to address the problem.
Part 1. Module 1
Learning OpenStack
Set up and maintain your own cloud-based Infrastructure as a Service (IaaS) using OpenStack
Chapter 1. An Introduction to OpenStack
Enterprises traditionally ran their IT services by running appropriate applications on a set of infrastructures and platforms. These were comprised of physical hardware in terms of compute, storage, and network along with software in terms of hypervisors, operating systems, and platforms. A set of experts from infrastructure, platform, and application teams would then put the pieces together and get a working solution tailored to the needs of the organization.
With the advent of virtualization and later on cloud, things have changed to a certain extent, primarily in the way things are built and delivered. Cloud, which has its foundations in virtualization, delivers a combination of relevant components as a service; be it Infrastructure as a Service (IaaS), Platform as a Service (PaaS), or Software as a Service (SaaS). In this book, we will only discuss how to provide a system with IaaS using an OpenStack-based private cloud. The key aspect of providing a system with IaaS is cross-domain automation. The system that helps us achieve this is called a Cloud Service Orchestrator or Cloud Platform or Cloud Controller. For the purposes of this book, we will refer to OpenStack as the Cloud Service Orchestrator. The Cloud Service Orchestrator or, simply put, the orchestrator is primarily responsible for the following:
The stitching together of hardware and software to deliver a defined service (in the context of our book, IaaS)
Automating the workflows that are required to deliver a service
Thus, in a cloud environment, the most important component is the orchestrator. There are several orchestrators; both free and open-source (FOSS) and commercial, which can help turn your virtualized IT infrastructure into a cloud.
Some of the choices in the FOSS segment for the orchestrators are as follows:
OpenStack
Apache CloudStack
Open Nebula
Some choices of commercial orchestrators are as follows:
VMware vRealize Automation and vRealize Orchestrator
VMware vCloud Director
Cisco Intelligent Automation for the cloud (CIAC) and UCS Director
Microsoft Opalis and Systems Center
BMC Atrium
In this book, we embark on a journey to understand the concepts, to install and configure the components of OpenStack, and finally, to build your own cloud using OpenStack. At the time of writing this book, OpenStack has been by far the most famous and widely adopted FOSS orchestrator or Cloud Software Platform in the market and the most comprehensive offering that provides IaaS among FOSS alternatives.
In this chapter, we will cover the following:
The differences between commercial orchestrators and FOSS orchestrators, and where each of these types of orchestrators fit well in today's world
The basic building blocks of a private cloud and how OpenStack is different from commercial orchestrators in building a private Cloud
The key differences between commercial orchestrators and OpenStack
An introduction to OpenStack architecture, services, and service dependencies
A preparation for OpenStack setup where we discuss the details of a test setup, which will lead us on a journey of building our own private cloud using OpenStack
Choosing an orchestrator
There are some key differences between commercial orchestrators, such as vRealize Automation and CIAC, and FOSS orchestrators, such as OpenStack. While both of them attempt to provide IaaS to users, it is important to understand the difference between both the types of orchestrator in order to appropriately design your Cloud.
Let's begin with commercial orchestrators; these provide a base IaaS to their users. They normally sit on top of a virtualized environment and enable an automated provisioning of compute, storage, and network, even though the extent of automation varies. As a part of the toolset, they also typically have a workflow engine, which in most cases provides us with an extensibility option.
The commercial orchestrators are a better choice when the entire orchestration needs to be plugged in to the current IT processes. They work wonderfully well when extensibility and integration are major tasks of the cloud environment, which is typically seen in large enterprises given the scale of operations, the type of business critical applications, and the maturity of IT processes.
In such large enterprises, in order to take full advantage of the private cloud, the integration and automation of the orchestrator in the IT systems of the company becomes necessary. This kind of orchestration is normally used when minimum changes are anticipated to be made to the applications. A primary use case of this is IaaS, where virtual machines are provisioned on a self-service basis and a very small learning curve is involved.
FOSS orchestrators are less extensible, but more standardized in terms of offerings. They offer standardized services that a user is expected to use as building blocks to offer a larger solution. In order to take full advantage of the FOSS orchestrators, some amount of recoding of applications is required as they need to make use of the newly offered services. The use cases here are both IaaS and PaaS (for example, Database as a Service, Message Queue as a Service, and so on).
For this reason, the APIs that are used among the FOSS orchestrators need to have some common ground. This common ground that we are talking about here is Amazon Web Services (AWS) API compatibility, as Amazon has emerged as the gold standard as far as the service-oriented cloud architecture is concerned. At the time of writing the book, OpenStack Nova still had AWS EC2 API compatibility, but this may be pushed out to the StackForge project.
Most FOSS orchestrators provide us with a way to use Amazon APIs wherever possible. It is for this reason that in the next section, we will compare the services available in OpenStack to the equivalent services offered by AWS.
Building a private cloud
Clouds fall under different categories depending on the perspective. If we look at it from an ownership and control standpoint, they will fall under private, public, hybrid, and community cloud categories. If we take a service perspective, it could be IaaS, PaaS, or SaaS. Let's look at the basic building blocks of a private cloud and understand how commercial orchestrators fit in vis-à-vis OpenStack.
Commercial orchestrators
The following block diagram shows the different building blocks of a cloud that are normally seen in a private implementation with a commercial orchestrator:
Commercial orchestratorsA private cloud with a commercial orchestrator
As we can see, in this private cloud setup, additional blocks such as Self Service Portal, Metering & Billing, and Workflows & Connectors sit on top of an already existing virtualized environment to provision a virtual machine, a stack of virtual machines, or a virtual machine with some application installed and configured over it.
While most of the commercial orchestrators are extensible, some of them have prebuilt plugins or connectors to most commonly used enterprise toolsets.
OpenStack
OpenStack doesn't natively support integration with enterprise toolsets, but in lieu of this, it provides more standardized services. OpenStack feels and behaves more like a public cloud inside an enterprise and provides more flexibility to a user. As you can see in the following diagram, apart from VM provisioning, services such as database, image storage, and so on are also provisioned:
OpenStackA private cloud with OpenStack
Please note that some of these services, which are provided as a part of the standard offering by OpenStack, can be also be orchestrated using commercial orchestrators. However, this will take some efforts in terms of additional automation and integration.
When to choose OpenStack?
So the big question is: under what circumstances should we choose OpenStack over the commercial orchestrators or vice versa? Let's look at the following table that compares the features that are significantly different.
Please note that the ease of installation and management are not covered in the following table:
So based on the previous table, OpenStack is an amazing candidate for an enterprise dev-test cloud and for providing public cloud-like services to an enterprise, while reusing existing hardware.
Note
The currently supported stable release of OpenStack is codenamed Liberty. This book will deal with Juno, but the core concepts and procedures will be fairly similar to the other releases of OpenStack. The differences between Juno, Kilo, and Liberty and the subtle differences between the installation procedures of these will be dealt with in the Appendix section of the book.
OpenStack has a very modular architecture. OpenStack is a group of different components that deliver specific functions and come together to create a full-fledged orchestrator.
OpenStack architecture
The following architecture diagram explains the architecture of the base components of the OpenStack environment. Each of these blocks and their subcomponents will be dealt with in detail in the subsequent chapters:
OpenStack architectureAn OpenStack block diagram
The gray boxes show the core services that OpenStack absolutely needs to run. The other services are optional and are called Big Tent services, without which OpenStack can run, but we may need to use them as required. In this book, we look at the core components and also look at Horizon, Heat, and Ceilometer in the Big Tent services.
Each of the previously mentioned components has their own database. While each of these services can run independently, they form relationships and have dependencies among each other. As an example, Horizon and Keystone provide their services to the other components of OpenStack and should be the first ones to be deployed.
Service relationships
The following diagram expands on the preceding block diagram and depicts the different relationships amongst the different services:
Service relationshipsService relationships
The service relationship shows that the services are dependent on each other. It is to be noted that all the services work together in harmony to produce the end product as a Virtual Machine (VM). So the services can be turned on or off depending on what kind of virtual machine is needed as the output. While the details of the services are mentioned in the next section, if, as an example, the VM or the cloud doesn't require advanced networking, you may completely skip the installation and configuration of the Neutron service.
Services and releases history
Not all the services of the OpenStack system were available from the first release. More services were added as the complexity of the orchestrator increased. The following table will help you understand the different services that can be installed, or should you choose to install another release in your environment:
The OpenStack services and releases
Note
At the time of writing, the only fully supported releases were Juno, Kilo, and Liberty. Icehouse is only supported from the security updates standpoint in the OpenStack community. There are, however, some distributions of OpenStack that are still available on older releases such as that of Icehouse. (You can read more about different distributions in the last chapter of the book.).
Service functions
It is important to know about the functions that each of these services performs. We will discuss the different services of OpenStack. In order to understand the functions more clearly, we will also draw parallels with the services from AWS. So if you ever want to compare your private cloud with the most used public cloud, you can.
Please refer to the preceding table in order to see the services that are available in a particular OpenStack release.
Keystone
This service provides identity and access management for all the components of OpenStack. It has internal services such as identity, resource, assignment, token, catalog, and policy, which are exposed as an HTTP frontend.
So if we are logging in to Horizon or making an API call to any component, we have to interact with the service and be able to authenticate ourselves in order to use it. The policy services allow the setting up of granular control over the actions allowed by a user for a particular service. The service supports federation and authentication with an external system such as an LDAP server.
This service is equivalent to the IAM service of the AWS public cloud.
Horizon
Horizon provides us with a dashboard for both self-service and day-to-day administrative activities. It is a highly extensible Django project where you can add your own custom dashboards if you choose to. (The creation of custom dashboards is beyond the scope of this book and is not covered here).
Horizon provides a web-based user interface to OpenStack services including Nova, Swift, Keystone, and so on.
This can be equated to the AWS console, which is used to create and configure the services.
Nova
Nova is the compute component of OpenStack. It's one of the first services available since the inception as it is at the core of IaaS offering.
Nova supports various hypervisors for virtual machines such as XenServer, KVM, and VMware. It also supports Linux Containers (LXC) if we need to minimize the virtualization overhead. In this book, we will deal with LXC and KVM as our hypervisors of choice to get started.
It has various subcomponents such as compute, scheduler, xvpvncproxy, novncproxy, serialproxy, manage, API, and metadata. It serves an EC2 (AWS)-compatible API. This is useful in case you have a custom system such as ITIL tool integration with EC2 or a self-healing application. Using the EC2 API, this will run with minor modifications on OpenStack Nova.
Nova also provides proxy access to a console of guest virtual machines using the VNC proxy services available on hypervisors, which is very useful in a private cloud environment. This can be considered equivalent to the EC2 service of AWS.
Glance
Glance service allows the storage and retrieval of images and corresponding metadata. In other words, this will allow you to store your OS templates that you want to be made available for your users to deploy. Glance can store your images in a flat file or in an object store (such as Swift).
Swift
Swift is the object storage service of OpenStack. This service is primarily used to store and retrieve Binary Large Object (BLOBs). It has various subservices such as ring, container server, updater, and auditors, which have a proxy server as their frontend.
The swift service is used to actually store Glance images. As a comparison, the EC2 AMIs are stored in your S3 bucket.
The swift service is equivalent to the S3 storage service of AWS.
Cinder
Cinder provides block storage to the Nova VMs. Its subsystems include a volume manager, a SQL database, an authentication manager, and so on. The client uses AQMP such as Rabbit MQ to provide its services to Nova. It has drivers for various storage systems such as Cloud Byte, Gluster FS, EMC VMAX, Netapp, Dell Storage Centre, and so on.
This service provides similar features to the EBS service of AWS.
Neutron
Previously known as Quantum, Neutron provides networking as a service. There are several functionalities that it provides such as Load Balancer as a Service and Firewall as a Service. This is an optional service and we can choose not to use this, as basic networking is built into Nova. Also, Nova networking is being phased out. Therefore, it is important to deal with Neutron, as 99 percent of OpenStack implementations have implemented Neutron in their network services.
The system, when configured, can be used to create multi-tiered isolated networks. An example of this could be a full three-tiered network stack for an application that needs it.
This is equivalent to multiple services in AWS such as ELB, Elastic IP, and VPC.
Heat
Heat is the core orchestration service of the orchestrator. What this means is that you can script the different components that are being spun up in an order. This is especially helpful if we want to deploy multicomponent stacks. The system integrates with most of the services and makes API calls in order to create and configure different components.
The template used in Heat is called Heat Orchestrator Template (HOT). It is actually a single file in which you can script multiple actions. As an example, we can write a template to create an instance, some floating IPs and security groups, and even create some users in Keystone.
The equivalent of Heat in AWS would be the cloud formation service.
Ceilometer
Ceilometer service is used to collect metering data. There are several subsystems in the Ceilometer such as polling agent, notification agent, collector, and API. This also allows the saving of alarms abstracted by a storage abstraction layer to one of the supported databases such as Mongo DB, Hbase, or SQL server.
Trove
Trove is the Database as a Service component of OpenStack. This service uses Nova to create the compute resource to run DBaaS. It is installed as a bunch of integration scripts that run along with Nova. The service requires the creation of special images that are stored in Glance.
This is equivalent to the RDS service of AWS.
Sahara
Sahara service is the Big Data service of OpenStack; it is used to provision a Hadoop cluster by passing a few parameters. It has several components such as Auth component, Data Access Layer, Provisioning Engine, and Elastic Data Processing.
This is very close to getting the MapReduce AWS service in your very own cloud.
Designate
The Designate service offers DNS services equivalent to Route 53 of the AWS. The service has various subsystems such as API, the Central/Core service, the Mini DNS service, and Pool Manager. It has multiple backend drivers that can be used, examples being PowerDNS, BIND, NSD, and DynECT. We can create our own backend drivers as well.
Ironic
The Ironic service allows bare metal provisioning using technologies such as the PXE boot and the Intelligent Platform Management Interface (IPMI). This will allow bare metal servers to be provisioned provided we have the requisite drivers for them.
Please remember that the requisite networking elements have to be configured, for example, the DNS, DHCP configuration and so on, which are needed for the PXE boot to work.
Zaqar
Zaqar is the messaging and notification service of OpenStack. This is equivalent to the SNS service from AWS. It provides multitenanted HTTP-based messaging API that can be scaled horizontally as and when the need arises.
Barbican
Barbican is the key management service of