Les machines virtuelles : introduction

La machine virtuelle est un concept classique de la virtualisation matérielle et son utilisation principale consiste à fournir des environnements virtuels dans le cadre de tests logiciels. De nombreuses solutions logicielles permettent le fonctionnement de plusieurs systèmes invités sur un système hôte commun (host). Mais comment fonctionnent les machines virtuelles et quels sont les avantages et les inconvénients de ce concept de virtualisation ? Nous vous présentons les bases de la virtualisation matérielle basée sur un hyperviseur et vous montrons, étape par étape, comment déployer des environnements virtuels pour Windows ou Linux.

Qu’est-ce qu’une machine virtuelle ?

Une machine virtuelle dispose de son propre système d’exploitation qui utilise les ressources matérielles d’un système hôte sous-jacent. Ce type de système invité se comporte envers l’utilisateur comme un PC indépendant avec RAM, mémoire de disque dur et système de fichiers.

Chaque machine virtuelle est basée sur un logiciel d’hyperviseur (ou VMM pour Virtual Machine Monitor). L’hyperviseur fonctionne comme une application sur le système d’exploitation hôte (hosted hypervisor) ou directement sur le matériel de la machine physique (bare metal hypervisor) et gère les ressources matérielles fournies par le système hôte. Le logiciel hyperviseur crée une couche d’abstraction entre le matériel physique et la machine virtuelle. Chaque machine virtuelle fonctionne de façon isolée du système hôte et des autres systèmes invités dans son propre environnement virtuel. Dans ce contexte, on parle d’encapsulation. Les processus au sein d’une machine virtuelle n’affectent pas l’hôte ou d’autres machines virtuelles sur le même matériel.

De nombreux hyperviseurs combinent les technologies de virtualisation matérielle avec des fonctionnalités d’émulation. Ces produits de virtualisation ne construisent pas seulement une couche abstraite entre le matériel physique sur lequel ils sont déployés et la couche virtuelle qu’ils utilisent. Ils comblent également les incompatibilités entre les différentes architectures de systèmes. Ceci permet aux utilisateurs d’émuler des environnements d’exécution pour différents systèmes d’exploitation sur un même système hôte. Les utilisateurs peuvent ainsi également exploiter des systèmes invités dans des machines virtuelles dont l’architecture système ne correspond pas à celle du système hôte.

La capture d’écran suivante montre les systèmes d’exploitation Windows 7 et Ubuntu 17.10 en tant que systèmes invités virtualisés sur le même système hôte. Chaque machine virtuelle fonctionne dans sa propre fenêtre. Oracle VM VirtualBox est utilisé comme logiciel de virtualisation.

Les machines virtuelles en pratique

Dans la virtualisation matérielle, les ressources d’un système physique peuvent être réparties entre plusieurs systèmes virtuels. Chaque système invité, y compris tous les programmes qui y sont exécutés, est séparé du matériel sous-jacent.

Dans la pratique, les machines virtuelles sont surtout utilisées pour isoler certains processus et applications pour des raisons de sécurité. Comparées à d’autres concepts de virtualisation, les machines virtuelles proposent une forte encapsulation et servent donc de base à l’hébergement de produits qui exécutent plusieurs serveurs clients sur une plateforme matérielle commune. La mise à disposition de machines virtuelles est la base des offres d’hébergement mutualisé et de VPS (Virtual Private Server). Dans la mesure où chaque système invité fonctionne dans un environnement d’exécution isolé, les processus encapsulés dans une machine virtuelle n’affectent pas le système hôte ou les autres systèmes invités sur la même machine physique.

