FAQ VirtualisationConsultez toutes les FAQ

Nombre d'auteurs : 13, nombre de questions : 71, dernière mise à jour : 12 août 2017  Ajouter une question

 

Cette FAQ a été réalisée à partir des questions fréquemment posées sur les forums de http://www.developpez.com, de l'expérience personnelle des auteurs.

Nous tenons à souligner que cette FAQ ne garantit en aucun cas que les informations qu'elle propose sont correctes. Les auteurs font leur maximum, mais l'erreur est humaine. Cette FAQ ne prétend pas non plus être complète. Si vous trouvez une erreur, ou que vous souhaitez nous aider en devenant rédacteur, lisez ceci.

Un grand merci à tous ceux qui ont pris de leur temps pour la réalisation de cette FAQ.

Aux rédacteurs : remerciements tout d'abord à tous ceux qui ont rédigé les questions et les réponses.
Aux relecteurs techniques : merci à Siguillaume, Viduc et Christophe .
Aux correcteurs : remerciements également aux personnes qui ont relu les textes pour supprimer un maximum de fautes de français. Merci à ced pour ses efforts.
Aux visiteurs : remerciements enfin à tous ceux qui ont consulté cette FAQ, et qui, par leurs remarques, nous ont aidés à la perfectionner.
Merci également à milkoseck pour son aide précieuse à la finalisation de cette FAQ.
Et pour finir, un merci tout spécial à dourouc05 qui a créé notre logo.

Sur ce, nous vous souhaitons une bonne lecture.

L'équipe Virtualisation


SommaireGénéralitésQuelques définitions (33)
précédent sommaire suivant
 

La virtualisation est une technique permettant d’avoir plusieurs serveurs dits « virtuels » sur un seul dit « physique ». De façon simple, c’est un procédé informatique qui consiste à faire fonctionner plusieurs applications, systèmes sur seul « serveur physique ». Le serveur peut être un ordinateur ou un système d’exploitation. De manière concrète, on peut faire fonctionner par exemple deux systèmes d’exploitation sur une seule machine. Chaque « serveur virtuel » exécutera une application ou un système d’exploitation différent. La virtualisation peut être assimilée à une juxtaposition de plusieurs systèmes sur une même machine. Tous les systèmes peuvent fonctionner simultanément comme si c’était deux ordinateurs différents.

Pour faire de la virtualisation, on a essentiellement besoin de trois composants : un hôte pour accueillir, un hyperviseur pour la mise en place et un invité.

Une machine virtuelle fonctionne exactement comme la machine physique. Elle a droit aux mêmes ressources machines. Elle peut exploiter les périphériques, le réseau, la mémoire, le disque dur, etc. On peut passer d’une machine (virtuelle ou non) à une autre à tout moment.

En résumé, la virtualisation permet d’exécuter plusieurs « systèmes invités » dans des « machines virtuelles » sur le « système hôte ». Un « système invité » peut être une application ou un système d’exploitation. Une « machine virtuelle » n’est rien d’autre qu’un environnement créé par une machine de virtualisation : un « hyperviseur ».

Mis à jour le 11 avril 2014 Francis Walter

Un hyperviseur est tout simplement une fine couche située entre la couche matérielle d'une machine physique et le système d'exploitation. Cette plate-forme de virtualisation permet de fournir aux machines virtuelles de meilleures performances grâce à la communication directe avec les ressources matérielles de la machine.

Ainsi, chaque machine virtuelle se verra allouer une quantité de disque dur, de mémoire ou encore de processeur logique en fonction des ressources matérielles présentes sur la machine physique les hébergeant.

Par ailleurs, il est important de savoir qu'il existe deux types d'hyperviseurs, appelés plus communément hyperviseur de type 1 (natif) et hyperviseur de type 2 (logiciel).

1 Hyperviseur de type 1

Les hyperviseurs de type 1 sont des logiciels s'installant et s'exécutant directement sur la couche matérielle d'une machine physique, comme la technique de paravirtualisation. L'interaction est donc immédiate, garantissant ainsi de meilleures performances système pour les machines virtuelles. De par son exécution directe avec les ressources matérielles, l'hyperviseur de type 1 est comparé à un noyau sur lequel il est alors possible d'installer un "autre" système d'exploitation.



