Anatomie d'un cloud IaaS Représentation simplifiée Sous sa forme la plus simple un cloud IaaS combine un tissu de stockage (storage fabric) avec un tissu de calcul (compute fabric) Le tissu de stockage stocke Des images de machines virtuelles Des disques virtuels attachés aux machines virtuelles Virtualization Manager Local Area Network Virt. Machine Virt. Machine Virt. Machine Application Application Application compute fabric Op.Sys. Op.Sys. Op.Sys. Hypervisor Server Storage Area Network storage fabric 25 Introduction Un projet Open Source pour implémenter un service cloud du type IaaS Lancé par Rackspace et la NASA en juillet 2010. NASA contribue la plateforme de calcul Nebula Rackspace contribue plateforme de stockage Cloud Files Soutenu par 150+ entreprises, notamment HP, IBM, Dell, Intel, AMD, Cisco, Ubuntu, RedHat, Suse, AT&T, VMware, Yahoo!,... Conçu pour être utilisé sur du matériel pas cher. Supporte les technologies de virtualisation KVM, XenServer/Xen, HyperV, VMWare/ESX, LXC,... Déployé comme service cloud public par RackSpace (avril 2012), HP (déc. 2012), IBM (mars 2013),... 26
Composantes Les composantes de sont developpées chacune dans leur sous-projet Calcul (Compute) Nova Stockage (Storage) Stockage objet (Object Storage) Swift Stockage par blocs (Block Storage) Cinder Réseau (Networking) Quantum Tableau de bord (Dashboard) Horizon Services partagés Identité (Identity) Keystone Service images (Image Service) Glance Source: openstack.org 27 Calcul (Compute) Nova Gère les machines virtuelles dans les serveurs de calcul Reçoit les demandes des utilisateurs Alloue et libère les machines virtuelles Détermine sur quel serveur créer une VM demandée par un utilisateur Repose sur les hyperviseurs pour gérer les machines virtuelles Peut utiliser KVM, Xen, ESX,... Offre des APIs API API compatible Amazon EC2 Source: Dell, http://en.community.dell.com/techcenter/b/techcenter/archive/2011/06/01/virtualizing-approaches-for-openstack-nova-looking-at-the-many-ways-to-skin-the-cactus-kvm-v-xenserver-v-esx.aspx 28
Stockage objet (Object storage) Swift Service pour stocker des "données objet" Fichiers sans structure. Pas de répertoires. Système distribué 29 Implémenté sur un ensemble de serveurs. Trois rôles serveur : Serveur proxy : Reçoit les requêtes et coordonne les serveurs de stockage. Serveur stockage : Offrent de l'espace disque. Trois types de serveurs : Compte (account) : Stocke des comptes utilisateurs. Conteneur (container) : Stocke des conteneurs Objet (object) : Stocke des données objet Serveurs cohérence : Responsable pour chercher et trouver des erreurs (pannes matérielles ou logicielles) et de les corriger. Source: Creationline http://www.creationline.com/lab/772 Stockage par blocs (Block storage) Cinder Service pour fournir des disques virtuels (volumes) qui peuvent être attachés aux machines virtuelles. Le système d'exploitation voit un dispositif de bloc et peut mettre un système de fichiers dessus. Fonctions : Créer volume Créer volume depuis snapshot Créer volume depuis image Sauvegarder volume dans image Attacher / détacher volume à machine virtuelle Créer / enlever snapshot Peut utiliser différentes technologies stockage Disques locaux SAN (Fibre Channel, iscsi) NAS (NFS, CIFS) Source: Rackspace, http://www.rackspace.com/knowledge_center/article/implementingopenstack-cinder-with-emc-storage-on-the-rackspace-private-cloud-software 30
Réseau (Networking) Quantum Fournit le réseau virtuel qui interconnecte les machines virtuelles à travers leurs périphériques réseau virtuels. Fournit deux abstractions Réseau virtuel : Équivalent à un "VLAN virtuel", un ségment L2 dédié Port virtuel : Là où le phériphérique réseau virtuel d'une machine virtuelle attache au réseau virtuel Nova% VM1% 10.0.0.2% VM2% 10.0.0.3% virtual%server% virtual%interface%(vif)% Quantum% Net1% 10.0.0.0/24% virtual%port% virtual%network% Source: Dan Wendlandt 31 Tableau de bord (Dashboard) Horizon Fournit une interface utilisateur aux administrateurs système et aux utilisateurs Administrateurs : Aperçu de l'état global du cloud Gestion des utilisateurs et ressources Utilisateurs : Interface "libre service" pour s'approvisionner en ressources 32
Identité (Identity) Keystone Fournit un annuaire central des utilisateurs Système d'authentification commun Gère les droits d'accès Peut s'intégrer à des annuaires existants (LDAP) Fournit aussi un catalogue de tous les services offerts par le cloud Permet aux utilisateurs de découvrir les ressources disponibles Source: Rackspace, http://docs.rackspace.com/auth/api/v2.0/auth-client-devguide/content/identity-service-concepts-e1362.html 33 Identité (Identity) Keystone Détails Keystone fournit 4 services de base Identité (Identity) Information utilisateurs Token Nom utilisateur / mot de passe Métadonnées (email, etc.) Tenant (locataire) Organisation des utilisateurs en projets Rôle Définit le rôle d'un utilisateur et ses permissions dans un projet Quand l'identité d'un utilisateur a été vérifiée Keystone émet un token Un token remplace nom utilisateur / mot de passe Les services gardent le token et l'utilisent pour interroger Keystone P. ex. pour demander si l'utilisateur a l'autorisation d'enlever une instance Catalogue de services (Service catalog) Les services enregistrent leur adresse (endpoint) avec Keystone Un utilisateur qui veut utiliser un service fait une requête à Keystone qui retourne l'endroit où le trouver Dans les coulisses un service peut migrer sur un autre serveur et changer d'adressse Permet aussi de répartir la charge d'un service sur plusieurs serveurs Politiques de droits d'accès (Policies) Les politiques définissent les actions pour lesquelles un utilisateur est autorisé, basé sur les rôles qui lui sont attribués. Fournit un emplacement centralisé pour gérer les autorisations. En cours de développement 34
Service images (Image service) Glance Gère les images qui sont utilisées pour lancer des machines virtuelles Fournit un catalogue d'images disponibles aux utilisateurs Les administrateurs peuvent ajouter des images Les utilisateurs peuvent effectuer des recherches Met en cache les images pour accélérer le lancement de machines virtuelles Peut utiliser Swift pour stocker les images Glance architecture Source: Mirantis, "Preview: Bootcamp for " 35 http://www.mirantis.com/training Interaction des composantes Architecture conceptuelle 36
Launching a VM Exemple d'interaction des composantes : Lancement d'une machine virtuelle Client Nova API 1. launch vm 2. find service, check credentials, launch vm 6. request image Keystone 7. find service, check credentials, request image Glance API 11. find service, check credentials, request image 3. launch vm Nova Scheduler 4. schedule vm 8. lookup image Glance Registry 9. return location & metadata 10. request image 13. get image Swift Proxy 12. get image 37 RabbitMQ 5. receive launch vm message Nova Compute 14. Launch VM Source: Allen Malony, Chris Hoge, "Cloud Computing Seminar CIS 607" Swift Worker Exemples de déploiement Exemples d'utilisation Entreprise : cloud privé pour usage interne Prestataire de service : offre cloud public Exemple de déploiement avancé Exemple de déploiement standard Source: StackOps http://docs.stackops.org/display/doc03/global+network+requirements 38