SlideShare une entreprise Scribd logo
1
OpenStack le framework du IaaS
Noureddine BOUYAHIAOUI
noureddine@bouyahiaoui.com
Plan
A. OpenStack Eco-Système
1. Définition
2. Historique
3. Projet
B. OpenStack Architecture
1. Architecture logique
2. Flux de création d’une VM
3. Détail des composants
2
OpenStack ?
« OpenSource Software to building private or public
clouds » OpenStack Fondation
« Openstack is a framework to control various
virtual items and associated storage elements » Ma
vision
3
OpenStack : les possibilités
1. VM à la demande :
• Provisionning
• Snapshotting
2. Volumes
2. Réseaux
3. Stockage Objet pour les images de VM ou des fichiers
quelconques
4. Multi-tenante :
• Quotas par tenants
• Utilisateurs peut appartenir à plusieurs tenant
4
OpenStack : Historique
5
OpenStack : Grizzly Release
Les projets cores
Nova : Service compute
Glance : Service image
Quantum : service réseaux
Cinder : Service stockage en bloque
Swift : Service stockage objets
Projets communs
Keystone : service identitie
Horizon : Web Gui / Dashboard
Projet Librairie
Oslo : Code partagé (Shared infrastructure Code)
Projets en incubation (Officiel dans Havana)
Ceilometer : Service Metering/Monitoring
Heat : Service orchestration
6
OpenStack : Organisation d’un projet
1. Chaque projet a un Lead Technique élu (PTL)
2. Séparation entre les équipes de devellopements et d'architectures
3. Chaque projet possède une API RESTfull (JSON/HTTP) sauf Horizon
4. Base de données séparée
7
OpenStack : Vue Conceptuelle
8
OpenStack : Architecture
9
OpenStack : Implémentation
10
Nova API
Scheduler
Conductor
Nova
Nova DB
Queue
Cinder API
Scheduler
Cinder Vol
Cinder
Cinder DB
Queue
Nova-compute
Hypervisor
Network
Compute Node
VM
Storage
Block Storage
Node
Router/GW
Network Node
DHCP/IPAM
Glance API
GlanceRegistery
Glance
Cinder DB
Keystone
Keystone DB
Quantum Server
Quantum
Quantum DB
Plugin/Agent
Proxy Server
Swift
Object Store
OpenStack
UI : Horizon /CLI
Keystone Server
11
Nova API
Scheduler
Conductor
Nova
Nova DB
Queue
Cinder API
Scheduler
Cinder Vol
Cinder
Cinder DB
Queue
Nova-compute
Hypervisor
Network
Compute Node
VM
Storage
Block Storage
Node
Router/GW
Network Node
DHCP/IPAM
Glance API
GlanceRegistery
Glance
Cinder DB
Keystone Server
Keystone
Keystone DB
Quantum Server
Quantum
Quantum DB
Plugin/Agent
Proxy Server
Swift
Object Store
UI : Horizon /CLI
Http : Chaque composant expose une API RESTful
AMQP :
SQL :
Native API :
iSCSI :
12
Nova API
Scheduler
Conductor
Nova
Nova DB
Queue
Cinder API
Scheduler
Cinder Vol
Cinder
Cinder DB
Queue
Nova-compute
Hypervisor
Network
Compute Node
VM
Storage
Block Storage
Node
Router/GW
Network Node
DHCP/IPAM
Glance API
GlanceRegistery
Glance
Cinder DB
Keystone Server
Keystone
Keystone DB
Quantum Server
Quantum
Quantum DB
Plugin/Agent
Proxy Server
Swift
Object Store
UI : Horizon /CLI
http : Chaque composant expose une API RESTful
AMQP : Les actions distribuées passent par la Queue
SQL :
Native API :
iSCSI :
13
Nova API
Scheduler
Conductor
Nova
Nova DB
Queue
Cinder API
Scheduler
Cinder Vol
Cinder
Cinder DB
Queue
Nova-compute
Hypervisor
Network
Compute Node
VM
Storage
Block Storage
Node
Router/GW
Network Node
DHCP/IPAM
Glance API
GlanceRegistery
Glance
Cinder DB
Keystone Server
Keystone
Keystone DB
Quantum Server
Quantum
Quantum DB
Plugin/Agent
Proxy Server
Swift
Object Store
UI : Horizon /CLI
Http: Chaque composant expose une API RESTful
AMQP : Les actions distribuées passent par la Queue
SQL : chaque service gère sa propre base de données
Native API :
iSCSI :
14
Nova API
Scheduler
Conductor
Nova
Nova DB
Queue
Cinder API
Scheduler
Cinder Vol
Cinder
Cinder DB
Queue
Nova-compute
Hypervisor
Network
Compute Node
VM
Storage
Block Storage
Node
Router/GW
Network Node
DHCP/IPAM
Glance API
GlanceRegistery
Glance
Cinder DB
Keystone Server
Keystone
Keystone DB
Quantum Server
Quantum
Quantum DB
Plugin/Agent
Proxy Server
Swift
Object Store
UI : Horizon /CLI
Http: Chaque composant expose une API RESTful
AMQP : Les actions distribuées passent par la Queue
SQL : chaque service gère sa propre base de données
Native API : Accès direct via un protocole propre
iSCSI :
15
Nova API
Scheduler
Conductor
Nova
Nova DB
Queue
Cinder API
Scheduler
Cinder Vol
Cinder
Cinder DB
Queue
Nova-compute
Hypervisor
Network
Compute Node
VM
Storage
Block Storage
Node
Router/GW
Network Node
DHCP/IPAM
Glance API
GlanceRegistery
Glance
Cinder DB
Keystone Server
Keystone
Keystone DB
Quantum Server
Quantum
Quantum DB
Plugin/Agent
Proxy Server
Swift
Object Store
UI : Horizon /CLI
Http: Chaque composant expose une API RESTful
AMQP : Les actions distribuées passent par la Queue
SQL : chaque service gère sa propre base de données
Native API : Accès direct via un protocole propre
iSCSI : Le montage des volumes avec le protocole iSCSI (block storage)
16
Cas d’utilisation création d’une VM
1. Une opération courante, mais complexe
2. Elle nécessite l’interaction avec tous les composants
d’OpenStack
3. Dans ce qui suit on admet que :
• L’utilisateur existe déjà
• Le tenant est crée
• L’utilisateur à droit d’accès à Horizon
• Les quotas sont définit
17
Quotas
quantum.quota.ConfDriver :
1. Tous les projets auront les mêmes
quotas
2. Quotas définis dans le fichier de
conf
quantum.quota.ConfDriver :
1. Tous les projets auront les mêmes
quotas
2. Quotas définis dans le fichier de
conf
Mécanisme utilisé dans les différentes API
d’OpenStack pour limiter le nombre de
ressources qu’un tenant peut créer ou
utiliser
Mécanisme utilisé dans les différentes API
d’OpenStack pour limiter le nombre de
ressources qu’un tenant peut créer ou
utiliser
quantum.db.quota_db.DbQuotaDriver
1. chaque projet a ses propres Quotas
2. Les quotas sont stockés dans la BD
quantum.db.quota_db.DbQuotaDriver
1. chaque projet a ses propres Quotas
2. Les quotas sont stockés dans la BD
Quotas
Limitation :
1. Network, Subnet, Port, Router,
Floatingip et security group.
2. VMs, Volumes
3. etc
Limitation :
1. Network, Subnet, Port, Router,
Floatingip et security group.
2. VMs, Volumes
3. etc
18
Nova API
Scheduler
Conductor
Nova
Nova DB
Queue
Cinder API
Scheduler
Cinder Vol
Cinder
Cinder DB
Queue
Nova-compute
Hypervisor
Network
Compute Node
VM
Storage
Block Storage
Node
Router/GW
Network Node
DHCP/IPAM
Glance API
GlanceRegistery
Glance
Cinder DB
Keystone Server
Keystone
Keystone DB
Quantum Server
Quantum
Quantum DB
Plugin/Agent
Proxy Server
Swift
Object Store
UI : Horizon /CLI
Connexion à Horizon
19
Horizon
OpenStack DashBoard (Horizon) fournie une interface
web pour la gestion des services OpenStack
20
Horizon
1. Stateless
2. Utilise memcached comme cache pour les sessions
3. Se met à jour via le polling de l’API Nova
4. Chaque composant OpenStack possède son propre module
dans Horizon
21
Nova API
Scheduler
Conductor
Nova
Nova DB
Queue
Cinder API
Scheduler
Cinder Vol
Cinder
Cinder DB
Queue
Nova-compute
Hypervisor
Network
Compute Node
VM
Storage
Block Storage
Node
Router/GW
Network Node
DHCP/IPAM
Glance API
GlanceRegistery
Glance
Cinder DB
Keystone Server
Keystone
Keystone DB
Quantum Server
Quantum
Quantum DB
Plugin/Agent
Proxy Server
Swift
Object Store
UI : Horizon /CLI
Connexion à Horizon
Les paramètre transmis sont
transformés en une requette HTTP
Post à destination de KeyStone
22
KeyStone
1. Keystone est un projet Openstack, il offre une gestion de
l’identité et des autorisations d’accès pour les différents
services d’OpenStack.
2. Keystone fourni un jeton d'autorisation. Ce jeton est ensuite
utilisé comme un laissé passé pour utiliser les ressources et
services tel que le stockage ou le calcul etc.
3. API RESTful
4. Communication via le protocole http ou http via SSL (https).
23
KeyStone
API RESTfulAPI RESTful
Un projet Openstack, il offre une gestion
de l’identité et des autorisations d’accès
pour les différents services d’OpenStack.
Un projet Openstack, il offre une gestion
de l’identité et des autorisations d’accès
pour les différents services d’OpenStack.
Communication via le protocole http
ou https via SSL.
Communication via le protocole http
ou https via SSL.
Keystone
Fourni un jeton d'autorisation. Ce
jeton est utilisé comme un laissé passé
pour utiliser les ressources et services
tel que le stockage ou le calcul etc
Fourni un jeton d'autorisation. Ce
jeton est utilisé comme un laissé passé
pour utiliser les ressources et services
tel que le stockage ou le calcul etc
24
KeyStone : Concepts
Endpoint : Une adresse
réseau, généralement
décrite par une URL, où un
service peut être accessible.
Endpoint : Une adresse
réseau, généralement
décrite par une URL, où un
service peut être accessible.
User : peut-être une
personne, un système
ou un service
User : peut-être une
personne, un système
ou un service
Role : Un rôle comprend un
ensemble de droits et privilèges.
Role : Un rôle comprend un
ensemble de droits et privilèges.
Keystone
Tenant (ou projet) : est un
conteneur pour grouper les
services ou les utilisateurs.
Tenant (ou projet) : est un
conteneur pour grouper les
services ou les utilisateurs.
Les Credentials : les données qui permettent
d’authentifier un utilisateur ou un service :
1. Login et Mot de passe
2. Login et une clé
3. Token qui vous a été délivré.
Les Credentials : les données qui permettent
d’authentifier un utilisateur ou un service :
1. Login et Mot de passe
2. Login et une clé
3. Token qui vous a été délivré.
25
KeyStone : Architecture
KeyStone APIKeyStone API
Policy
Backend
Token
Backend
Catalogue
Backend
Identity
Backend
User, role and
tenant data
Endpoint
catalogue
Temporary
tokens
Rule management
interface and rule
based authorization
26
KeyStone : Validation
1. Horizon envoi une requête HTTP à KeyStone
2. Keystone de son côté parse cette demande et vérifie les éléments suivants :
• Authentification : la validité des credentials
• Control d'accès : la validité du mapping User-Tenant-Role
• Autorisation (droit d’accès) : La requête demandé est accessible pour l'utilisateur en question
27
KeyStone : Validation
28
Nova API
Scheduler
Conductor
Nova
Nova DB
Queue
Cinder API
Scheduler
Cinder Vol
Cinder
Cinder DB
Queue
Nova-compute
Hypervisor
Network
Compute Node
VM
Storage
Block Storage
Node
Router/GW
Network Node
DHCP/IPAM
Glance API
GlanceRegistery
Glance
Cinder DB
Keystone Server
Keystone
Keystone DB
Quantum Server
Quantum
Quantum DB
Plugin/Agent
Proxy Server
Swift
Object Store
UI : Horizon /CLI
Connexion à Horizon
KeyStone envoi à Horizon un Token
temporaire.
29
Interaction avec Nova
Requête de création d'une VM à partir d'Horizon :
1. Nom de la VM
2. Image
3. Flavor (CPU, Mémoire, disque)
4. Réseau
5. Options : SSH Keys, volume, commentaires, personnalites, etc
30
Nova API
Scheduler
Conductor
Nova
Nova DB
Queue
Cinder API
Scheduler
Cinder Vol
Cinder
Cinder DB
Queue
Nova-compute
Hypervisor
Network
Compute Node
VM
Storage
Block Storage
Node
Router/GW
Network Node
DHCP/IPAM
Glance API
GlanceRegistery
Glance
Cinder DB
Keystone
Keystone DB
Quantum Server
Quantum
Quantum DB
Plugin/Agent
Proxy Server
Swift
Object Store
UI : Horizon /CLI
Nova API
Horizon envoi un http Post à Nova
API. Token récupérer auparavant est
envoyé également.
Keystone Server
31
Nova
Le composant de calcul du
système d'exploitation Cloud
Le composant de calcul du
système d'exploitation Cloud
permet de créer un
environnement Cloud
Computing hautement
évolutif et redondant
permet de créer un
environnement Cloud
Computing hautement
évolutif et redondant
Nova
permet l'exécution de
plusieurs instances de
machines virtuelles sur un
nombre illimité d'hôtes
exécutant nova-compute
permet l'exécution de
plusieurs instances de
machines virtuelles sur un
nombre illimité d'hôtes
exécutant nova-compute
Composé principalement de :
1. Nova API
2. Scheduler
3. Conductor
4. Nova-Compute
Composé principalement de :
1. Nova API
2. Scheduler
3. Conductor
4. Nova-Compute
32
Nova API
Horizon (UI) Nova (CLI) Euca-tools(CLI)
Nova-Api
EC2-APICompute API
33
Nova API
Scheduler
Conductor
Nova
Nova DB
Queue
Cinder API
Scheduler
Cinder Vol
Cinder
Cinder DB
Queue
Nova-compute
Hypervisor
Network
Compute Node
VM
Storage
Block Storage
Node
Router/GW
Network Node
DHCP/IPAM
Glance API
GlanceRegistery
Glance
Cinder DB
Keystone Server
Keystone
Keystone DB
Quantum Server
Quantum
Quantum DB
Plugin/Agent
Proxy Server
Swift
Object Store
Nova API
Nova API envoi le token à KeyStone
pour validation.
UI : Horizon /CLI
34
Nova API
Scheduler
Conductor
Nova
Nova DB
Queue
Cinder API
Scheduler
Cinder Vol
Cinder
Cinder DB
Queue
Nova-compute
Hypervisor
Network
Compute Node
VM
Storage
Block Storage
Node
Router/GW
Network Node
DHCP/IPAM
Glance API
GlanceRegistery
Glance
Cinder DB
Keystone Server
Keystone
Keystone DB
Quantum Server
Quantum
Quantum DB
Plugin/Agent
Proxy Server
Swift
Object Store
Nova API
KeyStone valide le token. Il envoi à
Nova API une réponse http
contenant les infos d’acceptation
ou de rejet
UI : Horizon /CLI
35
Nova API
Scheduler
Conductor
Nova
Nova DB
Queue
Cinder API
Scheduler
Cinder Vol
Cinder
Cinder DB
Queue
Nova-compute
Hypervisor
Network
Compute Node
VM
Storage
Block Storage
Node
Router/GW
Network Node
DHCP/IPAM
Glance API
GlanceRegistery
Glance
Cinder DB
Keystone
Keystone DB
Quantum Server
Quantum
Quantum DB
Plugin/Agent
Proxy Server
Swift
Object Store
Nova API
Nova API valide le token en
utilisant CA, CERT & CRL récupéré
de KeyStone.
UI : Horizon /CLI
Keystone Server
36
Nova API
Scheduler
Conductor
Nova
Nova DB
Queue
Cinder API
Scheduler
Cinder Vol
Cinder
Cinder DB
Queue
Nova-compute
Hypervisor
Network
Compute Node
VM
Storage
Block Storage
Node
Router/GW
Network Node
DHCP/IPAM
Glance API
GlanceRegistery
Glance
Cinder DB
Keystone
Keystone DB
Quantum Server
Quantum
Quantum DB
Plugin/Agent
Proxy Server
Swift
Object Store
Nova API
Nova API parse la requête, crée un
objet python et insert l’objet dans
Nova DB. L’enregistrement ainsi crée
représente le premier état de la VM
UI : Horizon /CLI
Keystone Server
37
Nova DataBases
Stocke l’état des objets
répartis sur les différents
Compute Nodes
Stocke l’état des objets
répartis sur les différents
Compute Nodes
Nova API communique avec
le SGBD via l’ORM
SQLAlchemy
Nova API communique avec
le SGBD via l’ORM
SQLAlchemy
Nova DataBase
Théoriquement n’importe
quel SGBD du marché
compatible. Les
déploiement se font que sur
MySQL et PostgreSQL
Théoriquement n’importe
quel SGBD du marché
compatible. Les
déploiement se font que sur
MySQL et PostgreSQL
Le HA se fait via :
1. Master/Master ou Master/Slave
2. TCP/IP RAID1 (PeaceMaker/DRBD)
Le HA se fait via :
1. Master/Master ou Master/Slave
2. TCP/IP RAID1 (PeaceMaker/DRBD)
38
Nova API
Scheduler
Conductor
Nova
Queue
Cinder API
Scheduler
Cinder Vol
Cinder
Cinder DB
Queue
Nova-compute
Hypervisor
Network
Compute Node
VM
Storage
Block Storage
Node
Router/GW
Network Node
DHCP/IPAM
Glance API
GlanceRegistery
Glance
Cinder DB
Keystone
Keystone DB
Quantum Server
Quantum
Quantum DB
Plugin/Agent
Proxy Server
Swift
Object Store
Message Queue (Bus de communication)
Nova API fait un rpc.call au
Scheduler. Le message publié
contient des infos sur la VM. UI : Horizon /CLI
Keystone Server
Nova DB
39
Message Queue (Bus de communication)
Le Bus de communication est un moyen unifié pour faire collaborer
les différents composants de NOVA
40
Scheduler
Conductor
Nova
Queue
Cinder API
Scheduler
Cinder Vol
Cinder
Cinder DB
Queue
Nova-compute
Hypervisor
Network
Compute Node
VM
Storage
Block Storage
Node
Router/GW
Network Node
DHCP/IPAM
Glance API
GlanceRegistery
Glance
Cinder DB
Keystone
Keystone DB
Quantum Server
Quantum
Quantum DB
Plugin/Agent
Proxy Server
Swift
Object Store
Message Queue (Bus de communication)
UI : Horizon /CLI
Keystone Server
Nova DB
Nova API
Scheduler récupère le message à
partir de la MQ
41
Nova Scheduler
Création de la VM dans un
Compute Node particulier
Création de la VM dans un
Compute Node particulier
Création des VMs dans des
Computes Nodes différents
Création des VMs dans des
Computes Nodes différents
Nova Scheduler
Création des VMs d'un
tenant particulier dans des
Computes Nodes isolés
Création des VMs d'un
tenant particulier dans des
Computes Nodes isolés
Le demon Nova Scheduler détermine dans quel
Compute Node la requête va être exécutée
42
Nova Scheduler
43
Nova Scheduler : Filtre
44
Nova Scheduler : Filtre
45
Nova Scheduler : Filtre
1. Les filtres sont configurés dans le fichier nova.conf
2. Plusieurs filtres peuvent être spécifiés en même temps
3. Il est possible de créer un filtre spécifique :
• Par héritage de la Class BaseHostFilter
• Surcharger hos_passes(self,host_state,filter_properties)
46
Cinder API
Scheduler
Cinder Vol
Cinder
Cinder DB
Queue
Nova-compute
Hypervisor
Network
Compute Node
VM
Storage
Block Storage
Node
Router/GW
Network Node
DHCP/IPAM
Glance API
GlanceRegistery
Glance
Cinder DB
Keystone
Keystone DB
Quantum Server
Quantum
Quantum DB
Plugin/Agent
Proxy Server
Swift
Object Store
Nova Scheduler
Scheduler récupère la liste de tous
les nœuds computes et les filtres. Il
selectionne le nœud et il met à jour
la BD avec son ID
UI : Horizon /CLI
Keystone Server
Scheduler
Conductor
Nova
Nova DB
Queue
Nova API
47
Nova
Cinder API
Scheduler
Cinder Vol
Cinder
Cinder DB
Queue
Nova-compute
Hypervisor
Network
Compute Node
VM
Storage
Block Storage
Node
Router/GW
Network Node
DHCP/IPAM
Glance API
GlanceRegistery
Glance
Cinder DB
Keystone
Keystone DB
Quantum Server
Quantum
Quantum DB
Plugin/Agent
Proxy Server
Swift
Object Store
Nova Scheduler
UI : Horizon /CLI
Keystone Server
Nova API
Scheduler
Conductor
Queue
Nova DB
48
Scheduler publie un message pour
nœud compute (ID) pour la création
d’une nouvelle VM
Nova
Cinder API
Scheduler
Cinder Vol
Cinder
Cinder DB
Queue
Nova-compute
Hypervisor
Network
Compute Node
VM
Storage
Block Storage
Node
Router/GW
Network Node
DHCP/IPAM
Glance API
GlanceRegistery
Glance
Cinder DB
Keystone
Keystone DB
Quantum Server
Quantum
Quantum DB
Plugin/Agent
Proxy Server
Swift
Object Store
Nova Compute
Nova compute récupère le message
qu’il lui y destiné à partir de la Queue
UI : Horizon /CLI
Keystone Server
Nova API
Conductor
Queue
Nova DB
Scheduler
49
Nova Compute
1. nova-compute est un worker demon
2. Crée et met fin aux VM via l’API installer dans l'hyperviseur
• XenAPI pour XenServer / XCP
• libvirt pour KVM ou QEMU
• VMwareAPI pour VMware
• … etc.
50
Nova
Cinder API
Scheduler
Cinder Vol
Cinder
Cinder DB
Queue
Nova-compute
Hypervisor
Network
Compute Node
VM
Storage
Block Storage
Node
Router/GW
Network Node
DHCP/IPAM
Glance API
GlanceRegistery
Glance
Cinder DB
Keystone
Keystone DB
Quantum Server
Quantum
Quantum DB
Plugin/Agent
Proxy Server
Swift
Object Store
Nova Compute
Nova compute envoi un message à
Conductor via la Queue pour
recuperer les infos sur la VM à créée
UI : Horizon /CLI
Keystone Server
Nova API
Conductor
Queue
Nova DB
Scheduler
51
Nova Conductor
Le proxy Base de données
de Nova Compute
Le proxy Base de données
de Nova Compute
Scalabilité HorizontalScalabilité Horizontal
Nova Conductor
Elimine les connexion à
distance vers la BD
Elimine les connexion à
distance vers la BD
Schéma de la BD n’est plus visible
à Nova Compute
Schéma de la BD n’est plus visible
à Nova Compute
52
Nova
Cinder API
Scheduler
Cinder Vol
Cinder
Cinder DB
Queue
Nova-compute
Hypervisor
Network
Compute Node
VM
Storage
Block Storage
Node
Router/GW
Network Node
DHCP/IPAM
Glance API
GlanceRegistery
Glance
Cinder DB
Keystone
Keystone DB
Quantum Server
Quantum
Quantum DB
Plugin/Agent
Proxy Server
Swift
Object Store
Nova Compute
Nova compute demande à Quantum
API de créer les éléments réseaux
pour la VM
UI : Horizon /CLI
Keystone Server
Nova API
Conductor
Nova DB
Queue
Scheduler
53
Quantum
Propose la connectivité
réseau en tant que service
« Network as a service »
Propose la connectivité
réseau en tant que service
« Network as a service »
Hautement configurable en
raison de son architecture
orienté plugin.
Hautement configurable en
raison de son architecture
orienté plugin.
Quantum
Expose une API qui permet aux
utilisateurs de créer leurs propres
réseaux, routeur et rattacher les
interfaces réseaux aux ports des
équipements réseaux crées
Expose une API qui permet aux
utilisateurs de créer leurs propres
réseaux, routeur et rattacher les
interfaces réseaux aux ports des
équipements réseaux crées
Séparation de la description
du réseau de son
implémentation
Séparation de la description
du réseau de son
implémentation
54
Quantum
Allocation des adresses MACAllocation des adresses MAC
Configuration du réseau
niveau 2 (L2) via quantum
plugin
Configuration du réseau
niveau 2 (L2) via quantum
plugin
Quantum
Allocation d’IPs pour chaque
réseau.
Mettre à jour le DHCP avec
l’association IP /MAC
Allocation d’IPs pour chaque
réseau.
Mettre à jour le DHCP avec
l’association IP /MAC
Configuration du réseau L3,
Mise en place des GWs
(création de routeurs)
Configuration du réseau L3,
Mise en place des GWs
(création de routeurs)
55
Quantum : Architecture
Quantum DB
Quantum Server
Quantum
Plugin
Queue
dhcp-agent
Metadata-
agent
plugin-agent
VM
l3-agent
Quantum Server:
1. Implémente quantum API et ces extension
2. Impose le modèl network, subnet, port
3. Attribution d’adresse IP
Quantum Server:
1. Implémente quantum API et ces extension
2. Impose le modèl network, subnet, port
3. Attribution d’adresse IP
Plugin agent:
1. S’exécute sur chaque nœud de calcul/Network
2. Connect les VMs aux réseaux
Plugin agent:
1. S’exécute sur chaque nœud de calcul/Network
2. Connect les VMs aux réseaux
Dhcp agent:
1. S’exécute sur chaque nœud network
2. Connect les VMs aux réseaux
3. Mettre à jour le DHCP
Dhcp agent:
1. S’exécute sur chaque nœud network
2. Connect les VMs aux réseaux
3. Mettre à jour le DHCP
L3 agent:
1. Implément les floating IP, ainsi que tous les
fonctionnalitées L3 (NAT, SNAT, …)
2. Un agent par réseau
L3 agent:
1. Implément les floating IP, ainsi que tous les
fonctionnalitées L3 (NAT, SNAT, …)
2. Un agent par réseau
Metatdata agent:
Médiation entre l3-agent, dhcp-agent et nova-
metadata API Server
Metatdata agent:
Médiation entre l3-agent, dhcp-agent et nova-
metadata API Server 56
Nova
Cinder API
Scheduler
Cinder Vol
Cinder
Cinder DB
Queue
Hypervisor
Network
Compute Node
VM
Storage
Block Storage
Node
Router/GW
Network Node
DHCP/IPAM
Glance API
GlanceRegistery
Glance
Cinder DB
Keystone
Keystone DB
Quantum Server
Quantum
Quantum DB
Plugin/Agent
Proxy Server
Swift
Object Store
Quantum
Quantum configure l’IP, GW, la
connectivité L2, Security Group, etc
UI : Horizon /CLI
Keystone Server
Nova API
Conductor
Scheduler
Nova DB
Queue
Nova-compute
57
Quantum : Workflow
58
Quantum : Compute Node
59
Quantum : Network Node
60
Quantum : Network vue d’ensemble
61
Haute disponibilité du réseau
1. DHCP Agent support le HA
2. L3 Agent dans la nouvelle release
1. DHCP Agent support le HA
2. L3 Agent dans la nouvelle release
HA
1. Chaque Agent de la stack réseau
envoi des Heartbeat à la Queue
2. Les états sont stockés dans la BD
1. Chaque Agent de la stack réseau
envoi des Heartbeat à la Queue
2. Les états sont stockés dans la BD
62
La sécurité dans le Cloud
La sécurité est un élément primordial dans le CloudLa sécurité est un élément primordial dans le Cloud
63
La sécurité dans le Cloud
Un Cloud peut être abstrait comme une collection de composants logiques
(domaines de sécurité) :
1. Fonction
2. Utilisateurs
3. Les problèmes de sécurité communs
64
La sécurité dans le Cloud
Public :
1. Un espace entièrement non fiable de
l'infrastructure Cloud.
2. Toutes les données qui transitent ce domaine
doivent être protégées et répondre aux exigences
de la confidentialité et l'intégrité
Public :
1. Un espace entièrement non fiable de
l'infrastructure Cloud.
2. Toutes les données qui transitent ce domaine
doivent être protégées et répondre aux exigences
de la confidentialité et l'intégrité
Data :
1. Concerne principalement les informations relatives
aux services de stockage au sein OpenStack.
2. La plupart des données qui traversent ce réseau
nécessitent une grande intégrité et confidentialité.
3. En fonction de type déploiement, il peut y avoir
aussi une forte exigence de disponibilité
Data :
1. Concerne principalement les informations relatives
aux services de stockage au sein OpenStack.
2. La plupart des données qui traversent ce réseau
nécessitent une grande intégrité et confidentialité.
3. En fonction de type déploiement, il peut y avoir
aussi une forte exigence de disponibilité
Domaine de
sécurité
Management :
1. L'endroit où les services (APIs) interagissent.
2. Les réseaux dans ce domaine transportent des
données confidentielles telles que les
paramètres de configuration, noms d'utilisateur
et mots de passe.
3. Le trafic de commandement et de contrôle
réside habituellement dans ce domaine
4. Ce domaine doit être isolé et sécurisé
Management :
1. L'endroit où les services (APIs) interagissent.
2. Les réseaux dans ce domaine transportent des
données confidentielles telles que les
paramètres de configuration, noms d'utilisateur
et mots de passe.
3. Le trafic de commandement et de contrôle
réside habituellement dans ce domaine
4. Ce domaine doit être isolé et sécurisé
Guest :
1. Utilisé pour le trafic d'instance à instance
Guest :
1. Utilisé pour le trafic d'instance à instance
65
La sécurité dans le Cloud
Pontage des domaines de sécurité
1. Un pont est un élément qui existe à l'intérieur d’un
ou plusieurs domaines de sécurité.
2. Les ponts sont souvent le point faible dans une
architecture réseau.
3. Tout composant construisant un pont entre des
domaines de sécurité doit être soigneusement
configuré.
4. Un pont doit toujours être configuré pour répondre
aux exigences de sécurité et d’un niveau de
confiance.
5. Les ponts devraient être une préoccupation
majeure en raison de la probabilité d'une attaque.
66
La sécurité dans le Cloud
La gestion des identités et
des accès dans OpenStack
La gestion des identités et
des accès dans OpenStack
Sécurisations des Flux via
des protocoles de sécurité
tel que SSL/TLS
Sécurisations des Flux via
des protocoles de sécurité
tel que SSL/TLS
Approche
1. Délégation de la gestion des
identités au service LDAP
2. Keystone V3 amène plus de
granularité
1. Délégation de la gestion des
identités au service LDAP
2. Keystone V3 amène plus de
granularité
Connaître les failles de
sécurité du système et les
gérer
Connaître les failles de
sécurité du système et les
gérer
67
Nova
Cinder API
Scheduler
Cinder Vol
Cinder
Cinder DB
Queue
Nova-compute
Hypervisor
Network
Compute Node
VM
Storage
Block Storage
Node
Router/GW
Network Node
DHCP/IPAM
Glance API
GlanceRegistery
Glance
Cinder DB
Keystone
Keystone DB
Quantum Server
Quantum
Quantum DB
Plugin/Agent
Proxy Server
Swift
Object Store
Cinder
Nova compute contacte Cinder pour
monter un volume qui existe déjà. UI : Horizon /CLI
Keystone Server
Nova API
Conductor
Nova DB
Scheduler
Queue
68
Cinder
Fournit un stockage POSIX.
Le volume distant est vu
comme volume local
Fournit un stockage POSIX.
Le volume distant est vu
comme volume local
Un volume est attaché à une
instance VM à un instant t.
Un volume est attaché à une
instance VM à un instant t.
Cinder
Bloc Storage as a service
Compatible avec tous les
fournisseur iSCSI du marché
Bloc Storage as a service
Compatible avec tous les
fournisseur iSCSI du marché
L’état du volume est
indépendant des instances
VMs
L’état du volume est
indépendant des instances
VMs
69
Cinder : Architecture/Workflow
Cinder API
Scheduler
Cinder Volume
Cinder DB
Queue
70
Cinder : driver
71
Nova
Scheduler
Cinder Vol
Cinder
Cinder DB
Queue
Nova-compute
Hypervisor
Network
Compute Node
VM
Storage
Block Storage
Node
Router/GW
Network Node
DHCP/IPAM
Glance API
GlanceRegistery
Glance
Cinder DB
Keystone
Keystone DB
Quantum Server
Quantum
Quantum DB
Plugin/Agent
Proxy Server
Swift
Object Store
Cinder
Nova compute demande à iSCSI
Initiator et à l’hyperviseur de monter
le volume iSCSI comme un nouveau
volume dans la VM.
UI : Horizon /CLI
Keystone Server
Nova API
Conductor
Nova DB
Scheduler
Queue
Cinder API
72
Montage d’un volume iSCSI
Pilote iSCSI
TCP/IP
Pilote carte réseau
Passerelle de stockage
73
Nova
Scheduler
Cinder Vol
Cinder
Cinder DB
Queue
Nova-compute
Hypervisor
Network
Compute Node
VM
Storage
Block Storage
Node
Router/GW
Network Node
DHCP/IPAM
Glance API
GlanceRegistery
Glance
Cinder DB
Keystone
Keystone DB
Quantum Server
Quantum
Quantum DB
Plugin/Agent
Proxy Server
Swift
Object Store
Glance
Nova compute demande à Glance
l’image de la VM en précisant son ID.
UI : Horizon /CLI
Keystone Server
Nova API
Conductor
Nova DB
Scheduler
Queue
Cinder API
74
Glance
Fournit un service de
catalogue pour le stockage et
l'interrogation des images de
disques virtuels
Fournit un service de
catalogue pour le stockage et
l'interrogation des images de
disques virtuels
Support plusieurs types de
format d’image.
Support plusieurs types de
format d’image.
Glance
Support plusieurs types de stockages :
1. File System
2. http
3. Swift
4. Ceph
Support plusieurs types de stockages :
1. File System
2. http
3. Swift
4. Ceph
API RESTfulAPI RESTful
75
Glance : Architecture
76
Glance : Fonctionnalités
Image CRUD :
1. Create
2. Read
3. Update
4. Delete
Image CRUD :
1. Create
2. Read
3. Update
4. Delete
Image cacheImage cache
Glance
Recherche d’image par :
1. Nom
2. Conteneur
3. Format d’image
4. Taille min/max, status, etc
Recherche d’image par :
1. Nom
2. Conteneur
3. Format d’image
4. Taille min/max, status, etc
77
Glance : Formats d’image supporté
78
Nova
Scheduler
Cinder Vol
Cinder
Cinder DB
Queue
Nova-compute
Hypervisor
Network
Compute Node
VM
Storage
Block Storage
Node
Router/GW
Network Node
DHCP/IPAM
Glance API
GlanceRegistery
Glance
Cinder DB
Keystone
Keystone DB
Quantum Server
Quantum
Quantum DB
Plugin/Agent
Proxy Server
Swift
Object Store
Glance
Glance renvoi un HTTP Get URI (Path)
si l’image ID fourni existe.
UI : Horizon /CLI
Keystone Server
Nova API
Conductor
Nova DB
Scheduler
Queue
Cinder API
79
Nova
Scheduler
Cinder Vol
Cinder
Cinder DB
Queue
Nova-compute
Hypervisor
Network
Compute Node
VM
Block Storage
Node
Router/GW
Network Node
DHCP/IPAM
Glance API
GlanceRegistery
Glance
Cinder DB
Keystone
Keystone DB
Quantum Server
Quantum
Quantum DB
Plugin/Agent
Proxy Server
Swift
Object Store
Nova compute
Nova compute recupère les
informations sur la VM à partir de la
BD. Il crée la commande de création
de la VM et demande à l’hyperviseur
son exécution.
UI : Horizon /CLI
Keystone Server
Nova API
Conductor
Nova DB
Scheduler
Queue
Cinder API Storage
Dans le cas de KVM/libvirtd le
fichier de configuration de la VM
est XML.
80
Nova
Scheduler
Cinder Vol
Cinder
Cinder DB
Queue
Nova-compute
Hypervisor
Network
Compute Node
VM
Block Storage
Node
Router/GW
Network Node
DHCP/IPAM
Glance API
GlanceRegistery
Glance
Cinder DB
Keystone
Keystone DB
Quantum Server
Quantum
Quantum DB
Plugin/Agent
Proxy Server
Swift
Object Store
Nova compute
Nova compute envoi un message à
Nova conductor pour mettre à jour la
BD avec le nouveau statut de la VM. UI : Horizon /CLI
Keystone Server
Nova API
Conductor
Nova DB
Scheduler
Queue
Cinder API Storage
La communication iSCSI est initié.
Le volume distant est monté et il
est vu comme local.
81
Nova API
Scheduler
Conductor
Nova
Nova DB
Queue
Cinder API
Scheduler
Cinder Vol
Cinder
Cinder DB
Queue
Nova-compute
Hypervisor
Network
Compute Node
VM
Storage
Block Storage
Node
Router/GW
Network Node
DHCP/IPAM
Glance API
GlanceRegistery
Glance
Cinder DB
Keystone
Keystone DB
Quantum Server
Quantum
Quantum DB
Plugin/Agent
Proxy Server
Swift
Object Store
UI : Horizon /CLI
Horizon
Horizon demande périodiquement
l’état de la VM à l’API Nova. Un état
que Nova API récupère à partir de la
BD.
Keystone Server
82
Synthèse
83
OpenStack : Implémentation
84
Openstack : Les nouveaux de la classe
85
OpenStack
DEMODEMO
86

