Institut numerique

Chapitre 2 : Les technologies du cloud computing

Introduction

Les solutions du cloud computing se basent sur quelques technologies indispensables. Il s’agit de la virtualisation et des technologies du Web. La virtualisation permet de fournir les ressources nécessaires au support des applications du cloud. Elle est indispensable dans la mise en place des services IaaS en pourvoyant aux utilisateurs les machines virtuelles disponibles. Les technologies du Web permettent d’un autre côté de livrer les services aux utilisateurs à travers des portails Web. Elles permettent également d’assurer l’interopérabilité des différentes solutions existantes en fournissant des méthodes de communication de haut niveau telles que les services Web.

2.1. La virtualisation

La virtualisation est l’ensemble des techniques matérielles ou logicielles employées pour faire tourner plusieurs systèmes d’exploitation sur une même machine physique (Bonnet, 2008). Le système d’exploitation ainsi virtualisé est appelé système invité (guest system) et le système d’exploitation servant d’accueil s’appelle le système hôte (host system). La machine physique utilisée est appelée machine hôte tandis que celle émulée au système invité est la machine virtuelle. Une machine virtuelle peut donc être vue comme un logiciel au même titre qu’un navigateur Web qui fournit au système d’exploitation invité un environnement similaire à celui d’une machine physique. La figure 2.1 illustre le principe de la virtualisation.

Figure 2.1: Principe de la virtualisation (adapté du schéma de la virtualisation complète de Bonnet, 2008).

Ainsi comparée à un simple logiciel (ici un navigateur Web), une machine virtuelle est constituée d’un ensemble de fichiers gérés par le système hôte.

En pratique, le disque dur de la machine virtuelle est la plupart du temps géré comme un fichier volumineux pour le système hôte, alors que la mémoire vive dont le système invité dispose est réservée par le programme de la machine virtuelle.

Il existe plusieurs catégories de virtualisation utilisant chacune des technologies différentes.

2.1.1. L’isolation

L’isolation ou le cloisonnement consiste à diviser un système d’exploitation en plusieurs espaces ou contextes. Chaque contexte est géré par le système d’exploitation hôte comme un processus isolé dont il est théoriquement impossible d’en sortir. Avec l’isolation, l’espace noyau n’est pas différencié, il est unique, partagé entre les différents contextes. Le partage du même noyau limite cette technologie aux environnements de mêmes types. On ne peut faire cohabiter ensemble que des distributions issues d’un même noyau.

Le projet le plus connu basé sur l’isolation est openVZ. Il permet à un serveur physique d’exécuter plusieurs instances de systèmes d’exploitation isolés. OpenVZ offre moins de flexibilité dans le choix du système d’exploitation. En effet le système d’exploitation invité et hôte doivent être de type Linux partageant le même noyau, contrainte logique de la technique basée sur l’isolation.

2.1.2. La virtualisation complète

La virtualisation complète consiste à émuler l’intégrité d’une machine physique pour le système invité. Le système invité croit s’exécuter sur une véritable machine physique. La machine virtuelle est chargée d’émuler cet environnement de machine physique. Son rôle consiste à transformer les instructions du système invité en instructions pour le système hôte à travers la couche d’abstraction de ce dernier. Les systèmes invités n’ont donc pas d’accès direct au matériel, mais uniquement aux couches d’abstraction du système hôte. La machine virtuelle émule donc de manière logique tout le matériel habituel de l’architecture d’un ordinateur physique. Ainsi, la virtualisation complète permet l’exécution de n’importe quel type de système d’exploitation comme un système invité (Figure 2.2).

Figure 2.2: La virtualisation complète (Bonnet, 2008).

Les solutions actuelles les plus connues de la virtualisation complète sont : VMware et VirtualBox. Elles permettent d’émuler le comportement d’un ordinateur réel auprès du système invité. VMware est cependant, le leader dans le domaine de la virtualisation complète grâce à la performance de ces produits. Elle est de nature commerciale mais dispose des versions gratuites offrant moins de performance. La solution VMware est de plus en plus confrontée à l’évolution de virtualBox, qui est une solution open source.

2.1.3. La para-virtualisation

La para-virtualisation (en anglais para-virtualization) est très proche du concept de la virtualisation complète dans le sens où c’est toujours un système d’exploitation complet qui s’exécute sur le matériel émulé par une machine virtuelle; cette dernière s’exécutant au-dessus d’un système hôte.

