Openstack framework Iaas

  • View
    7.163

  • Download
    1

Embed Size (px)

DESCRIPTION

Le projet OpenStack vise crer une plate-forme open source Cloud computing, pour les Clouds publics et privs 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 dveloppement ont fait du projet OpenStack l'un des projet les plus mergent, avec une release chaque 6 mois.

Transcript

  • 1. 1 OpenStack le framework du IaaS Noureddine BOUYAHIAOUI noureddine@bouyahiaoui.com

2. Plan A. OpenStack Eco-Systme 1. Dfinition 2. Historique 3. Projet B. OpenStack Architecture 1. Architecture logique 2. Flux de cration dune VM 3. Dtail 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 possibilits 1. VM la demande : Provisionning Snapshotting 2. Volumes 2. Rseaux 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 rseaux 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 dun projet 1. Chaque projet a un Lead Technique lu (PTL) 2. Sparation entre les quipes de devellopements et d'architectures 3. Chaque projet possde une API RESTfull (JSON/HTTP) sauf Horizon 4. Base de donnes spare 7 8. OpenStack : Vue Conceptuelle 8 9. OpenStack : Architecture 9 10. OpenStack : Implmentation 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 distribues 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 distribues passent par la Queue SQL : chaque service gre sa propre base de donnes 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 distribues passent par la Queue SQL : chaque service gre sa propre base de donnes Native API : Accs 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 distribues passent par la Queue SQL : chaque service gre sa propre base de donnes Native API : Accs direct via un protocole propre iSCSI : Le montage des volumes avec le protocole iSCSI (block storage) 16 17. Cas dutilisation cration dune VM 1. Une opration courante, mais complexe 2. Elle ncessite linteraction avec tous les composants dOpenStack 3. Dans ce qui suit on admet que : Lutilisateur existe dj Le tenant est cre Lutilisateur droit daccs Horizon Les quotas sont dfinit 17 18. Quotas quantum.quota.ConfDriver : 1. Tous les projets auront les mmes quotas 2. Quotas dfinis dans le fichier de conf quantum.quota.ConfDriver : 1. Tous les projets auront les mmes quotas 2. Quotas dfinis dans le fichier de conf Mcanisme utilis dans les diffrentes API dOpenStack pour limiter le nombre de ressources quun tenant peut crer ou utiliser Mcanisme utilis dans les diffrentes API dOpenStack pour limiter le nombre de ressources quun tenant peut crer ou utiliser quantum.db.quota_db.DbQuotaDriver 1. chaque projet a ses propres Quotas 2. Les quotas sont stocks dans la BD quantum.db.quota_db.DbQuotaDriver 1. chaque projet a ses propres Quotas 2. Les quotas sont stocks 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 lAPI Nova 4. Chaque composant OpenStack possde 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 paramtre transmis sont transforms en une requette HTTP Post destination de KeyStone 22 23. KeyStone 1. Keystone est un projet Openstack, il offre une gestion de lidentit et des autorisations daccs pour les diffrents services dOpenStack. 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 lidentit et des autorisations daccs pour les diffrents services dOpenStack. Un projet Openstack, il offre une gestion de lidentit et des autorisations daccs pour les diffrents services dOpenStack. 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 rseau, gnralement dcrite par une URL, o un service peut tre accessible. Endpoint : Une adresse rseau, gnralement dcrite par une URL, o un service peut tre accessible. User : peut-tre une personne, un systme ou un service User : peut-tre une personne, un systme ou un service Role : Un rle comprend un ensemble de droits et privilges. Role : Un rle comprend un ensemble de droits et privilges. 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 donnes qui permettent dauthentifier un utilisateur ou un service : 1. Login et Mot de passe 2. Login et une cl 3. Token qui vous a t dlivr. Les Credentials : les donnes qui permettent dauthentifier un utilisateur ou un service : 1. Login et Mot de passe 2. Login et une cl 3. Token qui vous a t dlivr. 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 requte HTTP KeyStone 2. Keystone de son ct parse cette demande et vrifie les lments suivants : Authentification : la validit des credentials Control d'accs : la validit du mapping User-Tenant-Role Autorisation (droit daccs) : La requte demand est accessible pour l'utilisateur en question 27 28. KeyStone : Validation 28 29. Nova API Scheduler Conductor Nova No