Qu'est-ce qu'une machine virtuelle (VM) ?

Qu'est-ce qu'une machine virtuelle (VM) ? hero image

La façon la plus simple d'envisager une machine virtuelle (VM) serait de la considérer comme un ordinateur à l'intérieur d'un ordinateur. La technologie actuelle et la puissance de traitement permettent maintenant de créer facilement des environnements informatiques virtuels à l'intérieur d'un ordinateur "hôte". Lis la suite pour savoir ce que cela signifie et comment tu peux tirer parti de cette technologie.

Les systèmes d'exploitation fonctionnent à partir d'un noyau (un programme qui contrôle les fonctions nécessaires et l'accès au matériel) et d'une structure de fichiers remplie de programmes et de données binaires.

Avec la technologie actuelle, il est désormais possible pour un ordinateur de partager ses ressources afin d'exécuter un noyau et un système d'exploitation distincts. Dans certains réseaux d'entreprise, l'hébergement de machines virtuelles permet de réaliser des économies en utilisant mieux le matériel.

Ou, à plus petite échelle, un ordinateur hôte peut émuler un logiciel alternatif à des fins de test, de développement, de recherche ou de loisirs.

Au fur et à mesure que nous en apprenons davantage sur les environnements virtuels, tu devras t'assurer de bien comprendre ce qu'est un serveur privé virtuel et ce qu'est un serveur en métal nu.

Qu'est-ce qu'une VM et comment fonctionne-t-elle ?

Un serveur physique qui crée et gère des machines virtuelles s'appelle un hyperviseur. Un hyperviseur peut découper (ou "partitionner") une partie de l'espace disque et allouer de la mémoire de façon à ce que, par essence, un ordinateur distinct puisse fonctionner à l'intérieur d'un ordinateur.

Exemple de graphique de machine virtuelle

Pourquoi utiliser plusieurs machines virtuelles au lieu d'utiliser un ordinateur séparé ?

Les logiciels de virtualisation peuvent permettre de réaliser des économies, selon la façon dont les ressources de ton serveur sont allouées.

Par exemple, imagine que tu disposes d'un ordinateur physique dédié (ou, d'un serveur bare metal dédié) mais que tu n'utilises qu'une fraction des ressources pour tes applications principales. Avec une architecture VM, tu pourrais diviser un serveur bare metal en plusieurs serveurs et ainsi économiser des coûts sur le long terme. Cette approche permet non seulement d'optimiser l'utilisation des ressources, mais présente également un avantage en termes de réduction des coûts à long terme. Cependant, il est important de peser le pour et le contre de l'utilisation de serveurs bare metal dans ce contexte, en prenant en compte des facteurs tels que la performance, la sécurité et l'évolutivité pour tes besoins spécifiques.

Les machines virtuelles sont-elles plus lentes qu'un véritable ordinateur ?

L'optimisation de la vitesse dépend de la façon dont l'ingénieur ou l'administrateur système a alloué les ressources. L'utilisation correcte d'un hyperviseur signifie que toutes les ressources sont allouées correctement pour garantir des performances adéquates dans toutes les VM.

Il existe de nombreux types de machines virtuelles, mais deux grands types d'hyperviseurs. Dans cet article, nous faisons référence aux hyperviseurs du premier type, dans lesquels un ordinateur hôte est segmenté pour accueillir plusieurs machines virtuelles. Pour la plupart des fonctions de "cloud computing" des entreprises, comme le projet OpenStack, c'est ce type d'hyperviseur qui est utilisé. Les coûts réels du matériel peuvent l'emporter sur les coûts de plusieurs machines virtuelles.

Mais ce n'est pas toujours le cas. Parfois, l'hyperviseur (ordinateur hôte) n'est qu'un ordinateur de bureau ordinaire qui exécute un logiciel virtuel. Pour prendre un exemple simple, l'émulation logicielle est souvent utilisée pour les jeux ; avec une VM, un joueur peut installer et faire fonctionner des jeux qui ont été écrits uniquement pour fonctionner sur une plateforme différente. Par exemple, si tu utilises un système d'exploitation Linux mais que tu veux faire tourner des jeux Windows, l'émulation logicielle via une application VM, VMware Workstation ou VirtualBox par exemple, peut t'aider.

Quelle est l'utilité d'un VM ?

Les machines virtuelles sont utiles pour toute une série d'applications du monde réel.

Les machines virtuelles sont souvent employées pour le développement de logiciels, la récupération de données et l'informatique en nuage.

Développement de logiciels

En créant et en gérant un environnement virtuel, les développeurs sont en mesure de recréer des conditions précises sur plusieurs postes de travail. De cette façon, un logiciel peut être facilement testé et respecté dans des circonstances reproductibles.

Au sens le plus élémentaire, ce type de conformité peut aider les développeurs à éviter un scénario dans lequel un logiciel fonctionne parfaitement sur un poste de travail mais pas sur un autre.

En fait, avec une VM, tu peux faire correspondre exactement ta zone de développement à ton environnement de production.

Avec les VM, n'importe quel système d'exploitation hôte peut faire fonctionner n'importe quel système d'exploitation invité.

Docker et Ansible

Des programmes comme Docker et Ansible te permettent de créer des environnements de conteneurs reproductibles qui sont ouverts/fermés et partagés sur ton réseau ou avec d'autres utilisateurs sur des postes de travail distincts.

Ansible fournit une plateforme pour créer et maintenir les spécifications des serveurs ou des VM. Docker gère divers conteneurs de logiciels qui peuvent être déployés dans différents environnements. Utilisés ensemble, tu peux automatiser le provisionnement des VM et des conteneurs logiciels.

