GNU/Linux >> Tutoriels Linux >  >> Linux

Introduction à Linux KVM (Kernel Based Virtualization) et ses avantages

Qu'est-ce que la virtualisation ?

En termes simples, la virtualisation est une plate-forme ou un environnement simulé au-dessus d'un nœud hôte, ce qui est assez abstrait pour un utilisateur.

Ces environnements virtuels simulés peuvent être un système d'exploitation, ou un environnement de développement, etc.

Cela nous donne la possibilité d'utiliser efficacement les ressources matérielles du nœud hôte.

Qu'est-ce que KVM ?

KVM signifie Kernel Based Virtualization.

La virtualisation basée sur le noyau a été implémentée pour tirer parti de la prise en charge de la virtualisation assistée par matériel offerte par la nouvelle génération de processeurs Intel et AMD.

Au cours des premières étapes du développement de la technologie de virtualisation, les processeurs étaient entièrement émulés par le logiciel, qui a finalement manqué de performances en raison de l'absence d'accès matériel direct.

De nos jours, les processeurs du marché prennent en charge la virtualisation qui est le résultat du changement de leur architecture par rapport aux étapes précédentes.

Ceci est également appelé virtualisation assistée par matériel.

Si vous êtes totalement nouveau dans la virtualisation, c'est un bon point de départ, où nous avons expliqué les trois domaines de la virtualisation et les deux types d'hyperviseurs :introduction à la technologie de virtualisation de serveur et types d'hyperviseurs

Voici les différentes approches qui ont été suivies au cours de la première étape de développement de la technologie de virtualisation.

  1. Exécuter la machine virtuelle sur le processeur du système hôte au lieu d'émuler un processeur en utilisant la technique de traduction binaire. Il fonctionne sans modifier le système d'exploitation invité.
  2. Modifier le système d'exploitation des systèmes invités pour communiquer avec un hyperviseur qui a un accès direct au matériel. La plate-forme d'hyperviseur Xen en est un exemple qui implémente la virtualisation Para.
  3. Modifier le processeur du système hôte afin qu'il soit facile de communiquer avec l'hyperviseur et ainsi prendre en charge la virtualisation. Il supprime le besoin de traduction binaire et d'émulation. Cela conduit à une virtualisation complète plutôt qu'à une para-virtualisation.
  4. Modifier le système d'exploitation des systèmes hôtes afin qu'il puisse prendre en charge la virtualisation. Il en résulte des hyperviseurs natifs plutôt que des hyperviseurs hébergés.

La virtualisation basée sur le noyau exploite les avantages des 3ème et 4ème approches mentionnées ci-dessus.

Qu'est-ce qu'un hyperviseur ?

Un hyperviseur n'est rien d'autre qu'une couche intermédiaire de programme, entre le système d'exploitation invité et le matériel des systèmes hôtes.

Il gère le matériel réel de tous les systèmes d'exploitation invités qui se connectent.

Les hyperviseurs peuvent être de deux types :natifs ou hébergés. Les hyperviseurs sont également appelés VMM - [gestionnaires de machines virtuelles]. Veuillez vous référer à la figure ci-dessous. Il représente un hyperviseur natif bare metal.

De bons exemples d'hyperviseurs hébergés peuvent être VMware ou un logiciel de boîte virtuelle.

Si vous débutez avec VMWare, cela vous aidera :Fondamentaux de la virtualisation VMware – VMware Server et VMware ESXi

Si vous débutez avec Virtualbox, c'est un bon point de départ :Comment installer Oracle VM VirtualBox et créer une machine virtuelle

Évolution KVM

Ainsi, en tant que solution moderne pour une virtualisation efficace, la machine virtuelle basée sur le noyau (KVM) a évolué.

Il utilise essentiellement les extensions CPU fournies par la virtualisation matérielle moderne prenant en charge les CPU, par un module avec le noyau du système d'exploitation hôte.

En utilisant ce module de virtualisation basé sur le noyau, le noyau des systèmes d'exploitation hôtes fonctionne comme un hyperviseur tirant parti des fonctionnalités du noyau Linux et du matériel prenant en charge la virtualisation.

