La virtualisation : Qu'est ce que c'est ?
On vous à déjà parlé de plusieurs logiciels permettant de créer et utiliser des Machines Virtuelles (VM), mais on ne vous à pas encore présenté sur quels principes ces logiciels se basent et comment ils fonctionnent. Cet article est la pour cela.
C'est quoi la virtualisation ?
La virtualisation est la technologie qui permet à un ordinateur d'émuler le comportement d'un autre ordinateur, cela permet entre autres d'executer un système identique ou différent de celui installé sur votre ordinateur sans impacter ce dernier. Le système virtualisé par votre ordinateur est alors complètement ou partiellement isolé et n'influence donc pas le comportement de votre appareil.
En virtualisation il existe deux termes très souvent employés qui peut être utile de connaitre :
- Machine ou système Hôte
- Machine ou système Invitée
Machine/système Hôte
Il s'agit de l'ordinateur ou du système d'exploitation (OS) sur lequel on va faire fonctinner un environnement virtuel comme un système d'exploitation ou un logiciel. C'est sur ce materiel que le système va chercher les ressources.
Machine/système Invitée
C'est le système ou le logiciel qui sera émulé par votre ordinateur, il peut se comporter comme un appareil indépendant de votre matériel mais utilise bel et bien les ressources de ce dernier pour fonctionner.
Les différentes technologies de virtualisation
la virtualisation est un système complèxe et se base sur plusieurs système afin d'avoir différents types d'isolation entre le sytème hôte et le système invité et ainsi virtualiser plus ou moins efficacement différents systèmes, on parle alors d'hyperviseurs.
Hyperviseur de type 1
Un hyperviseur de type 1 est un logiciel de virtualisation qui s'exécute directement sur le matériel de votre ordiateur lui permettant d'acceder aux ressources de votre appareil sans soliciter le système d'exploitation, il est donc indépendant et fonctionne de manière native c'est ce qu'on appelle le "bare metal". Il peut également virtualiser un système d'exploitation pour l'utiliser comme système princpal pour se servir de logiciels ou d'outils utiles.
Cela permet de faire fonctionner les machines virtuelles sans trop impacter les ressources matérielles, les hyperviseurs de type 1 les plus connus sont :
- Hyper-V (par exemple, l'installation de Hyper-V sous Windows déplace l'OS dans un environnement virtuel principal en lui donnant accès aux ressources matérielles)
- Proxmox VE (basé sur KVM) ou encore VMware ESXi (qui placent également le système Linux sur lequel ils sont basés dans un environnement virtuel en donnant accès aux ressources matérielles).
Hyperviseur de type 2
Un hyperviseur de type 2 est un logiciel qui, contrairement à l'hyperviseur de type 1, à besoin du système d'exploitation pour fonctionner. L'OS va allouer les ressources nécessaires au logiciel pour faire fonctionner la machine invité sans que cette dernière n'ai accès au matériel de la machine hôte.
il s'agit du type qui isole le plus le système invité du système hôte, ajoutant une couche logicielle supplémentaire par rapport à l'hyperviseur de type 1. Les hyperviseurs de type 2 les plus connus sont :
- Oracle VM VirtualBox
- VMware Workstation
- QEMU
Isolateur/Conteneur
Un isolateur ou plus communément appelé conteneur, est un logiciel qui permet de virtualiser des programmes ou des services dans un espace utilisateur (c'est-à-dire un espace de travail/un interpreteur de commandes) indépendant de celui de la machine hôte, se basant sur le noyau de l'OS hôte ou en émulant un noyau virtuel.
Ce type de virtualisation n'émule pas pas forcément de système d'exploitation ou de matériel distinct mais se base plutôt sur celui existant sur l'ordinateur hôte. Les logiciels de conteneur les plus connus sont :
- Docker
- LXC
- Chroot (Celui-ci étant plutôt le programme d'origine sur lequel se basent Docker et LXC.)
Comment sont réparties les ressources materielles ?
Pour les plus techniques d'entre vous, vous pouvez vous demander comment sont réparties les capacités du processeur pour faire fonctionner les machines virtuelles.
Pour cela, il y à un moyen très simple, utiliser des coeurs physiques entiers pour chaque machine virtuelle serait beaucoup trop gourmand en ressources et nous serions très vite limités par un petit nombre de VM. C'est pourquoi on a inventé :
Les vCPU (ou vCore)
il s'agit de processeurs virtuels interprétés par les machines invités comme des processeurs réels destinés à faire fonctionner une VM de façon à être la plus économe possible.
Mais comment sont déterminés les vCPUs ?
Cela est fait à l'aide d'un calcul tout simple :
(le nombre de threads X le nombre de coeurs) X le nombre de processeurs physiques sur votre machine hôte = le nombre de vCPUs.
Pour connaitre ces informations sur Windows, vous pouvez utiliser le raccourci clavier ctrl + maj + echap
puis dans l'onglet "Performances" vous aurez votre nombre de processeur physique, votre nombre de coeur, et votre nombre de processeur logique (threads).
Sur Linux, il vous suffit simplement de lancer la commande lscpu
dans un terminal.
Démonstration
Imaginons que vous avez un processeur à 2 coeurs et 4 threads,
(4 threads X 2 coeurs) X 1 processeur = 8 vCPUs
Vous avez donc 8 processeurs virtuels sur votre machine, cela veut dire que vous pouvez théoriquement faire fonctionner 8 VM avant d'ateindre la limite des ressources de votre matériel.
Pour ce qui est du stockage, la plupart des logiciels de virtualisation créés ce qu'on appelle des disque dur virtuels, ce sont des fichiers au format .vhd
, .vhdx
, .vmdk
ou encore .qcow2
, dans lesquels sont enregistrés les données des machines virtuelles comme si c'étaient de vrais disques durs.
Pour ce qui est des volumes docker, ils sont montés dans le systèmes comme des volumes logiques basiques gérés par linux.
À quoi ça sert ?
Enfin, après toutes ces explications, vous vous posez surement cette question. C'est compréhensible, et pour y répondre nous allons voir ensemble quelle est l'utilité de ces systèmes.
Les logiciels de virtualisation classiques comme VirtualBox, VMware Workstation etc... Sont destinés à un grand public, ils sont principalement utilisés pour tester un système d'exploitation différent de celui qu'on utilise régulièrement par exemple.
Les hyperiseurs comme Proxmox, VMware ESXi etc... Eux sont destinés à un usage bien différent, majoritairement utilisés en entreprise, ils servent la plupart du temps à héberger plusieurs serveurs sur un nombre limité de materiel, ce qui permet d'économiser des ressources énergétiques et économiques.
Les conteneurs eux, sont globalement utilisés dans le même objetif que les hyperviseurs de type 1, la différence réside dans le fait de pouvoir moins bien gérer les ressources matérielles à allouer aux services virtualisés. Bien sur, il est possible d'utiliser des conteneurs sur des hyperviseurs cela facilite bien plus la gestion des ressources du serveur physique, néamoins les actions possibles à l'interieur des conteneurs restent limités à l'utilisation de services peu gourmands et peu modulaires.
Pour nous aider à nous améliorer, n'hesitez pas à faire part de vos avis en commentaires ou même à poser vos questions si vous avez besoin d'aide supplémentaire.
Vous pouvez également partager cet article et nous suivre sur Twitter/X :
ainsi que sur Instagram :
Chez By-Hoster, vous avez aussi des machines virtuelles et des conteneurs à disposition pour réaliser tous vos projets.
Alors profitez-en dès maintenant avec le code promo "MAKEINLAB" vous offrant -10% de réduction sur toute la boutique !