Aller au contenu

Préférences et cookies

Afin d’améliorer votre expérience sur notre site et de réaliser des statistiques de visites, nous utilisons des cookies. Rien n’est déposé sans votre accord, et le refus n’enlève l’accès à aucun contenu. Ce choix peut être modifié à tout moment.

Gérer les traceursVos données

Personnaliser

ArticleInfrastructure & Cloud

Machines virtuelles : pourquoi sont-elles si utiles

Beaucoup d'innovations actuelles de l'informatique trouvent leur origine dans les machines virtuelles et la séparation entre le logiciel et le matériel. Zoom sur leur fonctionnement, leurs bénéfices mais aussi limites.

La rédaction

Le cloud, l'edge, les microservices... Bon nombre de technologies de pointe actuelles n’existeraient pas sans le concept de machine virtuelle, où les systèmes d'exploitation et les instances logicielles sont séparés du serveur physique sous-jacent. Mais au fait, de quoi parle-t-on exactement ?

Ce qu'est une machine virtuelle

Reposant sur un hyperviseur de type 1, Une machine virtuelle (VM) est un logiciel qui exécute un OS et des applications sans être lié à une machine physique. Dans une instance de VM, une ou plusieurs machines invitées peuvent fonctionner sur un serveur hôte. Chaque VM possède son propre système d'exploitation et fonctionne séparément des autres VM, même si elles sont situées sur le même hôte physique. Les VM s'exécutent généralement sur des serveurs, mais elles peuvent également être exécutées sur des PC, voire sur des plates-formes embarquées. Plusieurs machines virtuelles peuvent partager les ressources d'un hôte physique, notamment les cycles de CPU, la bande passante réseau et la mémoire.

L'origine des machines virtuelles remonte aux premiers jours de l'informatique, dans les années 1960, quand il fallait partager le temps d’usage des mainframes entre utilisateurs et exécuter le logiciel séparément du système de l’hôte physique. Au début des années 1970, la machine virtuelle a été définie comme « une copie efficace et isolée d'une machine informatique réelle ». Les VM telles que nous les connaissons aujourd'hui ont beaucoup évolué au cours des 20 dernières années, quand les entreprises ont adopté la virtualisation des serveurs afin d'utiliser plus efficacement la puissance de calcul de leurs serveurs physiques, mais aussi réduire le nombre de serveurs physiques et économiser de l'espace dans le datacenter. Comme des applications ayant des exigences différentes en matière de système d'exploitation pouvaient fonctionner sur un seul hôte physique, il n'était pas nécessaire de posséder un matériel serveur différent pour chacune d'elles.

Le fonctionnement des machines virtuelles...

En général, on distingue deux types de VM : Les VM de processus, qui séparent un seul processus, et les VM de système, qui offrent une séparation complète du système d'exploitation et des applications de l'ordinateur physique. Parmi les exemples de VM de processus, on peut citer la machine virtuelle Java, le framework .NET et la machine virtuelle Parrot. Les machines virtuelles système s'appuient sur des hyperviseurs (type 1 directement sur la base matérielle et type 2 sur un OS) qui servent d'intermédiaires et permettent aux logiciels d'accéder aux ressources matérielles. L'hyperviseur émule l'unité centrale, la mémoire, le disque dur, le réseau et d'autres ressources matérielles de l'ordinateur, composant ainsi un pool de ressources qui sont ensuite allouées aux différentes machines virtuelles en fonction de leurs besoins spécifiques. L'hyperviseur peut prendre en charge plusieurs plates-formes matérielles virtuelles isolées les unes des autres, ce qui permet aux VM d'exécuter les systèmes d'exploitation Linux et Windows Server sur le même hôte physique. VMware (ESXi/vSphere), Open Virtualization Alliance/Linux Foundation (KVM), Citix (Xen), Oracle (MV Server pour SPARC et Oracle VM Server pour x86) et Microsoft (Hyper-V) sont les principaux fournisseurs d’hyperviseur de type 1. Les systèmes desktop peuvent aussi exécuter des machines virtuelles vi un hyperviseur de type 2. Par exemple, un utilisateur Mac peut faire tourner une instance virtuelle Windows sur son matériel physique Mac.

... et des hyperviseurs

