Présentation
Une machine virtuelle est un environnement de calcul qui fonctionne comme un système isolé, avec son propre processeur, sa mémoire, son interface réseau et son espace de stockage, créé à partir d'un pool de ressources matérielles. L'hyperviseur est le logiciel qui isole les ressources de calcul nécessaires et qui permet la création et la gestion des machines virtuelles.
La machine physique qui exécute les machines virtuelles est appelée machine hôte, ordinateur hôte, système d'exploitation hôte, ou simplement hôte. Les nombreuses machines virtuelles qui utilisent les ressources sont des machines invitées, des ordinateurs invités, des systèmes d'exploitation invités ou simplement des invités. L'hyperviseur traite les ressources de calcul (processeur, mémoire, stockage) sous la forme d'un pool de ressources qui peut être déplacé sans difficulté entre les invités existants ou vers de nouvelles machines virtuelles.
Les machines virtuelles permettent d'exécuter simultanément plusieurs systèmes d'exploitation sur un seul ordinateur, comme une distribution Linux® sur un système MacOS ou Windows. Chacun des systèmes d'exploitation s'exécute sur le matériel hôte comme le ferait n'importe quel autre système d'exploitation ou application. L'expérience de l'utilisateur final émulée au sein de la machine virtuelle est donc quasiment identique à celle qu'offre un système d'exploitation exécuté en temps réel sur une machine physique.
Définition de la virtualisation
La virtualisation est une technologie qui utilise des ressources généralement liées au matériel. Elle permet d'exploiter toute la capacité d'une machine physique en la répartissant entre de nombreux utilisateurs ou environnements différents.
Il existe différents types de virtualisation :
La virtualisation de données, qui permet aux entreprises de regrouper des sources de données pour créer un stock dynamique
La virtualisation des postes de travail, qui permet à l'administrateur principal de déployer et contrôler plusieurs environnements de postes de travail simulés
La virtualisation des serveurs, qui permet aux administrateurs de partitionner des serveurs en plusieurs configurations associées à des fonctions spécifiques
La virtualisation des systèmes d'exploitation, qui permet l'exécution de plusieurs systèmes d'exploitation sur un même ordinateur
La virtualisation des fonctions réseau, qui sépare les fonctions d'un réseau (telles que les services d'annuaire, le partage de fichiers et la configuration des adresses IP) afin de les répartir entre les différents environnements
Fonctionnement d'un hyperviseur
Une machine virtuelle peut être définie par un fichier numérique que l'on peut transférer d'un ordinateur à un autre, ouvrir sur l'un ou l'autre et utiliser de la même manière. L'hyperviseur se charge de gérer le matériel et de séparer les ressources physiques des environnements virtuels. Ces ressources sont partitionnées selon les besoins à partir de l'environnement physique et distribuées aux machines virtuelles. Le matériel se charge toujours de l'exécution, de sorte que le processeur continue d'exécuter les instructions demandées par les machines virtuelles, par exemple, tandis que l'hyperviseur gère l'ordonnancement.
Lors de l'exécution d'une machine virtuelle, si un utilisateur ou un programme lance une instruction qui sollicite des ressources supplémentaires de la part de l'environnement physique, l'hyperviseur ordonnance la demande auprès des ressources du système physique afin que le système d'exploitation et les applications de la machine virtuelle puissent accéder au pool partagé de ressources physiques.
Dans les environnements Linux®, l'hyperviseur intégré est KVM (Kernel-based Virtual Machine). Il existe d'autres options telles que Xen, un logiciel Open Source, et Microsoft Hyper-V.
Deux types d'hyperviseurs peuvent être utilisés pour virtualiser des ressources.
Type 1
Un hyperviseur de type 1 s'installe sur un système bare metal. L'hyperviseur ordonnance directement les ressources des machines virtuelles sur le matériel. La solution KVM est un hyperviseur de type 1.
Type 2
Un hyperviseur de type 2 est hébergé. Les ressources des machines virtuelles sont ordonnancées sur un système d'exploitation hôte, qui est ensuite exécuté sur le matériel. VMware Workstation et Oracle VirtualBox sont des exemples d'hyperviseurs de type 2.
Avantages des machines virtuelles
Avec la virtualisation, différents systèmes d'exploitation peuvent s'exécuter en parallèle et partager les mêmes ressources matérielles virtualisées. Sans cette technologie, un seul système d'exploitation peut s'exécuter sur le matériel.
La consolidation des serveurs est l'une des principales raisons qui justifient l'utilisation de machines virtuelles. La plupart des systèmes d'exploitation et des applications n'utilisent qu'une petite partie des ressources physiques disponibles lorsqu'ils sont déployés sur un système bare metal. La virtualisation des serveurs permet de disposer de nombreux serveurs virtuels sur chaque serveur physique, avec à la clé une optimisation de l'utilisation du matériel.
Il devient inutile d'acheter des ressources physiques supplémentaires, notamment des disques durs, et les besoins en matière d'alimentation, d'espace et de refroidissement dans le datacenter sont réduits. Les machines virtuelles offrent des fonctions de récupération après sinistre supplémentaires, car elles disposent de capacités de basculement et de redondance qu'il n'était auparavant possible d'obtenir qu'avec du matériel supplémentaire.
Une machine virtuelle fournit un environnement isolé du reste du système. Ainsi, il ne peut y avoir aucune interférence entre les programmes exécutés au sein d'une machine virtuelle et sur le matériel hôte.
Comme les machines virtuelles sont isolées, elles peuvent être utilisées pour tester de nouvelles applications ou mettre en place un environnement de production. Il est également possible d'exécuter une machine virtuelle réservée à un processus spécifique.
Lien entre les machines virtuelles et le cloud
La virtualisation est l'une des technologies à la base du cloud computing. Les environnements de cloud privé et public virtualisent des ressources dans des pools partagés avec un plus haut niveau de contrôle administratif et les distribuent au moyen de fonctions automatisées en libre-service.
Les logiciels de virtualisation, de gestion et d'automatisation qui permettent de créer les environnements cloud s'appuient sur le système d'exploitation, qui assure la connexion entre les ressources physiques, les pools de données virtuels, les logiciels de gestion, les scripts d'automatisation et les clients.
Avantages de Red Hat
Chez Red Hat, nous contribuons depuis de nombreuses années au développement de logiciels de virtualisation Open Source. Aujourd'hui, nous proposons à nos clients Red Hat® OpenShift® Virtualization, un composant de Red Hat OpenShift, qui permet aux équipes informatiques d'intégrer des machines virtuelles à des workflows conteneurisés. En exécutant une machine virtuelle dans un conteneur, les équipes peuvent déployer et gérer les machines virtuelles parallèlement aux conteneurs sur une seule et même plateforme. Les entreprises peuvent ainsi tirer parti des investissements déjà réalisés en matière de virtualisation, et profiter de la simplicité et de la rapidité qu'offre cette plateforme d'applications moderne.
Les machines virtuelles existantes peuvent être migrées depuis d'autres plateformes vers la plateforme d'applications OpenShift à l'aide d'outils de migration gratuits et faciles à utiliser. Les machines virtuelles ainsi créées s'exécutent parallèlement aux conteneurs sur les mêmes nœuds Red Hat OpenShift.