Contenu connexe

Tendances

Openstack pour les nuls
Openstack pour les nulsOpenstack pour les nuls
Openstack pour les nuls
Chris Cowley
 
Mise En Place d'une Solution de Supervision Réseau
Mise En Place d'une Solution de Supervision Réseau Mise En Place d'une Solution de Supervision Réseau
Mise En Place d'une Solution de Supervision Réseau
Yaya N'Tyeni Sanogo
 
Cloud Computing presentation
Cloud Computing presentationCloud Computing presentation
Cloud Computing presentation
Seif Ben Hammouda
 
TFE - Sécurité des architectures en conteneurs Docker orchestrés par Kubernetes
TFE -  Sécurité des architectures en conteneurs Docker orchestrés par KubernetesTFE -  Sécurité des architectures en conteneurs Docker orchestrés par Kubernetes
TFE - Sécurité des architectures en conteneurs Docker orchestrés par Kubernetes
ManuelMareschal
 
Rapport PFE : Cloud Insights
Rapport PFE : Cloud InsightsRapport PFE : Cloud Insights
Rapport PFE : Cloud Insights
ahmed oumezzine
 
Introduction au Cloud Computing
Introduction au Cloud Computing Introduction au Cloud Computing
Introduction au Cloud Computing
FICEL Hemza
 
