Introduction to OpenStack Nabil Abdennadher, HES-SO
What is OpenStack ? • Free and open-source cloud-computing software platform. • Provides services for managing a Cloud environment on the fly. • Consists of a group of interrelated projects that control pools of processing, storage, networking resources, authentication, storage, etc. • Initially designed to provide services for an IaaS • Today, OpenStack provides “high level” services 2
Plan • OpenStack (architecture, projects, services) • A use-case: hepiaCloud. Learned lessons • OpenStack client • OpenStack SDK 3
A bit of OpenStack history • 2005-2010: Rackspace develops their cloud solution • March 2010 - decides to open source it • May 2010 - NASA open sources its Nebula platform • June 2010 - NASA and Rackspace join hands to create OpenStack • July 2010 - Inaugural design summit in Austin convened with 25+ partners • August 2011: Canonical backs OpenStack • Oct 2011 - DELL adopts OpenStack • 2012 - AT&T, HP, VMWare, Intel, NEC joins OpenStack • Sep 2012 - OpenStack foundation formally launched 4
OpenStack releases https://releases.openstack.org/ 5
OpenStack forum • OpenStack foundation serves more than 60,000 Individual Members from over 180 countries around the world. 6
Cloud Infrastructures, based on OpenStack 7
Basic services 8
Identity service : Keystone • Keystone : provides identity services for OpenStack. • A central list of users/permissions mapped against OpenStack services. • Keystone is organized as a group of internal services exposed on one or many endpoints. • The Identity service generates authentication tokens that permit access to the OpenStack services REST APIs. 9
Identity service : Keystone • Clients obtain this token and the URL endpoints for other service APIs by supplying their valid credentials to Keystone. • Each time you make a REST API request to an OpenStack service, you supply your authentication token in the X-Auth-Token request header. 10
Image Service: Glance • Glance : provides image services to OpenStack. • "images" refers to images of hard disks. Used as templates for deploying new VMs. 11
Image Service: Glance • A client : any application that makes use of a Glance https://docs.openstack.org/glance/pi server. ke/contributor/architecture.html • REST API : Glance functionalities are exposed via REST. • Database Abstraction Layer (DAL) : an application programming interface (API) that unifies the communication between Glance and databases. • Glance Domain Controller : middleware that implements the main Glance functionalities such as authorization, notifications, policies, database connections. • Glance Store : used to organise interactions between Glance and various data stores. • Registry Layer : optional layer that is used to organise secure communication between the domain and the DAL by using a separate service.
Compute service: OpenStack compute (nova) • OpenStack compute (nova) : Manages the lifecycle of compute instances in an OpenStack environment. Responsibilities include spawning, scheduling and decommissioning of virtual machines on demand. • Tools using nova : • Horizon • OpenStack Client: Official CLI for OpenStack Projects. It includes not just nova commands but also commands for most of the projects in OpenStack. 13
Networking service: Neutron • Networking service (Neutron) : provides the networking capability for OpenStack. Enables Network-Connectivity-as-a-Service for other OpenStack services. • OpenStack Networking enables projects to create virtual network topologies which may include services such firewalls, load balancers and Virtual Private Network (VPN). • Networking provides networks, subnets, and routers as object abstractions. 14
Networking service: Neutron 15
Networking service: Neutron • Networking Option 1: Provider networks • The provider networks option deploys the OpenStack Networking service in the simplest way possible with primarily layer-2 (bridging/switching) services and VLAN segmentation of networks. • It bridges virtual networks to physical networks and relies on physical network infrastructure for layer-3 (routing) services. • A DHCP service provides IP address information to instances. • Networking Option 2: Self-service networks • The self-service networks option augments the provider networks option with layer-3 (routing) services that enable self-service networks using overlay segmentation methods such as VXLAN. • Essentially, it routes virtual networks to physical networks using NAT. • This option provides the foundation for advanced services such as LBaaS and FWaaS. 16
Dashboard: Horizon • Horizon : The front office of OpenStack. • The only native graphical interface to OpenStack. 17
Storage services: Swift &Cinder Cinder : block storage component, analogous to the traditional access on • a disk drive. Swift : storage system for objects and files. • Users refer to a unique file identifiers: OpenStack decides where to • store/back-up etc. 18
Object storage • Data kept on object storage devices are accessed directly through APIs or http/https. • Data : photos, videos, and log files. • The object store guarantees that the data will not be lost. • Object storage data can be replicated across different data centers and offer simple web services interfaces for access. • … Anyone who’s stored a picture on FB has used object storage. 19
Object Data contains three things … • The data itself: the data can be anything you want to store. • Metadata: the metadata is defined by the user; it contains contextual information: what data should be used for, its confidentiality, etc. • A globally unique identifier: the identifier is an address given to the object in order for the object to be found over a distributed system. This way, it’s possible to find the data without having to know the physical location of the data. 20
When to use the block storage (Cinder) ? • When Strong consistency is needed: • real-time systems such as transactional databases that are constantly being written to. • a read request must return the most updated version of the data. • When scalability is no an issue • When scalability becomes more difficult within a geographically distributed system. 21
When to use Object storage (Swift) ? • Solving the increasing problem of data growth • Solving the provisioning management issues: Web content, data backup, and archives are good use cases • metadata functionality, facilitate this ease of use. • Resiliency • at least three copies of every file are stored • The distributed storage design for high availability allows less-expensive commodity hardware to be used • à The data protection is built into the object architecture • The downside is that there is no guarantee that a read request returns the most recent version of the data. 22
Swift resources 23
Controller Node • Controller node runs: • Identity service ( Keystone ) • Compute management ( nova ) • Networking ( Neutron ) • Image Service ( Glance ) • Dashboard ( Horizon ). • Supporting services: SQL database, message queue, and Network Time Protocol (NTP). 24
Compute nodes • Compute node(s) • Runs the hypervisor portion of Compute that operates instances. By default, Compute uses the KVM hypervisor. • Runs a Networking service agent that connects instances to virtual networks and provides firewalling services to instances via security groups. 25
Storage nodes (optional) • Block Storage nodes • The optional Block Storage node contains the disks that the Block Storage and Shared File System services provision for instances. • We can have more than one block storage node. • Object Storage nodes • Contain the disks that the Object Storage service uses for storing accounts, containers, and objects. • Object Storage requires two nodes. We can deploy more than two object storage nodes. 26
Hardware requirements https://docs.openstack.org/neutron/lates t/install/overview.html 27
https://docs.openstack.org/newton/install-guide- ubuntu/overview.html 28
2019: There are 63 projects 29 https://governance.openstack.org/tc/reference/projects/
Additional services • Compute • Hardware Lifecycle • Storage • Networking • Shared Services • Orchestration • Workload Provisioning • Application Lifecycle • API Proxies https://www.openstack.org/software/project- • Web Frontend navigator/openstack-components#openstack-services 30
Additional services • trove: database service: provides cloud provisioning functionality for database engines. • magnum : Container Infrastructure Management service. OpenStack API service making container orchestration engines (COE) such as Docker Swarm, Kubernetes and Mesos available as first class resources in OpenStack • Ironic : Bare metal service. Collection of components that provides support to manage and provision physical machines. 31
Recommend
More recommend