Dans un contexte d’entreprise, les machines virtuelles sont utilisées pour réduire les coûts d’exploitation et de maintenance des infrastructures informatiques. Les entreprises disposent parfois d’une vaste infrastructure informatique qui reste inactive la plupart du temps. Avec les machines virtuelles, les temps morts de ce type peuvent être considérablement réduits. Au lieu de fournir une machine physique séparée pour chaque domaine d’application de l’informatique d’entreprise, de plus en plus d’entreprises se tournent vers des serveurs de messagerie, de base de données, de fichiers ou d’applications dans des environnements virtuels isolés sur la même plateforme matérielle puissante. Ce concept sera mis en œuvre dans le cadre de la consolidation des serveurs. Il est en effet souvent moins coûteux de maintenir une grande plateforme informatique pour différents systèmes virtuels que d’exploiter plusieurs petits ordinateurs.

Les transformateurs, en particulier, sont encore chers à l’achat. Le temps processeur inutilisé est donc un facteur de coût inutile qui peut être évité en passant à des systèmes virtuels.

Le développement de logiciels est un autre domaine d’application des environnements virtuels. Les programmeurs qui développent des applications pour différentes architectures de systèmes utilisent souvent des machines virtuelles pour tester les logiciels. De nombreux produits hyperviseurs permettent le fonctionnement en parallèle de différents systèmes d’exploitation ou versions de systèmes. Les machines virtuelles peuvent être créées, clonées et supprimées du disque dur physique sans laisser de résidu de données par un simple clic. De plus, en raison de l’encapsulation, les processus défectueux dans une machine virtuelle n’ont aucun effet sur le système sous-jacent.

Les utilisateurs privés utilisent le plus souvent des hyperviseurs dotés de fonctions d’émulation pour exécuter des applications écrites à l’origine pour une architecture système différente. Toutefois, il convient de noter que la virtualisation matérielle ainsi que l’émulation sont toujours associées à des pertes de performance. Par exemple, si un utilisateur souhaite exécuter un programme Linux dans une machine virtuelle sur son ordinateur Windows, des ressources supplémentaires doivent être consacrées à la fois à l’hyperviseur et au système invité. Une application Linux ainsi encapsulée ne dispose plus de toute la puissance du matériel sous-jacent. Dans ce contexte, on parle de frais généraux.

Note

En informatique, les frais généraux désignent les ressources informatiques telles que le temps de calcul, la mémoire ou la bande passante qui sont utilisées ou perdues pendant l’exécution d’un processus sans contribuer directement au résultat du processus.

La virtualisation matérielle atteint toutefois ses limites dans le cas de charges de travail gourmandes en ressources. Si plusieurs machines virtuelles fonctionnent sur le même système hôte, les besoins en ressources d’une machine peuvent également affecter les performances des autres machines sur le même hôte pendant les pics de performance. Ceci peut être contré en assurant à chaque machine virtuelle un contingent fixe de ressources matérielles. Assurez-vous que le total de toutes les ressources virtuelles utilisées en même temps ne dépasse jamais la puissance maximale disponible de la machine physique.

Aperçu des avantages et des inconvénients des machines virtuelles

Le tableau suivant compare les principaux avantages et inconvénients des machines virtuelles. La question de savoir si et dans quelle mesure lesdits avantages et limitations s’appliquent dépend principalement du cadre dans lequel vous souhaitez déployer les machines virtuelles et de l’objectif que vous poursuivez avec la virtualisation.

