
Projet d'Informatique
Gilles SIPA p1037306

Eucalyptus
Introduction
Eucalyptus est un ensemble d'outil disponible sous Licence BSD qui permet de mettre en place une infrastructure de type cloud computing sur une grappe de serveurs. Cet outil est donc open source et a été développé par une équipe de chercheurs de l'université de Californie à partir de 2007. Son nom fait référence à l'acronyme Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems qui peut se traduire en Utilitaire d'Architecture informatique élastique pour relier vos programmes à des systèmes fonctionnels . Depuis 2009, il est intégré dans la distribution GNU/Linux Ubuntu 9.04 Jaunty Jackalope. Eucalyptus est devenu très populaire et est considéré comme l'une des principales solutions open-source pour la mise en place de systèmes de type cloud. Cependant, il est un peu délaissé actuellement au prot de la solution OpenStack. Il existe également un packaging appelé Ubuntu Enterprise Cloud, UEC en abrégé, réalisé par Canonical et fourni avec Ubuntu Server Edition. UEC comprend Eucalyptus avec un certain nombre d'autres logiciels open source pour faciliter l'installation et la conguration de ce genre d'architecture.
Composants d'Eucalyptus
Une conguration de cloud fondée sur Eucalyptus se compose de cinq types de composants principaux.
-
Contrôleur de noeud (NC): Le rôle du noeud est d'héberger KVM (Kernel-based Virtual Machine), il sert ainsi d'hyperviseur pour les machines virtuelles qui sont déployées. Les machines virtuelles fonctionnant sur l'hyperviseur sont appelées des instances. Eucalyptus permet aussi d'utiliser d'autres types d'hyperviseurs comme XEN (logiciel libre de virtualisation, plus précisément un hyperviseur de machine virtuelle), mais Canonical (sponsor officiel du système d'exploitation libre Ubuntu auquel elle assure le support technique et la certification) a fait le choix de privilégier KVM. Le contrôleur de noeud fonctionne sur chaque noeud et est chargé de vérier le cycle de vie des instances en cours d'exécution sur le noeud. Il interagit avec le système d'exploitation et l'hyperviseur en cours d'exécution sur le noeud d'un côté et le contrôleur de cluster (CC) de l'autre côté. Le contrôleur interroge le système d'exploitation s'exécutant sur le noeud afin de découvrir les ressources physiques du noeud (le nombre de coeurs, la taille de la mémoire, l'espace disque disponible et aussi de s'informer sur l'état des instances VM en cours d'exécution sur le noeud et propage ces données au contrôleur de cluster.)
-
Contrôleur de cluster (CC): Ce contrôleur sert à déployer et gérer les diérents contrôleurs de noeuds. Il sert également à gérer la mise en place du réseau entre les instances des diérents noeuds. C'est lui qui communique l'ensemble des informations au contrôleur du cloud. Il a 4 fonctions principales :
Il reçoit les requêtes de déploiement des instances du contrôleur de cloud .
Il décide sur quel contrôleur de n÷ud les instances seront déployées.
Il contrôle le réseau virtuel entre les instances.
Il collecte les informations des contrôleurs de n÷uds enregistrés et les rapporte au contrôleur de cluster.
-
Contrôleur de stockage Walrus (WS3): Il est appelé Walrus Storage Controller (WS3). WS3 fournit un service de stockage persistant simple à l'aide des API REST ( (Representational State Transfer) est une manière de construire une application pour les systèmes distribués comme le World Wide Web. Le terme a été inventé par Roy Fielding en 2000. REST n'est pas un protocole ou un format, c'est un style d'architecture, c'est le style architectural original du Web.) et SOAP ( (ancien acronyme de Simple Object Access Protocol) est un protocole de RPC orienté objet bâti sur XML. Il permet la transmission de messages entre objets distants, ce qui veut dire qu'il autorise un objet à invoquer des méthodes d'objets physiquement situés sur un autre serveur. Le transfert se fait le plus souvent à l'aide du protocole HTTP, mais peut également se faire par un autre protocole, comme SMTP) et compatible avec les API S3. Il assure 3 fonctions principales ;
Le stockage des images de machines virtuelles.
Le stockage des images prises en fonctionnement à un instant précis.
Stocker des chiers et les service en utilisant l'API S3.
En fait, WS3 peut être considéré comme un simple système de stockage de fichiers.
-
Contrôleur de stockage (SC): Ce contrôleur fournit un service de stockage persistant pour les instances. C'est similaire au service Elastic Block Storage (EBS) d'Amazon. Il a donc 3 fonctions essentielles :
La création de dispositifs EBS persistants.
Fournir le système de stockage de blocs aux instances.
Autoriser la création d'images des volumes pour permettre leurs sauvegardes.
-
Contrôleur du cloud (CLC): C'est un programme Java qui sert de Frontend à l'infrastructure. Il offre, d'un côté une interface de gestion et de contrôle conforme aux services ec2/s3, une véritable boîte à outils complète, et de l'autre côté, permet d'interagir avec les autres composants de l'infrastructure. Il est également possible d'avoir une interface web qui permet aux utilisateurs de gérer certains aspects de l'infrastructure. Il a 3 rôles principaux :
Surveiller la disponibilité des ressources sur les diérentes composantes de l'infrastructure du cloud.
L'arbitrage des ressources - C'est à dire décider quel cluster sera utilisé pour la virtualisation des instances.
Monitorer les instances en cours d'exécution.
En résumé, le CLC a une connaissance approfondie de la disponibilité et l'utilisation des ressources dans le nuage et permet de surveiller son état.
L'exemple d'une architecture avec l'ensemble des composants d'Eucalyptus :

