Architecture pour la gestion de la QoS dans les Clouds 

Technologies des Clouds

Les Clouds Computing sont le concours de l’avancement d’un ensemble de technologies informatiques. Il s’agit spécialement de l’avancement technologique : dans le domaine de hardware avec l’arrivée de multi-cores et l’utilisation de la virtualisation ; dans le domaine de technologies de l’Internet où les Services Web ont apporté une solution à l’interopérabilité et au développement de systèmes distribués à grande échelle ; dans le domaine de systèmes parallèles et distribués tels que les Clusters et les Grids et aussi dans le domaine de la gestion autonome de systèmes informatiques (autonomic computing) [17]. Dans la suite de cette section nous présentons brièvement ces technologies dans le but de donner une image plus claire de l’écosystème de Clouds dans son ensemble.

La virtualisation

La virtualisation est devenue une technologie indispensable pour les Cloud Computing par le fait de ses deux importantes fonctionnalités : l’abstraction et l’encapsulation [44] avec lesquelles les applications utilisateurs sont isolées les unes des autres et les ressources physiques de l’infrastructure sont présentées sous forme d’un ensemble unifié. Les technologies de virtualisation ont été développées pour mieux utiliser les ressources et les capacités des ordinateurs pour améliorer ainsi le revenu de centres de données. Dans les Clouds, la virtualisation s’utilise à différents niveaux : virtualisation serveur, virtualisation de stockage et virtualisation réseau.
Ces deux derniers types de virtualisation sont présentés dans la section 4.1.
La virtualisation serveur est l’idée qui consiste à partitionner ou diviser les ressources d’un seul serveur en une multitude de machines virtuelles isolées. Elle signifie aussi la consolidation sur un seul noeud serveur de diverses charges individuelles et hétérogènes et cela implique une meilleure utilisation de ressources physiques. Une machine virtuelle est une implémentation logicielle d’une machine ( un ordinateur ) capable d’exécuter des programmes comme une machine physique. Elle fournit une plateforme complète et configurable pouvant supporter l’exécution de tout un système d’exploitation. Un seul noeud physique (serveur physique ) peut exécuter simultanément plusieurs machines virtuelles. La création , le déploiement et le contrôle de ces machines virtuelles sont assurés par un composant logiciel appelé gestionnaire de machines virtuelles ou hyperviseur ou VMM (pour Virtual Machine Monitor).
La virtualisation n’est pas une nouvelle technologie au niveau de l’informatique.
Elle a été utilisé depuis 1960 par IBM pour implémenter l’exécution multitâche au sein de ses main-frames pour minimiser la sous utilisation de ces ressources coûteuses [74]. Elle apporte des immenses bénéfices aux systèmes informatiques en leur
permettant d’abord d’économiser l’utilisation d’énergies puisque c’est une seule machine qui exécutera les traitements de plusieurs autres machines (virtuelles) ; Elle permet aussi un déploiement rapide de solutions puisqu’une machine virtuelle est créée à l’aide d’une image d’un système complètement configuré pour assurer une tâche donnée ; Elle apporte aussi des techniques de maintenance éprouvées permettant entre autre la migration de tout un système sans qu’il soit nécessaire d’interrompre son fonctionnement et ainsi une gestionflexible de la distribution de la charge et une grande disponibilité de systèmes déployés. Elle permet aussi l’isolation et l’encapsulation de systèmes virtualisés et ainsi assurer une séparation et une protection contre les erreurs de configuration qui peuvent exister dans certains systèmes. Principalement on distingue entre deux grandes catégories de approches de virtualisation dont les performances sont différentes : La para-virtualisation et La virtualisation complète voir la figure 2.2.

La para-virtualisation ou hyperviseur

Un hyperviseur est une couche logicielle qui s’exécute directement au dessus de la plateforme matérielle et implémente la plupart de services fournis habituellement par un système d’exploitation ; Elle est la méthode de virtualisation d’infrastructure la plus performante mais elle a comme inconvénient d’être contraignante par le fait que les systèmes d’exploitation invités (virtuels) doivent généralement être adaptés à la couche de virtualisation.