Avantages Inconvénients
Fonctionnement en parallèle de plusieurs systèmes invités : la virtualisation prise en charge par hyperviseur permet à plusieurs systèmes d’exploitation de fonctionner en parallèle sur la même base matérielle. De nombreux hyperviseurs offrent des fonctions d’émulation pour combler les incompatibilités entre les différentes architectures de systèmes. Hyperviseur (et système invité) : les machines virtuelles sont moins efficaces que les machines physiques car certaines des ressources disponibles sont utilisées pour faire fonctionner le logiciel de l’hyperviseur.
Meilleure utilisation grâce à la consolidation matérielle : si plusieurs machines virtuelles fonctionnent sur une machine physique, les ressources matérielles peuvent être mieux utilisées. Ce type de consolidation augmente l’utilisation du matériel fourni, réduit le temps d’inactivité et réduit les coûts. Le matériel partagé peut causer des blocages pendant les pics de consommation : comme toutes les machines virtuelles d’un système hôte partagent les mêmes ressources matérielles, des goulots d’étranglement peuvent survenir lors des pics de performances.
Forte encapsulation du système invité et de tous les processus qui s’y déroulent : chaque système invité fonctionne isolé dans un environnement d’exécution virtuel. Si une machine virtuelle tombe en panne en raison d’un processus défectueux ou est infiltrée par des hackers ou des logiciels malveillants, cela n’a généralement aucun effet sur les machines virtuelles parallèles ou le système hôte sous-jacent. L’hyperviseur en tant que Single Point of Failure : si les attaques de hackers ou de logiciels malveillants sont directement dirigées contre le logiciel de virtualisation, tous les systèmes invités gérés par l’hyperviseur peuvent être affectés.
Économies en ressources informatiques de maintenance et d’administration : les machines virtuelles offrent un grand potentiel d’économies dans la mise à disposition de ressources informatiques. Le passage à une plateforme matérielle puissante pour différents systèmes virtuels réduit les coûts de maintenance et d’administration en centralisant les tâches. Situation juridique peu claire en ce qui concerne l’octroi de licences pour les systèmes d’exploitation virtuels : l’exploitation des machines virtuelles soulève de nouvelles questions concernant l’octroi de licences pour les systèmes d’exploitation.
Approvisionnement et portage flexibles des serveurs virtuels et des PC : les machines virtuelles sont indépendantes du matériel physique sous-jacent et permettent un approvisionnement flexible des ressources informatiques. Les serveurs virtualisés ou les ordinateurs personnels (PC) peuvent être facilement créés, clonés et déplacés vers une autre plateforme d’hébergement.  

Tutoriel : comment créer une machine virtuelle ?

Les instructions étape par étape suivantes vous montreront comment créer une machine virtuelle sur un hôte Windows et l’exécuter sous Linux Ubuntu en tant que système invité. Pour le tutoriel, nous utilisons Windows 7, tandis que Oracle VM VirtualBox est utilisé comme logiciel hyperviseur.

Note

Pour suivre les instructions sur votre propre système, il vous suffit d’avoir un PC Windows avec accès Internet. Le logiciel utilisé dans le tutoriel peut être téléchargé gratuitement sur Internet.

Étape 1: choisir un logiciel hyperviseur

Différentes solutions logicielles sont disponibles pour la mise à disposition de systèmes d’exploitation virtuels. Les leaders du marché sont les produits Oracle, VMware et Parallels.

Le tableau suivant présente les produits hyperviseurs les plus populaires pour Windows, Linux et macOS ainsi que les systèmes invités possibles.

Logiciel de virtualisation Système hôte Système invité
Oracle VM VirtualBox – Windows– Linux– Mac OS X – macOS– Solaris – Windows– Linux– Solaris – FreeBSD
VMware Workstation Player – Windows – Linux – Windows – Linux – NetWare– Solaris – FreeBSD
VMware Fusion – Mac OS X– macOS – Windows – Linux – NetWare– Solaris – FreeBSD– macOS– Mac OS X
Parallels Desktop for Mac – Mac OS X– macOS – Windows – Linux – macOS– Mac OS X– Solaris– FreeBSD– Android OS– Chrome OS

Pour le tutoriel suivant, nous avons utilisé l’hyperviseur VM VirtualBox d’Oracle. Le logiciel est disponible gratuitement aux utilisateurs sous licence GNU General Public License (GNU GPLv2). Nous vous recommandons d’effectuer un téléchargement à partir du site Web du fournisseur. Le tableau suivant présente les produits hyperviseurs les plus populaires pour Windows, Linux et macOS ainsi que les systèmes invités possibles.

  1. Ouvrez la page d’Oracle avec l’URL suivante.
  2. Sélectionnez le pack de téléchargement correspondant à votre système d’exploitation (dans notre cas Windows).
  3. Enregistrez le fichier.exe avec les données binaires dans n’importe quel répertoire de votre ordinateur.