Introduction à OpenStack
Introduction à OpenStackIntroduction à OpenStack
Introduction à OpenStack
AnDaolVras
 
Cours d'introduction au Cloud Computing
Cours d'introduction au Cloud ComputingCours d'introduction au Cloud Computing
Cours d'introduction au Cloud Computing
Nicolas Hennion
 
55174240 rapport-cloud-computing
55174240 rapport-cloud-computing55174240 rapport-cloud-computing
55174240 rapport-cloud-computing
noussa krid
 
Le cloud computing
Le cloud computingLe cloud computing
Le cloud computing
Arafet BOUSSAID
 
Etude de la virtualisation
Etude de la virtualisationEtude de la virtualisation
Etude de la virtualisation
Antoine Benkemoun
 
Rapport projet fin d'étude
Rapport projet fin d'étudeRapport projet fin d'étude
Rapport projet fin d'étude
HibaFarhat3
 
Cloud computing
Cloud computingCloud computing
Cloud computing
chaima ben
 
La sécurité du Cloud Computing
La sécurité du Cloud ComputingLa sécurité du Cloud Computing
La sécurité du Cloud Computing
Oumaima Karim
 
Cloud computing
Cloud computingCloud computing
Cloud computing
Heithem Abbes
 
Installation et configuration d'un système de Détection d'intrusion (IDS)
Installation et configuration d'un système de Détection d'intrusion (IDS)Installation et configuration d'un système de Détection d'intrusion (IDS)
Installation et configuration d'un système de Détection d'intrusion (IDS)
Charif Khrichfa
 