Les hyperviseurs de type 1 sont :


  • VMWare ESXi ;

  • Citrix XenServer ;

  • Logical Domains de SUN ;

  • Oracle VM.

  • Microsoft HyperV.


2 Hyperviseur de type 2

Les hyperviseurs de type 2 sont des logiciels s'installant et s'exécutant à l'intérieur d'un système d'exploitation hôte.


Les hyperviseurs de type 2 sont :

  • Microsoft Virtual PC et Virtual Server ;

  • VMWare Server, Workstation et Fusion ;

  • Sun Virtualbox.

Mis à jour le 18 février 2014 Viduc

Un système hôte est le système qui est directement installé sur la machine appelée serveur physique. Il représente le socle, en lieu et place de portail pour l’installation de systèmes virtuels. C'est la machine accueillant les machines invitées.

Mis à jour le 29 mars 2014 Francis Walter

La paravirtualisation est une technique permettant d'améliorer les performances de la virtualisation. Les systèmes virtualisés ont conscience de l'être. Pour utiliser cette fonctionnalité, les systèmes virtualisés doivent être modifiés en conséquence (voir additions invitées).

Mis à jour le 11 novembre 2015 chrtophe

Les additions invitées sont une suite de drivers à installer dans la machine virtuelle qui est fournie par l'hyperviseur. Ces additions permettent le support de la paravirtualisation, fournissent des drivers à la machine virtuelle, permettent le support du copier-coller, du glisser-déplacer, du partage de dossier entre l'hôte et la machine virtuelle. Elles sont installables depuis le menu de l'hyperviseur et sont vues comme un CD-Rom depuis les machines virtuelles.

Mis à jour le 11 novembre 2015 chrtophe

La technologie VT-x est le support matériel de la virtualisation sur les processeurs Intel.

L'équivalent sur les processeurs AMD se nomme AMD-V.

Mis à jour le 26 septembre 2014 chrtophe

La technologie AMD-V est le support matériel de la virtualisation sur les processeurs AMD.

L'équivalent sur les processeurs Intel se nomme VT-x.

Mis à jour le 26 septembre 2014 chrtophe

Il s'agit du support de la virtualisation pour les entrées/sorties.

Ces technologies apportent l'accès direct aux chipsets de la carte mère. vt-c est spécifique à la virtualisation de la communication (notamment Ethernet).

Cette technologie doit -être présente dans la carte mère et permet l'amélioration des performances en donnant l'accès sans passer par l'hyperviseur. vt-x doit être activé.

L'équivalent sur les processeurs AMD se nomme Virtualisation E/S.

Mis à jour le 12 août 2017 chrtophe

La Nested Virtualization est la technique consistant à imbriquer deux hyperviseurs en installant le second dans une machine virtuelle du premier.

Cette technique n'est pas pertinente en production, mais peut être utile pour des tests.

Mis à jour le 12 août 2017 chrtophe

Il n'y a pas actuellement de technologie de virtualisation pour les processeurs ARM. Il est prévu qu'il en soit intégré une dans les processeurs ARMv8R.

Mis à jour le 26 septembre 2014 chrtophe

Un « système invité » : c’est le système étranger. Son fonctionnement se fait dans la « machine virtuelle » créée par l’hyperviseur. Concrètement, si vous installez Windows XP de manière virtuelle sur une machine fonctionnant sous Windows 7, alors Windows XP est un système invité.

Mis à jour le 11 avril 2014 Francis Walter

Ce type de virtualisation concerne les systèmes d’exploitation. Plusieurs systèmes d’exploitation sont installés sur la même machine. Il s’agit d’une pure émulation. Le « système d’exploitation invité » peut fonctionner de manière identique à celle de l’hôte, mais de façon indépendante. Elle est bénéfique aux entreprises, car au lieu d’acheter plusieurs « serveurs physiques » pour faire fonctionner leurs systèmes, elles peuvent utiliser des « serveurs virtuels » qui simulent le « serveur physique ». Les ressources du « serveur physique » sont utilisées de façon beaucoup plus efficace.

