Problèmes de gestion des ressources dans le Cloud Computing
Les systèmes à grande échelle
Introduction
Dans le passé, l’utilisateur (individu, entreprise, organisation) devait acheter du matériel et du logiciel pour héberger ses applications et ses données. En outre, il devait louer ou construire un espace de centre de données pour héberger ses ressources matérielles et logicielles. De nos jours, il existe des plateformes distribuées qui donnent la possibilité de bénéficier des systèmes distants à la demande via Internet, de payer uniquement pour les ressources utilisées par l’utilisateur final et de les étendre et les contracter au besoin. Au niveau de ce chapitre nous présentons les notions fondamentales des systèmes à large échelle et l’émergence du Cloud Computing. Nous commençons par exposer les différentes définitions qui sont données aux systèmes à grande échelle. Ensuite, nous présentons les caractéristiques des systèmes en Cloud ainsi que les différents modèles de déploiement et de livraison de services. Puis, nous recensons les avantages et inconvénients des environnements en Cloud. Enfin, nous terminons ce chapitre par définir le cœur du Cloud, à savoir la virtualisation.
Introduction aux systèmes à grande échelle
Le calcul haute performance (HPC) était autrefois réservé aux institutions qui pouvaient se permettre des supercalculateurs très coûteux. L’informatique en Cluster est apparue pour faire du calcul haute performance mais à petite échelle et à moindre coût. L’émergence de plates-formes de Cluster a été motivée par un certain nombre de projets universitaires, tels que Beowulf [53] et HPVM [10]. La popularité d’Internet et la disponibilité d’ordinateurs puissants et de technologies de réseau à haut débit ont changé la façon dont les ordinateurs sont utilisés. L’informatique en grille a vu le jour dans le milieu universitaire au milieu des années 90 dans le but d’aider les utilisateurs à utiliser à distance la puissance de calcul inutilisée dans d’autres centres de calcul lorsque le centre
local est occupé [53]. Cependant, après des années de développement, la grille a pris de l’ampleur et est devenue un moyen efficace de partage coordonné des ressources et de résolution des problèmes dans des organisations virtuelles dynamiques et multi-institutionnelles. Le Cloud Computing est un modèle informatique créé vers la fin de 2007. Il fournit un pool de ressources informatiques auxquelles les utilisateurs peuvent accéder via Internet. Le principe de base de l’informatique en Cloud est d’externaliser le traitement informatique de l’ordinateur local vers une ressource informatique sur le réseau [70]. Cela permet à l’entreprise d’utiliser cette ressource sans investissement considérable dans son achat, dans sa mise en œuvre, ou dans sa maintenance. Les ressources sont allouées à la demande sans réservation préalable. Dans cette section, nous décrivons brièvement les trois modèles de systèmes à grande échelle de base, à savoir : les Clusters, les grilles et le Cloud Computing.
Cluster Computing
Pendant de nombreuses années, le supercalculateur était le leader dans le domaine de l’informatique. Mais en raison de certains problèmes rencontrés dans les domaines de la science, de l’ingénierie et des affaires, il n’a pas été possible de traiter efficacement les superordinateurs. Ils ont été remplacés par des Cluster [47] qui constituent un moyen très économique d’avoir accès à une puissance de calcul potentiellement énorme. Un Cluster est un ensemble d’ordinateurs parallèles ou distribués, interconnectés entre eux via des réseaux à haut débit tels que les gigabits Ethernet, SCI, Myrinet et Infiniband. Ils travaillent ensemble à l’exécution de tâches intensives en calcul et intensives en données. Lorsque plusieurs ordinateurs sont liés dans un Cluster, ils partagent la charge de travail informatique en tant qu’ordinateur virtuel unique. Du point de vue des utilisateurs, il s’agit de plusieurs machines, mais elles fonctionnent comme une seule machine.
Introduction aux systèmes à grande échelle
virtuelle. La demande de l’utilisateur est reçue et distribuée sur tous les ordinateurs participant au Cluster. Les Clusters sont souvent utilisés pour faire du calcul distribué intense plutôt que de gérer des activités de stockage massive.
La grille informatique
Le calcul en grille combine des ordinateurs de plusieurs domaines administratifs pour atteindre un objectif commun ou pour résoudre une seule tâche. C’est analogue au réseau électrique [33]. L’une des principales stratégies de l’informatique en grille consiste à utiliser un middleware pour diviser et répartir les éléments d’un programme entre plusieurs ordinateurs. Le calcul en grille implique un calcul distribué, ce qui peut également impliquer l’agrégation de systèmes basés sur le calcul en Cluster à grande échelle. La taille d’une grille peut varier d’un petit réseau de stations de travail informatiques au sein d’une entreprise à de grandes collaborations entre plusieurs entreprises et réseaux. Buyya et. Al. [33] a défini la grille comme un type de système parallèle et distribué permettant le partage, la sélection et l’agrégation de ressources autonomes réparties géographiquement de manière dynamique au moment de l’exécution, en fonction de leur disponibilité, de leurs performances, de leur coût et de la qualité des exigences de service. Ian Foster [40] a défini la grille comme un système coordonnant des ressources qui ne sont pas soumises à un contrôle centralisé, à l’aide de protocoles et d’interfaces standard, ouverts et polyvalents, afin de fournir des qualités de service non triviales.
Le Cloud Computing
L’informatique en Cloud désigne à la fois les applications fournies sous forme de services sur Internet et le matériel et le logiciel des centres de données fournissant ces services. Selon Buyya et. Al. [24] un Cloud est un type de système parallèle et distribué constitué d’un ensemble d’ordinateurs interconnectés et virtualisés, provisionnés de manière dynamique et présentés sous la forme d’une ou de plusieurs ressources informatiques unifiées basées sur un accord de niveau de service. Dans cette thèse, nous supposons l’optimisation des services de gestion et d’approvisionnement des ressources informatiques dans le Cloud Computing.
Introduction au Cloud Computing
NIST (National Institute of Standards and Technology) en français « Institut National des normes et de la technologie » définit le Cloud Computing comme «un modèle permettant un accès réseau omniprésent, pratique et à la demande à un pool partagé de ressources informatiques configurables (par exemple, réseaux, serveurs, stockage, applications et services) pouvant être rapidement provisionnées et libérées avec un minimum d’effort de gestion ou d’interaction avec le fournisseur de services.» [1]. Selon Cisco le Cloud Computing est un ensemble de « Ressources et services informatiques extraits de l’infrastructure sous-jacente et fournis « à la demande » et « à l’échelle » dans un environnement mutualisé. La définition de Cisco de Cloud Computing est générale; cependant, trois attributs clés de la définition comprennent : 1. « À la demande » signifie que les ressources peuvent être provisionnées immédiatement en cas de besoin, libérées lorsqu’elles ne sont plus nécessaires et facturées uniquement lorsqu’elles sont utilisées. 2. « À l’échelle » signifie que le service fournit l’illusion d’une disponibilité infinie des ressources afin de répondre à toutes les demandes qui en sont faites. 3. « Environnement mutualisé » signifie que les ressources sont fournies à de nombreux consommateurs à partir d’une seule implémentation, ce qui permet au fournisseur d’économiser des coûts significatifs.» [31]. Donc, le Cloud est un modèle qui offre des services à la demande. Ces services peuvent être des ressources de type stockage ou puissance de calcul, ou des applications et solutions logicielles. Ces services sont accessibles par plusieurs utilisateurs simultanément à distance via Internet depuis n’importe quel endroit et n’importe quand et sur tout type de support qui ne dispose pas forcément une grande capacité de calcul. Les services sont facturés sur la base de paiement par usage réel « pay-per-use » des ressources provisionnées, tout comme le paiement de la facture mensuelle pour le service d’électricité.
Caractéristiques du Cloud
Le modèle de Cloud du NIST comprend cinq caractéristiques ou exigences essentielles, ce qui différencie le modèle Cloud de l’approche informatique traditionnelle Libre-service à la demande : La fonction de service à la demande fait référence à la capacité qui permet aux utilisateurs de consommer les ressources informatiques autant qu’ils en ont besoin à tout moment. En outre, l’utilisateur est capable de demander des services de Cloud selon ses besoins via une interface et les ressources deviennent disponibles en quelques secondes sans aucune intervention humaine de la part du fournisseur. Mise en commun des ressources : Le Cloud Computing met à disposition des utilisateurs des ressources informatiques (processeur, mémoire, stockage et réseau), auxquelles ils peuvent accéder et les utiliser pour satisfaire leurs besoins informatiques et quand ils ont en besoin. Contrairement à l’approche informatique traditionnelle où chaque entreprise ou utilisateur possède ses propres ressources informatiques physiques, les pools de ressources informatiques sont maintenus à des emplacements distants par le fournisseur auquel accèdent tous les utilisateurs. Les pools de ressources doivent être raisonnablement grands, flexibles et capables de prendre en charge de nombreux utilisateurs simultanément sans aucune défaillance. Accès réseau large bande : Le service de Cloud Computing est accessible à distance par les utilisateurs via le réseau. Pour atteindre cet objectif, une infrastructure de réseau solide doit être mise en place pour une fourniture sans effort et rapide des services informatiques. Ainsi, les liens de communication à large bande passante répartis sur la zone de service sont les attributs essentiels du CC, de sorte que les utilisateurs peuvent y accéder depuis n’importe quel endroit et n’importe quand. Élasticité rapide : Le système doit être suffisamment élastique. Il devrait être capable de croître et de rétrécir selon les besoins. L’élasticité rapide fait référence à cette capacité du Cloud où un système informatique peut s’étendre ou se réduire rapidement en fonction des besoins réels en ressources au moment de l’exécution. Service mesurable et facturable : Dans le modèle de Cloud Computing, le paiement est déterminé en mesurant les usages des ressources informatiques par un utilisateur. Par conséquent, le fournisseur doit utiliser un mécanisme pour mesurer la consommation réelle par chaque utilisateur ou organisation. Cela signifie que l’utilisation des ressources mises en commun doit être calculée et facturée à chaque utilisateur sur la base d’un système de comptage. Généralement, ceci est fait sur une métrique connue telle que la quantité de puissance de traitement consommée, l’utilisation du volume de stockage, la bande passante réseau utilisée, le nombre de transactions réseau, etc.
|
Table des matières
Résumé v
Remerciements vii
Table des matières ix
Table des figures xiii
Liste des tableaux xv
Introduction Générale 1
1 Les systèmes à grande échelle
1.1 Introduction
1.2 Introduction aux systèmes à grande échelle
1.2.1 Cluster Computing
1.2.2 La grille informatique
1.2.3 Le Cloud Computing
1.3 Introduction au Cloud Computing
1.4 Caractéristiques du Cloud
1.5 Modèles de déploiement
1.5.1 Cloud public
1.5.2 Cloud privé
1.5.3 Cloud hybride
1.5.4 Cloud communautaire
1.6 Services de Cloud Computing
1.6.1 IaaS
1.6.2 PaaS
1.6.3 SaaS
1.7 Avantages et inconvénients
1.7.1 Avantages
x Table des matières
1.7.2 Inconvénients
1.8 Définition de la virtualisation
1.9 Types d’hyperviseur
1.9.1 Hyperviseur de type 1 « Bare-metal »
1.9.2 Hyperviseur de type 2 « hosted »
1.10 Techniques de virtualisation
1.10.1 Virtualisation complète
1.10.2 Para-virtualisation
1.10.3 Virtualisation matérielle assistée
1.11 Types de virtualisation
1.11.1 Virtualisation du poste de travail
1.11.2 Virtualisation d’applications
1.11.3 Virtualisation de serveurs
1.11.4 Virtualisation du stockage
1.11.5 Virtualisation du réseau
1.12 Avantages de la virtualisation
1.13 Inconvénients de la virtualisation
1.14 L’Émulation et la Virtualisation
1.15 La Virtualisation et le Cloud Computing
1.16 Conclusion
2 Problèmes de gestion des ressources dans le Cloud Computing
2.1 Introduction
2.2 Gestion des ressources dans le Cloud Computing
2.2.1 Schémas de gestion de VM adaptés aux ressources
2.2.2 Schémas de gestion de VM adaptés à la consommation d’énergie
2.2.3 Schémas de gestion de VM adaptés au réseau
2.2.4 Schémas de gestion des VM adaptés aux coûts
2.3 Spécification du problème de gestion et de planification des ressources dans le Cloud Computing
2.3.1 Modèles des applications réparties
2.4 Critères de planification dans le Cloud Computing
2.4.1 Temps
2.4.2 Coût
2.4.3 Fiabilité
2.4.4 Consommation d’énergie
2.4.5 Sécurité
2.5 Taxonomie des tâches
2.5.1 Une tâche pour une machine
2.5.2 Une tâche pour plusieurs machines
2.6 Modèle d’approvisionnement
Table des matières xi
2.6.1 Ressource à la demande
2.6.2 Ressource non fiable (ou instances ponctuelles)
2.6.3 Ressource sous contrat à long terme
2.7 Représentation structurelle
2.8 Technique de planification
2.9 Type de charge de travail
2.10 Critères d’optimisation
2.11 Défis lors de la gestion des ressources
2.11.1 Utilisation des ressources
2.11.2 Allocation de ressources
2.11.3 L’équilibrage de charge
2.11.4 Estimation de tâche
2.12 Types de problèmes d’architecture système
2.12.1 Application Intensif en instances
2.12.2 Beaucoup de données
2.12.3 Communication intensive
2.13 Paramètres d’optimisation des coûts
2.13.1 Calculer la granularité des coûts
2.13.2 Paramètres de coûts
2.13.3 Défis lors de l’optimisation des coûts
2.14 Conclusion
3 Proposition de stratégies de gestion des ressources virtuelles
3.1 Introduction
3.2 Travaux connexes
3.3 Problématique
3.4 Hypothèse et modèle du système
3.4.1 Modèle d’application
3.4.2 Modèle d’exécution
3.4.3 Modèle de transfert de données
3.5 Approches Proposées
3.5.1 Regroupement de tâches basé sur une probabilité conditionnelle
3.5.2 Regroupement des tâches basé sur la dépendance des données
3.5.3 Transformation des données
3.5.4 Mesures de la distance entre les Tâches
3.5.5 Méthodes d’analyse de Cluster et intervalle du nombre de machines virtuelles
3.5.6 Méthode de Clustering hiérarchique
3.5.7 Fonctions objectives
3.6 Conclusion
xii Table des matières
4 Environnement de développement et étude expérimentale
4.1 Introduction
4.2 Les Workflows scientifiques
4.2.1 Réutilisation des Workflows
4.2.2 Reproductibilité des systèmes de Workflows
4.3 Caractérisation des Workflows scientifiques
4.3.1 Montage
4.3.2 CyberShake
4.3.3 Epigenomics
4.3.4 LIGO Inspiral
4.3.5 SIPHT
4.3.6 Génération de Workflows pour la simulation
4.4 Vue d’ensemble des outils existants de simulateur de Cloud
4.4.1 CloudSim et ses extension
4.4.2 GreenCloud
4.4.3 DCSim
4.5 Méthodes d’évaluation
4.6 Evaluation des performances de la 1ère approche
4.6.1 Expérience 1 : Impact du type de Workflow sur le coût
4.6.2 Expérience 2 : Impact du type de Workflow sur le temps total de transfert de données
4.6.3 Expérience 3 : Impact du type de Workflow sur l’écart-type
4.7 Evaluation des performances de la 2ème approche
4.7.1 Expérience 1 : Impact du type de Workflow sur le coût
4.7.2 Expérience 2 : Impact du type de Workflow sur le temps total de transfert de données
4.7.3 Expérience 3 : Impact du type de Workflow sur l’écart-type
4.8 Conclusion
Conclusion Générale
Bibliographie
Télécharger le rapport complet