Donc, pour comparer KVM avec XEN et QEMU, nous pouvons dire que KVM utilise l'extension du processeur pour la virtualisation alors que QEMU fonctionne avec une émulation complète du CPU, d'autre part XEN fonctionne comme un hyperviseur externe au système d'exploitation hôte au lieu d'utiliser le noyau pour cela .

En utilisant KVM, nous pouvons exécuter plusieurs machines virtuelles avec n'importe quel système d'exploitation, sur une seule machine ou dire le système hôte. KVM est introduit dans le noyau Linux depuis la version stable 2.6.20. Un bon exemple de KVM est la solution de virtualisation fournie avec les distributions Red Hat et Fedora basées sur RPM.

Avantages Linux KVM

Si vous débutez avec Linux KVM, cela vous aidera à démarrer :Comment installer Linux KVM et créer une machine virtuelle invitée avec des exemples

Voici quelques-unes des fonctionnalités et des avantages de la virtualisation basée sur le noyau.

  1. Avec l'aide du module KVM, il gère les parties critiques des performances des interruptions et des temporisateurs par l'émulation d'E/S basée sur le noyau. Il permet de définir une limite sur les demandes d'E/S entre la machine virtuelle et l'hôte.
  2. Le module KVM permet ici l'émulation pour les modes CPU non pris en charge par le processeur physique et les instructions.
  3. Le module KVM utilisé fait partie du noyau Linux en amont car il y est ajouté pour améliorer la virtualisation.
  4. Le module KVM utilisé ici fournit une interface commune pour les processeurs Intel et AMD x86 qui prend en charge la virtualisation matérielle. Pour Intel, il s'agit de l'assistance matérielle Intel VMX pour la virtualisation et pour AMD, il s'agit de l'assistance matérielle AMD SVM pour la virtualisation.
  5. Il crée un hyperviseur bare-metal à partir du noyau. On peut dire qu'il crée un hyperviseur natif.
  6. Exploit la capacité de la MMU (unité de gestion de la mémoire) dans le matériel pour virtualiser la mémoire avec une amélioration des performances.
  7. Une machine virtuelle créée par celui-ci est un processus Linux standard, planifié par son planificateur Linux standard natif.
  8. Il prend en charge les fonctionnalités EPT (Extended Page Table) d'Intel et RVI (Rapid virtualization indexing) d'AMD pour la virtualisation de la mémoire par les fournisseurs de processeurs.
  9. Il prend en charge tous les systèmes de fichiers pris en charge par le noyau Linux traditionnel.
  10. Amélioration de l'utilisation des ressources et de l'accès à celles-ci grâce à un stockage flexible. Il est très facile d'ajouter de la mémoire, un vCPU, un disque dur à Linux KVM.
  11. Prend en charge une large gamme de systèmes d'exploitation invités, y compris Windows, UNIX, Solaris et DOS.
  12. Toutes les fonctionnalités de Linux, telles que l'implémentation de la sécurité à l'aide de SELinux, une large gamme de supports matériels et des pilotes de périphériques pris en charge, sont héritées des machines virtuelles basées sur le noyau.
  13. Gestion à distance sécurisée par l'API fournie par les modules de virtualisation.
  14. L'évolutivité améliorée en tant que flux principal du noyau Linux peut être étendue en ajoutant des modules pour tirer parti de plus de fonctionnalités.

Linux
  1. Linux - Différence entre l'espace utilisateur et l'espace noyau ?

  2. Comment hiberner un processus sous Linux en stockant sa mémoire sur disque et en le restaurant plus tard ?

  3. Qu'est-ce que la mémoire haute et la mémoire basse sous Linux ?

  4. Gestionnaire/installateur de paquets basé sur Git pour Linux

  5. Pourquoi Linux ressemble-t-il à Unix si son noyau est monolithique ?

Le noyau Linux et ses fonctions

Gérer et surveiller les modules du noyau Linux avec Kmon

Comment activer la virtualisation imbriquée dans KVM sous Linux

Installer le noyau Linux 4.14 LTS dans les systèmes basés sur RPM et DEB

Installer le noyau Linux 4.15 dans les systèmes basés sur RPM et DEB

Comment installer et configurer KVM sur Ubuntu Linux