GNU/Linux >> Tutoriels Linux >  >> Linux

Qu'est-ce qu'une machine virtuelle et pourquoi l'utiliser ?

À l'avenir, nous pourrons utiliser de tels systèmes de réalité virtuelle parfaitement conçus pour être presque impossibles à distinguer de la réalité. Des environnements qui n'existent pas, mais que vous pouvez voir et sentir. Bien que nous n'en soyons pas encore tout à fait là pour nous-mêmes, nous y sommes dans le cas de nos ordinateurs. La technologie de virtualisation crée cette possibilité pour nos ordinateurs. Cela a diverses applications et principes de fonctionnement, et nous allons essayer de vous les expliquer un peu plus en détail.

Machine virtuelle et ses besoins

Présentation

L'exécution d'un système d'exploitation complet nécessite traditionnellement un ensemble de matériel essentiel, tous à la disposition du système d'exploitation. Pour exécuter plusieurs systèmes d'exploitation, vous pouvez également effectuer plusieurs démarrages, mais dans ce cas, vous ne pouvez pas exécuter deux systèmes d'exploitation en même temps. Les machines virtuelles nous ont fourni la possibilité d'utiliser plusieurs systèmes d'exploitation simultanément sur le même ensemble de matériel .

Dans le cas d'une machine virtuelle, il y a quelques points évidents que nous pouvons faire. Tout comme nous avons commencé cet article, c'est une sorte de réalité virtuelle pour les systèmes d'exploitation. Les VM que nous créons utilisent du matériel « virtuel ». Le matériel utilisé par le système d'exploitation hébergé est aussi réel que n'importe quel autre lorsqu'il s'agit de comprendre ce système d'exploitation lui-même, mais le système d'exploitation n'est conçu que pour le regarder de cette façon. La RAM, le stockage et la puissance du processeur utilisés par le système d'exploitation ne sont que l'utilisation de fractions du matériel réel. Toute cette virtualisation et cette gestion sont effectuées par ce qu'on appelle l'hyperviseur.

Hyperviseur

Un hyperviseur est un micrologiciel, un logiciel ou un matériel qui est le composant central d'une machine virtuelle. Éclaircissons un peu la terminologie ici :le système sur lequel les VM sont installées est appelé le système hôte, et les machines installées sur les VM sont appelées les systèmes invités . L'hyperviseur est la couche qui gère toutes les ressources entre les machines virtuelles et le matériel réel du système (ou le système d'exploitation qui héberge l'hyperviseur). Même si les systèmes d'exploitation sont exécutés sur du matériel virtuel, c'est le travail de l'hyperviseur de donner l'impression que le système d'exploitation a accès au matériel réel.

Les hyperviseurs fournissent une frontière stable et inexpugnable entre les différents systèmes d'exploitation exécutés en tant que machines virtuelles. L'hyperviseur simule les composants matériels de la VM, qui sont configurés par l'utilisateur. Le matériel utilisé par les machines virtuelles (via des hyperviseurs) est une fraction du matériel réel du système. Ainsi, on ne peut pas dépasser les limites matérielles réelles. Par exemple, si vous disposez de 16 Go de RAM, vous pouvez les répartir en 8 Go entre deux VM.

Le point critique est que la technologie qui rend les machines virtuelles possibles :les hyperviseurs; ne nécessite aucun matériel particulier. C'est juste un composant logiciel essentiel. Il existe deux principaux types d'hyperviseurs :

Type 2 :Hyperviseurs hébergés

Je suis conscient que je fais la démonstration du type 2 avant le 1, mais il y a une séquence. Les hyperviseurs hébergés restent au niveau de l'application. Cela vous est peut-être familier si vous avez déjà utilisé Oracle VM VirtualBox, VMWare ou GNOME Boxes.

Il s'agit d'une application qui vous permet d'installer un système d'exploitation en tant que machine virtuelle à l'intérieur de votre système d'exploitation (le système d'exploitation dans lequel l'application elle-même est installée). Ceci est très facile à configurer et à utiliser. Tout ce que vous avez à faire est d'installer une application qui vous permet de créer des machines virtuelles et d'obtenir une image de l'OS requis. Vous pouvez spécifier directement la quantité de RAM, d'espace disque dur, etc. que vous souhaitez autoriser à utiliser pour la machine virtuelle.

