Openstack framework Iaas
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Openstack framework Iaas

  • 6,221 views
Uploaded on

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......

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.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
  • very nice presentation!
    Are you sure you want to
    Your message goes here
  • Excellente présentation !! je conseille tous les OpenStakers de y jeter un coup d’oïl ... un grand merci à l'auteur.
    Are you sure you want to
    Your message goes here
  • Prés OpenStak très intéressante.
    A lire absolument
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
6,221
On Slideshare
4,049
From Embeds
2,172
Number of Embeds
6

Actions

Shares
Downloads
39
Comments
3
Likes
8

Embeds 2,172

http://www.linusnova.com 2,126
http://www.scoop.it 38
http://www.pearltrees.com 4
http://131.253.14.98 2
http://cloud.feedly.com 1
http://www.slideee.com 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

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