Introduction à
Openstack
Institut Mines-Télécom
Objectifs
Introduction à Openstack
Définitions
L’écosystème OpenStack
L’architecture
Les sous-Projets
Les Grands Principes d’utilisation
Premiers pas
Introduction à
Openstack
ID Cloud Computing 9
Les produits de cloud propriétaires
Introduction à
Openstack
ID Cloud Computing 9
► Définitions
L’écosystème OpenStack
L’architecture
Les sous-Projets
Les Grands Principes d’utilisation
Premiers pas
Wikipédia
OpenStack est un ensemble de logiciels open source permettant de
déployer des infrastructures de cloud Computing (IaaS).
Openstack.org
OpenStack est un système d'exploitation cloud qui contrôle de
grands pools de ressources de calcul, de stockage et de mise en
réseau dans un centre de données, le tout géré via un tableau de
bord qui donne aux administrateurs le contrôle tout en
permettant à leurs utilisateurs de provisionner des ressources via
une interface Web.
Framework
• Ensemble de composants logiciels
• Bases d'une infrastructure IT
Cloud (IaaS)
• Infrastructure libre service, à la demande
Modulaire
• un ensemble de modules, pas tous nécessaires
• chaque module peut être configuré en fonction de besoins
• chaque module peut-être étendu (drivers)
1 ID Cloud Computing Introduction à Openstack
0
Définitions
► L’écosystème OpenStack
L’architecture
Les sous-Projets
Les Grands Principes d’utilisation
Premiers pas
Introduction à
Openstack
ID Cloud Computing 9
Cycle de vie des versions
2 releases annuelles,
1 version « stable, »
2 versions « supportées »
https://www.objectif-libre.com/fr/
14 ID Cloud Computing Introduction à Openstack
Releases Timeline
https://releases.openstack.org/
15 ID Cloud Computing Introduction à Openstack
Définitions
L’écosystème OpenStack
Historique
► Gouvernance
Communauté
Packaging
Développement
L’architecture
Les sous-Projets
Les Grands Principes d’utilisation
Premiers pas
16 ID Cloud Computing Introduction à Openstack
La fondation OpenStack
Créé en 2012
Entité indépendante de gouvernance principale du projet
Les membres du « board of directors » sont issus des
entreprises sponsors et élus par les membres individuels
Tout le monde peut devenir membre individuel
(gratuitement)
Supporte le projet par différents moyens :
• Evénements : organisation (Summits) ou participation (OSCON,
etc.)
• Infrastructure de développement (serveurs)
• Ressources humaines : marketing, release manager, quelques
développeurs (principalement sur l’infrastructure)
Plus de 850 organisations à travers le monde
Plus de 9500 membres individuels dans 100 pays
Rackspace et la NASA
Canonical, Red Hat, Suse, HP, IBM, Dell, Intel
Huawei, Cisco, Juniper,
NetApp, VMWare
Yahoo, Bull
Mirantis, StackOps, …
…
https://www.openstack.org/foundation/companies/
https://www.openstack.org/user-stories/
https://www.openstack.org/marketplace/distros/
25 ID Cloud Computing Introduction à Openstack
Définitions
L’écosystème OpenStack
Historique
G ouvernance
C ommunauté
Packaging
► Développement
L’architecture
Les sous-Projets
Les Grands Principes d’utilisation
Premiers pas
26 ID Cloud Computing Introduction à Openstack
Développement
Python
Ouvert à tous (individuels et entreprises)
Cycle de développement de 6 mois débuté par un
(design) summit, et Planning public
Outils :
• Launchpad (blueprints, bugs) + G it (développement) +
GitHub (diffusion des sources)
• Sur chaque commit : peer review (Gerrit) + intégration
continue
• Exécution de différents tests par Jenkins
• Plateforme de référence et modèle de développement :
Ubuntu
http://stackal
ytics.com/?r
29 ID Cloud Computing Introduction à Openstack
elease=train
Statistiques Modules contributions
https://github.com/stackforge
Approche « micro-services »
Communications inter-services via API
(synchrone) limitées
Utilisation massive de commandes par messages
(AMPQ)
Une base de donnée par services
Majorité de services sans états (state-less)
http://docs.openstack.org/ops-guide/architecture.html
38 ID Cloud Computing Introduction à Openstack
Zoom …
Introduction à
Openstack
ID Cloud Computing 35
Grands principes d’ implémentation
Stockage :
• S tockage block (Block S torage) : Cinder
• S tockage objet (Object S torage ) : Swift
Suivi / management
• C onsole web (Dashboard) : Horizon
• Orchestration des ressources (Orchestration) : Heat
• Collecte de métriques (Metering) : Ceilometer
Données
• Bases de données : Trove
• Traitement de masse : Sahara
...
https://www.openstack.org/software/
https://fr.wikipedia.org/wiki/OpenStack
47 ID Cloud Computing Introduction à Openstack
Evolution : accélération …
https://fr.wikipedia.org/wiki/OpenStack
48 ID Cloud Computing Introduction à Openstack
Evolution : accélération …
https://fr.wikipedia.org/wiki/OpenStack
49 ID Cloud Computing Introduction à Openstack
Maturité / Statistiques
https://www.openstack.org/software/project-navigator
Virtualisation du réseau
API Unifiée, pour piloter plusieurs architectures
réseau :
• Linux Bridge,
• OpenVSwitch
• S DN (S oftware-Defined Network) : OpenC ontrail,
OpenDaylight, Cisco Nexus1000, VmWare NSX, …
Interface web
Fournit une interface graphique pour gérer les
ressources
Permet de surveiller l’utilisation des ressources
Packstack
• https://www.rdoproject.org/install/packstack/
• “installation utility that lets you spin up a proof of concept cloud
on one node”
• RedHat
Offres providers :
• https://www.citycloud.com/get-free-trials-on-openstack-clouds-
across-the-world/ http://trystack.org/ : 100$ / 1 mois
• …
https://www.openstack.org/software/start/
5 . 45
UTILITÉ DE DEVSTACK
5 . 46
FONCTIONNEMENT DE DEVSTACK
5 . 47
CONFIGURATION : LOCAL.CONF
Exemple
[[local|localrc]] ADMIN_PASSWORD=secrete
DATABASE_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD SERVICE_TOKEN=a682f596-76f3-
11e3-b3b2-e716f9080d50
#FIXED_RANGE=172.31.1.0/24
#FLOATING_RANGE=192.168.20.0/25
#HOST_IP=10.3.4.5
5 . 48
CONSEILS D’UTILISATION
6 . 11
INSTALLATION ET CONFIGURATION
PaquetAPT :keystone
Intégration serveur web WSGI (Apache par défaut)
Fichier de configuration: /etc/keystone/keystone.conf
Backends utilisateurs/groupes : SQL, LDAP (ou Active
Directory)
Backends projets/rôles/services/endpoints :SQL
Backends tokens :SQL, Memcache, aucun (suivant le type de
tokens)
DRIVERS POUR TOKENS
Uuid
PKI
Fernet
BOOTSTRAP
6 . 12
PRINCIPES
6 . 13
PROPRIÉTÉS D’UNE INSTANCE
6 . 14
API
Ressources gérées :
Instances
Flavors (types d’instance)
Keypairs :ressource propre à l'utilisateur (et non propre au
projet)
6 . 15
ACTIONS SUR LES INSTANCES
Reboot /shutdown
Snapshot
Lecture des logs
Accès VNC
Redimensionnement
Migration (admin)
6 . 16
NOVA API
Double rôle
API de manipulation des instances par l’utilisateur
API à destination des instances :API de metadata
L’API de metadata doit être accessible à l’adresse
http://169.254.169.254/
L’API de metadata fournit des informations de configuration
personnalisées à chacune des instances
NOVA COMPUTE
Fonctionnement de nova-scheduler
NOVA CONDUCTOR
6 . 17
PRINCIPES
6 . 18
API
6 . 19
TYPES D’IMAGES
6 . 20
PROPRIÉTÉS DES IMAGES DANS GLANCE
6 . 21
PARTAGE DES IMAGES
6 . 22
TÉLÉCHARGER DES IMAGES
6 . 23
BACKENDS
Swift ou S3
Ceph
HTTP
Répertoire
local
INSTALLATION
PaquetAPT :glance-api
NEUTRON : RÉSEAU
6 . 24
API
6 . 25
LES IP FLOTTANTES
6 . 26
LES GROUPES DE SÉCURITÉ
6 . 27
FONCTIONNALITÉS SUPPLÉMENTAIRES
6 . 28
PRINCIPES
Modular Layer 2
LinuxBridge
OpenVSwitch
OpenDaylight
Contrail,OpenContrail
Nuage Networks
VMWare NSX
cf.OpenFlow
IMPLÉMENTATION
6 . 29
PRINCIPES
6 . 30
UTILISATION
6 . 31
PRINCIPES
Auparavant nova-volume
Fournit des volumes
Attachement des volumes via iSCSI par défaut
7 . 34
INSTALLATION
7 . 35
BACKENDS
7 . 36
HORIZON : DASHBOARD WEB
6 . 36
PRINCIPES
6 . 37
UTILISATION
6 . 38
PRINCIPES
local_settings.py
Les services apparaissent dans Horizon s’ils sont répertoriés
dans le catalogue de services de Keystone
7 . 39
SWIFT : STOCKAGE OBJET
7 . 40
PRINCIPES
7 . 41
IMPLÉMENTATION
7 . 42
LE RING
7 . 43
SCHÉMA
Architecture Swift
7 . 44
HEAT : ORCHESTRATION
6 . 32
GÉNÉRALITÉS
6 . 33
UN TEMPLATE HEAT ORCHESTRATION
TEMPLATE (HOT)
heat_template_version: 2013-05-23
description: Simple template to deploy a single compute instance
resources:
my_instance:
type: OS::Nova::Server
properties:
key_name: my_key
image: F18-x86_64-cfntools
flavor: m1.small
6 . 34
CONSTRUIRE UN TEMPLATE À PARTIR
D’EXISTANT
6 . 35
ARCHITECTURE
heat-api
heat-engine
7 . 50
CEILOMETER : COLLECTE DE MÉTRIQUES
7 . 45
SURVEILLER L’UTILISATION DE SON
INFRASTRUCTURE AVEC CEILOMETER
7 . 46
CEILOMETER
7 . 47
GNOCCHI : TIME-SERIES DATABASE
7 . 48
DÉPLOYER OPENSTACK
7.1