OpenStack
brief contents
contents
foreword
preface
acknowledgments
about this book
Why OpenStack in Action?
Roadmap
Who should read this book?
Code conventions and downloads
Author Online
About the author
About the cover
Part 1 Getting started
1 Introducing OpenStack
1.1 What is OpenStack?
1.2 Understanding cloud computing and OpenStack
1.2.1 Abstraction and the OpenStack API
1.3 Relating OpenStack to the computational resources it controls
1.3.1 OpenStack and hypervisors
1.3.2 OpenStack and network services
1.3.3 OpenStack and storage
1.3.4 OpenStack and cloud terminology
1.4 Introducing OpenStack components
1.5 History of OpenStack
1.6 Summary
2 Taking an OpenStack test-drive
2.1 What is DevStack?
2.2 Deploying DevStack
2.2.1 Creating the server
2.2.2 Preparing the server environment
2.2.3 Preparing DevStack
2.2.4 Executing DevStack
2.3 Using the OpenStack Dashboard
2.3.1 Overview screen
2.3.2 Access & Security screen
2.3.3 Images & Snapshots screen
2.3.4 Volumes screen
2.3.5 Instances screen
2.4 Accessing your first private cloud server
2.4.1 Assigning a floating IP to an instance
2.4.2 Permitting network traffic to your floating IP
2.5 Summary
1 Go to http://manning.com/bumgardner/ and download the VM image under Links.
2 Make sure you have VirtualBox installed (this VM image was tested with version 4.3.30).
3 Unzip the file devstack_icehouse_openstackinaction.
4 Double click the dev_stack_icehouse_openstackinaction.vbox file (or use command-line arguments—see the VirtualBox docs for details).
5 VirtualBox should now be launched, and you should see the devstack_icehouse_openstackinaction VM.
6 Start the devstack_icehouse_openstackinaction VM.
7 In the VM configuration, several ports are forwarded from the VM to your local host (IP=127.0.0.1). These ports include 2222 for SSH access to the VM and 8080 for access to the OpenStack Dashboard.
8 Once the VM is started, log in to the VM using the sysop ID and password u$osuser01 (for example, ssh -u sysop@127.0.0.1 -p 2222).
9 Once on the console, switch to the stack user: sudo -i -u stack.
10 Execute the rejoin script: sudo /opt/devstack/rejoin-stack.sh.
11 You’ll now see screens related to the output of OpenStack components. To select a specific screen, hold and release Control-+, and then press " (double- quotes). You’ll be presented with a list of screens.
3 Learning basic OpenStack operations
3.1 Using the OpenStack CLI
3.2 Using the OpenStack APIs
3.3 Tenant model operations
3.3.1 The tenant model
3.3.2 Creating tenants, users, and roles
3.3.3 Tenant networks
3.4 Quotas
3.4.1 Tenant quotas
3.4.2 Tenant-user quotas
3.4.3 Additional quotas
3.5 Summary
4 Understanding private cloud building blocks
4.1 How are OpenStack components related?
4.1.1 Understanding component communication
4.1.2 Distributed computing model
4.2 How is OpenStack related to vendor technologies?
4.2.1 Using vendor storage systems with OpenStack
4.2.2 Using vendor network systems with OpenStack
4.3 Why walk through a manual deployment?
4.4 Summary
Part 2 Walking through a manual deployment
5 Walking through a Controller deployment
5.1 Deploying controller prerequisites
5.1.1 Preparing the environment
5.1.2 Configuring the network interface
5.1.3 Updating packages
5.1.4 Installing software dependencies
5.2 Deploying shared services
5.2.1 Deploying the Identity Service (Keystone)
5.2.2 Deploying the Image Service (Glance)
5.3 Deploying the Block Storage (Cinder) service
5.3.1 Creating the Cinder data store
5.3.2 Configuring a Cinder Keystone user
5.3.3 Creating the Cinder service and endpoint
5.3.4 Installing Cinder
5.4 Deploying the Networking (Neutron) service
5.4.1 Creating the Neutron data store
5.4.2 Configuring a Neutron Keystone user
5.4.3 Installing Neutron
5.5 Deploying the Compute (Nova) service
5.5.1 Creating the Nova data store
5.5.2 Configuring a Nova Keystone user
5.5.3 Assigning a role to the nova user
5.5.4 Creating the Nova service and endpoint
5.5.5 Installing the Nova controller
5.6 Deploying the Dashboard (Horizon) service
5.6.1 Installing Horizon
5.6.2 Accessing Horizon
5.6.3 Debugging Horizon
5.7 Summary
6 Walking through a Networking deployment
6.1 Deploying network prerequisites
6.1.1 Preparing the environment
6.1.2 Configuring the network interfaces
6.1.3 Updating packages
6.1.4 Software and configuration dependencies
6.1.5 Installing Open vSwitch
6.1.6 Configuring Open vSwitch
6.2 Installing Neutron
6.2.1 Installing Neutron components
6.2.2 Configuring Neutron
6.2.3 Configuring the Neutron ML2 plug-in
6.2.4 Configuring the Neutron L3 agent
6.2.5 Configuring the Neutron DHCP agent
6.2.6 Configuring the Neutron Metadata agent
6.2.7 Restarting and verifying Neutron agents
6.2.8 Creating Neutron networks
6.2.9 Relating Linux, OVS, and Neutron
6.2.10 Checking Horizon
6.3 Summary
7 Walking through a Block Storage deployment
7.1 Deploying Block Storage prerequisites
7.1.1 Preparing the environment
7.1.2 Configuring the network interface
7.1.3 Updating packages
7.1.4 Installing and configuring the Logical Volume Manager
7.2 Deploying Cinder
7.2.1 Installing Cinder
7.2.2 Configuring Cinder
7.2.3 Restarting and verifying the Cinder agents
7.3 Testing Cinder
7.3.1 Create a Cinder volume: command line
7.3.2 Create a Cinder volume: Dashboard
7.4 Summary
8 Walking through a Compute deployment
8.1 Deploying Compute prerequisites
8.1.1 Preparing the environment
8.1.2 Configuring the network interface
8.1.3 Updating packages
8.1.4 Software and configuration dependencies
8.1.5 Installing Open vSwitch
8.1.6 Configuring Open vSwitch
8.2 Installing a hypervisor
8.2.1 Verifying your host as a hypervisor platform
8.2.2 Using KVM
8.3 Installing Neutron on Compute nodes
8.3.1 Installing the Neutron software
8.3.2 Configuring Neutron
8.3.3 Configuring the Neutron ML2 plug-in
8.4 Installing Nova on compute nodes
8.4.1 Installing the Nova software
8.4.2 Configuring core Nova components
8.4.3 Checking Horizon
8.5 Testing Nova
8.5.1 Creating an instance (VM): command line
8.6 Summary
Part 3 Building a production environment
9 Architecting your OpenStack
9.1 Replacement of existing virtual server platforms
9.1.1 Making deployment choices
9.1.2 What kind of network are you?
9.1.3 What type of storage are you?
9.1.4 What kind of server are you?
9.2 Why build a private cloud?
9.2.1 Public cloud economy-of-scale myth
9.2.2 Global scale or tight control
9.2.3 Keeping data gravity private
9.2.4 Hybrid moments
9.3 Building a private cloud
9.3.1 OpenStack deployment tools
9.3.2 Networking in your private cloud
9.3.3 Storage in your private cloud
9.4 Summary
10 Deploying Ceph
10.1 Preparing Ceph nodes
10.1.1 Node authentication and authorization
10.1.2 Deploying Ceph software
10.2 Creating a Ceph cluster
10.2.1 Creating the initial configuration
10.2.2 Deploying Ceph software
10.2.3 Deploying the initial configuration
10.3 Adding OSD resources
10.3.1 Readying OSD devices
10.3.2 Creating OSDs
10.4 Basic Ceph operations
10.4.1 Ceph pools
10.4.2 Benchmarking a Ceph cluster
10.5 Summary
11 Automated HA OpenStack deployment with Fuel
11.1 Preparing your environment
11.1.1 Network hardware
11.1.2 Server hardware
11.2 Deploying Fuel
11.2.1 Installing Fuel
11.3 Web-based basic Fuel OpenStack deployment
11.3.1 Server discovery
11.3.2 Creating a Fuel deployment environment
11.3.3 Configuring the network for the environment
11.3.4 Allocating hosts to your environment
11.3.5 Final settings and verification
11.3.6 Deploying changes
11.4 Summary
12 Cloud orchestration using OpenStack
12.1 OpenStack Heat
12.1.1 Heat templates
12.1.2 A Heat demonstration
12.2 Ubuntu Juju
12.2.1 Preparing OpenStack for Juju
12.2.2 Installing Juju
12.2.3 Deploying the charms CLI
12.2.4 Deploying the Juju GUI
12.3 Summary
appendix
Appendix Installing Linux
A.1 Getting started
A.2 Initial configuration
A.3 Network configuration
A.3.1 Manually configuring the adapter
A.3.2 Configuring host and domain names
A.4 User configuration
A.5 Disks and partitions
A.5.1 Configuring the block device (hard drive)
A.5.2 Configuring root and swap partitions and mount points
A.5.3 Finalizing the disk configuration
A.6 Base system configuration
index
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W