Un hyperviseur est un composant logiciel (ou logiciel + micro-noyau) qui permet de créer et de gérer des machines virtuelles (VM). Il joue le rôle d'« intermédiaire » entre le matériel (ou le système hôte) et les machines virtuelles. De manière générale, on distingue deux grands types d'hyperviseurs :
Cependant, on peut affiner cette classification pour les hyperviseurs de type 1 en distinguant ceux qui s'installent directement sur le matériel (Ex. : ESXi, Hyper-V Core, Xen en mode "bare-metal"...) de ceux qui reposent sur un OS minimal ou sur un noyau hôte dédié (Ex. : Proxmox VE qui s'appuie sur Debian + KVM, bhyve sous FreeBSD, NVMM sous NetBSD, etc.).
Un hyperviseur (ou « monitor de machine virtuelle ») a pour rôle :
Grâce à un hyperviseur, on peut :
Un hyperviseur de type 1 s'exécute directement sur le matériel (ou sur un noyau extrêmement léger).
C'est-à-dire qu'il n'y a pas de système d'exploitation « classique » entre l'hyperviseur et le matériel.
Certains (dont je fais partie !) les classent en deux sous-catégories :
1. Les hyperviseurs de type 1 "bare-metal purs"
2. Les hyperviseurs de type 1 "hébergés sur un noyau minimal (ou sur un OS technique)"
Dans ces solutions, on installe un système spécialisé (une distribution très légère ou un OS dédié) qui inclut un noyau possédant des capacités de virtualisation intégrées (KVM, bhyve, etc.).
Sur cet OS minimal (souvent optimisé), on lance ensuite les VM, ce qui se rapproche d'une expérience « bare-metal » du point de vue de la virtualisation.
Un hyperviseur de type 2 s'appuie sur un système d'exploitation hôte déjà existant (Windows, Linux, macOS...), au-dessus duquel il tourne comme un logiciel classique.
Le système d'exploitation hôte gère les pilotes matériels, la gestion de la mémoire, du CPU, etc., puis l'hyperviseur se « branchera » dessus pour présenter des ressources virtuelles aux machines invitées.
Ces hyperviseurs de type 2 sont plus souvent utilisés en environnement de test ou bureautique (machines virtuelles de développement, par ex.), car ils permettent d'exécuter facilement des VM à partir d'un ordinateur personnel déjà équipé d'un OS.
Récapitulatif des différences
Exécution :
- Type 1 (bare-metal) : Directement sur le matériel, sans OS sous-jacent
- Type 1 (OS minimal) : Sur un noyau/OS spécialisé minimal (Ex. Proxmox VE, FreeBSD avec bhyve, etc.)
- Type 2 (hébergé) : Au-dessus d'un OS hôte (Windows, Linux, macOS)
Performance :
- Type 1 (bare-metal) : Très performants, car la couche logicielle est minimale
- Type 1 (OS minimal) : Presque équivalent au bare-metal, dépend juste d'un noyau modifié/optimisé
- Type 2 (hébergé) : Moins performant (surcouche de l'OS hôte), plus adapté à des usages de test
Cas d'usage principal :
- Type 1 (bare-metal) : Data centers, serveurs de production, haute disponibilité (HA)
- Type 1 (OS minimal) : Data centers, PME, homelab, solutions "clés en main" de virtualisation
- Type 2 (hébergé) : Environnements de bureau, dev/test, utilisateurs finaux
Exemples :
- Type 1 (bare-metal) : VMware ESXi, Microsoft Hyper-V Core, Xen
- Type 1 (OS minimal) : Proxmox VE (KVM), bhyve (FreeBSD), NVMM (NetBSD)
- Type 2 (hébergé) : VMware Workstation, VirtualBox, Parallels Desktop
Administration :
- Type 1 (bare-metal) : Interfaces spécifiques (vSphere, Hyper-V Manager, Xen Orchestra, etc.)
- Type 1 (OS minimal) : Interface web/CLI (Proxmox, bhyve via la CLI, etc.), plus ou moins intégrée
- Type 2 (hébergé) : Application graphique classique (Workstation, VirtualBox, etc.)