Cloud presentation
Cloud  presentationCloud  presentation
Cloud presentation
Cynapsys It Hotspot
 
Mise en place d'une Plateforme de Supervision et de Détection d'Intrusion Sys...
Mise en place d'une Plateforme de Supervision et de Détection d'Intrusion Sys...Mise en place d'une Plateforme de Supervision et de Détection d'Intrusion Sys...
Mise en place d'une Plateforme de Supervision et de Détection d'Intrusion Sys...
Alaaeddine Tlich
 
Etude et mise en place d’un VPN
Etude et mise en place d’un VPNEtude et mise en place d’un VPN
Etude et mise en place d’un VPN
Charif Khrichfa
 

Tendances (20)

Openstack pour les nuls
Openstack pour les nulsOpenstack pour les nuls
Openstack pour les nuls
 
Mise En Place d'une Solution de Supervision Réseau
Mise En Place d'une Solution de Supervision Réseau Mise En Place d'une Solution de Supervision Réseau
Mise En Place d'une Solution de Supervision Réseau
 
Cloud Computing presentation
Cloud Computing presentationCloud Computing presentation
Cloud Computing presentation
 
TFE - Sécurité des architectures en conteneurs Docker orchestrés par Kubernetes
TFE -  Sécurité des architectures en conteneurs Docker orchestrés par KubernetesTFE -  Sécurité des architectures en conteneurs Docker orchestrés par Kubernetes
TFE - Sécurité des architectures en conteneurs Docker orchestrés par Kubernetes
 
Rapport PFE : Cloud Insights
Rapport PFE : Cloud InsightsRapport PFE : Cloud Insights
Rapport PFE : Cloud Insights
 
Introduction au Cloud Computing
Introduction au Cloud Computing Introduction au Cloud Computing
Introduction au Cloud Computing
 
Introduction à OpenStack
Introduction à OpenStackIntroduction à OpenStack
Introduction à OpenStack
 
Cours d'introduction au Cloud Computing
Cours d'introduction au Cloud ComputingCours d'introduction au Cloud Computing
Cours d'introduction au Cloud Computing
 
55174240 rapport-cloud-computing
55174240 rapport-cloud-computing55174240 rapport-cloud-computing
55174240 rapport-cloud-computing
 
Le cloud computing
Le cloud computingLe cloud computing
Le cloud computing
 
Etude de la virtualisation
Etude de la virtualisationEtude de la virtualisation
Etude de la virtualisation
 
Rapport projet fin d'étude
Rapport projet fin d'étudeRapport projet fin d'étude
Rapport projet fin d'étude
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
La sécurité du Cloud Computing
La sécurité du Cloud ComputingLa sécurité du Cloud Computing
La sécurité du Cloud Computing
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
Installation et configuration d'un système de Détection d'intrusion (IDS)
Installation et configuration d'un système de Détection d'intrusion (IDS)Installation et configuration d'un système de Détection d'intrusion (IDS)
Installation et configuration d'un système de Détection d'intrusion (IDS)
 
Cloud presentation
Cloud  presentationCloud  presentation
Cloud presentation
 
Mise en place d'une Plateforme de Supervision et de Détection d'Intrusion Sys...
Mise en place d'une Plateforme de Supervision et de Détection d'Intrusion Sys...Mise en place d'une Plateforme de Supervision et de Détection d'Intrusion Sys...
Mise en place d'une Plateforme de Supervision et de Détection d'Intrusion Sys...
 