L'utilisation d'un hyperviseur hébergé présente des avantages significatifs, en particulier pour les utilisateurs réguliers comme nous. Il y a cependant un problème. La structure habituelle d'un système informatique suit cette séquence :

  • Matériel physique
  • Micrologiciel
  • Chauffeurs
  • Système d'exploitation
  • Applications

Entrant un peu dans les détails techniques, le logiciel que nous utilisons sur un système informatique a différents "privilèges". Par exemple, si vous autorisez n'importe quel logiciel à accéder à la configuration des performances de votre processeur, cela peut aller de l'avant et gâcher facilement tout votre système. C'est une mauvaise pratique de sécurité. En réalité, ce qui se passe, c'est que le noyau d'un système d'exploitation arrive à interagir avec le matériel. Si une application nécessite l'accès à un composant matériel, elle peut envoyer une demande au noyau, et le noyau fournira une réponse appropriée. Ces requêtes sont appelées appels système ou appels système .

Prenons maintenant le cas d'une VM sur un hyperviseur hébergé. Par exemple, vous exécutez une application sur le système d'exploitation invité. Cela enverra un appel système au noyau du système d'exploitation invité. Ceci, à son tour, sera interprété et converti en un autre appel système par l'hyperviseur, qui enverra maintenant cet appel système au noyau du système d'exploitation hôte (car rappelez-vous, l'hyperviseur hébergé n'est qu'une autre application pour le système d'exploitation hôte). Le noyau de l'OS hôte enverra la réponse à l'hyperviseur, qui devra maintenant être convertie en réponse appropriée pour l'application dans l'OS invité. Ouf.

Tout cela signifie que les hyperviseurs hébergés doivent passer par un processus assez long. Sur la plupart des matériels modernes, cela ne prend pas aussi longtemps qu'il n'y paraît, mais ce n'est pas comme la vitesse et les performances natives. La solution à cela est l'hyperviseur de type 1.

Type 1 :Hyperviseur Bare Metal

Droit au but, l'hyperviseur en métal nu se trouve au-dessus de la couche de micrologiciel/pilote. Cela signifie qu'il peut interagir directement avec le matériel, tout comme un système d'exploitation. Tous les systèmes d'exploitation requis seront installés au-dessus de l'hyperviseur bare metal, et les applications en plus. Cela ajoute plusieurs avantages. Tous les systèmes d'exploitation installés sur l'hyperviseur fonctionnent très bien, presque comme des systèmes d'exploitation natifs, avec un minimum de décalage ou de bégaiement. Si le matériel sur lequel l'hyperviseur est installé est puissant (comme c'est généralement le cas avec les ordinateurs de jeu ou les serveurs), il pourra gérer plusieurs systèmes d'exploitation assez facilement.

Certains exemples courants d'hyperviseurs bare metal incluent VMWare ESXi, Microsoft Hyper-V, Citrix XenServer, Xen, Linux KVM, etc.

Conteneurs

Les conteneurs sont quelque peu similaires aux machines virtuelles, mais il y a pas mal de différences. Comme nous l'avons vu dans le cas des hyperviseurs hébergés, les machines virtuelles sont utilisées pour installer un système d'exploitation complet, puis les applications sont installées et utilisées au-dessus de ces systèmes d'exploitation. Un conteneur, en revanche, regroupe le code d'une application, ses dépendances, ses outils, ses bibliothèques, ses runtimes et toutes les autres choses requises et exécute uniquement cette application dans un environnement virtuel.

L'image rendra la hiérarchie plus claire. Notez que le conteneur est installé au-dessus du système d'exploitation, puis les applications sont exécutées directement à l'intérieur du conteneur. Il n'y a pas de système d'exploitation à l'intérieur du conteneur, comme c'est le cas avec les machines virtuelles.

Utilisations

Nous avons donc déjà approfondi les détails des principes de fonctionnement des machines virtuelles. Il est temps de découvrir comment cela peut être utile dans des scénarios réels.

Plusieurs postes de travail à partir d'un seul système

Le premier point et le principal argument de vente des VM est le fait que vous pouvez utiliser plusieurs systèmes d'exploitation, séparés les uns des autres, en même temps, à partir de la même machine. Cela ouvre des possibilités incroyables. Par exemple, si vous avez besoin de deux postes de travail au même endroit, vous pouvez acheter un système puissant capable d'exécuter deux systèmes distincts en même temps. Cela s'avérera en effet très efficace.