Mis à jour le 11 avril 2014 Francis Walter

Elle permet de séparer des applications de celles du « système d’exploitation hôte ». Elle est nécessaire pour des problèmes d’incompatibilité entre des logiciels. Elle est adéquate pour les entreprises pour le test des versions release d’applications. L’hyperviseur crée des environnements virtuels avec différentes copies de ressources partagées pour chacune des applications concernées, afin d’éviter les conflits d’incompatibilité.

Mis à jour le 11 avril 2014 Francis Walter

Encore appelée « abstraction du stockage », elle consiste à présenter un « stockage virtuel » à un système ou application sans que les types de ressources utilisés ne soient visibles. Le « stockage virtuel » est créé dans une « machine virtuelle ». Les clients peuvent effectuer des tâches sur le stockage comme si c’était le réel. Des changements peuvent être effectués sur le stockage sans que le client soit touché. Le client aperçoit les unités de stockage comme un volume unique et homogène. Il existe deux types de virtualisation de stockage :

Mis à jour le 11 avril 2014 Francis Walter

C'est une virtualisation du stockage qui nécessite un serveur de virtualisation pour transporter les données du client (serveur applicatif) au stockage. Toutes les demandes du client transitent par le moteur de virtualisation. Des pare-feu peuvent être construits au niveau du stockage. Dans ce cas, le moteur de virtualisation est le seul à avoir accès au stockage.

Mis à jour le 11 avril 2014 Francis Walter

C'est le second type de la virtualisation du stockage. Dans ce cas-ci, contrairement à la virtualisation symétrique (in-band), les données transitent directement du serveur applicatif au stockage. La machine de virtualisation se charge des copies et des allocations. Chaque client dispose d’un agent qui reçoit les instructions afin d’indiquer le lieu de stockage concerné.

Mis à jour le 11 avril 2014 Francis Walter

Les CPU gérant la virtualisation virtualisent le matériel, mais exécutent les instructions-machine du système virtualisé (à quelques exceptions décrites ci-dessous), contrairement à l'émulation où le CPU est "simulé". Il y a des nuances entre les instructions de virtualisation des processeurs Intel, appelées VT-x, et les instructions des processeurs AMD, appelées AMD-V. Pour l'utilisateur, ceci est transparent, par contre les hyperviseurs devront gérer cette différence.

La gestion des périphériques : les appels au matériel sont soit "simulés", soit directs. Exemple : une requête I/O est effectuée sur le disque dur virtuel, le code est transformé de façon à écrire dans le fichier image. Si on accède directement au périphérique, il n'y a pas de simulation. Exemple : activation d'une clé USB dans le système virtuel, le système hôte n'aura plus l'accès à ce périphérique tant qu'il est lié à la machine virtuelle.( IOMMU )

La gestion de la mémoire :
Pour la gestion de la mémoire affectée à une machine virtuelle, de nouvelles fonctionnalités ont été ajoutées au niveau de la MMU. Grosso modo, des pages sont bloquées pour la machine virtuelle.

La gestion des interruptions
Au niveau de la gestion des interruptions et exceptions, il y a une surcouche au niveau des APIC : AVIC pour AMD, APICv pour Intel

Gestion mode protégé ring0/ring3 :

Avec l'hyperviseur, il y a une surcouche : un ring -1. Les appels aux registres cr0-cr3 déclenchent une sorte d’exception, la routine gérant ce que devrait faire l'appel réel au registre. Une demande d'activation ou de désactivation de la pagination dans une machine virtuelle s'effectue sur des registres virtuels bien évidemment.

Mis à jour le 9 février 2014 chrtophe Viduc

Un fichier image est un fichier stocké sur le disque dur d'un hôte et représentant ce disque dur. Quand une modification est faite sur le disque dur dans la VM (modification fichiers, formatage, etc.), celle-ci est répercutée dans ce fichier image.