L'hyperviseur gère les ressources et les alloue aux machines virtuelles. Il planifie et ajuste également la distribution des ressources en fonction de la configuration de l'hyperviseur et des machines virtuelles, et il peut réaffecter les ressources en fonction des variations de la demande. La plupart des hyperviseurs appartiennent à l'une des deux catégories suivantes :

- Type 1. C’est typiquement l’hyperviseur bare-metal qui s'exécute directement sur la machine hôte physique et a un accès direct à son matériel. Les hyperviseurs de type 1 fonctionnent généralement sur des serveurs et sont considérés comme plus efficaces et plus performants que les hyperviseurs de type 2. Ils sont bien adaptés à la virtualisation des serveurs, des postes de travail et des applications. Par exemple, KVM, Microsoft Hyper-V et VMware ESXi sont des hyperviseurs de type 1.

- Type 2. Parfois appelé hyperviseur hébergé, un hyperviseur de type 2 est installé au-dessus du système d'exploitation de la machine hôte, laquelle gère les appels aux ressources matérielles. Les hyperviseurs de type 2 sont souvent déployés sur les systèmes des utilisateurs finaux pour répondre à des cas d’usage spécifiques. Par exemple, un développeur peut utiliser un hyperviseur de type 2 pour créer un environnement dédié pour créer son application, ou un analyste de données peut l'utiliser pour tester une application dans un environnement isolé. Par exemple, VMware Workstation, Parallels Desktop et Oracle VirtualBox sont des hyperviseurs de type 2.

Avantages des machines virtuelles

Le logiciel étant distinct de l'ordinateur hôte physique, les utilisateurs peuvent exécuter plusieurs instances de système d'exploitation sur un seul matériel, ce qui permet à l'entreprise de faire des économies de temps, de coûts de gestion et d'espace physique. Autre avantage : les machines virtuelles peuvent prendre en charge les applications existantes, ce qui évite la migration d'une ancienne application vers un système d'exploitation plus récent ou différent et donc un coût supplémentaire. Les développeurs utilisent aussi les machines virtuelles pour tester les applications dans un environnement sûr et « en bac-à-sable ». Les codeurs qui veulent savoir si leurs applications fonctionneront sur un nouveau système d'exploitation peuvent utiliser les VM pour tester leurs logiciels au lieu d'acheter le matériel et l'OS spécifiques. Par exemple, Microsoft a récemment mis à jour ses VM Windows gratuites qui permettent aux développeurs de télécharger une VM d'évaluation sous Windows 11 pour essayer le système d'exploitation sans avoir à mettre à niveau leur ordinateur principal. Les VM peuvent également servir à isoler les malwares avant qu’ils n’infectent une instance VM donnée. Les logiciels qui se trouvent à l'intérieur d'une VM ne peuvent pas altérer l'ordinateur hôte. De la même façon, la VM contient les malwares et les empêche de faire des dégâts ailleurs.

Inconvénients des machines virtuelles

Les VM ne présentent pas que des avantages. Par exemple, l'exécution de plusieurs machines virtuelles sur un hôte physique peut faire fluctuer les performances, notamment si les exigences d'infrastructure pour une application particulière ne sont pas satisfaites. Dans divers cas d’usage, elles sont aussi moins efficaces qu’un ordinateur physique. Et si le serveur physique tombe en panne, toutes les applications qui tournent sur l’hôte s'arrêtent. Pour pallier ce problème, les services IT combinent souvent systèmes physiques et systèmes virtuels.

Les autres formes de virtualisation

