Les infrastructures distribuées avant l’essor de la virtualisation
Les organismes ayant besoin d’une grande puissance de calcul ont la possibilité de recourir soit à des ordinateurs centraux très performants (les mainframes), soit à des fédérations d’ordinateurs moins puissants (appelés nœuds), qui forment des infrastructures distribuées. Cette dernière solution est devenue prépondérante ces dernières années, ce qui peut s’expliquer par des raisons économiques (à puissance égale, une fédération de nœuds est moins coûteuse qu’un ordinateur central) et par le fait qu’une fédération comportant un grand nombre de nœuds offre plus de puissance de calcul qu’un ordinateur central.
Présentation des infrastructures distribuées
Les premières infrastructures distribuées à être apparues sont les grappes de nœuds ; elles ont été suivies par les centres de données et de calculs, les grilles et les plates-formes de calcul partagé reposant sur le volontariat .
Grappe de nœuds
L’unité de base généralement utilisée dans les infrastructures distribuées est la grappe (ou ferme) de nœuds.
Définition 1.1 (Grappe)
Une grappe (ou cluster) est une fédération de nœuds homogènes, c’est-à-dire que les nœuds sont tous identiques, afin de faciliter aussi bien leur maintenance que leur utilisation. Ces nœuds sont géographiquement très proches (typiquement la même pièce) et sont reliés entre eux par un réseau local haute performance.
Centre de données et de calculs
Les grappes ne sont pas forcément utilisées de manière indépendante, mais peuvent au contraire être regroupées au sein d’une fédération, par exemple un centre de données et de calculs.
Définition 1.2 (Centre de données et de calculs)
Un centre de données et de calculs (ou datacenter) est une fédération de grappes particulière dans laquelle les grappes sont géographiquement proches les unes des autres (typiquement le même bâtiment ou le même groupe de bâtiments) et communiquent entre elles au travers d’un réseau local.
Le type de nœuds peut varier d’une grappe à l’autre, notamment si les grappes n’ont pas été mises en service en même temps. Chaque grappe dispose de son propre réseau, et tous les réseaux n’ont pas nécessairement la même performance.
Grille
Les grappes et les centres de données de plusieurs organismes partageant un même but peuvent être mis en commun afin de constituer une infrastructure disposant d’une puissance de calcul accrue, appelée grille.
Définition 1.3 (Grille)
Une grille est une infrastructure distribuée qui « permet le partage de ressources et la résolution coordonnée de problèmes au sein d’organisations virtuelles multiinstitutionnelles » [FZRL08].
Une grille est généralement une fédération de nœuds hétérogènes. Par ailleurs, les différentes composantes d’une grille communiquent via un réseau étendu, qui est moins performant qu’un réseau local ; ceci est vrai pour la latence (c’est-à-dire le temps nécessaire pour transmettre un message entre deux nœuds distants), et parfois également pour le débit (c’est-à-dire la quantité de données que deux nœuds distants peuvent s’échanger par unité de temps). Il existe de nombreux exemples de grilles. Certaines ont été mises en place à l’échelle nationale, comme Grid’5000 [gri13] (cf. figure 1.2(a)) et l’infrastructure gérée par France Grilles [fra13] en France, ou FutureGrid [fut13], Open Science Grid (OSG) [osg13] et Extreme Science and Engineering Discovery Environment (XSEDE, anciennement TeraGrid) [xse13] aux États-Unis. D’autres se sont développées sur tout un continent, en s’appuyant sur les grilles nationales, comme c’est le cas pour la European Grid Infrastructure (EGI, anciennement EGEE – Enabling Grids for E sciencE –) [egi13] en Europe. D’autres enfin sont d’échelle mondiale, comme la Worldwide LHC Computing Grid (WLCG) [wlc13] (cf. figure 1.2(b)), qui repose notamment sur les grilles OSG et EGI pour analyser les données issues du LHC (Large Hadron Collider), l’accélérateur de particules du CERN (Centre Européen pour la Recherche Nucléaire).
Plate-forme de calcul partagé reposant sur le volontariat
Lorsque les ressources de calcul sont mises en commun par des individus plutôt que par des institutions, cela donne un nouveau type d’infrastructure distribuée que nous désignerons sous l’expression de plate-forme de calcul partagé reposant sur le volontariat.
Définition 1.4 (Plate-forme de calcul partagé reposant sur le volontariat)
Une plate-forme de calcul partagé reposant sur le volontariat peut être vue comme une variante d’une grille, à ceci près qu’elle est composée de nœuds hétérogènes mis à disposition par des volontaires (pas nécessairement des institutions) et qui sont typiquement reliés entre eux via le réseau Internet.
BOINC (Berkeley Open Infrastructure for Network Computing) [And04] est un exemple d’une telle plate-forme. Elle vise à regrouper des internautes autour de différents projets de recherche, dont le plus célèbre est probablement SETI@home [set13]. SETI@home a pour objectif d’analyser les communications radio en provenance de l’espace à la recherche de signes d’intelligence extraterrestre. Les internautes doivent simplement télécharger le logiciel BOINC et s’inscrire au projet auquel ils souhaitent participer ; lorsqu’ils n’utilisent pas leur ordinateur, le logiciel va récupérer automatiquement des tâches à accomplir (par exemple des calculs à effectuer ou des données à analyser) auprès du projet en question, les traiter, puis soumettre au projet les résultats obtenus. XtremWeb [FGNC01] est un logiciel permettant de mettre en place une plateforme similaire à BOINC. Cependant, contrairement à BOINC, il permet à des tâches qui sont réparties sur les ordinateurs de plusieurs utilisateurs de communiquer directement entre elles.
Gestion logicielle des infrastructures distribuées
La gestion des infrastructures distribuées introduites précédemment nécessite de prendre en compte un certain nombre de problématiques, notamment la connexion des utilisateurs au système et leur identification, la soumission de tâches, leur ordonnancement, leur déploiement, la surveillance de leur bon fonctionnement, ainsi que leur terminaison. Ces différentes problématiques peuvent impliquer plusieurs catégories de ressources :
– les nœuds d’accès, pour la connexion des utilisateurs ;
– un ou plusieurs nœuds dédiés à la gestion de l’infrastructure ;
– un espace de stockage, pour les données des utilisateurs ;
– les nœuds de calcul, pour traiter les tâches soumises par les utilisateurs.
Connexion sécurisée à l’infrastructure et identification des utilisateurs
Afin de pouvoir utiliser une infrastructure, les utilisateurs doivent tout d’abord se connecter à celle-ci [LFF+06, CFJ+08, gri13]. Cette connexion peut être réalisée de plusieurs façons. D’un point de vue matériel, l’utilisateur est susceptible de se connecter au travers d’un réseau privé ou via le réseau Internet ; par ailleurs il peut être autorisé à se connecter à tous les nœuds de l’infrastructure, ou seulement à des nœuds dédiés à cette tâche (les nœuds d’accès). D’un point de vue logiciel, il faut déterminer quel logiciel et quel protocole de communication utiliser pour mettre en relation l’utilisateur et le système ; ce choix est critique pour la sécurité de l’infrastructure, afin d’identifier les utilisateurs, de savoir à quelles ressources ils peuvent accéder et pour combien de temps, de comptabiliser les ressources qu’ils ont déjà consommées par le passé, et d’empêcher qu’un utilisateur malicieux dérobe les ressources ou les données d’un autre utilisateur.
Soumission de tâches
Une fois connecté à l’infrastructure, un utilisateur doit pouvoir lui soumettre des tâches à réaliser [LFF+06, CFJ+08, gri13]. Pour cela, il doit spécifier les caractéristiques des tâches, en fonction des possibilités offertes par l’infrastructure:
– les programmes et/ou données nécessaires pour mener les tâches à bien ; au besoin, l’utilisateur doit pouvoir les déposer sur l’infrastructure ;
– les ressources nécessaires, d’un point de vue qualitatif et quantitatif, et la durée pendant laquelle elles seront utilisées ; il faut également indiquer si les tâches peuvent être éventuellement accomplies dans un mode dégradé, c’està-dire avec moins de ressources que ce qui est demandé ;
– l’heure à laquelle le traitement de la tâche doit commencer, et celle à laquelle il doit être terminé ;
– les liens entre les différentes tâches (s’il y en a), et les éventuelles contraintes d’antériorité, qui spécifient que certaines tâches doivent être accomplies avant que le traitement d’autres tâches puisse débuter ; dans le cas où les tâches sont liées entre elles, le logiciel de gestion de l’infrastructure doit prendre garde à exécuter des actions cohérentes sur l’ensemble des tâches, et ce de manière simultanée ; le terme d’ordonnancement est alors utilisé.
|
Table des matières
Introduction
Contexte
Problématique et contributions
Organisation du document
Diffusion scientifique
1 Les infrastructures distribuées avant l’essor de la virtualisation
1.1 Présentation des infrastructures distribuées
1.1.1 Grappe de nœuds
1.1.2 Centre de données et de calculs
1.1.3 Grille
1.1.4 Plate-forme de calcul partagé reposant sur le volontariat
1.2 Gestion logicielle des infrastructures distribuées
1.2.1 Connexion sécurisée à l’infrastructure et identification des utilisateurs
1.2.2 Soumission de tâches
1.2.3 Ordonnancement des tâches
1.2.4 Déploiement des tâches
1.2.5 Surveillance de l’état de l’infrastructure
1.2.6 Terminaison des tâches
1.3 Logiciels de gestion d’infrastructure distribuée
1.3.1 Intergiciels
1.3.2 Systèmes d’exploitation distribués
1.4 Conclusion
2 Apports de la virtualisation
2.1 Présentation de la virtualisation
2.1.1 Virtualisation système et applicative
2.1.2 Abstractions créées par les hyperviseurs
2.1.3 Techniques de virtualisation utilisées par les hyperviseurs
2.1.4 Principales fonctionnalités offertes par les hyperviseurs
2.2 Virtualisation et gestion des infrastructures distribuées
2.2.1 Apports de la virtualisation pour la gestion des infrastructures distribuées
2.2.2 Virtualisation et centrales numériques
2.3 Conclusion
3 Solutions logicielles pour la gestion des infrastructures virtualisées
3.1 Présentation des logiciels de gestion d’infrastructure virtualisée
3.1.1 Généralités
3.1.2 Classification
3.2 Organisation des ressources
3.2.1 Ressources de calcul
3.2.2 Ressources de stockage
3.3 Ordonnancement lié aux ressources de calcul
3.3.1 Architecture des ordonnanceurs
3.3.2 Facteurs déclenchant un ordonnancement
3.3.3 Politiques d’ordonnancement
3.4 Avantages
3.4.1 Interfaces de programmation et interfaces utilisateurs
3.4.2 Isolation entre utilisateurs
3.4.3 Passage à l’échelle
3.4.4 Haute disponibilité et tolérance aux pannes
3.5 Limites
3.5.1 Ordonnancement
3.5.2 Interfaces
3.6 Conclusion
Conclusion