La virtualisation est une technique informatique qui consiste à créer, grâce à un logiciel, des versions « virtuelles » d'éléments normalement physiques : un ordinateur complet, un serveur, un disque de stockage ou un réseau. Concrètement, elle permet de faire fonctionner sur une seule machine réelle plusieurs machines virtuelles, chacune avec son propre système d'exploitation, ses applications et ses réglages, comme si elles étaient des ordinateurs distincts posés les uns à côté des autres. Le chef d'orchestre de cette illusion est un logiciel spécialisé, l'hyperviseur, qui partage la puissance du processeur, la mémoire et l'espace disque entre les différentes machines virtuelles tout en les isolant les unes des autres. Longtemps réservée aux grands ordinateurs des années 1960 et 1970, la virtualisation s'est généralisée dans les entreprises à partir des années 2000, avant de devenir le socle technique du cloud, ces services informatiques loués à distance que nous utilisons tous, souvent sans le savoir. Elle intéresse aussi les particuliers, qui peuvent par exemple faire tourner Linux dans une fenêtre de leur ordinateur sous Windows. Cette définition présente le principe de la virtualisation, ses différentes formes, ses avantages, ses usages concrets et les limites dont il faut tenir compte.

Qu'est-ce que la virtualisation ? Définition simple

Pour comprendre la virtualisation, on peut la comparer à un immeuble découpé en appartements. Le bâtiment, avec ses fondations, sa plomberie et son électricité, correspond à l'ordinateur physique, que les informaticiens appellent l'hôte. Les appartements sont les machines virtuelles, ou VM (pour virtual machines), que l'on appelle aussi des invités : chacun dispose de sa porte, de ses meubles et de ses habitudes, et les occupants n'ont pas besoin de savoir ce qui se passe chez le voisin. Le syndic qui répartit l'eau, le chauffage et l'électricité entre les logements joue le rôle de l'hyperviseur. Techniquement, chaque machine virtuelle croit disposer d'un processeur, d'une quantité de mémoire vive, d'un disque dur et d'une carte réseau bien à elle ; en réalité, ces composants sont simulés ou partagés par l'hyperviseur, qui intercepte les demandes de la VM et les traduit en opérations sur le matériel réel. Le disque d'une machine virtuelle n'est d'ailleurs, le plus souvent, qu'un gros fichier stocké sur l'hôte, ce qui permet de le copier, de le déplacer ou de le sauvegarder très facilement. C'est cette abstraction du matériel, c'est-à-dire la séparation entre le logiciel et la machine qui l'exécute, qui fait toute la force de la virtualisation : un système d'exploitation n'est plus prisonnier d'un ordinateur précis.

Schéma en couches de la virtualisation : matériel, hyperviseur et machines virtuelles, pour un hyperviseur de type 1 et de type 2Type 1 : « bare metal »Type 2 : hébergéVM 1WindowsapplisVM 2Linuxsite webVM 3LinuxbaseHyperviseurMatériel physiqueprocesseur, mémoire, disquesserveurs de centres de donnéesVM Linuxpour testerVieux Windowsancien logicielLogiciel de virtualisationSystème hôte (Windows, macOS...)Matériel physiqueun ordinateur personnelpostes de travail, tests
L'hyperviseur de type 1 s'installe directement sur le matériel ; celui de type 2 fonctionne comme une application au-dessus d'un système d'exploitation existant.

Une idée née sur les grands ordinateurs

Contrairement à ce que l'on pourrait croire, la virtualisation n'est pas une invention récente. Elle apparaît dans les années 1960, à l'époque des mainframes, ces ordinateurs centraux qui occupaient des salles entières et coûtaient des fortunes. Les ingénieurs d'IBM cherchent alors à permettre à plusieurs utilisateurs de travailler en même temps sur une seule de ces machines sans se gêner, et développent des systèmes capables de donner à chacun l'illusion de disposer de son propre ordinateur. Ces travaux aboutissent dans les années 1970 à des systèmes de machines virtuelles exploités commercialement sur les gros ordinateurs. L'arrivée des micro-ordinateurs, bon marché et individuels, relègue ensuite la virtualisation au second plan pendant une vingtaine d'années. Elle revient en force à la fin des années 1990 lorsque des éditeurs parviennent à virtualiser les processeurs des PC ordinaires, une prouesse technique car ceux-ci n'avaient pas été conçus pour cela. Au cours des années 2000, les fabricants de processeurs ajoutent des fonctions matérielles qui facilitent le travail des hyperviseurs, des solutions libres voient le jour, et la virtualisation s'impose dans les salles serveurs des entreprises. Les grands services de cloud, lancés à la même période, en font leur moteur principal, avant que les conteneurs ne viennent compléter cette boîte à outils.

