CLOUD COMPUTING OPENSTACK PRESENTE PAR PROFESSEUR ALIOU DIONE M MASSAMBA LO DIEYNABA DIOUF PAPE DAOUDA SECK AMADOU TIDIANE DIALLO 1
PLAN DE LA PRESENTATION Présentation Historique Version Openstack Architecture : Conceptuelle et Logique Hyperviseurs et Systèmes de stockage supportés Composants Openstack Installation et Configuration Openstack Conclusion 2
PRESENTATION Openstack ( abrégé en O ~ S) est une plateforme logicielle libre et open- source pour le Cloud computing, principalement déployée sous forme d’Infrastructure-as-a-Service (IaaS), ou les serveurs virtuels et autres ressources sont mis a la disposition des clients. La plateforme logicielle se compose de composants reliés les uns aux autres qui contrôlent divers ensembles matériels multifournisseurs de ressources de traitement, de stockage et de réseau dans un Datacenter. Les utilisateurs le gèrent soit par le biais d’un tableau de bord Web, d’outils en ligne de commande ou de service Web RESTful. 3
HISTORIQUE Juillet 2010, Rackspace Hosting et la NASA lance conjointement un nouveau projet open source dans le domaine du Cloud computing sous le nom d’Openstack. L’objectif du projet est de permettre a toute organisation de créer et d’offrir des services de Cloud computing en usant de matériel standard. Dans la foulée il regroupa plusieurs sociétés comme Cisco, HP, Canonical etc. Par la suite il fut incorporé dans le noyau Linux comme c’est le cas pour Eucalyptus. 4
VERSION OPENSTACK Le cycle de développement d’Openstack est de six (06) mois avec la parution de nouvelle version qui peuvent être améliorer par des points de révision stables. Le nom de la version correspond au nom de ville qui accueille les rencontres officielles Openstack. On peut en citer les suivantes : Stein Rocky Pike Ocata Mitaka … 5
ARCHITECTURE OPENSTACK Architecture Conceptuelle 6
ARCHITECTURE OPENSTACK Architecture Logique 7
ARCHITECTURE OPENSTACK Pour concevoir, déployer et configurer Openstack, les administrateurs doivent comprendre l’architecture logique. Comme le montre l’architecture conceptuelle, Openstack se compose de plusieurs parties indépendantes, appelées les services Openstack. Tous les services s’authentifient par le biais d’un service d’identité commun. Les services individuels interagissent les uns avec les autres par le biais d’API publiques a l’exception des commandes d’administrateurs privilégiés. En interne les services d’Openstack sont composés de plusieurs processus. Tous les services ont au moins un processus API qui écoute les requêtes API, les prétraite et les transmet a d’autres parties du services. A l’exception du service Identité, le travail proprement dit est effectué par des processus distincts. 8
Hyperviseurs et Systèmes de stockage supportés Pour rappel un hyperviseur est une plate-forme de virtualisation qui permet à plusieurs systèmes d'exploitation de travailler sur une même machine physique en même temps. Les hyperviseurs supportés par Openstack sont : KVM QEMU XenServer LXC VMware vSphere Hyper-V Virtualization Platform Virtuozzo Xen via libvirt 9
Hyperviseurs et Systèmes de stockage supportés Openstack supporte les technologies de stockage suivantes : iSCSI Fiber Channel (FC) NFS Ceph 10
Composants Openstack 11
Composants Openstack 12
Composants Openstack : NOVA Calcul : NOVA Nova est une des briques principales d'OpenStack. Son but est de gérer les ressources de Calcul des infrastructures. Il comporte plusieurs sous modules ayant chacun une fonction bien précise : nova-api : ce daemon gère les appels API de l’utilisateur. Il initie le démarrage des machines virtuelles et vérifie que certaines règles sont bien respectées. nova-compute : ce daemon tourne sur les serveurs hôtes. Il gère le cycle de vie des machines virtuelles via l’API de l’hyperviseur (XenAPI pour XenServer, libvirt pour KVM et QEMU, VMwareAPI pour VMware) 13
Composants Openstack : NOVA nova-network : ce composant de Nova gère les réseaux nova-schedule : il s’occupe de récupérer les demandes de création de machine virtuelles en queue et de déterminer sur quelle machine hôte chaque nouvelle instance doit s’exécuter. Nova propose également un service permettant aux utilisateurs d’accéder a la console de leur machine virtuelle avec les daemons ci après : nova-console nova-vncproxy nova-consoleauth Nova dépend d’une base de données permettant de stocker les instances disponibles et celles en cours d’exécution ( sqlite, MySQL et PostgreSQL) 14
Composants Openstack : CINDER Stockage : CINDER Le composant Openstack Cinder a pour rôle de gérer le Stockage permanent. Il permet ainsi de créer, modifier et supprimer les volumes. Il repose sur plusieurs briques : cinder-api : ce daemon accepte les requêtes API et les transmet a cinder-volume pour exécution. cinder-volume : c’est le cœur de Cinder. Il réceptionne les demandes de cinder-api et interagit avec la base de données et les autres processus tels que cinder-schedule. cinder-schedule : comme nova-schedule, il sélectionne le stockage le plus approprié pour créer le volume. 15
Composants Openstack : NEUTRON Le réseau : NEUTRON Le service Neutron d’Openstack permet de gérer et manipuler les réseaux et l’adressage IP au sein d’Openstack. Avec Neutron les utilisateurs peuvent créer leurs propres réseaux, contrôler le trafic et connecter leurs instances a un ou plusieurs réseaux. Outre l’adressage IP statique, il peut aussi utiliser un service DHCP. Il fournit aussi un service d’adresse IP flottante que l’on peut assigner aux instances afin d’assurer une connectivité depuis Internet. Neutron permet de se connecter a différents types d’architecture grâce a des plugins ( OpenVswitch, ML2, LinuxBridge, Cisco Nexus etc) Le serveur Neutron gère les appels a API et transmet les actions a réaliser aux différents agents Neutron 16
Composants Openstack : GLANCE GLANCE : Serveur d’image Le service d’image d’Openstack s’appelle Glance. Il permet la découverte, l’envoi et la distribution d’image disque vers les instances. Les images stockées font office de modèle de disque. Il permet aussi de stocker des sauvegardes de ces disques. Glance peut stocker ces images disques de plusieurs façons : dans un dossier sur un serveur a travers le service de stockage objet d’Openstack (Swift) 17
Composants Openstack : GLANCE Glance se compose de quatre principales parties que sont : glance-api : ce daemon traite les appels a l’API pour la gestion des images. Il permet notamment de lister les images disponibles, récupérer une image ou en créer une nouvelle. glance-registry : ce daemon stocke, traite et récupère les métadonnées associées aux images ( taille, type, requis,…) Base de données : elle est utilisée pour stocker les métadonnées Un répertoire de stockage : c’est au niveau de ce répertoire que sont stockés les fichier images 18
Composants Openstack : KEYSTONE Service d’identité : KEYSTONE Le service d’identité Keystone fournit un annuaire central contenant la liste des services et la liste des utilisateurs d’Openstack. Au sein d’Openstack tous les services et tous les utilisateurs utilisent Keystone afin de s’authentifier les uns avec les autres. Keystone peut s’interfacer avec d’autres service d’annuaire comme LDAP. Il supporte plusieurs formats d’authentification comme les mots de passe et autres. 19
Composants Openstack : HORIZON Tableau de bord : HORIZON Openstack fournit un tableau de bord qui n’es juste qu’une application web permettant aux utilisateurs et aux administrateurs de gérer leur Cloud a travers une interface graphique. Cette application est écrite en Python et notamment grâce aux frameworks de développement web tel que Django et tire partie des API REST fournit par les autres composants d’Openstack comme Nova, Cinder ou Neutron 20
Composants Openstack Comme on a eu a le voir, les services décrits précédemment sont les importants dans Openstack. Les services complémentaires sont : Heat => Orchestration de plusieurs Cloud Trove => Service de Base de Données a la demande Ceilometer => Service de Metrologie Swift => Service de Stockage d’objets 21
INSTALLATION ET CONFIGUARTION OPENSTACK Prérequis Ce Lab a été entièrement réalisé sur Ubuntu Server Nous avons utilisé la solution de virtualisation Oracle Virtualbox. RAM : 4GB Disque Dur : 80GB Processeurs Virtuels : 4 Intel VT AMD activé L’installation de la machine virtuelle n’est pas expliquée dans la présentation. 22
INSTALLATION ET CONFIGUARTION OPENSTACK Mettre a jour le système Ajout d’un utilisateur stack et l’inscrire dans le fichier sudoers Se connecter en tant que stack et uploader recuperer le dossier d’installation d’Openstack 23 sudo apt update && sudo apt upgrade sudo adduser stack sudo echo « stack ALL=(ALL) NOPASSWD : ALL » /etc/sudoers su stack git clone
INSTALLATION ET CONFIGUARTION OPENSTACK Accéder en premier lieu au répertoire devstack Copier le fichier local.conf qui se situe dans le repertoire samples Editer le fichier local.conf et renseigner l’adresse IP de la machine ainsi que les mots de passe 24 cd devstack sudo cp samples/local.conf./local.conf
INSTALLATION ET CONFIGUARTION OPENSTACK Note : ADMIN_PASSWORD est le mot de passe qui nous permettra de nous loguer au niveau de la page Openstack HOST_IP est notre adresse IP obtenu apres avoir tapé ifconfig Pour commencer l’installation d’Openstack dans Ubuntu on tapera la commande suivante : 25./stack.sh
INSTALLATION ET CONFIGUARTION OPENSTACK Les services suivants seront installés : Horizon – Tableau de Bord Openstack Nova – Service Compute Glance – Service d’Image Neutron – Service Réseau Keystone – Service d’Identité Cinder – Service Stockage par Bloc Placement – Placement des API L’installation peut durer au minimum 10 a 15 minutes et maximum une heure de temps en fonction de la connexion internet 26
INSTALLATION ET CONFIGUARTION OPENSTACK 27
INSTALLATION ET CONFIGUARTION OPENSTACK Accéder a Openstack via un navigateur web Pour accéder a Openstack via un navigateur web il faudra juste tapez le lien suivant : 28
INSTALLATION ET CONFIGUARTION OPENSTACK Vue d’ensemble d’Openstack 29
INSTALLATION ET CONFIGUARTION OPENSTACK Dans ce qui suit, nous allons : Créer un réseau Importer une image d’installation Ubuntu Créer une instance ( machine virtuelle) 30
INSTALLATION ET CONFIGUARTION OPENSTACK Création de notre propre réseau 31
INSTALLATION ET CONFIGUARTION OPENSTACK 32
INSTALLATION ET CONFIGUARTION OPENSTACK 33
INSTALLATION ET CONFIGUARTION OPENSTACK Notre réseau openstack_network vient d’etre créer avec comme adresse réseau /24 et faisant partie de la zone Nova 34
INSTALLATION ET CONFIGUARTION OPENSTACK Importation de l’image ISO Ubuntu 35
INSTALLATION ET CONFIGUARTION OPENSTACK 36
INSTALLATION ET CONFIGUARTION OPENSTACK 37
INSTALLATION ET CONFIGUARTION OPENSTACK 38
INSTALLATION ET CONFIGUARTION OPENSTACK Création d’une instance (machine virtuelle) 39
INSTALLATION ET CONFIGUARTION OPENSTACK 40
INSTALLATION ET CONFIGUARTION OPENSTACK 41
INSTALLATION ET CONFIGUARTION OPENSTACK 42
INSTALLATION ET CONFIGUARTION OPENSTACK Choisir parmi les gabarits suivants a celui correspondant aux caractéristiques de notre instance que nous voulons créer. 43
INSTALLATION ET CONFIGUARTION OPENSTACK Choix du réseau 44
INSTALLATION ET CONFIGUARTION OPENSTACK Résumé de nos choix 45
INSTALLATION ET CONFIGUARTION OPENSTACK Début installation de l’instance Aller dans Créer un instantané puis Console 46
INSTALLATION ET CONFIGUARTION OPENSTACK 47
INSTALLATION ET CONFIGUARTION OPENSTACK 48
CONCLUSION Au cours de cette présentation nous avons fait une étude sur le Cloud Computing avec comme solution Openstack. Par la suite nous avons décrit l’architecture conceptuelle et logique de celui-ci pour un éventuel déploiement. De plus nous avons installer et configurer Openstack sous un système d’exploitation basé sur Ubuntu 18 et nous avons essayé de créer une machine virtuelle en son sein. L’approche que nous avons décrite dans les parties précédentes ont aidé des novices tels que sommes a pouvoir avoir un aperçu bref et claire sur la notion de Datacenter 49