Dans un scénario d'exemple, Ansible utilise un "inventaire" pour suivre le type de pile de serveurs que tu veux répliquer. Par exemple, si tu veux un inventaire composé de tout ce dont tu auras besoin pour un serveur web de base (Linux, MySQL, PHP, Apache, et peut-être Nginx), tu peux utiliser l'inventaire Ansible pour refléter ces paquets. Ansible utilise le langage de programmation YAML pour construire l'inventaire.

Tout ce que tu dois faire dans ce cas, c'est ajouter ces logiciels à ton inventaire et Ansible peut les faire tourner dans un environnement virtuel. De même, le même inventaire pourrait être utilisé au sein d'un serveur physique pour faire tourner plusieurs machines virtuelles.

À plus petite échelle, tu peux utiliser Docker localement pour faire tourner rapidement des conteneurs logiciels virtuels. Par exemple, si tu veux tester quelque chose dans une installation Linux toute fraîche, tu peux utiliser Docker pour créer les dépendances nécessaires. Il s'agit, par essence, d'une instance virtuelle car il ne s'agit pas d'un système informatique indépendant, mais il a plutôt besoin de l'ordinateur hôte pour fonctionner.

VMs et récupération de données

Les VM peuvent être utilisées pour récupérer des données en agissant comme des conteneurs de stockage virtuels. Des applications comme VMware, VirtualBox et Virtuozzo peuvent être utilisées pour lancer et gérer des environnements virtuels sur un réseau de matériel physique.

L'utilisation d'une VM comme disque de sauvegarde peut fournir une couche supplémentaire de sécurité en séparant le système de récupération des données de l'environnement de production en direct. Cela réduit également l'impact de tout logiciel compromis ou de tout exploit de système.

L'informatique en nuage sur les plates-formes VM

Les machines virtuelles jouent un rôle clé dans ce que l'on appelle désormais le "cloud computing".

Les services de données à grande échelle peuvent désormais gérer un parc massif d'ordinateurs et vendre de l'espace sur leur infrastructure pour des ordinateurs virtuels. (C'est ce que l'on appelle "l'infrastructure en tant que service" ou "IAAS").

Les machines virtuelles sont-elles sûres ?

Alors que les organisations exploitent de plus en plus la puissance de la virtualisation, une question essentielle se pose : Les machines virtuelles sont-elles sûres ? L'exploration du paysage de la sécurité des machines virtuelles révèle une image nuancée où les avantages l'emportent souvent sur les risques.

Mécanismes d'isolement

L'une des caractéristiques de sécurité fondamentales de la virtualisation est l'isolation qu'elle offre entre les VM. Chaque VM fonctionne indépendamment, encapsulée des autres sur le même hôte. Cette isolation permet de contenir les failles de sécurité potentielles à l'intérieur d'une seule VM, les empêchant ainsi de se propager à l'ensemble de l'infrastructure. Malgré cela, il est essentiel de reconnaître que l'efficacité de l'isolation dépend de la robustesse de la plateforme de virtualisation et de sa configuration.

Vulnérabilités de l'hyperviseur

L'hyperviseur, également connu sous le nom de moniteur de machine virtuelle (VMM), est un composant essentiel qui gère et répartit les ressources entre les machines virtuelles. Toute faille dans l'hyperviseur peut poser des risques de sécurité importants, car sa compromission pourrait permettre un accès non autorisé à plusieurs VM. Pour atténuer ce risque, les hyperviseurs sont soumis à des tests de sécurité rigoureux, et des mises à jour régulières sont essentielles pour corriger les vulnérabilités identifiées.

Ressources partagées et attaques par canal latéral

Les VM partagent des ressources physiques telles que l'unité centrale, la mémoire et le stockage sur la machine hôte. Bien qu'il existe des mécanismes pour garantir une répartition équitable, il existe un risque d'attaques par canal latéral, où une VM pourrait exploiter les ressources partagées pour glaner des informations auprès d'une autre. Pour atténuer ces risques, il faut configurer soigneusement l'allocation des ressources et mettre en place des mesures de sécurité pour contrecarrer les vulnérabilités potentielles des canaux latéraux.

Si tu examines les plateformes d'hébergement et que la sécurité est au cœur de tes préoccupations, tu pourrais être intéressé par la lecture d'un article sur la sécurité des serveurs en métal nu.

Combien y a-t-il de types de machines virtuelles ?

Comme les machines virtuelles sont essentiellement des conteneurs sur un ordinateur qui exécutent des logiciels, il y a trop de types de machines virtuelles pour les énumérer.

Le plus souvent, l'ordinateur hyperviseur exécutera un logiciel open source comme OpenStack pour gérer les VM.

En ce qui concerne les VM elles-mêmes, les possibilités sont illimitées. Tout dépend du système d'exploitation et de ta configuration personnalisée.

Par exemple, tu peux installer une machine virtuelle exécutant un système d'exploitation Linux populaire comme Ubuntu. Ensuite, il peut y avoir des variations au-delà de cela.

De même, tu pourrais avoir une installation personnalisée d'Ubuntu avec une liste de blanchisserie de logiciels préférés préinstallés. Consulte nos guides sur Ansible et Docker pour plus d'informations sur la façon d'accomplir cela.

Le niveau de personnalisation est illimité, ainsi les VM sont essentiellement limitées aux ressources disponibles sur l'ordinateur hôte.

Partager cet article

Une pensée sur "Qu'est-ce qu'une machine virtuelle (VM)?"

  1. Pingback : Qu'est-ce qu'une machine virtuelle ? | WP FeedBack

Laisser une réponse

Ton adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués *