MON COMPTE


Identifiant

Mot de passe

Mot de passe oublié
Pas encore inscrit ? OK

Actualités

Principes de virtualisation

En informatique, on tente de définir la virtualisation comme un ensemble de 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. Les outils de virtualisation servent à faire fonctionner ce qu'on appelle communément des serveurs privés virtuels (Virtual Private Servers ou VPS) ou encore environnements virtuels (Virtual Environments ou VE). Le mot virtualisation est également utilisé pour les postes clients des serveurs. Il s'agit dans ce cas de banaliser le poste qui se connecte aux serveurs.

Principe
Il peut sembler a priori étrange de simuler plusieurs machines sur une seule : un système d'exploitation étant en principe conçu pour utiliser au mieux un matériel qui est entièrement sous son contrôle pour cette raison, il semble à première vue que cette solution conduise à des inefficiences auxquelles s'ajoute le fait que le processus de virtualisation lui-même va consommer des ressources.
La réalité n'est cependant pas si sombre. D'une part, on évite une grande partie de ces inefficiences juste en disposant de disques différents pour chaque système lorsque c'est possible, et d'autre part les coûts de la mémoire permettent à chacun de ces systèmes de rester résident, et parfois même avec de larges sections de code partagées[1]. Par ailleurs le microcode des mainframes comme des microprocesseurs inclut de plus en plus de fonctionnalités rendant la virtualisation plus efficace.
Enfin, il est courant pour une entreprise de disposer d'une quinzaine de serveurs fonctionnant à 15% de leur capacité, celle-ci n'étant là que pour faire face à tout moment aux pointes de charge sporadiques. Un serveur chargé à 15% ne consomme pas beaucoup moins d'énergie qu'un serveur chargé à 90%, et regrouper 4 serveurs sur une même machine peut donc s'avérer rentable si leurs pointes de charge ne coïncident pas systématiquement, même si 30% de la charge machine est représentée par la virtualisation elle-même[2]
Enfin, la virtualisation des serveurs permet une bien plus grande modularité dans la répartition des charges et la reconfiguration des serveurs en cas d'évolution ou de défaillance momentanée (plan de secours, etc.).

Notions
Chaque outil de virtualisation met en œuvre une ou plusieurs de ces notions :

  • couche d'abstraction matérielle et/ou logicielle
  • système d'exploitation hôte (installé directement sur le matériel)
  • systèmes d'exploitations (ou applications, ou encore ensemble d'applications) « virtualisé(s) » ou « invité(s) »
  • partitionnement, isolation et/ou partage des ressources physiques et/ou logicielles
  • images manipulables : démarrage, arrêt, gel, clonage, sauvegarde et restauration, sauvegarde de contexte, migration d'une machine physique à une autre
  • réseau virtuel : réseau purement logiciel, interne à la machine hôte, entre hôte et/ou invités

Intérêts de la virtualisation
Les intérêts sont :

  • utilisation optimale des ressources d'un parc de machines (répartition des machines virtuelles sur les machines physiques en fonction des charges respectives),
  • installation, déploiement et migration facile des machines virtuelles d'une machine physique à une autre, notamment dans le contexte d'une mise en production à partir d'un environnement de qualification ou de pré-production, livraison facilitée,
  • économie sur le matériel par mutualisation (consommation électrique, entretien physique, surveillance, support, compatibilité matérielle, etc.)
  • installation, tests, développements, cassage et possibilité de recommencer sans casser le système d'exploitation hôte
  • sécurisation et/ou isolation d'un réseau (cassage des systèmes d'exploitation virtuels, mais pas des systèmes d'exploitation hôtes qui sont invisibles pour l'attaquant, tests d'architectures applicatives et réseau)
  • isolation des différents utilisateurs simultanés d'une même machine (utilisation de type site central)
  • allocation dynamique de la puissance de calcul en fonction des besoins de chaque application à un instant donné,
  • diminution des risques liés au dimensionnement des serveurs lors de la définition de l'architecture d'une application, l'ajout de puissance (nouveau serveur etc) étant alors transparent.