Note

Outre le logiciel de base, Oracle fournit également gratuitement Oracle VM VirtualBox Extension Pack, un module d’extension propriétaire pour le logiciel de virtualisation open source. Pour ce tutoriel, ce pack d’extension n’est pas nécessaire.

Étape 2 : installer Oracle VM VirtualBox

Une fois le téléchargement terminé, double-cliquez sur le fichier.exe pour exécuter le paquet binaire. Suivez les instructions de l’assistant d’installation pour installer Oracle VM VirtualBox localement sur votre système.

À la fin du processus d’installation, le logiciel lance Oracle VM VirtualBox Manager. C’est ici que vous créez et gérez vos machines virtuelles.

Étape 3 : télécharger l’image du système d’exploitation

Pour exécuter un système invité dans une machine virtuelle, vous avez besoin d’une image du système d’exploitation. Il s’agit d’une image mémoire qui peut être interprétée par le logiciel de l’hyperviseur comme un disque dur système. Un tel fichier peut être au format de fichier libre .iso. Les solutions de virtualisation courantes fonctionnent également avec des formats de conteneurs propriétaires pour les fichiers image tels que .vmdk (VMware), .vhd (Xen et Microsoft Hyper-V) et .vdi (Oracle VM VirtualBox).

Pour ce tutoriel, nous utilisons le système d’exploitation open source Ubuntu 17.10.1, qui peut être téléchargé sous forme de fichier .iso depuis le site officiel du projet Ubuntu. Procédez comme suit :

  1. Ouvrez l’URL.
  2. Choisissez la version adaptée à votre système d’exploitation et cliquez sur « Download ».
  3. Enregistrez le fichier local .iso sur votre système.
Conseil

Les utilisateurs qui souhaitent utiliser un PC virtuel Windows en tant que système invité trouveront de nombreux fichiers image pour les solutions de type hyperviseur de VMware, Hyper-V, VirtualBox et Parallels sur l’environnement de développement officiel : site Web développeur Microsoft fournis par Microsoft à des fins de test - external-link-window "Téléchargement de machines virtuelles">le site américain de Microsoft. Plus de packs complets pour machines virtuelles sont disponibles sur le site américain de Microsoft fournis par Microsoft à des fins de test.

Étape 4 : créer une nouvelle machine virtuelle

Cliquez sur l’icône « New » du gestionnaire d’Oracle VM VirtualBox pour ajouter une nouvelle machine virtuelle.

Étape 5 : sélectionner le système d’exploitation et renommer VM

Renommez la nouvelle machine virtuelle et sélectionnez le système d’exploitation que vous voulez exécuter dans la VM.

Confirmez votre sélection en cliquant sur « Next ».

Étape 6 : attribuer des ressources matérielles - mémoire

Affectez une partie de la mémoire fournie par le système hôte à la nouvelle machine virtuelle.

Confirmez votre sélection en cliquant sur « Next ».

Étape 7 : attribuer des ressources matérielles - espace disque dur

Dans l’étape suivante, décidez si vous souhaitez créer un nouveau disque dur virtuel ou affecter un disque dur virtuel existant à la machine virtuelle.

Ici, nous allons créer un nouveau disque dur virtuel sur lequel nous allons réinstaller le système invité à partir de zéro.

Sélectionnez l’option « Create a virtual hard disk now » et confirmez votre sélection en cliquant sur « Create ».

Conseil

Différents fournisseurs proposent aux utilisateurs des machines virtuelles entièrement configurées en tant que vidage de mémoire. Si vous souhaitez profiter d’une telle offre, téléchargez la machine virtuelle dans l’un des formats de conteneur pris en charge et sélectionnez-la via l’option « Use an existing virtual hard disk file ». Oracle VM VirtualBox prend en charge le format de fichier interne VirtualBox Disk Image (.vdi) ainsi que les images mémoire aux formats Virtual Hard Disk (.vhd) et Virtual Machine Disk (.vmdk).

