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. F...
OpenStack ?
« OpenSource Software to building private or public
clouds » OpenStack Fondation
« Openstack is a framework to...
OpenStack : les possibilités
1. VM à la demande :
• Provisionning
• Snapshotting
2. Volumes
2. Réseaux
3. Stockage Objet p...
OpenStack : Historique
5
OpenStack : Grizzly Release
Les projets cores
Nova : Service compute
Glance : Service image
Quantum : service réseaux
Cind...
OpenStack : Organisation d’un projet
1. Chaque projet a un Lead Technique élu (PTL)
2. Séparation entre les équipes de dev...
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
Hyperv...
Nova API
Scheduler
Conductor
Nova
Nova DB
Queue
Cinder API
Scheduler
Cinder Vol
Cinder
Cinder DB
Queue
Nova-compute
Hyperv...
Nova API
Scheduler
Conductor
Nova
Nova DB
Queue
Cinder API
Scheduler
Cinder Vol
Cinder
Cinder DB
Queue
Nova-compute
Hyperv...
Nova API
Scheduler
Conductor
Nova
Nova DB
Queue
Cinder API
Scheduler
Cinder Vol
Cinder
Cinder DB
Queue
Nova-compute
Hyperv...
Nova API
Scheduler
Conductor
Nova
Nova DB
Queue
Cinder API
Scheduler
Cinder Vol
Cinder
Cinder DB
Queue
Nova-compute
Hyperv...
Nova API
Scheduler
Conductor
Nova
Nova DB
Queue
Cinder API
Scheduler
Cinder Vol
Cinder
Cinder DB
Queue
Nova-compute
Hyperv...
Cas d’utilisation création d’une VM
1. Une opération courante, mais complexe
2. Elle nécessite l’interaction avec tous les...
Quotas
quantum.quota.ConfDriver :
1. Tous les projets auront les mêmes
quotas
2. Quotas définis dans le fichier de
conf
qu...
Nova API
Scheduler
Conductor
Nova
Nova DB
Queue
Cinder API
Scheduler
Cinder Vol
Cinder
Cinder DB
Queue
Nova-compute
Hyperv...
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. C...
Nova API
Scheduler
Conductor
Nova
Nova DB
Queue
Cinder API
Scheduler
Cinder Vol
Cinder
Cinder DB
Queue
Nova-compute
Hyperv...
KeyStone
1. Keystone est un projet Openstack, il offre une gestion de
l’identité et des autorisations d’accès pour les dif...
KeyStone
API RESTfulAPI RESTful
Un projet Openstack, il offre une gestion
de l’identité et des autorisations d’accès
pour ...
KeyStone : Concepts
Endpoint : Une adresse
réseau, généralement
décrite par une URL, où un
service peut être accessible.
E...
KeyStone : Architecture
KeyStone APIKeyStone API
Policy
Backend
Token
Backend
Catalogue
Backend
Identity
Backend
User, rol...
KeyStone : Validation
1. Horizon envoi une requête HTTP à KeyStone
2. Keystone de son côté parse cette demande et vérifie ...
KeyStone : Validation
28
Nova API
Scheduler
Conductor
Nova
Nova DB
Queue
Cinder API
Scheduler
Cinder Vol
Cinder
Cinder DB
Queue
Nova-compute
Hyperv...
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, ...
Nova API
Scheduler
Conductor
Nova
Nova DB
Queue
Cinder API
Scheduler
Cinder Vol
Cinder
Cinder DB
Queue
Nova-compute
Hyperv...
Nova
Le composant de calcul du
système d'exploitation Cloud
Le composant de calcul du
système d'exploitation Cloud
permet ...
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
Hyperv...
Nova API
Scheduler
Conductor
Nova
Nova DB
Queue
Cinder API
Scheduler
Cinder Vol
Cinder
Cinder DB
Queue
Nova-compute
Hyperv...
Nova API
Scheduler
Conductor
Nova
Nova DB
Queue
Cinder API
Scheduler
Cinder Vol
Cinder
Cinder DB
Queue
Nova-compute
Hyperv...
Nova API
Scheduler
Conductor
Nova
Nova DB
Queue
Cinder API
Scheduler
Cinder Vol
Cinder
Cinder DB
Queue
Nova-compute
Hyperv...
Nova DataBases
Stocke l’état des objets
répartis sur les différents
Compute Nodes
Stocke l’état des objets
répartis sur le...
Nova API
Scheduler
Conductor
Nova
Queue
Cinder API
Scheduler
Cinder Vol
Cinder
Cinder DB
Queue
Nova-compute
Hypervisor
Net...
Message Queue (Bus de communication)
Le Bus de communication est un moyen unifié pour faire collaborer
les différents comp...
Scheduler
Conductor
Nova
Queue
Cinder API
Scheduler
Cinder Vol
Cinder
Cinder DB
Queue
Nova-compute
Hypervisor
Network
Comp...
Nova Scheduler
Création de la VM dans un
Compute Node particulier
Création de la VM dans un
Compute Node particulier
Créat...
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...
Cinder API
Scheduler
Cinder Vol
Cinder
Cinder DB
Queue
Nova-compute
Hypervisor
Network
Compute Node
VM
Storage
Block Stora...
Nova
Cinder API
Scheduler
Cinder Vol
Cinder
Cinder DB
Queue
Nova-compute
Hypervisor
Network
Compute Node
VM
Storage
Block ...
Nova
Cinder API
Scheduler
Cinder Vol
Cinder
Cinder DB
Queue
Nova-compute
Hypervisor
Network
Compute Node
VM
Storage
Block ...
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...
Nova
Cinder API
Scheduler
Cinder Vol
Cinder
Cinder DB
Queue
Nova-compute
Hypervisor
Network
Compute Node
VM
Storage
Block ...
Nova Conductor
Le proxy Base de données
de Nova Compute
Le proxy Base de données
de Nova Compute
Scalabilité HorizontalSca...
Nova
Cinder API
Scheduler
Cinder Vol
Cinder
Cinder DB
Queue
Nova-compute
Hypervisor
Network
Compute Node
VM
Storage
Block ...
Quantum
Propose la connectivité
réseau en tant que service
« Network as a service »
Propose la connectivité
réseau en tant...
Quantum
Allocation des adresses MACAllocation des adresses MAC
Configuration du réseau
niveau 2 (L2) via quantum
plugin
Co...
Quantum : Architecture
Quantum DB
Quantum Server
Quantum
Plugin
Queue
dhcp-agent
Metadata-
agent
plugin-agent
VM
l3-agent
...
Nova
Cinder API
Scheduler
Cinder Vol
Cinder
Cinder DB
Queue
Hypervisor
Network
Compute Node
VM
Storage
Block Storage
Node
...
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...
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...
La sécurité dans le Cloud
Un Cloud peut être abstrait comme une collection de composants logiques
(domaines de sécurité) :...
La sécurité dans le Cloud
Public :
1. Un espace entièrement non fiable de
l'infrastructure Cloud.
2. Toutes les données qu...
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 plus...
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 ...
Nova
Cinder API
Scheduler
Cinder Vol
Cinder
Cinder DB
Queue
Nova-compute
Hypervisor
Network
Compute Node
VM
Storage
Block ...
Cinder
Fournit un stockage POSIX.
Le volume distant est vu
comme volume local
Fournit un stockage POSIX.
Le volume distant...
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
Nod...
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
Nod...
Glance
Fournit un service de
catalogue pour le stockage et
l'interrogation des images de
disques virtuels
Fournit un servi...
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. De...
Glance : Formats d’image supporté
78
Nova
Scheduler
Cinder Vol
Cinder
Cinder DB
Queue
Nova-compute
Hypervisor
Network
Compute Node
VM
Storage
Block Storage
Nod...
Nova
Scheduler
Cinder Vol
Cinder
Cinder DB
Queue
Nova-compute
Hypervisor
Network
Compute Node
VM
Block Storage
Node
Router...
Nova
Scheduler
Cinder Vol
Cinder
Cinder DB
Queue
Nova-compute
Hypervisor
Network
Compute Node
VM
Block Storage
Node
Router...
Nova API
Scheduler
Conductor
Nova
Nova DB
Queue
Cinder API
Scheduler
Cinder Vol
Cinder
Cinder DB
Queue
Nova-compute
Hyperv...
Synthèse
83
OpenStack : Implémentation
84
Openstack : Les nouveaux de la classe
85
OpenStack
DEMODEMO
86
Prochain SlideShare
Chargement dans…5
×

