OpenStack
Hands On Session
Haim Ateya
Group Manager, EMC
Session Goals
Provide the audience with an hands-on experience on how to operate
OpenStack Cloud Infrastructure based on RDO distribution
Learn how to operate the various OpenStack components, configuration
files, command line usage and log files
Review the different installation types and methods, how to begin and
deploy your First OpenStack Cloud
Provide you with tools and knowledge on how to troubleshoot problems
when they happen, and how to fix them
Before We Begin
Demonstration will be done over an RDO Liberty installation of OpenStack
A pre-installed version of OpenStack server based on PackStack will be used
OpenStack is purely based on Linux and python
About RDO
Stands for: Redhat Distribution OpenStack
RDO is a community of people using and deploying OpenStack on CentOS,
Fedora, and Red Hat Enterprise Linux
The Open Source version launched by Red hat
Provides stable, documented and secured releases of OpenStack with full
documentation and support tool
RDO To RHOS
Is Like
Fedora To RHEL
PackStack basic installer based on python & puppet that works with
configuration files to establish a working cloud instance
About PackStack
Based on configuration files
Script that automates the installation process using puppet, RPM and YUM
Server must be pre-configured with all required RPM sources
Divided into sections for each one of the components {key: value}
Arch
Size
will be
Version
Installing:
openstack-packstack
noarch
1:7.0.0-0.10.dev1682.g42b3426.el7
openstack-liberty
234 k
Installed:
openstack-packstack.noarch 1:7.0.0-0.10.dev1682.g42b3426.el7
Complete!
Then edit the generated conf file using your favorite text editor
[root@rdo-openstack ~]# vim /tmp/rdo-openstack.conf
PackStack
What Could Go Wrong?
Everything.
In case of failure, inspect the following:
o Read log file and understand the error message
o Check network connectivity to all external servers
o Check security enhanced Linux (SELinux) configuration
o Make sure YUM repositories are configured correctly
o Make sure server has enough free disk space
Block storage:
o
o
o
o
Object storage:
o
o
o
o
Cinder - Features
Volumes:
o
Snapshots:
o
Backups:
o
Cinder Architecture
LSize
Pool Origin
25.00g
volume-
25.00g
volume-
25.00g
Cinder Commands
create
Create a volume
delete
Delete a volume
rename
Rename a volume
manage
list
show
snapshot-create
Creates a snapshot
snapshot-delete
migrate
Glance - Features
Boot from image
Create snapshots from image
Create image from volume
Glance Architecture
Glance Commands
Image-list
Image-create
Image-delete
Delete an image
Image-show
Image-update
Image-upload
member-list
location-add
location-delete
Swift Architecture
Proxy Server
The Ring
Storage Policies
Object Server
Container Server
Account Server
Replication
Auditors
Swift Architecture
Swift Commands
delete
download
list
post
stat
upload
capabilities
tempurl
Nova - Compute
Responsible for instance (VM) life cycle management
Support multiple hypervisors (KVM, Xen, LXC, Hyper-V, ESX)
Exposes a rich API and a set of components that interact with other
OpenStack components such as Glance, Cinder and Swift.
Nova - Components
Restful API nova-api
interface exposed on TCP
port 8774
AMQP message queue
used for RPC
communication
Nova Scheduler handles
hypervisor selection for
instance placement
Nova - Components
Nova compute acts as the
compute agent, interacts
with all relevant hypervisor
APIs to launch image \
guests
Nova Conductor handles DB
access (no-db-compute)
Console auth and proxies
handles guest console services
for novnc, spice, etc.
Nova Flavors
Virtual hardware templates which defines sizes for RAM disk,
number of cores, and so on
Default install provides five flavors
Admin may want to customize depending of the workload and hardware
Nova Commands
list
host-list
hypervisor-list
List hypervisors
network-list
image-create
interface-attach
interface-dettach
migrate
stop
start
get-vnc-console
virsh dumpxml
virsh capabilities
virsh migrate
virsh destroy
virsh create
Neutron Network
Provides networking as a service
Provides Rich Topologies
Technology Agnostic
Extensible
Advanced Services Support
o LBaaS, VPNaaS, FWaaS
Neutron - Features
Support for Overlapping Ips
o Tenant A: 192.168.0.0/24
o Tenant B: 192.168.0.0/24
Configuration
DHCP/Metadata
Floating Ips
Vlan \ GRE VXLAN \ Tunneling
Neutron - Concepts
Ports
Networks
Subnet
VIF (Virtual Interface)
Floating IP (NAT)
External network
Provider Network
Tenenat network
Neutron Architecture
Neutron Topology
Neutron Commands
net-list
port-list
router-list
subnet-list
router-create
subnet-create
firewall-create
net-create
net-gateway-create
Keystone Authentication
Keystone is an OpenStack project that
provides Identity, Token, Catalog and Policy
services for use specifically by projects in the
OpenStack family
Keystone Authentication
Provides authentication and authorization for all openstack components
Interacts with every service in the OpenStack domain and provide
access validation for each service using token validation
Keystone Internals
User: has account credentials, is associated with one or more tenants
Tenant: unit of ownership in openstack, contains one or more users
Role: a first-class piece of metadata associated with many user-tenant pairs.
Token: identifying credential associated with a user or user and tenant
Extras: bucket of key-value metadata associated with a user-tenant pair.
Rule: describes a set
--os-auth-
Keystone Commands
role-list
service-list
user-get
user-list
List users
tenant-list
endpoint-list
tenant-create
tenant-delete
Delete tenant
Horizon Dashboard
The OpenStack Dashboard (Horizon) provides a
baseline user interface for managing OpenStack
services."
Horizon - Dashboard
Is "Stateless"
Error handling is delegated to back-end
Doesn't support all API functions
Can use memcached or database to store
Sessions
Gets updated via nova-api polling
Horizon - Dashboard
Django based application that provides access to OpenStack services
Typically deployed as an Apache WSGI application
Leverage well known existing technologies
Horizon - Internals
2 subprojects
o horizon - generic Django libraries and components to work with RESTbased back-end
o Openstack-dashboard - web app itself, with styles, locale, etc.
Dashboard for each entity (like instances or images) - nested Django app
Horizon - Dashboard
Horizon - Logs
Log files are stored under Apache folder /var/log/httpd/
o access_log
o error_log
o horizon_access.log
o horizon_error.log
Troubleshooting OpenStack ?
Troubleshooting Guidelines
Start with the following questions:
o What triggered the failure ?
o Which of the components are involved ?
o Is the issue repeatable or its a one time occurrence ?
o Which logs should I start with ?
o Search the web \ forums \ chat rooms \ mailing lists
Useful Resources
RDO - https://www.rdoproject.org/
Miranits - https://www.mirantis.com/
OpenStack official site - http://www.openstack.org/
o Docs
o Training
o Learning
o Events
Ubuntu OpenStack - http://www.ubuntu.com/cloud/openstack
Q & A
Q & A