Introduction
De nos jours, la notion de virtualisation est de plus en plus répandue dans les datacenters. Elle permet de faire fonctionner plusieurs serveurs virtuels sur un même serveur physique et tout cela indépendamment (c’est à dire avec leurs propres CPU virtuels, disques durs, mémoires, réseaux etc…).
Cela est intéressant dans la mesure où le coût de maintenance d’un serveur physique revient moins cher que plusieurs serveurs physiques, la dépense énergétique est aussi grandement réduite car nous faisons fonctionner un seul et unique serveur.
De plus, nous gagnons en espace (un serveur prends moins de place que plusieurs serveurs) ainsi qu’en investissement pour la climatisation.
Enfin, la qualité de service est améliorée car la gestion de toutes nos machines se fait via une seule interface.
Un système d’exploitation virtualisé associé à des périphériques virtuels (CPU virtuels, mémoire virtuelles etc…) constitue une machine virtuelle. Les machines virtuelles sont gérées par des Hyperviseurs.
Il existe plusieurs types d’hyperviseurs : les hyperviseurs de type « Bare-Metal » et les hyperviseurs basés sur les hôtes.
Hyperviseurs « Bare-Metal »
Les hyperviseurs de type « Bare-Metal » sont des systèmes d’exploitations indépendants c’est à dire qu’ils vont être installés au plus proche de la couche matérielle. Ce type d’hyperviseur est à privilégier en environnement de production car ce sont les plus optimisés pour ce type d’utilisation. Bien que VMWare soit le leader dans ce domaine, il existe d’autres hyperviseurs comme XenServer (de CITRIX) ou Hyper-V (de Microsoft).
Hyperviseurs basés sur les hôtes
Les hyperviseurs basés sur les hôtes sont des applications qui vont être installées juste au dessus de la couche Operating System (que ce soit un Windows, un Linux ou MAC OS X). Ce type d’hyperviseur est à privilégier pour les environnements de test. Il existe plusieurs hyperviseurs basés sur les hôtes: VMWare Workstation (Windows et Linux), VMWare Fusion (MAC OS X), Microsoft Virtual PC, Oracle VirtualBox…
VMWare ESXi et vCenter : L’infrastructure vSphere 4
Serveur ESXi
Un serveur ESXi est un hyperviseur de type « Bare-Metal » (basé sur Linux RedHat) qui permet de virtualiser plusieurs machines virtuelles. Il existe en plusieurs versions dont une version gratuite. A chaque version correspond un certain nombre de fonctionnalités. Le coût de la licence VMware dépendra du nombre de processeurs et du nombre de cœur que contient notre serveur physique.
Le serveur ESXi est constitué de deux parties : le VMKernel (le moteur de virtualisation) et le VMM (Virtual Machine Monitor). Une VMM permet de gérer les instructions processeurs d’une machine virtuelle et de faire communiquer la mémoire virtuelle et physique.
La configuration de base d’un serveur ESXi se fait via la console c’est à dire directement sur le serveur physique, dans ce mode vous pourrez : configurer votre mot de passe root, les cartes réseaux que vous souhaitez activer, activer le serveur SSH, le mode ligne de commande, voir les logs…
Serveur vCenter
Un serveur vCenter (Virtual Center) permet de gérer plusieurs serveurs ESXi, c’est aussi ce type de serveur qui va permettre de faire travailler plusieurs serveurs ESXi en cluster (c’est à dire allier la puissance de tous les serveurs pour virtualiser les machines virtuelles). Le serveur vCenter s’installe sur un Windows 2008 Server R2 64 bits qui peut être virtualisé sur un des serveurs ESXi. Le serveur vCenter a besoin d’une base de données SQL Server pour fonctionner, si vous ne disposez pas de serveur SQL, vous pourrez installer SQL Server 2005 Express en même temps que vCenter.
Vsphere Client
Le ou les serveurs ESXi associés à un vCenter constituent une infrastructure vSphere. Les serveurs ESXi ou le serveur vCenter sont administrés via un programme appellé vSphere Client ou peuvent aussi être administrer via vSphere Web Access (pour y accéder : https://[adresse_du_serveur_a_administrer]/ui/).
La communication réseau
La gestion de la communication réseau se fait via des vSwitch, ce sont des switchs virtuels qui vont permettre de paramétrer les différents réseaux sur lesquelles vous souhaitez connecter vos machines virtuelles. Ces switchs virtuels peuvent être connectés sur vos cartes réseaux physiques afin de permettre une communication avec votre réseau local.
La gestion du stockage
La gestion du stockage peut être faites de différentes façons. En effet, vos machines virtuelles auront besoin de disques durs virtuels (qui sont stockés sur un fichier .vmdk), ces disques dur virtuels sont stockés sur des datastores. Ces datastores peuvent être de différentes natures : disque dur internes du serveur physique, stockage SAN…
Haute-disponibilité
Afin d’assurer une disponibilité quasi-permanente VMWare intègre dans son infrastructure vSphere plusieurs mécanismes :
Fault Tolerance : Même si un serveur ESXi tombe en panne, les autres machines virtuelles présentes sur celui-ci continuerons de tourner sur les autres serveurs ESXi. Les instructions processeurs et mémoire sont répliqués de façon continue entre les serveurs ESXi afin que si le serveur ESXi qui gère la machine virtuelle tombe en panne, un autre serveur ESXi récupère automatiquement la main sur la machine virtuelle et continue de la faire fonctionner.
VMWare HA (High Availabity) : Lorsqu’un serveur ESXi tombe en panne toutes les machines virtuelles présentes sur ce serveur et faisant parties d’un cluster HA sont automatiquement redémarrer sur un autre serveur ESXi. A la différence de FT, HA doit redémarrer la machine virtuelle tandis que FT continue de faire fonctionner la machine comme si rien ne c’était passé.
vMotion : Une machine virtuelle est gérée par un serveur ESXi, vMotion permet de transférer une machine virtuelle d’un serveur ESXi A vers un serveur ESXi B sans avoir à arrêter le système d’exploitation virtualisé.
EVC (Enhanced Vmotion Compatibility) : Les processeurs présents sur les serveurs ESXi peuvent être différents, de plus chaque processeur apporte son propre lot d’instructions. EVC permet de garantir la compatibilité des jeux d’instructions CPU entre processeurs différents lors d’un vMotion.