Openstack framework Iaas

10 661 vues

Publié le

Le projet OpenStack vise à créer une plate-forme open source Cloud computing, pour les Clouds publics et privés visant une évolutivité sans complexité. OpenStack est composé d'un certain nombre de composants libres qui forment ensemble une solution Cloud.
La NASA et Rackspace ont été les initiateurs de ce projet. Des grands noms du monde informatique se sont joints au projet tel que IBM, Dell, Canonical, Cisco, … etc. La mutualisation des efforts de développement ont fait du projet OpenStack l'un des projet les plus émergent, avec une release chaque 6 mois.

Publié dans : Technologie
3 commentaires
10 j’aime
Statistiques
Remarques
  • very nice presentation!
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici
  • Excellente présentation !! je conseille tous les OpenStakers de y jeter un coup d’oïl ... un grand merci à l'auteur.
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici
  • Prés OpenStak très intéressante.
    A lire absolument
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici
Aucun téléchargement
Vues
Nombre de vues
10 661
Sur SlideShare
0
Issues des intégrations
0
Intégrations
4 391
Actions
Partages
0
Téléchargements
239
Commentaires
3
J’aime
10
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Openstack framework Iaas

  1. 1. 1 OpenStack le framework du IaaS Noureddine BOUYAHIAOUI noureddine@bouyahiaoui.com
  2. 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. 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. 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
  5. 5. OpenStack : Historique 5
  6. 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. 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. 8. OpenStack : Vue Conceptuelle 8
  9. 9. OpenStack : Architecture 9
  10. 10. OpenStack : Implémentation 10
  11. 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. 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. 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. 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. 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. 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. 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. 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. 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. 20. Horizon OpenStack DashBoard (Horizon) fournie une interface web pour la gestion des services OpenStack 20
  21. 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. 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. 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. 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. 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. 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. 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
  28. 28. KeyStone : Validation 28
  29. 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. 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. 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. 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. 33. Nova API Horizon (UI) Nova (CLI) Euca-tools(CLI) Nova-Api EC2-APICompute API 33
  34. 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. 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. 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. 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. 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. 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. 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. 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. 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
  43. 43. Nova Scheduler 43
  44. 44. Nova Scheduler : Filtre 44
  45. 45. Nova Scheduler : Filtre 45
  46. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
  58. 58. Quantum : Workflow 58
  59. 59. Quantum : Compute Node 59
  60. 60. Quantum : Network Node 60
  61. 61. Quantum : Network vue d’ensemble 61
  62. 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. 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. 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. 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. 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. 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. 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. 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. 70. Cinder : Architecture/Workflow Cinder API Scheduler Cinder Volume Cinder DB Queue 70
  71. 71. Cinder : driver 71
  72. 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. 73. Montage d’un volume iSCSI Pilote iSCSI TCP/IP Pilote carte réseau Passerelle de stockage 73
  74. 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. 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
  76. 76. Glance : Architecture 76
  77. 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. 78. Glance : Formats d’image supporté 78
  79. 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. 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. 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. 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
  83. 83. Synthèse 83
  84. 84. OpenStack : Implémentation 84
  85. 85. Openstack : Les nouveaux de la classe 85
  86. 86. OpenStack DEMODEMO 86

×