La virtualisation complète

Dans ce cas la virtualisation est assurée par un programme émulateur (qui est aussi un hyperviseur) s’exécutant sur un système d’exploitation classique ( le système hôte) ; Cet émulateur utilise les services fournis par le système d’exploitation hôte pour gérer les besoins en mémoire et en ordonnancement des machines virtuelles. Les systèmes d’exploitation invités (virtuels) n’ont pas conscience d’être virtualisés et croient dialoguer directement avec la couche matérielle ; La virtualisation complète est surtout importante pour l’exécution de système d’exploitation non-open-source comme Windows parce que les codes de leurs noyaux ne sont pas accessibles pour être adaptés pour la para-virtualisation.

Les plateformes hypervisors (VMMs)

La virtualisation est souvent accomplie par l’utilisation d’un hypervisor (VMM) qui autorise un système d’exploitation invité à s’exécuter au niveau d’une machine virtuelle et à se comporter comme s’il est le seul qui contrôle et s’exécute sur l’infrastructure physique sans conscience des autres systèmes virtuels qui la partagent avec lui voir lafigure 2.2. Avec l’existence d’une multitude de hypervisors chacun avec son format spécial pour lesfichiers images de machines virtuelles un problème d’incompatibilité de ces formats est posé. Dans le but de résoudre ce problème d’incompatibilité le format OVF (pour Open Virtualization Format) a été créé par un ensemble d’acteurs de Clouds comportant entre autres VMware, IBM, Citrix, Cisco, Microsoft, Dell et HP. Un package OVF contient un ou plusieursfichiers décrivant les caractéristiques matérielles d’une machine virtuelle( mémoire RAM, carte réseauet disques), le système d’exploitation, les disques virtuelles en plus d’autres métadata contenant entre autres les informations de licence [17].
Les plateformes VMM constituent la première couche de la pile de l’environnement d’un Cloud. Les plus célèbres de ces plateformes sont VMWare, Xen et KVM que nous présentons brièvement dans cette section :
VMwareest un pionnier dans le marché de la virtualisation. Il propose un ensemble d’outils de haut niveau pour la virtualisation serveur et poste de travail.
C’est un hyperviseur de virtualisation complète mais qui se distingue par le fait qu’il s’installe directement sur le matériel serveur sans un système d’exploitation hôte et fournisse des technologies avancées de virtualisation de processeur, de mémoire et d’entrées sorties. Il utilise des technologies avancées pour le partage et la gestion efficace de la mémoire physique.
Xenest un hypervisor démarré comme un projet open-source mais a été utilisé comme base à plusieurs autres produits de virtualisation commerciaux et opensource. Il est lepremier outil de para-virtualization qui permette aux systèmes invités à l’aide de noyaux spéciauxde pouvoir interagir directement avec l’hyperviseur et ainsi s’exécuter plus efficacement. Il est utilisé au sein de plusieurs hyperviseurs commerciaux comme Citrix XenServer et Oracle VM [63]. KVM(pour Kernel-based Virtual Machine) est une solution de virtualisation complète implémentée comme un module chargeable Linux. Il fait partie intégrante du noyau linux à partir de la version 2.6.20 et du coup il est supporté nativement par diverses distributions. les activités telles que la gestion de la mémoire et l’ordonnancement sont exécutées par le noyau du système principal rendant ainsi KVM plus simple et plus petit que les hyperiviseurs habituels qui contrôlent et gèrent la totalité de la machine physique. Il supporte diverses versions de Windows, Linux et UNIX.

Les Services Web