Mis à jour le 12 septembre 2014 chrtophe

Une image fixe correspond à un fichier image de taille fixe. Un disque dur de 40 Go vu d'une VM sera stocké dans un fichier image de 40 Go, même s'il est vide.

Mis à jour le 12 septembre 2014 chrtophe

Une image dynamique correspond à un fichier image grossissant au fur et à mesure des modifications effectuées dedans. Il pourra grossir jusqu'à la taille maximale du disque "physiquement vu" dans la VM. Cela correspond au thin/thick provisionning de VMWare.

Mis à jour le 12 septembre 2014 chrtophe

Un cliché instantané est une sauvegarde à l'instant t d'une VM, comprenant l'état des disques et l'état mémoire. Cela est comparable à une mise en veille prolongée sur un portable. Il est possible de transformer ce snapshot en nouvelle VM, soit liée à la VM d'origine, soit indépendante.

Mis à jour le 12 septembre 2014 chrtophe

Une appliance de machine virtuelle correspond à un système virtuel clé en main. Elle se présente par exemple sous la forme d'un fichier OVF.

Mis à jour le 15 septembre 2014 chrtophe

OVF signifie Open Virtualization Format. C'est un fichier qui va contenir une image disque .vmdk (format VMWare) ainsi que la description matérielle de celle-ci. Ce fichier sera importable par les hyperviseurs les prenant en compte.

Mis à jour le 15 septembre 2014 chrtophe

