Guillaume ANSEL M2 ISIDIS 2009-2010 / ULCO Dossier d étude sur la virtualisation LA VIRTUALISATION 18/01/2010 Etude de la virtualisation, ses concepts et ses apports dans les infrastructures informatiques.
Table des matières INTRODUCTION... 2 POURQUOI VIRTUALISER?... 3 La gestion des ressources... 3 Infrastructure simplifiée... 4 Efficacité... 4 Sécurité... 4 Dimensionnement des serveurs... 4 D OU ÇA VIENT?... 5 LE FONCTIONNEMENT DE LA VIRTUALISATION... 5 Isolateur... 6 Noyau en espace utilisateur... 6 Machine virtuelle... 7 Hyperviseur... 8 LIMITATIONS... 8 CONCLUSION... 9 Page 1
E t u d e d e l a v i r t u a l i s a t i o n, s e s c o n c e p t s e t s e s a p p o r t s d a n s l e s i n f r a s t r u c t u r e s i n f o r m a t i q u e s. INTRODUCTION Si le terme «virtualisation» ne connait pas aujourd hui de définition officielle dans la langue française, on peut toutefois en extraire le sens grâce à sa racine. Le virtuel désigne tout ce qui n a pas de substance, «qui est seulement en puissance» (dictionnaire Larousse). Si l on introduit cette notion dans la sphère informatique, on va pouvoir extrapoler la définition de la virtualisation en un concept permettant de récupérer de la puissance de traitement de l information, sans ajouter de nouvelles architectures matérielles. Cette puissance, bien que virtuelle, permet de réaliser des applications concrètes sur le système informatique. Est virtuel ce qui, sans être réel a, avec force et de manière pleinement actuelle (c.-à-d. non potentielle) les qualités (propriétés, qualia) du réel. (Denis Berthier) Cependant il convient de comprendre que ce que permet la virtualisation informatique, ce n est pas d augmenter la puissance d une machine, mais bien d extraire cette puissance afin de la partager en plusieurs sous ensembles virtuels. Grâce à ce partage, la virtualisation permet, grâce au support matériel et logiciel mis en œuvre, de faire fonctionner simultanément plusieurs systèmes d exploitation sur une même machine, comme s ils étaient exécutés sur des postes distincts. Dépasser la limite factuelle d un système d exploitation par machine, en introduisant ces systèmes virtualisés permet d augmenter les possibilités en terme d architecture et d infrastructure d un système d information. Page 2
En effet, une entreprise qui aurait besoin d une architecture basé sur plusieurs serveurs différents (serveur Web, serveur de base de données, etc.) mais où chaque serveur serait sous-exploité va avoir un surcoût inutile au niveau de son infrastructure informatique. La virtualisation va permettre à celle-ci de réduire le nombre de machine nécessaire en regroupant plusieurs serveurs sur une même machine. La virtualisation permet des gains intéressants en termes d infrastructures et d optimisation de l utilisation du parc informatique, mais celle-ci peut également avoir un impact sur les performances, engendrée par la couche même de virtualisation. Le risque de voir tomber un système d information dans le cas où une machine hébergeant plusieurs serveurs tombe en panne est réel, et doit également être pris en compte lorsque l on se prépare à construire son parc sur ce type de solution. On va donc voir quels sont les gains de la virtualisation, quels sont ses inconvénients, et quelles sont les solutions existantes permettant de bâtir son infrastructure virtualisée. POURQUOI VIRTUALISER? La gestion des ressources Comme on a déjà pu en parler dans l introduction, la virtualisation permet de mieux tirer parti des ressources disponibles sur une ou plusieurs machines. En effet, il est courant de voir qu un grand nombre des serveurs installés dans une entreprise ne sont exploités qu au tiers de leur capacité. Fort de ce constat, la virtualisation permet, après une phase d analyse de la charge maximale qui peut être atteinte sur l infrastructure, de regrouper les différents serveurs sur une même machine qui sera capable de fournir un service équivalent, tout en réalisant des économies en infrastructure (un serveur à acheter au lieu de plusieurs) et en énergie car l écart de consommation entre un serveur sous exploité et un serveur exploité de manière optimale reste inférieur à la somme des consommations de plusieurs serveurs (une part fixe de la consommation d une machine n est pas liée à la charge appliquée à celle-ci). Page 3
Infrastructure simplifiée En raison de la diminution du nombre de machines à installer, l infrastructure du système d information s en retrouve simplifier. De plus, une machine virtuelle peutêtre facilement migré vers un serveur plus puissant si le besoin se fait ressentir. En effet, migrer une machine virtuelle consiste le plus souvent à copier les images des disques virtuels utilisés par celle-ci, l opération peut donc se faire en quelques minutes, et aucune reconfiguration ne sera nécessaire puisque du point de vue d une machine virtuelle, le matériel sous-jacent ne change pas. Efficacité Grâce à la simplification de l infrastructure, les besoins énergétiques diminuent (voir : La gestion des ressources) mais également tout ce qui peut entourer le centre de donnée comme la taille de celui-ci, le refroidissement, etc. Du point de vue humain, le gain est appréciable également puisque moins de machine signifie que les administrateurs auront moins de temps à passer à s occuper de la maintenance du parc informatique, mais aussi que l attention portée aux machines présentes sera plus importante. Sécurité La virtualisation permet de sécuriser plus facilement l environnement. Le système hôte n est jamais accessible directement depuis le réseau, ce qui rend la vulnérabilité de celui-ci bien meilleure. Un attaquant ne pourrait ainsi jamais faire tomber l ensemble du système hébergeant les machines virtuelles, mais seulement s en prendre à une machine virtuelle, qu un administrateur peut redémarrer très rapidement, sans avoir besoin à intervenir sur le site. Dimensionnement des serveurs Les problèmes de dimensionnement d un serveur sont rendu presque obsolètes par l utilisation de la virtualisation. En effet, comme du point de vue d une machine virtuelle, le matériel ne change jamais, le remplacement d un serveur par un autre plus performant est complètement transparent. De plus, les ressources pouvant être allouée à une machine virtuelle peuvent être ajustée dynamiquement en fonction des besoins. On peut ainsi imaginer qu un site de e-commerce a des besoins qui Page 4
augmentent en début de soirée, et que les machines virtuelles hébergeant les serveurs Web aient besoin de plus de ressources, ce qui sera réglé par la virtualisation. D OU ÇA VIENT? La virtualisation est née dans les années 1960, principalement dans un centre de recherche IBM basé à Grenoble (qui n existe plus aujourd hui). A l époque, la virtualisation visait à tirer au mieux parti des grands mainframes en segmentant celui-ci en plusieurs machines virtuelles afin d exécuter simultanément plusieurs applications, par plusieurs systèmes d exploitation. Les travaux sur la virtualisation portaient à l époque sur les architectures de type mainframe IBM, mais le succès de l architecture x86 auprès du grand public et des entreprises a transformé les besoins. Avant l arrivée de la virtualisation x86, la plupart des entreprises utilisaient un serveur par application. Dans les années 80 et 90, on a commencé à voir apparaitre de plus en plus d émulateur de système d exploitation plus ancien (comme Atari, Amiga, etc.) qui ont connu un énorme succès car il permettait d exécuter des programmes disponibles sur des architectures différentes de celle sur laquelle on se trouve. Vers la fin des années 90, la société VMWare a mis en place une solution de virtualisation du matériel x86 permettant de répondre aux problématiques posées par la multiplication des serveurs d applications qui devenait alarmante au fil du temps (voir : Pourquoi virtualiser?). Dans les années 2000, le succès de la virtualisation devient réel, et les fabricants de microprocesseurs Intel et AMD introduisent des instructions améliorant les capacités de virtualisation de leur produit. (Intel VT-x et AMD-V). LE FONCTIONNEMENT DE LA VIRTUALISATION Différentes techniques existent pour mettre en place de la virtualisation bien que toutes ne font pas appels aux mêmes concepts, offrant alors des caractéristiques différentes, et donc des avantages ou inconvénients différents. Un des éléments important de la virtualisation, contrairement à l émulation qui est un concept proche, est que dans le cas de la virtualisation, les instructions sont exécutées par le Page 5
processeur central de la machine hôte, grâce à un système permettant de mettre en contact la couche virtuelle et la couche physique d un système. Dans le cas de l émulation, le processeur de la machine émulée est simulée par le logiciel, ce qui rend les performances beaucoup plus faible et donc peu intéressant pour le remplacement d infrastructure. Isolateur Le principe de l isolation est une méthode proche de la virtualisation, sans en être réellement. Il permet d isoler l exécution d application dans des contextes d application, mais ne permet pas la mise en place de système d exploitation virtuel. Dans ce mode, le système hôte est le seul système opérant, son noyau prend en charge toute les applications qui sont exécutés par les contextes. Ce mode est très performant car il n offre pas une réelle virtualisation, il n y a donc pas plusieurs noyaux exécutés en parallèle, mais ne permet pas d isoler complètement un système invité sur la machine. Exemple : chroot, BSD Jail FIGURE 1: ISOLATEUR Noyau en espace utilisateur Ce mode particulier est une sorte d extension du précédent, mais au lieu de placer des applications dans un contexte séparé, c est un noyau complet qui est placé dans un contexte utilisateur. Là encore on ne peut parler de virtualisation à proprement parler, ce mode est surtout utilisé dans le cas du développement d un noyau. Page 6
FIGURE 2: NOYAU USER-SPACE Machine virtuelle Une machine virtuelle est un logiciel permettant de créer un ou plusieurs environnements matériels complets virtuels au sein d un système hôte. Dans cette configuration, le système d exploitation est installé sur la machine virtuelle de manière totalement transparente, il n a pas «conscience» d être installé sur une machine virtuelle plutôt que physique. En général, le logiciel hôte permet de faire communiquer les machines virtuelles avec le matériel sous-jacent afin de rendre les performances aussi proche que possible d une solution native, bien qu un impact négatif reste inévitable. Cette solution apporte par contre de grands avantages au niveau de la sécurité et de l isolation des machines virtuelles. Chaque système installé possède un environnement virtuel complet, et est isolé des autres systèmes. Les seuls moyens de communication possible entre les différentes machines virtuelles sont alors les mêmes que pour des machines physiques, il faut utiliser les protocoles de communications classiques (TCP/IP, etc.). Exemple : VirtualBox, VMware Server, VirtualPC FIGURE 3: MACHINE VIRTUELLE Page 7
Hyperviseur L hyperviseur est actuellement la solution de virtualisation la plus performante, mais aussi la plus couteuse et difficile à mettre en place. Dans ce mode, un micronoyau gère la virtualisation à un très bas niveau de contrôle. Les systèmes virtuels installés sous la tutelle d un hyperviseur doivent être «conscient» qu ils se trouvent dans un contexte virtuel, et être adapté en conséquence. L avantage principal de la virtualisation par hyperviseur (ou para-virtualisation) est l absence d OS hôte. De ce fait, les performances sont au plus haut niveau car il n y a pas d empilement de noyau, et les OS invités ont un accès quasiment direct au matériel sous-jacent, tout en restant isolé les uns des autres. Exemple : Xen, VMware ESX, Microsoft Hyper-V FIGURE 4: HYPERVISEUR LIMITATIONS Le principal reproche qui vient lorsque l on parle de la virtualisation est l impact négatif que celle-ci entraine sur les performances du système. En effet, en raison de l ajout de couches supplémentaires entre le système invité et le matériel, les instructions ne peuvent être exécutées aussi vite que sur un système natif. Cependant, le recours aux hyperviseurs qui visent à limiter l impact de la couche de virtualisation (Xen, ESX) permettent d obtenir des performances proches d un système natif (jusqu à 90% des performances d après les données de VMware). Un autre point à prendre en compte lors de la mise en place d une solution de virtualisation est la charge totale qu une machine physique est capable d assumer. Afin de choisir au mieux quels sont les serveurs qui peuvent être regroupés, il Page 8
convient d effectuer une analyse de la charge à laquelle est soumis chaque serveur. On choisira ensuite de regrouper différent serveur de manière à ce que la somme des pics de charge atteinte par ceux-ci reste supportée par la machine physique qui accueillera les systèmes virtuels. A ce pic il faut cependant veiller à prendre en compte le surcoût de la virtualisation elle-même. Au niveau de la para-virtualisation, le recours à une version modifiée d un OS qui doit être adapté pour l hyperviseur qui le supporte peut-être un problème dans le cas où l on utilise des systèmes fermés (Windows, Mac OS, etc.). Dans ce cas, c est aux sociétés éditrices de ces systèmes de porter leur produit sur l hyperviseur, mais dans certains cas elles peuvent choisir de ne pas le faire (pour promouvoir une solution interne, par soucis de sécurité, ou autre). Mais depuis l ajout d instructions dédiée à la virtualisation au sein des processeurs AMD et Intel, les hyperviseurs sont capable de faire tourner des OS non modifiés, au prix d une baisser de performance car celui-ci se verrait non optimisé pour la virtualisation. CONCLUSION Comme on a pu le montrer dans les différentes parties précédemment abordées, la virtualisation apporte son lot d avantages, notamment en termes d amélioration de l infrastructure du système informatique d une entreprise. La sous exploitation des serveurs peut-être largement diminuée en combinant sur une même machine physique, plusieurs serveurs virtuels, et grâce aux possibilités d allocation dynamique des ressources, les problématiques de dimensionnement des serveurs deviennent de plus en plus obsolète. Du fait de l amélioration de la gestion du parc informatique, une entreprise appuyant sur architecture sur la virtualisation peut réaliser des économies financières. Le coût matériel est réduit et par extension s installe également des économies à long terme, comme la diminution de la consommation énergétique globale de l entreprise (en période de politique écologique, c est très appréciable pour l image d une société également), ainsi qu une diminution de la surface au sol à allouer aux machines, ce qui peut diminuer les frais immobilier. Les différentes solutions de virtualisation existante répondent à des besoins spécifiques, mais on retient essentiellement deux écoles. Les machines virtuelles qui simulent l existence d une machine complète (avec son propre BIOS), ce type Page 9
d installation est rapide à mettre en place, simple, mais les performances sont fortement dégradées car l OS invité est superposé à un OS hôte, au travers d un logiciel de virtualisation (VirtualBox ). La para-virtualisation permet d obtenir des performances plus élevées en s affranchissant de l OS hôte, une couche virtuelle est alors installée entre le matériel et les OS invités, que l on appelle hyperviseur. Il n y a plus d empilement de noyau, les performances sont alors proche d un système natif, mais l installation de ce genre d architecture est plus délicat. La virtualisation apporte donc des avantages certains, au prix d une légère baisse de performance qui peut souvent être facilement compensée. De ce fait, elle connait aujourd hui un succès croissant et de plus en plus de société y ont recours pour optimiser l utilisation de leur parc informatique, et ce à tous les niveaux. Les datacenter des centre d hébergement y ont recours (VPS : Virtual Private Server), mais aussi toute société désireuse de réduire ses frais d infrastructure informatique. Page 10