Etude et mise en place d’un VPN
Etude et mise en place d’un VPNEtude et mise en place d’un VPN
Etude et mise en place d’un VPN
 
Cloud Computing
Cloud Computing Cloud Computing
Cloud Computing
 

Similaire à Openstack framework Iaas

Le Cloud IaaS & PaaS, OpenStack réseau et sécurité
Le Cloud IaaS & PaaS, OpenStack réseau et sécuritéLe Cloud IaaS & PaaS, OpenStack réseau et sécurité
Le Cloud IaaS & PaaS, OpenStack réseau et sécurité
Noureddine BOUYAHIAOUI
 
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
MSDEVMTL
 
Orchestrating Docker in production - TIAD Camp Docker
Orchestrating Docker in production - TIAD Camp DockerOrchestrating Docker in production - TIAD Camp Docker
Orchestrating Docker in production - TIAD Camp Docker
The Incredible Automation Day
 
Prez -chtijug-29032016-(micro)services, loadbalancing et gestion des erreurs ...
Prez -chtijug-29032016-(micro)services, loadbalancing et gestion des erreurs ...Prez -chtijug-29032016-(micro)services, loadbalancing et gestion des erreurs ...
Prez -chtijug-29032016-(micro)services, loadbalancing et gestion des erreurs ...
Christophe Furmaniak
 
Atelier hadoop-single-sign-on
Atelier hadoop-single-sign-onAtelier hadoop-single-sign-on
Atelier hadoop-single-sign-on
sahar dridi
 
Introduction à Cloud Foundry et au PaaS
Introduction à Cloud Foundry et au PaaSIntroduction à Cloud Foundry et au PaaS
Introduction à Cloud Foundry et au PaaS
Gerard Konan
 
JA-SIG CAS - RMLL 2008
JA-SIG CAS - RMLL 2008JA-SIG CAS - RMLL 2008
JA-SIG CAS - RMLL 2008
Arnaud Lesueur
 
De l'Open Source à l'Open API (in French)
De l'Open Source à l'Open API (in French)De l'Open Source à l'Open API (in French)
De l'Open Source à l'Open API (in French)
Restlet
 
4D Summit Europe 2016 - Conférence d'A&C Consulting : "Stocker des données su...
4D Summit Europe 2016 - Conférence d'A&C Consulting : "Stocker des données su...4D Summit Europe 2016 - Conférence d'A&C Consulting : "Stocker des données su...
4D Summit Europe 2016 - Conférence d'A&C Consulting : "Stocker des données su...
Nathalie Richomme
 
Solution Hitachi Content Platform
Solution Hitachi Content PlatformSolution Hitachi Content Platform
Solution Hitachi Content Platform
Bertrand LE QUELLEC
 
Devenez l’Élu et maitrisez la Matrice AWS 🦸
Devenez l’Élu et maitrisez la Matrice AWS 🦸Devenez l’Élu et maitrisez la Matrice AWS 🦸
Devenez l’Élu et maitrisez la Matrice AWS 🦸
Membré Guillaume
 
Développez votre application Facebook avec Windows Azure
Développez votre application Facebook avec Windows AzureDéveloppez votre application Facebook avec Windows Azure
Développez votre application Facebook avec Windows Azure
Microsoft
 
OpenStack: stratégies et composants - Mars 2014 - Montréal - Québec - Canada
OpenStack: stratégies et composants - Mars 2014 - Montréal - Québec - CanadaOpenStack: stratégies et composants - Mars 2014 - Montréal - Québec - Canada
OpenStack: stratégies et composants - Mars 2014 - Montréal - Québec - CanadaJonathan Le Lous
 
BreizhCamp 2022
BreizhCamp 2022BreizhCamp 2022
BreizhCamp 2022
SpikeeLabs
 
Traitement temps réel de flux réseaux IPFIX/Netflow avec PySpark, Kafka et Ca...
Traitement temps réel de flux réseaux IPFIX/Netflow avec PySpark, Kafka et Ca...Traitement temps réel de flux réseaux IPFIX/Netflow avec PySpark, Kafka et Ca...
Traitement temps réel de flux réseaux IPFIX/Netflow avec PySpark, Kafka et Ca...
Julien Anguenot
 
Consul, un vrai couteau suisse
Consul, un vrai couteau suisseConsul, un vrai couteau suisse
Consul, un vrai couteau suisse
XavierPestel
 
Bbl microservices avec vert.x cdi elastic search
Bbl microservices avec vert.x cdi elastic searchBbl microservices avec vert.x cdi elastic search
Bbl microservices avec vert.x cdi elastic search
Idriss Neumann
 
Suivre l'évolution du covid19 sur RaspberryPi avec la suite Elastic
Suivre l'évolution du covid19 sur RaspberryPi avec la suite ElasticSuivre l'évolution du covid19 sur RaspberryPi avec la suite Elastic
Suivre l'évolution du covid19 sur RaspberryPi avec la suite Elastic
Idriss Neumann
 
Support NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDBSupport NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDB
ENSET, Université Hassan II Casablanca
 
Cloud computing cours in power point chap
Cloud computing cours in power point chapCloud computing cours in power point chap
Cloud computing cours in power point chap
aichafarahsouelmi
 

Similaire à Openstack framework Iaas (20)

Le Cloud IaaS & PaaS, OpenStack réseau et sécurité
Le Cloud IaaS & PaaS, OpenStack réseau et sécuritéLe Cloud IaaS & PaaS, OpenStack réseau et sécurité
Le Cloud IaaS & PaaS, OpenStack réseau et sécurité
 
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
 
Orchestrating Docker in production - TIAD Camp Docker
Orchestrating Docker in production - TIAD Camp DockerOrchestrating Docker in production - TIAD Camp Docker
Orchestrating Docker in production - TIAD Camp Docker
 
Prez -chtijug-29032016-(micro)services, loadbalancing et gestion des erreurs ...
Prez -chtijug-29032016-(micro)services, loadbalancing et gestion des erreurs ...Prez -chtijug-29032016-(micro)services, loadbalancing et gestion des erreurs ...
Prez -chtijug-29032016-(micro)services, loadbalancing et gestion des erreurs ...
 
Atelier hadoop-single-sign-on
Atelier hadoop-single-sign-onAtelier hadoop-single-sign-on
Atelier hadoop-single-sign-on
 
Introduction à Cloud Foundry et au PaaS
Introduction à Cloud Foundry et au PaaSIntroduction à Cloud Foundry et au PaaS
Introduction à Cloud Foundry et au PaaS
 
JA-SIG CAS - RMLL 2008
JA-SIG CAS - RMLL 2008JA-SIG CAS - RMLL 2008
JA-SIG CAS - RMLL 2008
 
De l'Open Source à l'Open API (in French)
De l'Open Source à l'Open API (in French)De l'Open Source à l'Open API (in French)
De l'Open Source à l'Open API (in French)
 
4D Summit Europe 2016 - Conférence d'A&C Consulting : "Stocker des données su...
4D Summit Europe 2016 - Conférence d'A&C Consulting : "Stocker des données su...4D Summit Europe 2016 - Conférence d'A&C Consulting : "Stocker des données su...
4D Summit Europe 2016 - Conférence d'A&C Consulting : "Stocker des données su...
 
Solution Hitachi Content Platform
Solution Hitachi Content PlatformSolution Hitachi Content Platform
Solution Hitachi Content Platform
 
Devenez l’Élu et maitrisez la Matrice AWS 🦸
Devenez l’Élu et maitrisez la Matrice AWS 🦸Devenez l’Élu et maitrisez la Matrice AWS 🦸
Devenez l’Élu et maitrisez la Matrice AWS 🦸
 
Développez votre application Facebook avec Windows Azure
Développez votre application Facebook avec Windows AzureDéveloppez votre application Facebook avec Windows Azure
Développez votre application Facebook avec Windows Azure
 
OpenStack: stratégies et composants - Mars 2014 - Montréal - Québec - Canada
OpenStack: stratégies et composants - Mars 2014 - Montréal - Québec - CanadaOpenStack: stratégies et composants - Mars 2014 - Montréal - Québec - Canada
OpenStack: stratégies et composants - Mars 2014 - Montréal - Québec - Canada
 
BreizhCamp 2022
BreizhCamp 2022BreizhCamp 2022
BreizhCamp 2022
 
Traitement temps réel de flux réseaux IPFIX/Netflow avec PySpark, Kafka et Ca...
Traitement temps réel de flux réseaux IPFIX/Netflow avec PySpark, Kafka et Ca...Traitement temps réel de flux réseaux IPFIX/Netflow avec PySpark, Kafka et Ca...
Traitement temps réel de flux réseaux IPFIX/Netflow avec PySpark, Kafka et Ca...
 
Consul, un vrai couteau suisse
Consul, un vrai couteau suisseConsul, un vrai couteau suisse
Consul, un vrai couteau suisse
 
Bbl microservices avec vert.x cdi elastic search
Bbl microservices avec vert.x cdi elastic searchBbl microservices avec vert.x cdi elastic search
Bbl microservices avec vert.x cdi elastic search
 
Suivre l'évolution du covid19 sur RaspberryPi avec la suite Elastic
Suivre l'évolution du covid19 sur RaspberryPi avec la suite ElasticSuivre l'évolution du covid19 sur RaspberryPi avec la suite Elastic
Suivre l'évolution du covid19 sur RaspberryPi avec la suite Elastic
 
Support NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDBSupport NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDB
 
Cloud computing cours in power point chap
Cloud computing cours in power point chapCloud computing cours in power point chap
Cloud computing cours in power point chap
 

