VMWare Infrastructure 3
Accueil
Avant - propos
Ce site présente la solution VMWare infrastrucure. Il a été réalisé dans le cadre des exposés système et nouvelles technologies réseaux dirigés par Dominique Revuz et Etienne Duris, professeurs dans la filière Informatique et Réseaux du dispositif Ingénieurs 2000
Auteur
Cet exposé a été réalisé par Christophe KELLER en Décembre 2006.
Introduction
Cet exposé, réalisé dans le cadre des exposés système de la filière informatique et réseaux d’Ingénieurs 2000 de l'université de Marne-la-Vallée, présente la solution VMWare Infrastructure.
VMWare infrastructure est une suite logicielle permettant de gérer et optimiser la virtualisation d’entreprise. Elle permet entre autre la :
La virtualisation et ses principes vous seront dans un premier temps présentés, puis les différents éléments composant la solution, enfin je conclurai par les avantages et inconvénients de cette technologie ainsi que par un rapide tour d’horizon des solutions concurrentes.
Principes de la virtualisation
Définition
Définition wikipedia : Ensemble des techniques matérielles et/ou logicielles qui permettent de faire fonctionner sur une seule machine plusieurs systèmes d‘exploitation et/ou plusieurs applications, séparément les uns des autres, comme s'ils fonctionnaient sur des machines physiques distinctes.
Virtualisation utilisant un système hôte
Cette technique consiste à installer un logiciel permettant la virtualisation sur un système d’exploitation (Windows, Linux…). Ce logiciel de virtualisation crée une couche d’abstraction du matériel de la machine physique et permet la création de plusieurs machines virtuelles.
Figure 1: Architecture de la virtualisation utilisant un logiciel
Comme le montre le schéma ci-dessus, le logiciel de virtualisation fait partie de l’ensemble des applications installées sur le système d’exploitation hôte. Il permet de lancer des machines virtuelles qui auront un comportement indépendant entre elles. Ce système est utilisé sur des stations de travail clientes, permettant souvent de lancer différents environnements pour des besoins de développement et de tests. Il est très peu adapté dans le cas d’une utilisation serveur car la gestion des ressources n’est pas optimale et la stabilité de l’ensemble du système dépend de celle du système hôte.
Virtualisation utilisant un système dédié (hyperviseur)
Cette technologie n’utilise plus un système hôte classique comme précédemment mais un système d’exploitation dédié à la virtualisation. Ce système est beaucoup plus léger qu’un système d’exploitation classique et est optimisé pour la virtualisation. Il ne peut être utilisé pour une autre activité, seules des machines virtuelles peuvent être installées dessus.
Figure 2 : Virtualisation par système dédié
Comme le montre le schéma ci-dessus, le système d’exploitation dédié à la virtualisation crée directement une couche d’abstraction du matériel physique de la machine et permet le lancement de plusieurs machines virtuelles. Cette solution est plus adaptée à une utilisation serveur, le système étant plus léger (donc moins consommateur en ressources) et optimisé pour la virtualisation.
Présentation
VMware Infrastructure est une suite dotée de nombreuses fonctionnalités qui comprend :
VMWare ESX server
Présentation
VMWare ESX Server est l’élément central de la solution VMWare Infrastructure. Il s’agit d’un système d’exploitation dédié à la virtualisation.
Le système d’exploitation, VMKERNEL, est basé sur la distribution Linux Redhat. Il permet de gérer l’ensemble des ressources matérielles (mémoire, CPU, disques, réseaux) en fonction de chaque serveur. Il est configurable via une interface Web ou en utilisant VMWare VirtualCenter.
Les machines virtuelles sont créées et lancées sur ce système. Chaque machine virtuelle représente un système complet : processeurs, mémoire, cartes réseau, ressources de stockage et BIOS. Réellement les machines virtuelles sont de simples fichiers sur le serveur ESX.
Figure 3 : ESX Server
Comme le montre le schéma ci-dessus, le matériel est partagé entre les différentes machines virtuelles, chacune croyant avoir ses propres ressources.
Architecture
ESX server est composé de différentes couches ayant chacune une fonctionnalité particulière :
Figure 4 : Architecture de ESX Server
Console d’administration
Une console web permet de se connecter au serveur et de le paramétrer.
Figure 5 : Console d'administration web
Sur cet exemple, on a une vue globale du serveur ainsi que des machines virtuelles installées dessus : 6 des 8 machines virtuelles sont lancées. On obtient également des informations sur l’utilisation et l’attribution des ressources physiques. Il est très simple d’ajouter une machine virtuelle en cliquant sur le bouton « Add virtual Machine » et en suivant les instructions de l’installeur et en renseignant des informations telles que le nom de la machine virtuelle, le système d’exploitation installé, la taille de la RAM allouée, le nombre de processeurs…
Optimisation du partage de la mémoire
Les machines virtuelles se partagent la mémoire physique. Lors de leur création, un des paramètres à renseigner est la taille de la mémoire vive virtuelle. Il est très bien envisageable d’allouer plus de mémoire vive aux machines virtuelles qu’il n’y en a vraiment. Pour cela et afin d’améliorer les performances générales, deux mécanismes sont mis en œuvre pour optimiser le partage de la mémoire.
1. Partage de pages mémoires
Il est possible que plusieurs machines virtuelles aient les mêmes informations en mémoire, spécialement lorsque le même système d’exploitation est installé sur plusieurs d’entre elles. Pour améliorer l’utilisation de la mémoire, ESX Server possède un système de partage de la mémoire.
Le principe consiste à ne stocker réellement qu’une seule fois en mémoire un page utilisée par plusieurs machines virtuelles. Pour que l’algorithme permettant cela ne soit pas trop coûteux, une clé de hachage est utilisée pour coder le contenu d’une page mémoire. Une table est utilisée pour faire la correspondance entre la clé de hachage de la page et sa localisation sur la mémoire physique.
Figure 6 : comparaison du contenu de pages mémoires
Le système détecte qu’une page existe déjà en mémoire si la clé de hachage existe déjà dans la table des correspondances. Il va s’assurer qu’elles sont bien identiques en comparant leur contenu. Si elles le sont bien, les pages mémoires des machines virtuelles pointeront vers la même page sur la mémoire physique.
Figure 7 : Mémoire partagée
Afin que cette technique soit le plus efficace possible, il est important de regrouper des machines virtuelles ayant le même système d’exploitation sur le même serveur. Le schéma suivant montre le résultat d’une étude réalisée avec plusieurs machines virtuelles utilisant le même système d’exploitation, quasiment 50% de la mémoire peut être libérée :
Figure 8 : Etude du partage de la mémoire
2. Mécanisme dit du ballon de baudruche
Le mécanisme du ballon de baudruche permet d’allouer au mieux la mémoire physique selon les besoins de chacune des machines virtuelles. Le ballon est installé sur les machines virtuelles comme étant un service, dirigé par le serveur ESX. Ce ballon peut être gonflé ou dégonflé selon les besoins, c'est-à-dire qu’il prendra plus ou moins d’espace de mémoire vive, obligeant par exemple la copie sur disque dur.
Figure 9 : Mécanisme du ballon de baudruche
Ce ballon est de base toujours un peu gonflé, obligeant les différents systèmes d’exploitation installés à gérer au mieux leur mémoire. Il est dégonflé si le système a vraiment besoin de ressources et peut être gonflé pour libérer de la mémoire pour une autre machine par exemple. Ce mécanisme permet une collaboration entre les machines virtuelles.
Cette technique, utilisée pour limiter la taille de la mémoire vive, permet des performances quasi équivalentes que si la machine virtuelle possédait réellement une taille de mémoire réduite. Le graphique ci-dessous montre les performances de la mémoire vive d’une machine virtuelle. Les barres en gris représentent les performances de la mémoire pour une machine virtuelle configurée avec 256MO, limitée par le mécanisme du ballon, en noir la performance réalisée si la machine virtuelle possède une mémoire vive non limitée de la taille indiquée. On peut constater que les performances sont quasi équivalentes, la différence s’expliquant par le fait que le système d’exploitation prend plus ou moins de place en mémoire d’après la mémoire « physique » qu’il possède à son installation. Un noyau Linux utilise plus de place si la machine possède 256MO que si elle possède 128MO. Le système aura donc moins de place de libre s’il a été installé avec 256MO et limité à 128MO que s’il est directement installé avec 128MO de RAM.
Figure 10 : Performances en utilisant le ballon de baudruche
VMWare VMFS
VMWare VMFS est le système de fichier utilisé par ESX server. Il possède quelques caractéristiques intéressantes :
Les caractéristiques du système de fichier VMFS permettent l’utilisation d’un système de stockage partagé pour les machines virtuelles.
Figure 11 : Système de fichier VMFS
VMWare SMP
VMWare SMP est une technologie permettant la gestion de serveurs multiprocesseurs. Elle permet d’allouer le nombre souhaité de processeurs à une machine virtuelle. Cette technologie permet de créer des machines virtuelle ayant des besoins en ressources différents sur un même serveur. On s‘assure ainsi le bon dimensionnement d’une machine virtuelle en fonction de son besoin.
VMWare SMP déplace les tâches de traitement entre les processeurs disponibles pour équilibrer la charge de travail et utiliser pleinement toute la puissance de traitement pendant que des contrôles intégrés réduisent le temps système.
Figure 12 : VMWare SMP
VMWare VirtualCenter
VMWare VirtualCenter est l’élément central de la solution VMWare Infrastructure. Il permet une supervision des ressources physiques (serveurs ESX) ainsi que des machines virtuelles. Il est possible de voir la disponibilité et les performances de chacun d’entre eux. Il permet également d'agréger les ressources de plusieurs serveurs physiques dans un cluster. Ce cluster dispose alors d'un pool de ressources. Cette manipulation est essentielle pour pouvoir utiliser les fonctionnalités présentées plus loin.
Figure 13 : Supervision de l'ensemble des serveurs ESX
Sur la capture d’écran suivante on voit clairement les informations importantes de tous les serveurs ESX et de toutes les machines virtuelles : les machines virtuelles lancées, les ressources quelles utilisent…
Figure 14 : Console VMWare VirtualCenter
VMware Virtual permet également de simplifier la mise en place de nouvelles machines virtuelles grâce à des processus et des modèles pilotés par un assistant, permettant de déployer instantanément de nouvelles machines virtuelles. Enfin, il est possible d’automatiser certaines opérations via une planification des tâches et un système d'alertes permettant de détecter une dérive du système.
VirtualCenter comprend cinq composants:
VMWare VMotion
VMotion est un service qui permet de transférer une machine virtuelle lancée d’un serveur ESX vers un autre. Cette manipulation est possible si la machine virtuelle se trouve sur un espace de stockage partagé et que les serveurs se trouvent dans le même cluster. Les serveurs source et cible peuvent ainsi accéder simultanément à la machine virtuelle. Lors du passage de la machine virtuelle d’un serveur à l’autre, seule la RAM est transférée.
Même si le constructeur affirme qu’avec cette solution il n’y a pas de coupure de service, on peut noter un arrêt d’une dizaine de secondes, dû à la mise à jour des tables ARP des commutateurs.
Figure 15 : VMotion
Ce service peut être utilisé par exemple pour optimiser l’utilisation des ressources matérielles. On peut également vouloir libérer entièrement un serveur pour pouvoir le couper et intervenir dessus.
VMWare DRS
VMWare DRS découle directement de VMotion et permet un basculement automatique des machines virtuelles entre les serveurs pour optimiser la charge.
Figure 16 : VMWare DRS
Ce service est à mon sens moins intéressant, en effet un bon administrateur doit être capable de correctement dimensionner ses serveurs pour une bonne utilisation des ressources et de lui-même basculer les machines virtuelles. Il faut garder à l’esprit que ce service peut avoir des effets de bord indésirables si une machine doit constamment être disponible et qu’elle est basculée.
VMWare HA
Ce service permet la haute disponibilité des machines virtuelles, il déplace automatique des machines virtuelles lorsque un serveur physique tombe en panne. Il faut compter de 5 à 10 minutes seulement pour que la machine virtuelle redémarre.
Un tel système est très efficace pour avoir de la haute disponibilité, il est de plus moins coûteux et moins complexe à mettre en œuvre qu’une solution classique. En effet jusque là, pour assurer de la haute disponibilité il fallait mettre en place un serveur redondant pour chaque élément critique du système d’information avec un mécanisme d’écoute afin de prendre le relais si le serveur principal n’est plus disponible. Cette technologie permet donc un gain de coût car :
Et également un gain en complexité :
Il faut cependant prendre en compte le temps de basculement et la perte du service qui est plus longue avec VMware HA. Il faut donc bien définir son besoin pour être à même de choisir la solution la mieux adaptée.
Figure 17 : VMWare HA
VMware Consolidated Backup
VMWare Consolated Backup est la solution pour sauvegarder les machines virtuelles. La contrainte d’accès multiples aux machines virtuelles empêche l’utilisation d’un outil classique de sauvegarde. La machine virtuelle qui est sauvegardée est « gelée » pendant le temps que durera la sauvegarde, toutes les modifications faites étant stockées sur un fichier temporaire. L’image réalisée est récupérée par le serveur de sauvegarde et envoyée vers le système de sauvegarde classique.
Figure 18 : VMware Consolidated Backup
Conclusion
VMWare Infrastructure
VMware infrastructure est une solution complète qui permet l’utilisation de la virtualisation en production. En effet, jusque là, la virtualisation, manquant encore un peu de maturité et de stabilité, ne pouvait vraiment être utilisée que pour du développement et du test. La gestion centralisée des machines virtuelles et des ressources matérielles permet d’avoir toujours une vue d’ensemble des performances de son parc informatique. Enfin la haute disponibilité ajoute une nouvelle dimension au système d’information.
Figure 19 : VMWare Infrastructure
Avantages
Parmi les avantages d’utilisation de VMWare Infrastructure apparaissent évidemment les avantages
liés à l’utilisation de la virtualisation :
VMWare infrastructure ajoute bien sûr des avantages propres :
Désavantages
Le prix de cette solution reste certainement le plus gros désavantage. Il faut en effet compter 5750$ par serveur biprocesseur en 2007. Ce coût de licence peut bien sûr être amorti par un déploiement à grande envergure et la création d’un grand nombre de machines virtuelles. Il sera cependant un frein pour une entreprise qui n’aurait souhaité virtualiser que quelques uns de ses serveurs.
Tour d’horizon de la concurrence
On distingue deux concurrents majeurs dans le domaine de la virtualisation :
Xen est un projet issu du monde libre, développé à l’origine par l’Université de Cambridge. Ils proposent une solution composée de XenServer et de XenEnterprise. XenEnterprise est un équivalent de la console VMWare VirtualCenter et permet d’administrer l’ensemble des machines virtuelles et des serveurs du système. L’avantage de cette solution est qu’elle est bien moins coûteuse (600$ à 750$ pour un serveur biprocesseur selon le nombre de serveurs), elle est cependant moins aboutie et propose moins de fonctionnalités (comme la haute disponibilité). Une démonstration du système est disponible.
Microsoft propose un produit gratuit de virtualisation : Microsoft Virtual Server. Il s’agit d’un logiciel à installer sur un système hôte (Windows 2003 server) et n’offrant aucun service de gestion centralisée ou de haute disponibilité. Microsoft ne proposera certainement pas de solution de virtualisation sérieuse avant la venue de Longhorn Server en 2008 qui intègrera directement des technologies de virtualisation (un travail est réalisé en collaboration avec XEN).
Informations et liens utiles pour commencer avec la virtualisation
Il est à noter qu’il est possible de tester VMWare Infrastructure gratuitement pendant 30 jours, cette offre comprend deux licences VMWare ESX server et une licence VMware Virtual Center.
Pour toutes personnes souhaitant utiliser la virtualisation (Windows & Linux), il est possible d’utiliser gratuitement VMWare player qui permet de lancer des machines virtuelles déjà créée, ainsi que VMWare server qui lui permet de créer et lancer des machines virtuelles. Ces deux logiciels s’installent sur un système d‘exploitation hôte.
Enfin, pour finir avec VMWare, il est également possible de télécharger des images de machines virtuelles déjà toutes faites.
Les utilisateurs de Linux peuvent également utiliser la solution Xen.
Enfin Virtual Server de Microsoft est également disponible gratuitement.
Références
Site expliquant la mise en œuvre de VMWare infrastructure :
http://www.supinfo-projects.com/fr/2006/mise_en_place_v3i/
Publications (en anglais) de Carl A Waldspurger dont une concerne la gestion de la mémoire
par VMWares ESX server :
http://www.waldspurger.org/carl/research.html
Site du constructeur VMWare :
http://www.vmware.com
Wikipedia [FR] :
http://fr.wikipedia.org/wiki/Virtualisation
http://fr.wikipedia.org/wiki/VMWARE