Toutefois, dans une solution de para-virtualisation, le système invité est modifié pour être exécuté par la machine virtuelle (Figure 2.3). Les modifications effectuées visent à rendre le système invité au courant du fait qu’il s’exécute dans une machine virtuelle. De ce fait, il pourra collaborer plus étroitement avec le système hôte, en utilisant une interface spécifique (interface para-virtualisée).

Figure 2.3: La para-virtualisation (Bonnet, 2008).

La solution de Microsoft pour la virtualisation dénommée Hyper-V(11)est considérée comme un système de para-virtualisation.

2.1.4. Les systèmes à hyperviseur

L’utilisation d’un hyperviseur est en quelque sorte une évolution logique de la para-virtualisation. Dans les technologies précédentes, le système hôte était le seul à avoir un accès direct au matériel physique. Avec un hyperviseur, le système hôte partage cet accès avec les systèmes invités.

Au démarrage de l’ordinateur, c’est normalement le système d’exploitation qui prend la main et le contrôle du matériel. Dans le cas de l’utilisation d’un hyperviseur, c’est un système minimaliste (l’hyperviseur) qui prend le contrôle du matériel. Ensuite, des systèmes d’exploitation complets pourront être exécutés par-dessus l’hyperviseur (Figure 2.4).

Figure 2.4: Principe d’un hyperviseur (Bonnet, 2008).

Dans une architecture à hyperviseur, les systèmes d’exploitation exécutés ont presqu’un accès direct au matériel physique. Le rôle de l’hyperviseur est donc de s’assurer qu’ils n’accèdent qu’aux ressources qui leur sont autorisées sans perturber le fonctionnement des autres systèmes. Xen(12) et hyper-V sont les solutions majeures dans ce domaine.

Xen est un moniteur de machines virtuelles VMM (Virtual Machine Monitor) open source pour l’architecture x8613 qui permet l’exécution simultanée de plusieurs OS (Operating System) en fournissant une isolation des ressources et un confinement des différents environnements. Dans les terminologies utilisées par Xen, une machine virtuelle est appelée domaine.

Au démarrage sur la machine hôte, Xen crée un domaine privilégié appelé dom0 (domaine 0), qui accède à l’interface de contrôle et exécute l’application de gestion des domaines virtuels. Le domaine 0 permet de contrôler le lancement et l’arrêt des autres domaines, domU (User domain), dans lesquels les OS invités sont exécutés. L’utilisation de Xen nécessite que les systèmes invités soient portés (modifiés pour utiliser les pilotes de l’hyperviseur) avant d’être installés. Cette contrainte dénote du principe même de la para-virtualisation. La nécessité de porter les systèmes invités pose des problèmes concernant les systèmes d’exploitation propriétaires ; Ainsi a-t-on introduit les possibilités de la virtualisation assistée par le matériel qui résolvent ce problème en même temps qu’elles remédient aux problèmes de performances dont souffre la virtualisation complète.

2.1.5. La virtualisation assistée par le matériel

La para-virtualisation ainsi que les solutions à hyperviseur nécessitent de porter les systèmes invités pour être capables de communiquer avec l’hyperviseur. La virtualisation complète échappe à cette contrainte de compatibilité au détriment d’une perte de performances à son niveau. Afin de conserver le gain atteint, en termes de rapidité et de performances avec les systèmes à hyperviseur sans toutefois passer par un portage des systèmes invités, la virtualisation assistée par le matériel en anglais Hardware Assist Virtualization consiste à introduire des fonctionnalités de la virtualisation directement dans les processeurs des machines physiques. Les processeurs Intel-VT (Intel Virtualization Technology) et AMD-V (Advanced Micro Devices Virtualization) permettent déjà cette forme de virtualisation et rendent ainsi possibles des solutions de la virtualisation complète des systèmes invités non modifiés avec de très bonnes performances (Santy, 2010).

Les solutions de virtualisation reconnues dans ce domaine sont KVM14 et Xen. KVM pour Kernel-based Virtual Machine est intégrée aux systèmes GNU/Linux d’un noyau 2.6.20 ou supérieur et emploie la virtualisation complète mais aussi la para-virtualisation (Schellenberger, 2011). On retrouve également Xen dans le domaine de la virtualisation matérielle ; ce qui rend complète cette solution qui reste la plus utilisée dans le domaine du cloud computing. Elle est cependant de plus en plus concurrencée par KVM dont l’architecture est plus simplifiée et qui de surcroit est intégré aux systèmes Linux ; ce qui facilite son adoption.