Les Services Web et le Service Oriented Architecture (SOA) ne sont pas de nouveaux concepts cependant ce sont des technologies de base pour le Cloud computing [HandBook of Cloud Computing]. Les services web sont la technologie de l’intégration d’applications par excellence à l’échelle de l’Internet. Ils fonctionnent indépendamment des plates formes et des langages sur lesquelles ils reposent et sont de composants logiciels auto-descriptifs faiblement couplés et interagissant entre eux.
Ils correspondent parfaitement à l’ambition de SOA qui consiste à développer de nouvelles applications distribuées, faiblement couplées et basées sur des standards à partir de services accessibles par le réseau.
Le développement de la technologie de Services Web a été suivi et encouragé par les grandes entreprises du monde industriel intéressées par les solutions qu’ils apportent aux limitations de leurs systèmes classiques d’intégration intra (Enterprise Application Integration) et interentreprises (Business to business) basés sur des architectures fortement couplées. En effet, les architectures par composant telles que CORBA(Common Object Broker Architecture), DCOM(Distributed Component Model) et RMI (Remote Method Invocation) ont répondu de manière satisfaisante à l’interopérabilité dans le contexte de systèmes distribués, mais à l’échelle d’Internet elles souffrent de plusieurs insuffisances : i) Ces technologies requièrent des efforts considérables afin de coupler les différents systèmes d’informations d’où l’appellation systèmes fortement couplés qui signifie que n’importe quelle modification au niveau d’un acteur du système entrainera toujours de modifications au niveau des autres acteurs ; ii) Il est souvent aussi impossible aux applications développées avec ces approches de traverser les pare-feu (Firewall ) des entreprises et iii) Aucune de ces approches ne jouit d’une acceptation généralisée.
Dans les Clouds, les Services Web interviennent à tous les niveaux pour assurer l’interopérabilité avec les systèmes partenaires et aussi avec les utilisateurs de services. Un exemple d’utilisation est la collection de Services Web deAmazon Web Servicespermettant de créer et de contrôler les machines virtuelles dans le cloud de Amazon.

Les systèmes autonomes

Pour fournir un accès auto-service les Clouds doivent mettre en place les mécanismes d’une gestion autonome (self-managing) sur la base des informations collectées par un système de monitoring et par l’adaptation du système à travers des directives appliquées par des effecteurs sans besoin de l’intervention d’opérateurs humains. IBMs Autonomic Computing Initiative a identifié les quatre propriétés d’un système autonome : self-configuration, self-optimization, self-healing et selfprotection. Elle a proposé aussi un modèle de référence pour la boucle de contrôle d’un gestionnaire autonome appelé MAPE-K (pour Monitor Analyze Plan ExecuteKnowledge) [17]. Autrement les systèmes de Clouds doivent pouvoir s’auto-gérer avec des directives de haut niveau données en amont par des humains.

Types de services dans les Clouds

Les Clouds fournissent différentes collections de services appelées brièvement les services XaaS (pour dire X-as-a-Service) ou X désigne la classe de service. Ces services sont présentés souvent par un modèle en couches où chaque couche se spécialise pour un type de service donné et utilise aussi les services de couches plus basses. la figure 2.3 nous présente les trois catégories de services de Clouds avec chacune leurs caractéristiques et leurs principaux fournisseurs.

SaaS (Software-as-a-Service)

Le service fourni à l’utilisateur, dans ce type de Cloud, est l’utilisation de certaines applications ou services qui tournent en entier dans une infrastructure Cloud.
Ces applications peuvent être accédées à travers différents périphériques clients et souvent via des interfaces légères comme des navigateurs Web (le cas de la messagerie Web). Dans ce type de Cloud, les utilisateurs ne gèrent pas et ne contrôlent pas les infrastructures Cloud sous-jacentes. Comme exemples pour les Clouds SaaS, on peut citerGoogle Apps, l’offre deMicrosoft liveetsalesforce.com. Google Apps sont des Software as a Service tels que Gmail, Google talk, Calendar …etc.

Cloud Public