Le succès des VM dans la virtualisation des serveurs avec VMware a conduit à appliquer la virtualisation à d'autres domaines, comme le stockage, les réseaux et les postes de travail. Tout matériel utilisé dans le datacenter cherchera à exploiter le concept de SDC (Software-Defined Compute). C’est le cas de la virtualisation des contrôleurs de livraison d'applications, en cours d’études. Dans le domaine de la virtualisation des réseaux, les entreprises ont exploré les options de réseau en tant que service et la virtualisation des fonctions réseau (NFV), qui utilise des serveurs courants pour remplacer les appareils réseau spécialisés afin de rendre les services plus flexibles et plus évolutifs. Cette technologie diffère quelque peu de la mise en réseau définie par logiciel SDN, qui sépare le plan de contrôle du réseau du plan de transmission pour assurer un approvisionnement plus automatisé et une gestion des ressources du réseau basée sur des politiques. Une troisième technologie, dite de virtualisation des fonctions de réseau (Network Fonction Virtualization), consiste à offrir des services logiciels pouvant fonctionner dans un environnement NFV, y compris des processus comme le routage, le pare-feu, l'équilibrage de charge, l'accélération WAN et le cryptage. Par exemple, Verizon utilise le NFV pour alimenter ses services de réseau virtuel, ce qui permet à l’opérateur de créer et d’offrir à ses clients de nouveaux services et de nouvelles capacités à la demande. Ces services comprennent des applications virtuelles, le routage, les réseaux étendus définis par logiciel (SD-WAN), l'optimisation des réseaux étendus (WAN) et même un Session Border Controller as a Service (SBCaaS) pour gérer de manière centralisée et déployer en toute sécurité des services IP en temps réel, comme la VoIP et les communications unifiées.

VM et... conteneurs

L'essor des VM a stimulé le développement de technologies, notamment celle des conteneurs (un concept crée à l'origine par Oracle), qui poussent le concept encore plus loin et gagnent en popularité auprès des développeurs d'applications Web. Dans un conteneur, on peut virtualiser une seule application et ses dépendances, et l’ensemble est beaucoup plus facile à gérer qu'une VM, car un conteneur ne comprend que les binaires, les bibliothèques et les applications.

Certains disent que le développement des conteneurs pourrait rendre la machine virtuelle obsolète, mais les VM offrent suffisamment de capacités et d'avantages pour que la technologie continue à progresser. Par exemple, les machines virtuelles sont encore très utiles pour exécuter plusieurs applications ensemble ou pour faire tourner des applications anciennes sur des systèmes d'exploitation plus anciens. De plus, certains pensent que les conteneurs sont moins sûrs que les hyperviseurs de VM parce que les conteneurs partagent un seul système d'exploitation avec plusieurs applications, alors que les VM peuvent isoler l'application et le système d'exploitation. Gary Chen, directeur de recherche de la division Software-Defined Compute d'IDC, a déclaré que le marché des logiciels VM restait fondamental, même si les clients explorent les architectures cloud et les conteneurs. « Le marché des logiciels de machines virtuelles a remarquablement bien résisté et continuera de croître au cours des cinq prochaines années, même s’il est très mature et s'il approche de la saturation », a écrit M. Chen dans le document intitulé « Worldwide Virtual Machine Software Forecast, 2019-2022 » publié par IDC.

VM et... 5G + edge computing

Les VM font partie des nouvelles technologies au même titre que la 5G et l'edge computing. Par exemple, les fournisseurs d'infrastructure de bureau virtuel (Virtual desktop infrastructure, VDI) comme Microsoft, VMware et Citrix cherchent à étendre leurs systèmes VDI aux employés qui travaillent à domicile pour s’adapter au modèle hybride qui s’est répandu après la pandémie. « La VDI a besoin d'une latence extrêmement faible, car l’utilisateur transmet ses frappes au clavier et ses mouvements de souris à un bureau distant », a expliqué Mahadev Satyanarayanan, professeur d'informatique à l'université Carnegie Mellon. En 2009, M. Satyanarayanan avait écrit sur l’usage des cloudlets basés sur des machines virtuelles et leur capacité à fournir de meilleures performances de traitement aux équipements mobiles situés à la périphérie d'Internet. Ce travail a débouché sur le développement de l’edge computing. Dans l'espace de la 5G sans fil, le processus de découpage du réseau utilise les technologies de réseau défini par logiciel SDN et le NFV pour installer la fonctionnalité réseau sur des machines virtuelles sur un serveur virtualisé, permettant de fournir des services qui, auparavant, ne fonctionnaient que sur du matériel propriétaire. Comme de nombreuses autres technologies utilisées aujourd'hui, ces innovations émergentes n'auraient pas été développées sans les concepts originaux de VM introduits il y a plusieurs décennies.

Newsletter

La Quotidienne LMI

Recevez chaque matin l’actualité IT de la rédaction.

Machines virtuelles : pourquoi sont-elles si utiles