le cloud iaas & paas, openstack réseau et sécurité
DESCRIPTION
Cours Master 2 Sécurité des systèmes informatiques Université Paris-Est Créteil Val-de-Marne (Paris12)TRANSCRIPT
1
Le Cloud IaaS & PaaSOpenStack réseau et sécurité
Noureddine BOUYAHIAOUI
Cours Master 2 Sécurité des systèmes informatiques
Université Paris-Est Créteil Val-de-Marne (Paris12)
Plan
A. Cloud1. Concepts
2. IaaS
3. PaaS
4. SaaS
B. OpenStack Eco-Système
1. Définition
2. Historique
3. Projet
C. OpenStack Architecture
1. Architecture logique
2. Flux de création d’une VM
3. Détail des composants2
Cloud ?
3
?IaaSIaaS PaaSPaaS
SaaSSaaS
Un modèle d'accès aux ressources informatiques (réseaux, serveurs, stockage,
applications et services). Des ressources qui peuvent être rapidement approvisionnées
avec un minimum d’effort de la part du fournisseur du service.
Un type de calcul massivement évolutif où les capacités de IT sont livrées ‘en service’
aux clients en utilisant les technologies internet
Cloud ?
4
CPUCPUStockageStockage
NetworkNetwork
IaaS
PaaS
S
é
c
u
r
i
t
é
S
é
c
u
r
i
t
é
M
o
n
i
t
o
r
i
n
g
M
o
n
i
t
o
r
i
n
g
C
h
a
r
g
e
B
a
c
k
C
h
a
r
g
e
B
a
c
k
AdministrationAdministration
CRMAnalytics
Applications métier
ERP
SaaS
5
Clouds
publicsClouds
privés
Clouds
Spécialisés
APIUne interaction simplifiée et granulaire
Automatisation des déploiementsFaciliter les déploiements et réduire les
temps d’attente
Mise à l'échelle et monitoringConnaître les goulots d'étranglement et être
capable de les corriger.
SécuritéEvoluer en fonction du contexte
Contrôle financierRationalisation des coûts
Cloud : Prérequis pour un Cloud opérationnel
6
Fournit une infrastructure virtuelle à la demande qui évolue et
s'adapte aux nouveaux besoins de votre entreprise
Fournit des solutions de stockage et de sauvegarde évolutives et
durables pour toutes les données, quelle que soit leur taille
Fournit un modèles réseaux souples pour répondre aux besoins
des différentes applications et groupes d'utilisateurs
Fournit un accès sécurisé et granulaire aux différents composants
de l’infrastructure via des flux sécurisés et une gestion centralisée
de l'identité
IaaS
7
Une plate-forme ouverte, évolutive
et horizontalement scalable
APIs API REST
Hyperviseur agnostique: Xen ,XenServer, Hyper-V, KVM, ESX
Hardware agnostique
IaaS : Le compute
8
Stockage d'objets redondant
et évolutif supportant jusqu’à
des Peta-octets de données.
API REST
Files
Files
Files
Files
APIs
Hardware agnostique
IaaS : Le Stockage
9
LDAP
Clouds
privésAPIs
Toutes les autorisations
d’accès de tous les composant
d’OpenStack passe par un
LDAP.
SSL/TLS
SSL/TLS
SSL/TLS
IaaS : Une gestion centralisé de l'identité, des rôles et de la sécurité des flux
Installation d'un service et toutes ses
dépendances
Mise à jour d'un service
Le PaaS : gestion granulaire du cycle de vie
Un déploiement automatisé et reproductible :
� Pas de saisie manuelle
� procédures de contrôle automatisée
� Injection dynamique des paramètres systèmes
� Sur plusieurs serveurs
� Au sein d’un même serveur
Le PaaS : gestion granulaire du cycle de vie
Minimisation du risque d’erreur
lors des déploiements
Processus de déploiement
pilotable par un système externe
Le PaaS : La haute disponibilité des services
Self-Healing (Résilience) : Reconstitution d'un service à l'identique suite à une
défaillance
� Machine physique ou virtuelle défaillante
� Service défaillant
Le PaaS : La haute disponibilité des services
Elasticité : Mise à l'échelle automatique des services et des applications en
fonction des exigences métiers
� Scale-in : répondre à la crue de demandes par l'instanciation de nouvelles
instances.
� Scale-out : suivre la décrue par la mise hors service des instances
14
Iaa
SIa
aS
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
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
15
OpenStack : Historique
16
17
Horizon
NovaQuantum
Swift (Object Storage)
Cinder (Block storage)
Glance
(VM Image Service)
Keystone
(Identity Service)
OpenStack : Grizzly Release
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 orchestration18
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
19
OpenStack : Vue Conceptuelle
20
OpenStack : Architecture
21
OpenStack : Implémentation
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
Keystone DB
Quantum Server
Quantum
Quantum DB
Plugin/Agent
Proxy Server
Swift
Object Store
OpenStack
UI : Horizon /CLI
Keystone Server
23
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 :
24
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 :
25
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 :
26
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 :
27
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)
28
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 à le droit d’accès à Horizon
• Les quotas sont définit
29
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
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 Server
Keystone
Keystone DB
Quantum Server
Quantum
Quantum DB
Plugin/Agent
Proxy Server
Swift
Object Store
UI : Horizon /CLI
Connexion à Horizon
31
Horizon
OpenStack DashBoard (Horizon) fournie une interface
web pour la gestion des services OpenStack
32
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
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
UI : Horizon /CLI
Connexion à HorizonLes paramètre transmis sont
transformés en une requette HTTP
Post à destination de KeyStone
34
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).
35
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
36
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é.
37
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
38
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
39
KeyStone : Validation
40
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.
41
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
42
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
43
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
44
Nova API
Horizon (UI) Nova (CLI) Euca-tools(CLI)
Nova-Api
EC2-APICompute API
45
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
46
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
47
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
48
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
49
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)
50
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
51
Message Queue (Bus de communication)
Le Bus de communication est un moyen unifié pour faire collaborer
les différents composants de NOVA
52
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
53
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
54
Nova Scheduler
55
Nova Scheduler : Filtre
56
Nova Scheduler : Filtre
57
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)
58
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
59
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
60
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
61
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.
62
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
63
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
64
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
65
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
66
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)
67
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 68
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
69
Quantum : Workflow
70
Quantum : Compute Node
71
Quantum : Network Node
72
Quantum : Network vue d’ensemble
73
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
74
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
75
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
76
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
77
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.
78
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
79
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
80
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
81
Cinder : Architecture/Workflow
Cinder API
SchedulerCinder Volume
Cinder DB
Queue
82
Cinder : driver
83
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
84
Montage d’un volume iSCSI
Pilote iSCSI
TCP/IP
Pilote carte réseau
Passerelle de stockage
85
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
86
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
87
Glance : Architecture
88
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
89
Glance : Formats d’image supporté
90
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
91
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.
92
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.
93
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
94
Synthèse
95
OpenStack : Implémentation
96
Openstack : Les nouveaux de la classe
97