Un Cloud Public est un cloud dont les services ou ressources informatiques sont dynamiquement accessibles à la demande à tout le monde sur Internet via des interfaces web ou de Services Web et dans lequel les traitements de tous les utilisateurs sont exécutés en même temps par la même infrastructure. Comme exemple pour les Clouds publiques, différentes offres existent et on peut citer :Amazon Elastic Compute Cloud (EC2),IBM Blue Cloud,Sun Cloud,Google App Engine,Amazon Web ServicesetForce.com.

Cloud privé

Un Cloud privé est un environnement déployé au sein d’un réseau privé exploité pour le besoin de l’Entreprise propriétaire ou réservé à un seul autre utilisateur. Dans ce cas c’est l’Entreprise elle même qui assure la gestion de son infrastructure interne transformée sous forme de Cloud et fournie de services à ses utilisateurs. Les avantages de ce type de Cloud est le fait que les données sensibles de l’entreprise sont stockées en interne et l’accès aux services est plus rapide. Eucalyptus, OpenNebula et OpenStack sont des exemples de solutions open source pour la mise en place de Cloud privé.

Cloud hybride

Un Cloud hybride est un Cloud privé qui utilise les services de certains Clouds publics.

Gestionnaires d’infrastructures virtuelles

Un Cloud est un ensemble de centres de données qui sont inter-connectés entre eux et ces derniers sont à leur tour composés chacun de dizaines, voire de centaines ou plus de serveurs physiques. Un défiimportant pour les fournisseurs de Cloud est la gestion efficace de l’ensemble de ces ressources physiques et virtuelles de telle sorte qu’elles soient rapidement et dynamiquement allouées aux applications. Les composants responsables de cette tâche sont les gestionnaires d’infrastructure virtuelle ou VIMs (pour Virtual Infrastructure Manager). Ils doivent assurer une gestion efficace de l’ensemble de l’infrastructure virtuelle en fournissant les fonctionnalités de base permettant la création et l’utilisation de machines virtuelles sur l’ensemble distribué de pools de ressources de clouds. Un VIM ressemble à un système d’exploitation traditionnel mais qui gère, au lieu d’une seule machine, l’ensemble de toutes les machines de l’infrastructure en présentant une vue uniforme et cohérente de toutes les ressources aux utilisateurs et applications [17]. Les VIMs s’appuient sur les VMMs (pour Virtual Machine Monitor) qui s’exécutent individuellement sur les machines physiques de l’infrastructure dans le but de fournir les fonctionnalités nécessaires pour la gestion du cycle de vie de machines virtuelles telles que le déploiement, le contrôle et le monitoring de machines virtuelles.
Deux catégories d’outils de gestion de Clouds peuvent être distinguées dans l’ensemble d’outils constituant l’écosystème de Clouds selon Sotomayor et al. [93] : la première catégorie inclut les outils de gestion de Cloud ou CIM (pour Cloud Infrastructure Manager) qui exposent une interface distante et sécurisée pour créer, contrôler et surveiller les ressources virtuelles mais dont les fonctionnalités en terme de gestion d’infrastructure virtuelle sont limitées ; la deuxième catégorie inclut les outils de gestion de Cloud qui n’exposent pas d’interface distante de type cloud mais qui se spécialisent et fournissent de fonctionnalités avancées de gestion d’infrastructurevirtuelle comme l’équilibrage automatique de charge et la consolidationde serveurs.

Fonctionnalités de VIMs

Dans cette section, nous présentons brièvement les principales fonctionnalités d’un gestionnaire d’infrastructure virtuelle.

Support de virtualisation

La capacité de pouvoir servir une multitude d’utilisateurs ayant des besoins disparates avec la même infrastructure matérielle et laflexibilité de redimensionnement de ressources virtuelles (CPU, RAM …etc) font que la virtualisation est la technologie idéale pour la création d’infrastructure virtuelle.

Un accès Auto-Service

Les services dans les Clouds sont disponibles à la demande et accessibles directement aux utilisateurs sans aucune interaction avec les opérateurs humains. En plus, l’existence d’une interface auto-service permettant aux utilisateurs de facilementinteragir avec le système est une fonctionnalité très appréciée d’un VIM.