Pour des disques de données VMware ce sont :

  • documents-flat.vmdk qui est le fichier image proprement dit (dans le cas d'une image fixe) ;

  • documents.vmdk qui est un fichier texte décrivant le disque virtuel (et qui donc peut être visualisé et même édité).


Pour des disques systèmes VMware ce sont :
  • WinXP_Pro-flat.vmdk qui est le fichier image proprement dit (dans le cas d'une image fixe) ;

  • WinXP_Pro.vmdk qui est un fichier texte décrivant le disque virtuel ;

  • WinXP_Pro.vmsd (fichier vide ?) ;

  • WinXP_Pro.vmx fichier texte correspondant au setting de la machine virtuelle ;

  • WinXP_Pro.vmxf fichier xml décrivant la machine virtuelle.

Pareil pour Virtualbox.

Mis à jour le 31 juillet 2015 Pierre GIRARD

Un conteneur est l'équivalent d'une machine virtuelle dans le cas de la virtualisation de système d'exploitation (SE). C'est une instance complète de SE, avec son système de fichiers, ses comptes utilisateurs, ses processus, etc. On peut s'y connecter et le rebooter. Tous les conteneurs instanciés au-dessus d'un SE hôte partageant avec lui et entre eux un noyau unique.

Mis à jour le 31 juillet 2015 jlliagre

C'est le gestionnaire et l'ordonnanceur des machines virtuelles dans le cas de la virtualisation hardware. Un peu comme le noyau sait créer, exécuter et détruire des processus, un hyperviseur sait créer, exécuter et détruire des machines virtuelles.

Mis à jour le 31 juillet 2015 jlliagre

Pas forcément, car les technologies ne sont pas liées. Il est cependant tout à fait possible de combiner ces deux techniques de virtualisation puisqu'elles se situent à des niveaux différents. Une machine virtuelle gérée par un hyperviseur peut donc elle-même contenir des conteneurs.

Mis à jour le 31 juillet 2015 jlliagre

Parce qu'il n'y a pas de lien entre les deux technologies.

Mis à jour le 31 juillet 2015 jlliagre

  • Hyperviseur : si OS incompatibles à instancier (exemple Windows et Linux). Si besoin d'avoir un vrai noyau (ex. : développement de pilotes particuliers, de boot loader, tests de patchs noyau, etc.). Si besoin de facilités particulières fournies par la solution retenue (live migration, interfaces d'administration et de gestion, etc.)


  • Conteneurs : permet de mettre beaucoup plus de systèmes virtualisés sur un environnement matériel donné. Plus de flexibilité dans la gestion et le partage des ressources. Solution forcément plus performante.

Mis à jour le 31 juillet 2015 jlliagre

  • La virtualisation à base de conteneurs est (beaucoup) moins gourmande en ressources et n'entraîne aucune dégradation mesurable de performances, puisqu'il n'y a pas de couche additionnelle par rapport à un ordinateur traditionnel, sans virtualisation.


  • La virtualisation à base d'hyperviseur permet de choisir le système d'exploitation utilisé par les invités, qui n'a pas besoin d'avoir un lien fort avec celui de l'hôte.

Mis à jour le 31 juillet 2015 jlliagre

  • La virtualisation à base de conteneurs limite les choix des SE des invités, les SE doivent être compatibles (Linux sur Linux, Solaris sur Solaris, AIX sur AIX, HP-UX sur HP-UX, etc.).


  • La virtualisation à base d'hyperviseur est plus gourmande en ressources et plus lente, car il y a une couche de plus à exécuter (deux couches "système d'exploitation" sont empilées). La dégradation effective des performances varie suivant les opérations mesurées et la solution choisie.

Mis à jour le 31 juillet 2015 jlliagre

À la création d'une machine virtuelle, il est possible de créer des disques de type thick ou thin.
Le Thin Provisioning permet l'allocation d'espace disque à la demande, contrairement aux disques de type thick.
Ainsi, la taille des disques créés n'est pas définie, mais augmente dynamiquement en fonction des besoins.

Le Thin Provisioning ou provisionnement fin, par opposition au thick provisionning (ou provisionnement épais), permet la surallocation de la capacité de stockage. Le schéma ci-dessous illustre la différence entre thick et thin provisionning.



En thick provisionning, la capacité de stockage provisionnée est entièrement allouée et réservée sur l’espace de stockage. En thin provisionning, seule la capacité réellement utilisée est allouée sur l’espace de stockage, le reste étant ‘libre’, une surallocation est possible en provisionnant davantage de capacité que d’espace réellement disponible. Les avantages de cette technique sont principalement la réduction de l’OPEX (dépenses opérationnelles) en retardant l’acquisition de nouveaux matériels.
En revanche, cette technique requiert un minimum de vigilance quant au ratio capacité allouée/capacité utilisée et à l’impact sur les performances.
À noter également, lors de la ‘suppression’ d’informations sur un espace au format thin, la capacité reste ‘utilisée’ jusqu’à ce qu’un processus de ‘récupération’ soit initié.

Mis à jour le 9 février 2014 lavazavio Viduc vpourchet

Nous avons parlé du thick provisionning, mais saviez-vous qu’il existe deux options de thick provisionning ? Ces options sont le Lazy Thick Provisionning et le Eager Thick Provisionning. Quelle est la nuance ?
Nous avons vu qu’en thick provisionning, la capacité est entièrement allouée sur l’espace de stockage. Comment cela se traduit-il réellement ? Eh bien par l’écriture sur le disque des blocs sur l’ensemble de la capacité allouée, ce qui peut parfois demander un certain temps (fonction de la capacité allouée).
C’est ce que fait le Eager thick provisionning en ‘zérotant’ l’intégralité de l’espace alloué. Par opposition le Lazy thick provisionning préalloue la capacité (qui est donc vue comme réservée, empêchant toute surallocation), mais ne ‘zérote’ pas les blocs un par un.
L’avantage, me direz-vous ? Eh bien tout simplement de pouvoir créer un espace de stockage au format thick (lazy) aussi rapidement qu’au format thin.
Lequel choisir ? Eh bien cela dépend. Certes, le lazy thick offre l’avantage de la rapidité lors du provisionnement de l’espace de stockage, mais en ‘zérotant’ les blocks à l’avance, le Eager thick permet d’économiser une opération lors de la première opération d’écriture sur chaque bloc, améliorant ainsi sensiblement les performances.

Mis à jour le 9 février 2014 Viduc vpourchet

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2018 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

 
Responsable bénévole de la rubrique Virtualisation : chrtophe -