Cela a également une utilisation répandue. Si vous avez besoin d'une application qui s'exécute sur un système d'exploitation que vous n'utilisez pas, vous n'avez pas besoin d'installer le système d'exploitation sur votre ordinateur. Vous pouvez installer un logiciel hyperviseur hébergé sur votre système d'exploitation et installer le système d'exploitation pris en charge. Il est beaucoup plus facile à gérer et fait le travail.

Utilisation maximale

L'utilisation maximale des ressources est la raison pour laquelle la virtualisation est très populaire pour les serveurs. Un serveur est un ordinateur très, très puissant. Il est difficile pour un seul système d'exploitation d'utiliser complètement les ressources du matériel. Solution? Installez un hyperviseur bare metal et exécutez plusieurs systèmes d'exploitation qui utilisent ensemble le matériel dans son intégralité.

Ainsi, les machines virtuelles utilisent au maximum les ressources. Mais ce ne sont pas seulement les serveurs dont nous parlons. Par exemple, si vous avez un ordinateur de jeu puissant, vous pouvez à la place utiliser entièrement son matériel en utilisant, par exemple, un système d'exploitation comme poste de travail principal et un autre comme NAS. Ou peut-être un nombre plus important de systèmes d'exploitation et de tâches.

Efficacité énergétique

Comme vous pouvez maintenant faire fonctionner deux systèmes en utilisant une seule machine au lieu de deux machines distinctes pour deux systèmes différents, vous économisez beaucoup d'électricité et d'énergie. C'est bon pour votre facture d'électricité; c'est aussi sans aucun doute bon pour l'environnement.

Espace physique/ Mobilité

Vous pouvez utiliser une machine pour plusieurs systèmes au lieu de divers appareils, vous économisez donc naturellement beaucoup d'espace physique. Cela signifie que si vous obtenez une machine très puissante, vous pouvez satisfaire les exigences de plusieurs machines, donc si vous devez déplacer votre infrastructure d'un endroit à un autre, vous devrez désormais déplacer moins de matériel physique que vous ne le feriez autrement. .

Récupération

C'est une fonctionnalité pratique. Les machines virtuelles ont la propriété de prendre des "instantanés". Étant donné que l'ensemble du système est virtuel, les machines virtuelles font des copies de leurs propriétés, paramètres et données à certains intervalles de temps. Donc, si votre système est endommagé ou corrompu à un moment donné, vous pouvez revenir à l'un des états stables et il n'y aura pas beaucoup de mal.

Zone de test

Une machine virtuelle (en fait, également un conteneur) est souvent utilisée comme terrain d'essai. Tous les problèmes que vous pourriez créer dans une configuration virtuelle ne peuvent pas nuire au matériel réel, ce qui en fait un endroit idéal pour tester le nouveau logiciel (en particulier le micrologiciel). Les développeurs utilisent également souvent des machines virtuelles pour vérifier la compatibilité avec différents systèmes d'exploitation.

Conclusion

Les machines virtuelles nous ont apporté de nombreuses améliorations par rapport à nos anciennes méthodes. Nous pouvons désormais faire fonctionner des systèmes dans un espace réduit, de manière plus efficace et plus sûre. Ils sont devenus une solution simple pour utiliser des logiciels qui ne sont pas pris en charge nativement par votre système d'exploitation. Les machines virtuelles sont devenues un refuge à des fins de test. Dans l'ensemble, elles sont idéales pour les causes personnelles, professionnelles et environnementales.

Nous espérons que vous avez trouvé cet article instructif et utile.


Linux
  1. Tutoriel :qu'est-ce que Git et Github ? Comment puis-je l'utiliser et pourquoi devrais-je m'en soucier?

  2. Chroot "prison" - Qu'est-ce que c'est et comment l'utiliser ?

  3. Quand et pourquoi utiliser Docker

  4. Pourquoi Deis et qu'est-ce que c'est ?

  5. Qu'est-ce qui a tué mon processus et pourquoi ?

Qu'est-ce que Kubernetes DaemonSet et comment l'utiliser ?

Commande de fichier Linux :que fait-elle et comment l'utiliser

Commande Linux Tail :qu'est-ce que c'est et comment l'utiliser

Qu'est-ce que les conteneurs multi-comptes Firefox ? Pourquoi et comment l'utiliser ?

Qu'est-ce qu'EasyApache et comment l'utiliser ?

Qu'est-ce que la fonctionnalité de la communauté ONLYOFFICE et pourquoi devriez-vous l'utiliser ?