Openstack framework Iaas
-
Upload
noureddine-bouyahiaoui -
Category
Technology
-
view
7.174 -
download
1
description
Transcript of Openstack framework Iaas
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 orchestration6
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 à HorizonLes 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
BackendToken
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 rejetUI : 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 VMUI : 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 IDUI : Horizon /CLI
Keystone Server
Scheduler
Conductor
Nova
Nova DB
QueueNova 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ééeUI : 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
ConductorNova 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
ConductorNova 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
SchedulerCinder 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
ConductorNova 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
GlanceNova compute demande à Glance
l’image de la VM en précisant son ID.
UI : Horizon /CLI
Keystone Server
Nova API
ConductorNova 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
GlanceGlance renvoi un HTTP Get URI (Path)
si l’image ID fourni existe.
UI : Horizon /CLI
Keystone Server
Nova API
ConductorNova 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
ConductorNova 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
ConductorNova 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