Support de hyperviseurs

Le support de plusieurs hyperviseurs est une qualité importante pour un gestionnaire VIM. Certains gestionnaires VIM fournissent une couche de gestion uniforme et indépendante des technologies de virtualisation utilisées au niveau de serveurs de l’infrastructure physique. Dans cette direction la librairie libvirt [5] a pour but de fournir un API commun, stable et suffisant pour gérer des machines virtuelles à travers des appelsstandards faisant abstraction des appels spécifiques d’hyperviseurs.

Les plateformes VIMs

La réussite et l’engouement de plus en plus perceptible de l’offre de Clouds a entrainé une multiplication importante de plateformes, propriétaires et open source, de mise en place de services Clouds. Dans cette section nous présentons les principales solutions Clouds open source.

OpenStack

OpenStack est une plateforme open source pour la mise en place de Clouds de type IaaS. Il est présenté comme un système d’exploitation Cloud contrôlant de grands pools de ressources de calcul, de stockage et de réseaux et le tout est géré avec un tableau de bord. Il est co-fondé par Rackspace et la NASA en Juillet 2010 et maintenu par une large communauté de développeurs. Il est aussi soutenu par des grands acteurs de technologies de l’information et de la communication. Entre autre on peut citer AT&T, Intel, Canonical, SUSE Linux, Red Hat, Cisco, Dell, HP, IBM, NEC, VMware, Ericsson, Hitachi, Huawei et Yahoo. La plateforme OpenStack fournit différents types d’accès aux ressources à travers des APIs pour les développeurs d’applications et une interface Web pour les utilisateurs et les administrateurs. Elle est aussi composée de sept principaux projets ou modules spécialisés chacun dans un thème et coopérant ensemble pour le provisionnement et l’allocation de ressources aux applications : (1) Le module OpenStack Nova assure à la demande le provisionnement et la gestion de réseaux de machines virtuelles. (2) OpenStack Swift fournit un système de stockage redondant et scalable dont les objets et les fichiers sont stockés sur des multiples disques de serveurs dispersés dans les centres de données ; Il est aussi responsable du maintien de la réplication et l’intégrité de données sur l’ensemble de l’infrastructure. (3) OpenStack Glance est le module qui gère le dépôt des images de disques virtuels ; Il fournit les mécanismes de découverte et d’enregistrement de disques virtuels. (4) OpenStack Quantum est le module qui permet la définition d’interfaces réseaux et leur interconnexion. (5) OpenStack Keystone est le module qui centralise l’authentification et la gestion d’autorisations au niveau de tout le Cloud. (6) OpenStack Horizon est le module qui fournit l’interface Web d’administration et d’utilisation de ressources de Clouds. (7) OpenStack Cinder est le module qui fournit le stockage persistant de type blocs aux machines virtuelles.

CloudStack

CloudStack est une autre plateforme open source concurrente à la précédente pour la mise en place d’offres Clouds de type IaaS. Initialement développé par Cloud.com ensuite acheté plu-tard par Citrix, il a été donné par ce dernier à Apache Software Foundation (ASF). Il est utilisé par de nombreuses entreprises telles que Zynga, Nokia Research Center et Cloud Central. Il intègre toutes les fonctionnalités habituelles pour la gestion de ressources en Clouds et supporte les plus populaires hypervisors : VMware, KVM, XenServer and Xen Cloud Platform (XCP). Avec CloudStack, les utilisateurs peuvent gérer leurs Clouds avec une interface Web, les outils de ligne de commande et aussi une API RESTful complet. En outre, un API compatible avec Amazon Web Services de EC2 (pour Elastic Compute Cloud) et S3 (pour Simple Storage Service) pouvant permettre le déploiement des Clouds Hybrides avec Amazon.

Eucalyptus