Comment fonctionne la virtualisation ? Le rôle de l'hyperviseur

Au cœur de la virtualisation se trouve l'hyperviseur, aussi appelé moniteur de machines virtuelles. Les spécialistes en distinguent deux grandes catégories. L'hyperviseur de type 1, dit bare metal (« métal nu »), s'installe directement sur le matériel, à la place d'un système d'exploitation classique : très léger, il est conçu pour les serveurs et offre les meilleures performances ainsi qu'une grande robustesse. C'est le cas de solutions comme VMware ESXi, Microsoft Hyper-V, Xen ou de KVM, intégré au noyau Linux et utilisé par des plateformes comme Proxmox. L'hyperviseur de type 2, dit hébergé, fonctionne au contraire comme un logiciel ordinaire au-dessus d'un système déjà installé : on le lance comme n'importe quelle application, par exemple VirtualBox ou VMware Workstation, pour ouvrir une machine virtuelle dans une fenêtre. Il est idéal pour tester un système, faire tourner un ancien logiciel ou s'entraîner, mais moins performant puisqu'il ajoute une couche intermédiaire. Pour limiter les pertes de vitesse, les processeurs modernes intègrent des instructions dédiées à la virtualisation, comme Intel VT-x et AMD-V, qui permettent aux machines virtuelles d'exécuter la plupart de leurs opérations directement sur le processeur. Quant à QEMU, souvent cité avec KVM, il s'agit d'un émulateur capable de simuler des composants matériels, sur lequel s'appuient plusieurs solutions de virtualisation.

Les différentes formes de virtualisation

Le mot virtualisation recouvre en réalité plusieurs techniques, qui partagent la même idée de séparer le logiciel du matériel. La plus connue est la virtualisation de serveurs, qui découpe une machine physique puissante en plusieurs serveurs virtuels hébergeant chacun un service : un site web, une messagerie, une base de données. La virtualisation du poste de travail, souvent appelée VDI (Virtual Desktop Infrastructure), installe les bureaux Windows ou Linux des salariés dans un centre de données ; chacun y accède depuis un ordinateur léger, une tablette ou de chez lui, et retrouve toujours le même environnement. La virtualisation du stockage regroupe des disques dispersés sur plusieurs machines en un grand espace unique, découpé ensuite à la demande. La virtualisation du réseau remplace une partie des équipements physiques, commutateurs, routeurs ou pare-feu, par des équivalents logiciels configurables en quelques clics. Il existe aussi la virtualisation d'applications, qui permet de faire fonctionner un logiciel sans l'installer réellement sur l'ordinateur. Enfin, les conteneurs, popularisés par l'outil Docker, constituent une forme allégée de virtualisation : au lieu de simuler une machine entière avec son propre système d'exploitation, ils isolent seulement des applications qui partagent le noyau du système hôte, ce qui les rend beaucoup plus légers et rapides à démarrer.

TechniqueCe qui est virtualiséExemple d'usage
Machine virtuelle (serveur)Un ordinateur complet avec son système d'exploitationHéberger plusieurs services sur un même serveur
Bureau virtuel (VDI)Le poste de travail de l'utilisateurTélétravail, postes partagés en entreprise
Stockage virtuelUn ensemble de disques vu comme un seul espaceAllouer de la place aux serveurs à la demande
Réseau virtuelCommutateurs, routeurs, pare-feuIsoler les services d'un centre de données
ConteneurUne application et ses dépendances, sans système completDéployer rapidement une application web

Machines virtuelles ou conteneurs : quelle différence ?

La comparaison entre machines virtuelles et conteneurs revient sans cesse lorsqu'on parle de virtualisation. Une machine virtuelle embarque un système d'exploitation complet, avec son propre noyau, ses pilotes et ses services : elle pèse souvent plusieurs gigaoctets, met de quelques secondes à quelques minutes à démarrer, mais offre une isolation très forte et peut faire tourner un système différent de celui de l'hôte, par exemple Windows sur un serveur Linux. Un conteneur, lui, ne transporte que l'application et les bibliothèques dont elle a besoin ; il partage le noyau du système hôte et démarre presque instantanément, ce qui permet d'en lancer un très grand nombre sur une même machine. Cette légèreté en a fait l'outil favori des développeurs d'applications web, qui découpent leurs logiciels en petits services indépendants et les déploient automatiquement avec des orchestrateurs comme Kubernetes. L'isolation des conteneurs est en revanche moins étanche que celle des machines virtuelles, et ils doivent en principe utiliser le même type de système que l'hôte. Dans la pratique, les deux approches se combinent souvent : les conteneurs tournent eux-mêmes à l'intérieur de machines virtuelles louées dans le cloud, chaque technologie apportant ce qu'elle fait de mieux.