2.1.6. La migration de machines virtuelles

La migration d’une machine virtuelle consiste à transférer cette machine d’un hôte à un autre (Figure 2.5). Elle permet de résoudre entre autres les problèmes de tolérance aux pannes, de la continuité des services lorsqu’un hôte particulier doit être remplacé pour des tâches de maintenance ou de mise à niveau des services hébergés (Clark et al, 2005). Il existe deux types de migrations : La migration à froid en anglais cold migration et la migration à chaud, en anglais live migration.

Figure 2.5: Migration de machine virtuelle (Zhao et Figueiredo, 2007).

– La migration à froid (cold migration)

La migration à froid d’une machine virtuelle consiste à déplacer l’ensemble des fichiers de spécification et d’images systèmes de la machine d’un hôte d’origine à un hôte de destination. Dans une migration à froid, l’état de la machine reste éteint pendant le transfert.

– La migration à chaud (live migration)

La migration à chaud consiste à transférer une machine virtuelle en cours de fonctionnement d’un hôte à un autre avec maintien de l’état de la machine pendant le processus du transfert (Clark et al, 2005). Ce type de migration permet de maintenir les services des utilisateurs pendant le temps du processus. L’utilisateur des services hébergés sur la machine n’a aucune conscience d’un quelconque changement de l’hôte abritant cette dernière.

2.1.7. Synthèse sur la virtualisation

Dans la section 2.1, nous avons présenté quatre techniques de virtualisation : l’isolation, la para-virtualisation, la virtualisation complète ainsi que la notion de la virtualisation assistée par le matériel.

Dans le tableau 2.1, nous pouvons remarquer qu’en termes de performances, les solutions de la virtualisation employant les technologies de la para-virtualisation et les techniques de la virtualisation matérielle sont classées en tête de liste.

Du côté de la para-virtualisation, Xen, KVM et Hyper-V sont les implémentations disponibles. Si ces solutions emploient la même technologie, Xen est plus utilisée car est une solution gratuite et open source, tandis que Hyper-V est une version libre et réduite d’une solution payante et plus complète nommée virtualPC. Les deux solutions (Hyper-V et virtualPC) fonctionnent sur les systèmes d’exploitation et serveurs Windows.

Tableau 2.1 : Synthèse des techniques de virtualisation (adaptée de Mahjoub, 2011).

Concernant KVM, elle est originellement implémentée pour la virtualisation matérielle. Les fonctionnalités de la para-virtualisation ne sont rendues possibles qu’avec l’utilisation d’un outil externe appelé Virtio(15). La paravirtualisation est cependant la solution la moins facile à mettre en oeuvre. En ce qui concerne Xen, il s’agit d’un système minimaliste, représenté par un noyau Linux xenifié(16) qui est installé et qui fonctionne à part entière, de façon indépendante du système Linux présent sur la machine physique.

La virtualisation matérielle offre également de très bonnes performances grâce aux instructions de la virtualisation introduites directement dans les processeurs des machines physiques. Xen et KVM sont les solutions leaders dans ce domaine. Si KVM est plus simple et facile à mettre en œuvre, elle est cependant frappée par sa jeunesse dans le domaine de la virtualisation. Ce qui limite son adoption par les entreprises par rapport à Xen. La virtualisation matérielle est une amélioration des performances observées au niveau de la virtualisation complète « traditionnelle » implémentée par VMware et VirtualBox.

OpenVZ est la solution basée sur la technique d’isolation offrant une bonne performance. Elle est limitée par la nécessité de virtualiser uniquement les systèmes Linux basés sur un même noyau. La technique d’isolation employée rend cette solution plus facile à mettre en œuvre ; chaque machine virtuelle étant un processus à part entière exécuté par le système hôte.

2.2. Les services Web

Un Service Web est un programme informatique permettant la communication et l’échange de données entre applications et systèmes hétérogènes dans des environnements distribués. Il s’agit d’un ensemble de fonctionnalités exposées sur Internet ou sur un Intranet, pour des applications ou machines, sans intervention humaine, et en temps réel(17). Le terme temps réel signifie que les services peuvent être invoqués à tout moment avec une réponse instantanée de la part des applications.