Dans l’étape suivante, sélectionnez le format de conteneur que VirtualBox doit utiliser pour le nouveau disque dur virtuel. Si vous n’avez pas l’intention d’exécuter la VM nouvellement créée à l’aide d’une solution de virtualisation différente, nous vous recommandons le format VDI par défaut.

Confirmez ensuite votre choix avec « Next ».

L’étape suivante consiste à choisir si vous souhaitez attribuer un espace disque disponible fixe à la machine virtuelle. Il est également possible de lui octroyer dynamiquement de l’espace sur le disque dur physique. Dans ce cas, la machine virtuelle n’a pas de quota fixe, mais les ressources mémoire utilisées sur le disque physique sont automatiquement adaptées aux besoins actuels de mémoire de la machine virtuelle.

Note

Une quantité d’espace disque attribuée dynamiquement augmente avec les besoins de stockage de la machine virtuelle. Mais attention : l’espace disque utilisé n’est pas automatiquement réduit lorsque vous libérez de la mémoire dans la VM en supprimant des fichiers.

Pour ce tutoriel, nous choisissons un espace de stockage fixe.

La cible de stockage et la taille du disque dur virtuel sont définies à l’étape suivante.

Cliquez sur « Create » pour terminer le processus de configuration et demander à VM VirtualBox de créer la nouvelle machine virtuelle.

La VM qui vient d’être créée apparaît avec le nom que vous avez sélectionné dans la liste des machines virtuelles disponibles.

VM VirtualBox crée un dossier pour chaque machine virtuelle. Celui-ci est automatiquement créé dans la destination de stockage que vous avez sélectionnée et contient le fichier VDI pour le disque dur virtuel, un fichier journal et une définition de la VM.

Étape 8 : installer le système hôte

Démarrez la nouvelle machine virtuelle en la sélectionnant avec la souris et en cliquant sur le bouton « Start » dans le menu.

Immédiatement après le démarrage, le programme demande quel fichier image doit être utilisé pour exécuter la machine virtuelle.

Sélectionnez l’image du système d’exploitation que vous avez téléchargée à l’étape 3. Confirmez votre sélection en cliquant sur « Start ».

Nous sélectionnons le fichier .iso avec l’image mémoire d’Ubuntu 17.10.1.

Note

Puisque les fichiers .iso contiennent l’image d’un système d’exploitation complet, ce sont généralement de très gros fichiers. Dans notre cas, l’image du système d’exploitation pour Ubuntu 17.10.1 correspond à 1,4 gigaoctet.

Une fois que vous avez sélectionné l’image souhaitée, VM VirtualBox démarre le système d’exploitation stocké dans le fichier dans un environnement virtuel isolé. Chaque machine virtuelle fonctionne dans une fenêtre séparée. Depuis que nous avons décidé de réinstaller Ubuntu à partir de zéro, la fenêtre de la machine virtuelle affiche l’écran de démarrage du système d’exploitation.

Cliquez sur « Install Ubuntu » et laissez-vous guider par l’assistant d’installation du système invité.

Une fois le processus d’installation terminé, le système d’exploitation peut être utilisé comme tout autre système installé sur du matériel physique.

Ajoutez d’autres machines virtuelles si nécessaire.

Toutes les modifications que vous apportez à votre VM sont automatiquement écrites dans le fichier VDI que vous avez créé en tant que disque virtuel pendant la configuration. Si vous voulez exécuter le système invité sur une machine différente, copiez simplement le dossier de fichiers de votre machine virtuelle (y compris le fichier VDI, le fichier journal et la définition) sur le périphérique correspondant. Notez que chaque machine sur laquelle vous voulez exécuter votre VM doit avoir un logiciel de virtualisation compatible.

Conseil

La technologie des conteneurs constitue une alternative aux systèmes invités dans les machines virtuelles. Notre tutoriel Docker pour débutants explique comment les applications peuvent être virtualisées en utilisant des conteneurs au niveau du système d’exploitation et détaille les avantages de ce type de virtualisation.