an intrudction to openstack 2017
TRANSCRIPT
An Introduction To OpenStack
By Haim Ateya07.11.2017
Introduction
Married + 1
Works for EMC as a Group Manager In the Quality Assurance department of XtremIO
Previous companies: Red hat, Microsoft, Radware.
Professional trainer for Linux, Storage, DevOps and Cloud technologies
Agenda
Quick introduction to OpenStack project
Explain the OpenStack architecture and how its built
Get you familiar with the different terminology and concepts
Get you familiar with OpenStack services (components)
Go over installation methods and tools
Review risks
Definition of Cloud Computing
• Cloud computing, also known as 'on-demand computing', is a kind of Internet-based computing, where shared resources, data and information are provided to computers and other devices on-demand.
• It is a model for enabling ubiquitous, on-demand access to a shared pool of configurable computing resources
10 Amendments Of The Cloud
• Massive scale
• Agility \ Elasticity
• Abstraction
• Automation
• Infinite capacity
• Converged API’s
• Quick provisioning of resources
• On demand service
• Metering (billing)
• Pay as you go
Applications
Data
Run Time
Middleware
OS
Virtualization
Servers
Storage
Networking
Applications
Data
Run Time
Middleware
OS
Virtualization
Servers
Storage
Networking
Applications
Data
Run Time
Middleware
OS
Virtualization
Servers
Storage
Networking
Applications
Data
Run Time
Middleware
OS
Virtualization
Servers
Storage
Networking
IT Man
aged
IT Man
aged
IT Man
aged
Clo
ud
Pro
vide
r M
anage
d
Clo
ud
Pro
vide
r M
anage
d
Cloud Service Types
What Is OpenStack ?
OpenStack is a cloud computing project aimed at providing an Infrastructure as a service (IaaS). ”
It’s Open Source!
Cloud Computing platform that will meet the needs of public and private clouds regardless of size, by being simple to implement and massively scalable.”
What OpenStack Provides ?
Virtual machines on demand
Virtual networks management
Storage for VMs and arbitrary files
Multi-tenancy
Metering
Orchestration
History
Begun in 2010 as a joint project of Rackspace hosting and NASA to build Cloud based operating system
Free and open source software platform under the apache license
Actively driven by a strong open-source community with thousands of developers and more than 500 companies that actively contributing to the project: IBM, Red Hat, HP, Cisco, Intel, Google, Oracle, Dell, EMC, VMware.
15 releases to this point (Havana Pike)
OpenStack In A Nutshell
Cloud operating system that controls large pools of compute, storage, and networking resources throughout a datacenter, all managed through a dashboard that gives administrators control while empowering their users to provision resources through a web interface.
Cont.
Controls large pools of storage, network and compute resources throughout a data-center.
Believes in open source, open design, open development, all in an open community that encourages participation by anyone
Consists of a series of interrelated projects delivering various components for a cloud infrastructure solution
OpenStack Statistics (stackalytics.com)
One of the fastest growing open-source communities in the world with more than 15,0000 contributors
o Code submission
o Code reviews
o Testing
o Documentation
OpenStack Distributions
OpenStack Projects
Common Attributes
API – each service has 3 sets of API’s
o CLI
o Rest
o GUI (via Horizon)
Database – all services store their data on a rational data base (MariaDB)
Scaling – each service support scale up \ out of the different internal components
Security & Access – keystone controls all access between the different services
Communication – all services are communicating using AMQP
OpenStack Architecture (Start Point)
OpenStack Architecture (Advanced)
Terminology
PTL – Project Team Lead for one of OpenStack projects (cinder, glance, swift, etc.)
Blueprint – a detailed suggestion for new code enhancement \project in upstream (Open Source community)
Incubation – the process in which new project is maintained until it becomes one of the core projects
Instance – virtual machine running in Nova node
Image – an attribute of a virtual machine which includes disk and OVF
Tenant – logical entity that creates a shared pool of resources (network, storage, compute, security) between users & groups.
Cont.
Flavor - virtual hardware templates which defines the hardware characteristics of a virtual machine (tiny, medium, large, small)
Volume – virtual disk attached to a VM instance (mostly refers to block device)
OpenStack Components
Deployments
Designed for scale
Can be configured and deployed in many ways
Main deployments are:
All-in-one (POC’s)
Standalone \ multi-node
Distributed \ partly distributed
Highly available
Scale
OpenStack Production Deployment (Mirantis)
Cinder – Block Storage
Responsible for block device provisioning of virtual machines
Provides an API for various storage array vendors to manage their block device and translate commands between Nova and other services
Best used for performance-sensitive scenarios, such as databasestorage or expandable file systems
Cinder – Basic Features
Create/delete volumes
Specify custom "types/extra-specs”
Clone
Copy image to volume and volume to
image
Point in time copy (snapshots of
volumes)
Create volume from snapshot
Backup volume (to object store, SWIFT
and CEPH)
Transfer volume ownership
Per tenant quota
Customized scheduling filters
XtremIO Cinder Driver
• XtremIO provides a way to interact with OpenStack Cinder component (block device API server)
• Cinder API allows cloud administrator manage volumes / snapshots and attach / detach them to a virtual machine
• Cinder API allows simple access to any given storage array by exposinga known set of commands (same command for NetApp, VMAX, XtremIO, HP, Solid Fire and others).
• XtremIO Cinder driver is developed by the XMS plugins team (based on RestAPI)
XtremIO Cinder Topology
Swift – Object Storage
Provides an HTTP-accessible storage system for large amounts of data
Objects are stored as binaries along with stored metadata
Usually stores videos, images, email messages, files, or VM images
Each object is stored with 3 replicas to ensure availability and redundancy of data
Runs on commodity hardware
Swift – Basic Features
Distributed
Scalable to several Peta-bytes
Highly available (by design)
Robust
S3 API support
Can work on simple
(commodity hardware)
Support several storage types
Quotas and access control
Swift – Basic Architecture
Glance – Image Repository
OpenStack Image service acts as a registry for virtual disk images
Users can add new images or take a snapshot of an existing server for immediate storage
Registered images can be stored in the Object Storage service or in other locations, such as simple file systems or external Web servers
Glance – Image Types
aki/ami/ari (Amazon kernel, ramdisk, or machine image)
iso (archive format for optical discs, such as CDs)
qcow2 (Qemu/KVM, supports Copy on Write)
raw (unstructured format)
vhd - Hyper-V, VMware, Xen, Microsoft, and VirtualBox
vdi (Qemu/VirtualBox)
vmdk (VMware)
Nova – Compute
OpenStack Compute serves as the core of the OpenStack cloud by providing virtual machines on demand
Compute schedules virtual machines to run on a set of nodes by defining drivers that interact with underlying virtualization mechanisms
Compute interacts with the Identity service to authenticate instance and database access
Nova – Cont.
Compute supports the libvirt driver libvirtd that uses KVM as the hypervisor. The hypervisor creates
o Instances \ servers
o Flavors \ instance type
oDrivers (for virt drivers)
o Support bare metal provision
o Support several API (for virtualization vendors)
Libvirt – Virtualization API
A toolkit to interact with the virtualization capabilities of recent versions of Linux
Libvirt supports the following virtualization engines:
o The KVM/QEMU Linux hypervisor
o The Xen hypervisor on Linux and Solaris hosts.
o The LXC Linux container system
o The VirtualBox hypervisor
o The VMware ESX and GSX hypervisors
o The Microsoft Hyper-V hypervisor
o The IBM PowerVM hypervisor
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
Neutron – Networking (SDN)
Handles management of virtual network infrastructure in OpenStack cloud
Including networks, subnets, routers, switches, firewalls and VPN.
Users can create network, control traffic and connect servers and devices to
one or more networks
Flexible networking models
Support FWaaS, LBaaS and VPNaaS
Support GRE and VXLAN tunneling
Neutron – Concepts
Ports
Networks
Subnet
VIF (Virtual Interface)
Floating IP (NAT)
External network
Provider Network
Tenenat network
Neutron – Basic Topology
Horizon - Dashboard
Self service UI (allows you to see and manage your cloud)
Python WSGI application (written in python)
Stateless client of OpenStack API's
Support Horizontal scaling
Session state must be kept (using Django)
Interact with all other services (nova, cinder, glance, swift, neutron)
Horizon – Quick Look
KeyStone – Identity Management
OpenStack Identity provides user authentication and authorization to all OpenStack components
Supports multiple authentication mechanisms, including user name and password credentials, token-based systems, and AWS-style log-ins
User account management, including associated information such as a name and password
OpenStack – Additional Services
Trove - OpenStack Database-as-a-Service allows users to select, provision, and operate a variety of relational and non-relational database
Sahara – OpenStack Hadoop-as-a-Service allows rapidly configure, reliably auto-deploy and scale Hadoop clusters on OpenStack
Ironic – Bare metal provisioning that enables the user to provision physical, or bare metal machines, for a variety of hardware vendors with hardware-specific drivers
Heat – Automation and orchestration service
Ceilometer - Telemetry provides user-level usage data or OpenStack-based clouds
Installation Methods
PackStack – OpenStack installer (deprecated – very good for POC’s and small deployments
DevStack – Development environment that allows developers to install basic OpenStack server and debug their code
TryStack – an easy way to try OpenStack on remote servers (http://trystack.org/)
TripleO - “OpenStack on OpenStack”. It is an official OpenStack project with the goal of allowing you to deploy and manage a production cloud onto bare metal hardware using a subset of existing OpenStack components
OpenStack Ansible – deploying OpenStack from ansible playbook files
Tempest – OpenStack CI Tool
OpenStack integration testing suite
Includes set of integration tests to be run against a live OpenStack cluster
Both tests and infrastructure are written in Python
Based on Unittest2 and nose runner
Very good for API testing
Every developer \ code contributor must test his code in OpenStack CI
environment before submission and code review
Risks
Many stability issues
Not enterprise \ production ready
Involves complex technologies
Lack of support
Open Source
Requires unique skills
Q&A
Q & A
Q & A
The End.
Haim AteyaGroup Manager, Dell-EMC Email: [email protected]: https://il.linkedin.com/in/haimateyaBlog: https://blog.haimateya.tech