Les solutions de cloud computing se basent sur les services Web à la fois pour l’exposition des fonctionnalités du système sur Internet en respectant les standards tels que le WSDL(18) ou l’UDDI(19), et aussi pour l’interaction des différents composants internes du système en se basant sur les protocoles de communication tels que le XML-RPC, le SOAP ou le REST.

2.2.1. XML-RPC

La technologie XML-RPC repose, comme son nom l’indique, sur XML (Extensible Markup Language) et sur le protocole RPC (Remote Procedure Calling). Tandis qu’XML apporte l’indépendance vis-à-vis de la plateforme d’exécution, RPC apporte la possibilité d’effectuer des appels de procédures à distance. Il s’agit d’une spécification simple et d’un ensemble de codes qui permettent à des processus s’exécutant dans des environnements différents de faire des appels de méthodes à travers le réseau. Les processus utilisent la norme XML pour le codage des données et le protocole HTTP(20) pour leur transport (Laurent, Johnston et Dumbill, 2001).

2.2.2. SOAP

SOAP (Simple Object Access Protocol) est un protocole basé sur XML permettant l’échange des données dans des environnements distribués (Box et al, 2000). Il est constitué essentiellement de trois composants : une enveloppe, contenant des informations sur le message lui-même afin de permettre son acheminement et son traitement, un ensemble de règles de codage pour les types de données des instances des applications définies et une convention pour l’invocation des méthodes à distance. Il représente un protocole plus complet que le XML-RPC mais à la fois plus complexe.

2.2.3. REST

REST (Representational State Transfer) repose sur le même principe de fonctionnement que les Web Services. Elle s’appuie sur les protocoles Internet, dont HTTP, pour véhiculer des messages décrits au format XML. Cependant, la principale différence qui réside entre REST et les autres protocoles est qu’il ne s’agit pas d’un standard mais d’un style architectural qui se veut simple pour l’échange de données entre applications (Costello, 2007).

2.3. Le Web 2.0

Le Web 2.0 représente une avancée dans l’utilisation des technologies du Web. Son but est d’améliorer la créativité, la collaboration et le partage d’informations (Murugesan, 2007). Il est basé sur les technologies telles que le HTML, le CSS(21), le XML et le JavaScript. L’utilisation en mode asynchrone du XML sur HTTP avec le JavaScript est connu sous l’acronyme « Ajax » (Asynchronous JavaScript And XML). Les services du cloud computing sont par nature des applications Web dynamiques qui fournissent aux utilisateurs les ressources demandées (WANG et Laszewski, 2008).

Conclusion partielle

Dans ce deuxième chapitre, nous avons présenté les technologies utilisées dans le domaine du cloud computing. Il s’agit de la virtualisation et des technologies du Web. Le chapitre suivant abordera l’état de l’art des solutions du cloud computing en insistant particulièrement sur les architectures de supervision employées dans le domaine du cloud computing privé.

11 < http://www.microsoft.com/en-us/server-cloud/hyper-v-server/>, consulté le 20/08 2012
12 <http://www.xen.org/>, consulté le 20/08 2012
13 La famille x86 regroupe les microprocesseurs compatibles avec le jeu d’instructions de l’Intel 8086. Cette série est nommée IA-32 (pour Intel architecture 32 bits) par Intel pour ses processeurs à partir du Pentium.
14 <http://www.linux-kvm.org/page/Main_Page>, consulté le 20/08 2012
15 Virtio (Virtual Input Output) est une API (Application Programming Interface) qui permet aux machines invitées d’accéder directement au matériel géré par l’hôte. <http://www.linux-kvm.org/page/Virtio>, consulté le consulté le 20/08 2012.
16 Noyau linux modifié et adapté à la technologie de xen et fonctionnant comme un système d’exploitation à part entière.
17 http://fr.wikipedia.org/wiki/Service_Web consulté le 05/10/2012
18 Web Services Description Language
19 Universal Description Discovery and Integration
20 Hypertext Transfer Protocol
21 Cascading Style Sheet

Page suivante : Chapitre 3 : Les solutions du cloud computing

Retour au menu : CONCEPTION D’UNE SOLUTION DE CLOUD COMPUTING PRIVE BASEE SUR UN ALGORITHME DE SUPERVISION DISTRIBUE : APPLICATION AUX SERVICES IAAS