Openstack framework Iaas

  • 1. 1 OpenStack le framework du IaaS Noureddine BOUYAHIAOUI noureddine@bouyahiaoui.com
  • 2. Plan A. OpenStack Eco-Système 1. Définition 2. Historique 3. Projet B. OpenStack Architecture 1. Architecture logique 2. Flux de création d’une VM 3. Détail des composants 2
  • 3. OpenStack ? « OpenSource Software to building private or public clouds » OpenStack Fondation « Openstack is a framework to control various virtual items and associated storage elements » Ma vision 3
  • 4. OpenStack : les possibilités 1. VM à la demande : • Provisionning • Snapshotting 2. Volumes 2. Réseaux 3. Stockage Objet pour les images de VM ou des fichiers quelconques 4. Multi-tenante : • Quotas par tenants • Utilisateurs peut appartenir à plusieurs tenant 4
  • 6. OpenStack : Grizzly Release Les projets cores Nova : Service compute Glance : Service image Quantum : service réseaux Cinder : Service stockage en bloque Swift : Service stockage objets Projets communs Keystone : service identitie Horizon : Web Gui / Dashboard Projet Librairie Oslo : Code partagé (Shared infrastructure Code) Projets en incubation (Officiel dans Havana) Ceilometer : Service Metering/Monitoring Heat : Service orchestration 6
  • 7. OpenStack : Organisation d’un projet 1. Chaque projet a un Lead Technique élu (PTL) 2. Séparation entre les équipes de devellopements et d'architectures 3. Chaque projet possède une API RESTfull (JSON/HTTP) sauf Horizon 4. Base de données séparée 7
  • 8. OpenStack : Vue Conceptuelle 8
  • 11. Nova API Scheduler Conductor Nova Nova DB Queue Cinder API Scheduler Cinder Vol Cinder Cinder DB Queue Nova-compute Hypervisor Network Compute Node VM Storage Block Storage Node Router/GW Network Node DHCP/IPAM Glance API GlanceRegistery Glance Cinder DB Keystone Keystone DB Quantum Server Quantum Quantum DB Plugin/Agent Proxy Server Swift Object Store OpenStack UI : Horizon /CLI Keystone Server 11
  • 12. Nova API Scheduler Conductor Nova Nova DB Queue Cinder API Scheduler Cinder Vol Cinder Cinder DB Queue Nova-compute Hypervisor Network Compute Node VM Storage Block Storage Node Router/GW Network Node DHCP/IPAM Glance API GlanceRegistery Glance Cinder DB Keystone Server Keystone Keystone DB Quantum Server Quantum Quantum DB Plugin/Agent Proxy Server Swift Object Store UI : Horizon /CLI Http : Chaque composant expose une API RESTful AMQP : SQL : Native API : iSCSI : 12
  • 13. Nova API Scheduler Conductor Nova Nova DB Queue Cinder API Scheduler Cinder Vol Cinder Cinder DB Queue Nova-compute Hypervisor Network Compute Node VM Storage Block Storage Node Router/GW Network Node DHCP/IPAM Glance API GlanceRegistery Glance Cinder DB Keystone Server Keystone Keystone DB Quantum Server Quantum Quantum DB Plugin/Agent Proxy Server Swift Object Store UI : Horizon /CLI http : Chaque composant expose une API RESTful AMQP : Les actions distribuées passent par la Queue SQL : Native API : iSCSI : 13
  • 14. Nova API Scheduler Conductor Nova Nova DB Queue Cinder API Scheduler Cinder Vol Cinder Cinder DB Queue Nova-compute Hypervisor Network Compute Node VM Storage Block Storage Node Router/GW Network Node DHCP/IPAM Glance API GlanceRegistery Glance Cinder DB Keystone Server Keystone Keystone DB Quantum Server Quantum Quantum DB Plugin/Agent Proxy Server Swift Object Store UI : Horizon /CLI Http: Chaque composant expose une API RESTful AMQP : Les actions distribuées passent par la Queue SQL : chaque service gère sa propre base de données Native API : iSCSI : 14
  • 15. Nova API Scheduler Conductor Nova Nova DB Queue Cinder API Scheduler Cinder Vol Cinder Cinder DB Queue Nova-compute Hypervisor Network Compute Node VM Storage Block Storage Node Router/GW Network Node DHCP/IPAM Glance API GlanceRegistery Glance Cinder DB Keystone Server Keystone Keystone DB Quantum Server Quantum Quantum DB Plugin/Agent Proxy Server Swift Object Store UI : Horizon /CLI Http: Chaque composant expose une API RESTful AMQP : Les actions distribuées passent par la Queue SQL : chaque service gère sa propre base de données Native API : Accès direct via un protocole propre iSCSI : 15
  • 16. Nova API Scheduler Conductor Nova Nova DB Queue Cinder API Scheduler Cinder Vol Cinder Cinder DB Queue Nova-compute Hypervisor Network Compute Node VM Storage Block Storage Node Router/GW Network Node DHCP/IPAM Glance API GlanceRegistery Glance Cinder DB Keystone Server Keystone Keystone DB Quantum Server Quantum Quantum DB Plugin/Agent Proxy Server Swift Object Store UI : Horizon /CLI Http: Chaque composant expose une API RESTful AMQP : Les actions distribuées passent par la Queue SQL : chaque service gère sa propre base de données Native API : Accès direct via un protocole propre iSCSI : Le montage des volumes avec le protocole iSCSI (block storage) 16
  • 17. Cas d’utilisation création d’une VM 1. Une opération courante, mais complexe 2. Elle nécessite l’interaction avec tous les composants d’OpenStack 3. Dans ce qui suit on admet que : • L’utilisateur existe déjà • Le tenant est crée • L’utilisateur à droit d’accès à Horizon • Les quotas sont définit 17
  • 18. Quotas quantum.quota.ConfDriver : 1. Tous les projets auront les mêmes quotas 2. Quotas définis dans le fichier de conf quantum.quota.ConfDriver : 1. Tous les projets auront les mêmes quotas 2. Quotas définis dans le fichier de conf Mécanisme utilisé dans les différentes API d’OpenStack pour limiter le nombre de ressources qu’un tenant peut créer ou utiliser Mécanisme utilisé dans les différentes API d’OpenStack pour limiter le nombre de ressources qu’un tenant peut créer ou utiliser quantum.db.quota_db.DbQuotaDriver 1. chaque projet a ses propres Quotas 2. Les quotas sont stockés dans la BD quantum.db.quota_db.DbQuotaDriver 1. chaque projet a ses propres Quotas 2. Les quotas sont stockés dans la BD Quotas Limitation : 1. Network, Subnet, Port, Router, Floatingip et security group. 2. VMs, Volumes 3. etc Limitation : 1. Network, Subnet, Port, Router, Floatingip et security group. 2. VMs, Volumes 3. etc 18
  • 19. Nova API Scheduler Conductor Nova Nova DB Queue Cinder API Scheduler Cinder Vol Cinder Cinder DB Queue Nova-compute Hypervisor Network Compute Node VM Storage Block Storage Node Router/GW Network Node DHCP/IPAM Glance API GlanceRegistery Glance Cinder DB Keystone Server Keystone Keystone DB Quantum Server Quantum Quantum DB Plugin/Agent Proxy Server Swift Object Store UI : Horizon /CLI Connexion à Horizon 19
  • 20. Horizon OpenStack DashBoard (Horizon) fournie une interface web pour la gestion des services OpenStack 20
  • 21. Horizon 1. Stateless 2. Utilise memcached comme cache pour les sessions 3. Se met à jour via le polling de l’API Nova 4. Chaque composant OpenStack possède son propre module dans Horizon 21
  • 22. Nova API Scheduler Conductor Nova Nova DB Queue Cinder API Scheduler Cinder Vol Cinder Cinder DB Queue Nova-compute Hypervisor Network Compute Node VM Storage Block Storage Node Router/GW Network Node DHCP/IPAM Glance API GlanceRegistery Glance Cinder DB Keystone Server Keystone Keystone DB Quantum Server Quantum Quantum DB Plugin/Agent Proxy Server Swift Object Store UI : Horizon /CLI Connexion à Horizon Les paramètre transmis sont transformés en une requette HTTP Post à destination de KeyStone 22
  • 23. KeyStone 1. Keystone est un projet Openstack, il offre une gestion de l’identité et des autorisations d’accès pour les différents services d’OpenStack. 2. Keystone fourni un jeton d'autorisation. Ce jeton est ensuite utilisé comme un laissé passé pour utiliser les ressources et services tel que le stockage ou le calcul etc. 3. API RESTful 4. Communication via le protocole http ou http via SSL (https). 23
  • 24. KeyStone API RESTfulAPI RESTful Un projet Openstack, il offre une gestion de l’identité et des autorisations d’accès pour les différents services d’OpenStack. Un projet Openstack, il offre une gestion de l’identité et des autorisations d’accès pour les différents services d’OpenStack. Communication via le protocole http ou https via SSL. Communication via le protocole http ou https via SSL. Keystone Fourni un jeton d'autorisation. Ce jeton est utilisé comme un laissé passé pour utiliser les ressources et services tel que le stockage ou le calcul etc Fourni un jeton d'autorisation. Ce jeton est utilisé comme un laissé passé pour utiliser les ressources et services tel que le stockage ou le calcul etc 24
  • 25. KeyStone : Concepts Endpoint : Une adresse réseau, généralement décrite par une URL, où un service peut être accessible. Endpoint : Une adresse réseau, généralement décrite par une URL, où un service peut être accessible. User : peut-être une personne, un système ou un service User : peut-être une personne, un système ou un service Role : Un rôle comprend un ensemble de droits et privilèges. Role : Un rôle comprend un ensemble de droits et privilèges. Keystone Tenant (ou projet) : est un conteneur pour grouper les services ou les utilisateurs. Tenant (ou projet) : est un conteneur pour grouper les services ou les utilisateurs. Les Credentials : les données qui permettent d’authentifier un utilisateur ou un service : 1. Login et Mot de passe 2. Login et une clé 3. Token qui vous a été délivré. Les Credentials : les données qui permettent d’authentifier un utilisateur ou un service : 1. Login et Mot de passe 2. Login et une clé 3. Token qui vous a été délivré. 25
  • 26. KeyStone : Architecture KeyStone APIKeyStone API Policy Backend Token Backend Catalogue Backend Identity Backend User, role and tenant data Endpoint catalogue Temporary tokens Rule management interface and rule based authorization 26
  • 27. KeyStone : Validation 1. Horizon envoi une requête HTTP à KeyStone 2. Keystone de son côté parse cette demande et vérifie les éléments suivants : • Authentification : la validité des credentials • Control d'accès : la validité du mapping User-Tenant-Role • Autorisation (droit d’accès) : La requête demandé est accessible pour l'utilisateur en question 27
  • 29. Nova API Scheduler Conductor Nova Nova DB Queue Cinder API Scheduler Cinder Vol Cinder Cinder DB Queue Nova-compute Hypervisor Network Compute Node VM Storage Block Storage Node Router/GW Network Node DHCP/IPAM Glance API GlanceRegistery Glance Cinder DB Keystone Server Keystone Keystone DB Quantum Server Quantum Quantum DB Plugin/Agent Proxy Server Swift Object Store UI : Horizon /CLI Connexion à Horizon KeyStone envoi à Horizon un Token temporaire. 29
  • 30. Interaction avec Nova Requête de création d'une VM à partir d'Horizon : 1. Nom de la VM 2. Image 3. Flavor (CPU, Mémoire, disque) 4. Réseau 5. Options : SSH Keys, volume, commentaires, personnalites, etc 30
  • 31. Nova API Scheduler Conductor Nova Nova DB Queue Cinder API Scheduler Cinder Vol Cinder Cinder DB Queue Nova-compute Hypervisor Network Compute Node VM Storage Block Storage Node Router/GW Network Node DHCP/IPAM Glance API GlanceRegistery Glance Cinder DB Keystone Keystone DB Quantum Server Quantum Quantum DB Plugin/Agent Proxy Server Swift Object Store UI : Horizon /CLI Nova API Horizon envoi un http Post à Nova API. Token récupérer auparavant est envoyé également. Keystone Server 31
  • 32. Nova Le composant de calcul du système d'exploitation Cloud Le composant de calcul du système d'exploitation Cloud permet de créer un environnement Cloud Computing hautement évolutif et redondant permet de créer un environnement Cloud Computing hautement évolutif et redondant Nova permet l'exécution de plusieurs instances de machines virtuelles sur un nombre illimité d'hôtes exécutant nova-compute permet l'exécution de plusieurs instances de machines virtuelles sur un nombre illimité d'hôtes exécutant nova-compute Composé principalement de : 1. Nova API 2. Scheduler 3. Conductor 4. Nova-Compute Composé principalement de : 1. Nova API 2. Scheduler 3. Conductor 4. Nova-Compute 32
  • 33. Nova API Horizon (UI) Nova (CLI) Euca-tools(CLI) Nova-Api EC2-APICompute API 33
  • 34. Nova API Scheduler Conductor Nova Nova DB Queue Cinder API Scheduler Cinder Vol Cinder Cinder DB Queue Nova-compute Hypervisor Network Compute Node VM Storage Block Storage Node Router/GW Network Node DHCP/IPAM Glance API GlanceRegistery Glance Cinder DB Keystone Server Keystone Keystone DB Quantum Server Quantum Quantum DB Plugin/Agent Proxy Server Swift Object Store Nova API Nova API envoi le token à KeyStone pour validation. UI : Horizon /CLI 34
  • 35. Nova API Scheduler Conductor Nova Nova DB Queue Cinder API Scheduler Cinder Vol Cinder Cinder DB Queue Nova-compute Hypervisor Network Compute Node VM Storage Block Storage Node Router/GW Network Node DHCP/IPAM Glance API GlanceRegistery Glance Cinder DB Keystone Server Keystone Keystone DB Quantum Server Quantum Quantum DB Plugin/Agent Proxy Server Swift Object Store Nova API KeyStone valide le token. Il envoi à Nova API une réponse http contenant les infos d’acceptation ou de rejet UI : Horizon /CLI 35
  • 36. Nova API Scheduler Conductor Nova Nova DB Queue Cinder API Scheduler Cinder Vol Cinder Cinder DB Queue Nova-compute Hypervisor Network Compute Node VM Storage Block Storage Node Router/GW Network Node DHCP/IPAM Glance API GlanceRegistery Glance Cinder DB Keystone Keystone DB Quantum Server Quantum Quantum DB Plugin/Agent Proxy Server Swift Object Store Nova API Nova API valide le token en utilisant CA, CERT & CRL récupéré de KeyStone. UI : Horizon /CLI Keystone Server 36
  • 37. Nova API Scheduler Conductor Nova Nova DB Queue Cinder API Scheduler Cinder Vol Cinder Cinder DB Queue Nova-compute Hypervisor Network Compute Node VM Storage Block Storage Node Router/GW Network Node DHCP/IPAM Glance API GlanceRegistery Glance Cinder DB Keystone Keystone DB Quantum Server Quantum Quantum DB Plugin/Agent Proxy Server Swift Object Store Nova API Nova API parse la requête, crée un objet python et insert l’objet dans Nova DB. L’enregistrement ainsi crée représente le premier état de la VM UI : Horizon /CLI Keystone Server 37
  • 38. Nova DataBases Stocke l’état des objets répartis sur les différents Compute Nodes Stocke l’état des objets répartis sur les différents Compute Nodes Nova API communique avec le SGBD via l’ORM SQLAlchemy Nova API communique avec le SGBD via l’ORM SQLAlchemy Nova DataBase Théoriquement n’importe quel SGBD du marché compatible. Les déploiement se font que sur MySQL et PostgreSQL Théoriquement n’importe quel SGBD du marché compatible. Les déploiement se font que sur MySQL et PostgreSQL Le HA se fait via : 1. Master/Master ou Master/Slave 2. TCP/IP RAID1 (PeaceMaker/DRBD) Le HA se fait via : 1. Master/Master ou Master/Slave 2. TCP/IP RAID1 (PeaceMaker/DRBD) 38
  • 39. Nova API Scheduler Conductor Nova Queue Cinder API Scheduler Cinder Vol Cinder Cinder DB Queue Nova-compute Hypervisor Network Compute Node VM Storage Block Storage Node Router/GW Network Node DHCP/IPAM Glance API GlanceRegistery Glance Cinder DB Keystone Keystone DB Quantum Server Quantum Quantum DB Plugin/Agent Proxy Server Swift Object Store Message Queue (Bus de communication) Nova API fait un rpc.call au Scheduler. Le message publié contient des infos sur la VM. UI : Horizon /CLI Keystone Server Nova DB 39
  • 40. Message Queue (Bus de communication) Le Bus de communication est un moyen unifié pour faire collaborer les différents composants de NOVA 40
  • 41. Scheduler Conductor Nova Queue Cinder API Scheduler Cinder Vol Cinder Cinder DB Queue Nova-compute Hypervisor Network Compute Node VM Storage Block Storage Node Router/GW Network Node DHCP/IPAM Glance API GlanceRegistery Glance Cinder DB Keystone Keystone DB Quantum Server Quantum Quantum DB Plugin/Agent Proxy Server Swift Object Store Message Queue (Bus de communication) UI : Horizon /CLI Keystone Server Nova DB Nova API Scheduler récupère le message à partir de la MQ 41
  • 42. Nova Scheduler Création de la VM dans un Compute Node particulier Création de la VM dans un Compute Node particulier Création des VMs dans des Computes Nodes différents Création des VMs dans des Computes Nodes différents Nova Scheduler Création des VMs d'un tenant particulier dans des Computes Nodes isolés Création des VMs d'un tenant particulier dans des Computes Nodes isolés Le demon Nova Scheduler détermine dans quel Compute Node la requête va être exécutée 42
  • 44. Nova Scheduler : Filtre 44
  • 45. Nova Scheduler : Filtre 45
  • 46. Nova Scheduler : Filtre 1. Les filtres sont configurés dans le fichier nova.conf 2. Plusieurs filtres peuvent être spécifiés en même temps 3. Il est possible de créer un filtre spécifique : • Par héritage de la Class BaseHostFilter • Surcharger hos_passes(self,host_state,filter_properties) 46
  • 47. Cinder API Scheduler Cinder Vol Cinder Cinder DB Queue Nova-compute Hypervisor Network Compute Node VM Storage Block Storage Node Router/GW Network Node DHCP/IPAM Glance API GlanceRegistery Glance Cinder DB Keystone Keystone DB Quantum Server Quantum Quantum DB Plugin/Agent Proxy Server Swift Object Store Nova Scheduler Scheduler récupère la liste de tous les nœuds computes et les filtres. Il selectionne le nœud et il met à jour la BD avec son ID UI : Horizon /CLI Keystone Server Scheduler Conductor Nova Nova DB Queue Nova API 47
  • 48. Nova Cinder API Scheduler Cinder Vol Cinder Cinder DB Queue Nova-compute Hypervisor Network Compute Node VM Storage Block Storage Node Router/GW Network Node DHCP/IPAM Glance API GlanceRegistery Glance Cinder DB Keystone Keystone DB Quantum Server Quantum Quantum DB Plugin/Agent Proxy Server Swift Object Store Nova Scheduler UI : Horizon /CLI Keystone Server Nova API Scheduler Conductor Queue Nova DB 48 Scheduler publie un message pour nœud compute (ID) pour la création d’une nouvelle VM
  • 49. Nova Cinder API Scheduler Cinder Vol Cinder Cinder DB Queue Nova-compute Hypervisor Network Compute Node VM Storage Block Storage Node Router/GW Network Node DHCP/IPAM Glance API GlanceRegistery Glance Cinder DB Keystone Keystone DB Quantum Server Quantum Quantum DB Plugin/Agent Proxy Server Swift Object Store Nova Compute Nova compute récupère le message qu’il lui y destiné à partir de la Queue UI : Horizon /CLI Keystone Server Nova API Conductor Queue Nova DB Scheduler 49
  • 50. Nova Compute 1. nova-compute est un worker demon 2. Crée et met fin aux VM via l’API installer dans l'hyperviseur • XenAPI pour XenServer / XCP • libvirt pour KVM ou QEMU • VMwareAPI pour VMware • … etc. 50
  • 51. Nova Cinder API Scheduler Cinder Vol Cinder Cinder DB Queue Nova-compute Hypervisor Network Compute Node VM Storage Block Storage Node Router/GW Network Node DHCP/IPAM Glance API GlanceRegistery Glance Cinder DB Keystone Keystone DB Quantum Server Quantum Quantum DB Plugin/Agent Proxy Server Swift Object Store Nova Compute Nova compute envoi un message à Conductor via la Queue pour recuperer les infos sur la VM à créée UI : Horizon /CLI Keystone Server Nova API Conductor Queue Nova DB Scheduler 51
  • 52. Nova Conductor Le proxy Base de données de Nova Compute Le proxy Base de données de Nova Compute Scalabilité HorizontalScalabilité Horizontal Nova Conductor Elimine les connexion à distance vers la BD Elimine les connexion à distance vers la BD Schéma de la BD n’est plus visible à Nova Compute Schéma de la BD n’est plus visible à Nova Compute 52
  • 53. Nova Cinder API Scheduler Cinder Vol Cinder Cinder DB Queue Nova-compute Hypervisor Network Compute Node VM Storage Block Storage Node Router/GW Network Node DHCP/IPAM Glance API GlanceRegistery Glance Cinder DB Keystone Keystone DB Quantum Server Quantum Quantum DB Plugin/Agent Proxy Server Swift Object Store Nova Compute Nova compute demande à Quantum API de créer les éléments réseaux pour la VM UI : Horizon /CLI Keystone Server Nova API Conductor Nova DB Queue Scheduler 53
  • 54. Quantum Propose la connectivité réseau en tant que service « Network as a service » Propose la connectivité réseau en tant que service « Network as a service » Hautement configurable en raison de son architecture orienté plugin. Hautement configurable en raison de son architecture orienté plugin. Quantum Expose une API qui permet aux utilisateurs de créer leurs propres réseaux, routeur et rattacher les interfaces réseaux aux ports des équipements réseaux crées Expose une API qui permet aux utilisateurs de créer leurs propres réseaux, routeur et rattacher les interfaces réseaux aux ports des équipements réseaux crées Séparation de la description du réseau de son implémentation Séparation de la description du réseau de son implémentation 54
  • 55. Quantum Allocation des adresses MACAllocation des adresses MAC Configuration du réseau niveau 2 (L2) via quantum plugin Configuration du réseau niveau 2 (L2) via quantum plugin Quantum Allocation d’IPs pour chaque réseau. Mettre à jour le DHCP avec l’association IP /MAC Allocation d’IPs pour chaque réseau. Mettre à jour le DHCP avec l’association IP /MAC Configuration du réseau L3, Mise en place des GWs (création de routeurs) Configuration du réseau L3, Mise en place des GWs (création de routeurs) 55
  • 56. Quantum : Architecture Quantum DB Quantum Server Quantum Plugin Queue dhcp-agent Metadata- agent plugin-agent VM l3-agent Quantum Server: 1. Implémente quantum API et ces extension 2. Impose le modèl network, subnet, port 3. Attribution d’adresse IP Quantum Server: 1. Implémente quantum API et ces extension 2. Impose le modèl network, subnet, port 3. Attribution d’adresse IP Plugin agent: 1. S’exécute sur chaque nœud de calcul/Network 2. Connect les VMs aux réseaux Plugin agent: 1. S’exécute sur chaque nœud de calcul/Network 2. Connect les VMs aux réseaux Dhcp agent: 1. S’exécute sur chaque nœud network 2. Connect les VMs aux réseaux 3. Mettre à jour le DHCP Dhcp agent: 1. S’exécute sur chaque nœud network 2. Connect les VMs aux réseaux 3. Mettre à jour le DHCP L3 agent: 1. Implément les floating IP, ainsi que tous les fonctionnalitées L3 (NAT, SNAT, …) 2. Un agent par réseau L3 agent: 1. Implément les floating IP, ainsi que tous les fonctionnalitées L3 (NAT, SNAT, …) 2. Un agent par réseau Metatdata agent: Médiation entre l3-agent, dhcp-agent et nova- metadata API Server Metatdata agent: Médiation entre l3-agent, dhcp-agent et nova- metadata API Server 56
  • 57. Nova Cinder API Scheduler Cinder Vol Cinder Cinder DB Queue Hypervisor Network Compute Node VM Storage Block Storage Node Router/GW Network Node DHCP/IPAM Glance API GlanceRegistery Glance Cinder DB Keystone Keystone DB Quantum Server Quantum Quantum DB Plugin/Agent Proxy Server Swift Object Store Quantum Quantum configure l’IP, GW, la connectivité L2, Security Group, etc UI : Horizon /CLI Keystone Server Nova API Conductor Scheduler Nova DB Queue Nova-compute 57
  • 59. Quantum : Compute Node 59
  • 60. Quantum : Network Node 60
  • 61. Quantum : Network vue d’ensemble 61
  • 62. Haute disponibilité du réseau 1. DHCP Agent support le HA 2. L3 Agent dans la nouvelle release 1. DHCP Agent support le HA 2. L3 Agent dans la nouvelle release HA 1. Chaque Agent de la stack réseau envoi des Heartbeat à la Queue 2. Les états sont stockés dans la BD 1. Chaque Agent de la stack réseau envoi des Heartbeat à la Queue 2. Les états sont stockés dans la BD 62
  • 63. La sécurité dans le Cloud La sécurité est un élément primordial dans le CloudLa sécurité est un élément primordial dans le Cloud 63
  • 64. La sécurité dans le Cloud Un Cloud peut être abstrait comme une collection de composants logiques (domaines de sécurité) : 1. Fonction 2. Utilisateurs 3. Les problèmes de sécurité communs 64
  • 65. La sécurité dans le Cloud Public : 1. Un espace entièrement non fiable de l'infrastructure Cloud. 2. Toutes les données qui transitent ce domaine doivent être protégées et répondre aux exigences de la confidentialité et l'intégrité Public : 1. Un espace entièrement non fiable de l'infrastructure Cloud. 2. Toutes les données qui transitent ce domaine doivent être protégées et répondre aux exigences de la confidentialité et l'intégrité Data : 1. Concerne principalement les informations relatives aux services de stockage au sein OpenStack. 2. La plupart des données qui traversent ce réseau nécessitent une grande intégrité et confidentialité. 3. En fonction de type déploiement, il peut y avoir aussi une forte exigence de disponibilité Data : 1. Concerne principalement les informations relatives aux services de stockage au sein OpenStack. 2. La plupart des données qui traversent ce réseau nécessitent une grande intégrité et confidentialité. 3. En fonction de type déploiement, il peut y avoir aussi une forte exigence de disponibilité Domaine de sécurité Management : 1. L'endroit où les services (APIs) interagissent. 2. Les réseaux dans ce domaine transportent des données confidentielles telles que les paramètres de configuration, noms d'utilisateur et mots de passe. 3. Le trafic de commandement et de contrôle réside habituellement dans ce domaine 4. Ce domaine doit être isolé et sécurisé Management : 1. L'endroit où les services (APIs) interagissent. 2. Les réseaux dans ce domaine transportent des données confidentielles telles que les paramètres de configuration, noms d'utilisateur et mots de passe. 3. Le trafic de commandement et de contrôle réside habituellement dans ce domaine 4. Ce domaine doit être isolé et sécurisé Guest : 1. Utilisé pour le trafic d'instance à instance Guest : 1. Utilisé pour le trafic d'instance à instance 65
  • 66. La sécurité dans le Cloud Pontage des domaines de sécurité 1. Un pont est un élément qui existe à l'intérieur d’un ou plusieurs domaines de sécurité. 2. Les ponts sont souvent le point faible dans une architecture réseau. 3. Tout composant construisant un pont entre des domaines de sécurité doit être soigneusement configuré. 4. Un pont doit toujours être configuré pour répondre aux exigences de sécurité et d’un niveau de confiance. 5. Les ponts devraient être une préoccupation majeure en raison de la probabilité d'une attaque. 66
  • 67. La sécurité dans le Cloud La gestion des identités et des accès dans OpenStack La gestion des identités et des accès dans OpenStack Sécurisations des Flux via des protocoles de sécurité tel que SSL/TLS Sécurisations des Flux via des protocoles de sécurité tel que SSL/TLS Approche 1. Délégation de la gestion des identités au service LDAP 2. Keystone V3 amène plus de granularité 1. Délégation de la gestion des identités au service LDAP 2. Keystone V3 amène plus de granularité Connaître les failles de sécurité du système et les gérer Connaître les failles de sécurité du système et les gérer 67
  • 68. Nova Cinder API Scheduler Cinder Vol Cinder Cinder DB Queue Nova-compute Hypervisor Network Compute Node VM Storage Block Storage Node Router/GW Network Node DHCP/IPAM Glance API GlanceRegistery Glance Cinder DB Keystone Keystone DB Quantum Server Quantum Quantum DB Plugin/Agent Proxy Server Swift Object Store Cinder Nova compute contacte Cinder pour monter un volume qui existe déjà. UI : Horizon /CLI Keystone Server Nova API Conductor Nova DB Scheduler Queue 68
  • 69. Cinder Fournit un stockage POSIX. Le volume distant est vu comme volume local Fournit un stockage POSIX. Le volume distant est vu comme volume local Un volume est attaché à une instance VM à un instant t. Un volume est attaché à une instance VM à un instant t. Cinder Bloc Storage as a service Compatible avec tous les fournisseur iSCSI du marché Bloc Storage as a service Compatible avec tous les fournisseur iSCSI du marché L’état du volume est indépendant des instances VMs L’état du volume est indépendant des instances VMs 69
  • 70. Cinder : Architecture/Workflow Cinder API Scheduler Cinder Volume Cinder DB Queue 70
  • 72. Nova Scheduler Cinder Vol Cinder Cinder DB Queue Nova-compute Hypervisor Network Compute Node VM Storage Block Storage Node Router/GW Network Node DHCP/IPAM Glance API GlanceRegistery Glance Cinder DB Keystone Keystone DB Quantum Server Quantum Quantum DB Plugin/Agent Proxy Server Swift Object Store Cinder Nova compute demande à iSCSI Initiator et à l’hyperviseur de monter le volume iSCSI comme un nouveau volume dans la VM. UI : Horizon /CLI Keystone Server Nova API Conductor Nova DB Scheduler Queue Cinder API 72
  • 73. Montage d’un volume iSCSI Pilote iSCSI TCP/IP Pilote carte réseau Passerelle de stockage 73
  • 74. Nova Scheduler Cinder Vol Cinder Cinder DB Queue Nova-compute Hypervisor Network Compute Node VM Storage Block Storage Node Router/GW Network Node DHCP/IPAM Glance API GlanceRegistery Glance Cinder DB Keystone Keystone DB Quantum Server Quantum Quantum DB Plugin/Agent Proxy Server Swift Object Store Glance Nova compute demande à Glance l’image de la VM en précisant son ID. UI : Horizon /CLI Keystone Server Nova API Conductor Nova DB Scheduler Queue Cinder API 74
  • 75. Glance Fournit un service de catalogue pour le stockage et l'interrogation des images de disques virtuels Fournit un service de catalogue pour le stockage et l'interrogation des images de disques virtuels Support plusieurs types de format d’image. Support plusieurs types de format d’image. Glance Support plusieurs types de stockages : 1. File System 2. http 3. Swift 4. Ceph Support plusieurs types de stockages : 1. File System 2. http 3. Swift 4. Ceph API RESTfulAPI RESTful 75
  • 77. Glance : Fonctionnalités Image CRUD : 1. Create 2. Read 3. Update 4. Delete Image CRUD : 1. Create 2. Read 3. Update 4. Delete Image cacheImage cache Glance Recherche d’image par : 1. Nom 2. Conteneur 3. Format d’image 4. Taille min/max, status, etc Recherche d’image par : 1. Nom 2. Conteneur 3. Format d’image 4. Taille min/max, status, etc 77
  • 78. Glance : Formats d’image supporté 78
  • 79. Nova Scheduler Cinder Vol Cinder Cinder DB Queue Nova-compute Hypervisor Network Compute Node VM Storage Block Storage Node Router/GW Network Node DHCP/IPAM Glance API GlanceRegistery Glance Cinder DB Keystone Keystone DB Quantum Server Quantum Quantum DB Plugin/Agent Proxy Server Swift Object Store Glance Glance renvoi un HTTP Get URI (Path) si l’image ID fourni existe. UI : Horizon /CLI Keystone Server Nova API Conductor Nova DB Scheduler Queue Cinder API 79
  • 80. Nova Scheduler Cinder Vol Cinder Cinder DB Queue Nova-compute Hypervisor Network Compute Node VM Block Storage Node Router/GW Network Node DHCP/IPAM Glance API GlanceRegistery Glance Cinder DB Keystone Keystone DB Quantum Server Quantum Quantum DB Plugin/Agent Proxy Server Swift Object Store Nova compute Nova compute recupère les informations sur la VM à partir de la BD. Il crée la commande de création de la VM et demande à l’hyperviseur son exécution. UI : Horizon /CLI Keystone Server Nova API Conductor Nova DB Scheduler Queue Cinder API Storage Dans le cas de KVM/libvirtd le fichier de configuration de la VM est XML. 80
  • 81. Nova Scheduler Cinder Vol Cinder Cinder DB Queue Nova-compute Hypervisor Network Compute Node VM Block Storage Node Router/GW Network Node DHCP/IPAM Glance API GlanceRegistery Glance Cinder DB Keystone Keystone DB Quantum Server Quantum Quantum DB Plugin/Agent Proxy Server Swift Object Store Nova compute Nova compute envoi un message à Nova conductor pour mettre à jour la BD avec le nouveau statut de la VM. UI : Horizon /CLI Keystone Server Nova API Conductor Nova DB Scheduler Queue Cinder API Storage La communication iSCSI est initié. Le volume distant est monté et il est vu comme local. 81
  • 82. Nova API Scheduler Conductor Nova Nova DB Queue Cinder API Scheduler Cinder Vol Cinder Cinder DB Queue Nova-compute Hypervisor Network Compute Node VM Storage Block Storage Node Router/GW Network Node DHCP/IPAM Glance API GlanceRegistery Glance Cinder DB Keystone Keystone DB Quantum Server Quantum Quantum DB Plugin/Agent Proxy Server Swift Object Store UI : Horizon /CLI Horizon Horizon demande périodiquement l’état de la VM à l’API Nova. Un état que Nova API récupère à partir de la BD. Keystone Server 82
  • 85. Openstack : Les nouveaux de la classe 85