Illustration de la virtualisation informatique : plusieurs machines virtuelles fonctionnant sur un même serveur physique

Quels sont les avantages de la virtualisation ?

Le premier bénéfice de la virtualisation est la consolidation des serveurs. Avant sa généralisation, chaque application tournait souvent sur sa propre machine physique, par prudence, si bien que de nombreux serveurs restaient inoccupés la plupart du temps tout en consommant de l'électricité et de la place. En regroupant plusieurs machines virtuelles sur un même serveur, on utilise beaucoup mieux le matériel, on réduit le nombre d'appareils à acheter, à alimenter et à refroidir, et l'on économise de l'espace dans les salles informatiques. Vient ensuite la souplesse : créer une nouvelle machine virtuelle prend quelques minutes, à partir d'un modèle préparé à l'avance, là où l'achat et l'installation d'un serveur physique demandent des jours voire des semaines. On peut aussi ajouter de la mémoire ou de la puissance à une VM en fonction des besoins. La virtualisation facilite enfin la sauvegarde et la reprise après incident : grâce aux instantanés, ou snapshots, on fige l'état d'une machine avant une mise à jour risquée pour y revenir en cas de problème, et l'on peut déplacer une VM d'un serveur à un autre, parfois sans même l'arrêter, pour effectuer une maintenance ou contourner une panne. L'isolation entre machines virtuelles limite par ailleurs les conséquences d'un plantage ou d'une infection, qui restent en principe confinés à la VM concernée.

Animation de la consolidation : quatre serveurs peu utilisés regroupés en machines virtuelles sur un seul serveurAvant : 4 serveursAprès : 1 serveur, 4 VMMessageriepeu chargéSite webpeu chargéFichierspeu chargéComptabilitépeu chargéVM messagerieVM site webVM fichiersVM comptamatériel bien mieux utiliséMoins de machines à acheter, alimenter et refroidir
La consolidation regroupe sur un seul serveur physique des services qui occupaient auparavant plusieurs machines sous-utilisées.

À quoi sert la virtualisation ? Usages concrets

La virtualisation est partout dans l'informatique contemporaine. Elle constitue d'abord la fondation du cloud computing : lorsqu'une entreprise loue un serveur chez un grand hébergeur, elle reçoit presque toujours une machine virtuelle, créée en quelques secondes sur un parc de serveurs physiques partagé entre de nombreux clients. Dans les entreprises, elle sert à héberger les applications métier, à fournir des bureaux virtuels aux salariés en télétravail et à organiser des plans de continuité d'activité, en répliquant les machines virtuelles sur un second site pour pouvoir redémarrer rapidement en cas de sinistre. Les développeurs et les testeurs en font un usage quotidien pour reproduire différents environnements, vérifier qu'un logiciel fonctionne sur plusieurs versions de Windows ou de Linux, ou repartir d'une installation propre à chaque essai. Les spécialistes de la sécurité informatique ouvrent des fichiers suspects dans des machines virtuelles isolées, appelées « bacs à sable », pour observer le comportement d'un virus sans risquer leur propre poste. Dans l'enseignement, elle permet de fournir à chaque étudiant un serveur à configurer sans multiplier le matériel. Les particuliers, enfin, l'utilisent pour essayer un nouveau système d'exploitation, faire fonctionner un ancien logiciel devenu incompatible ou, sur les Mac et les PC récents, lancer un autre système sans redémarrer l'ordinateur.

Les limites et les risques de la virtualisation

La virtualisation n'est pas sans contreparties. Toute couche supplémentaire consomme un peu de ressources : même si les processeurs modernes réduisent fortement cette perte, certaines tâches très gourmandes, comme le calcul intensif ou les jeux en 3D, restent plus performantes sur une machine physique, et des machines virtuelles trop nombreuses sur un même hôte se disputent le processeur, la mémoire et les disques, au point de ralentir toutes ensemble. La concentration des services crée par ailleurs un point de défaillance unique : si le serveur physique tombe en panne sans dispositif de secours, ce sont toutes les machines qu'il héberge qui s'arrêtent d'un coup. La sécurité demande aussi une attention particulière, car une faille dans l'hyperviseur pourrait en théorie permettre à un attaquant de sortir d'une VM pour atteindre les autres ; ces failles sont rares mais prises très au sérieux, d'où l'importance des mises à jour régulières. Les environnements virtualisés deviennent vite complexes à administrer : il faut suivre des dizaines ou des centaines de machines, gérer leurs sauvegardes, éviter la prolifération de VM oubliées et maîtriser le coût des licences, dont les conditions ont parfois évolué brutalement chez certains éditeurs. Enfin, la virtualisation permet d'économiser du matériel et de l'énergie, mais elle repose sur des infrastructures très consommatrices, dont l'efficacité dépend largement de la conception de chaque data center.