Eucalyptus (pour Elastic Utility Computing Architecture, Linking Your Programs To Useful Systems) est l’un de premiers projets open source qui visaient la construction de Clouds de type IaaS. Sa première version open source (Eucalyptus 1.0) est sortie en Mai 2008. Il était développé avec l’intention de fournir une implémentation open source identique en termes de fonctionnalités aux APIs de Amazon Web Services de EC2, S3, EBS (pour Elastic Block Store) et IAM. La motivation qui est derrière ce choix de conception était de permettre aux utilisateurs de pouvoir interagir avec Eucalyptus par les mêmes outils qu’ils utilisaient déjà pour accéder au Cloud de Amazon EC2. Cette compatibilité permettra aussi aux machines virtuelles de pouvoir migrer dans les deux sens entre un Cloud Eucalyptus privé et le Cloud public de Amazon créant ainsi de Clouds Hybrides.

Le rapport de stage ou le pfe est un document d’analyse, de synthèse et d’évaluation de votre apprentissage, c’est pour cela chatpfe.com propose le téléchargement des modèles complet de projet de fin d’étude, rapport de stage, mémoire, pfe, thèse, pour connaître la méthodologie à avoir et savoir comment construire les parties d’un projet de fin d’étude.

Table des matières
Résumé 
Abstract 
Remerciements 
Table des matières 
Table desfigures 
Liste des tableaux 
1 Introduction 
1.1 Problématique de la QoS dans les Clouds
1.2 Démarche et contributions de recherche
1.3 Plan de lecture
I Contexte et Etat de l’Art
2 Les Clouds Computing 
2.1 Caractéristiques et définitions
2.2 Technologies des Clouds
2.2.1 La virtualisation
2.2.2 Les Services Web
2.2.3 Les systèmes autonomes
2.3 Types de services dans les Clouds
2.3.1 SaaS (Software-as-a-Service)
2.3.2 PaaS (Platform-as-a-Service)
2.3.3 IaaS (Infrastructure-as-a-service)
2.4 Modèles des Clouds
2.4.1 Cloud Public
2.4.2 Cloud privé
2.4.3 Cloud hybride
2.5 Gestionnaires d’infrastructures virtuelles
2.5.1 Fonctionnalités de VIMs
2.5.2 Les plateformes VIMs
2.6 Standardisation des Clouds
2.6.1 Offres de Clouds publics
2.6.2 Efforts de standardisation
2.7 Cloud Computring vs Grid Computing
2.8 Conclusion
3 Gestion de la Qualité de Service
3.1 Qualité de Service
3.1.1 Définitions
3.1.2 Niveaux d’abstraction de la QoS
3.1.3 Caractéristiques QoS
3.2 Approches et mécanismes de gestion de la QoS
3.2.1 Avant les Clouds
3.2.2 Pour les applications en Clouds
3.3 Conclusion
II Contributions
4 Architecture pour la gestion de la QoS dans les Clouds 
4.1 Introduction
4.2 Principes
4.3 Architecture proposée
4.3.1 Le Répartiteur de charge
4.3.2 Les Composants Logiciels
4.4 Évaluation de la proposition
4.5 Conclusion
5 Équilibrage de charge et QoS dans les Clouds 
5.1 Introduction
5.2 Équilibrage de charge proposé
5.2.1 Le Répartiteur de charge
5.2.2 Le dispatcheur de réponse
5.3 Évaluation de la proposition
5.3.1 Configuration de la simulation
5.3.2 Résultats
5.4 Conclusion
6 Expérimentations 
6.1 Introduction
6.2 Clouds utilisés
6.3 Application serveur utilisée
6.4 Architecture de notre système d’expérimentation
6.4.1 Phase d’initialisation
6.4.2 Processus d’arrivée
6.4.3 Politiques de répartition de charge
6.5 Déroulement d’expérimentations
6.6 Résultats
6.6.1 Taux de violation de la QoS
6.6.2 Taux de rejet de requêtes
6.6.3 Temps de réponse
6.7 Conclusion .
Conclusions et perspectives
TABLE DES MATIÈRES
Bibliographie

Lire le rapport complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *