KVM

Qu'est-ce que KVM?noyau

Qu'est-ce que KVM?noyau

La virtualisation fait référence à la création d'une ressource informatique simulée qui imite le comportement de la ressource réelle ou physique correspondante. De nombreux types de ressources peuvent être virtualisés, des logiciels aux périphériques matériels individuels en passant par les plates-formes matérielles complètes. Cet article se concentre sur les machines virtuelles qui comprennent des périphériques tels que le processeur, la mémoire, la carte réseau, le disque, la carte graphique et le système d'exploitation. Le logiciel qui crée et exécute des machines virtuelles s'appelle un hyperviseur. Ci-dessous, nous allons discuter des fonctionnalités d'un hyperviseur nommé KVM.

Avantages de la virtualisation

Dans le passé, être homogène était le modus operandi dans les centres de données, les maisons de développement et à la maison. Pratiquement, toutes les machines exécuteraient la même version d'un seul système d'exploitation, que ce soit Linux, Windows ou FreeBSD. Les temps ont changé.

Aujourd'hui, nous nous attendrions à différents systèmes d'exploitation tels que Linux et Windows, et même différentes versions d'un système d'exploitation (e.g., Windows XP et 10) pour co-localiser dans le même environnement informatique. Sans machines virtuelles, plusieurs machines physiques doivent être déployées et maintenues, afin d'exécuter des applications sur plusieurs plates-formes d'exploitation. La virtualisation alimente l'exécution de plusieurs machines virtuelles, chacune potentiellement avec un système d'exploitation différent, sur une seule machine physique.

Les avantages des machines virtuelles par rapport aux machines physiques incluent :

  1. Utilisation plus efficace des ressources informatiques.
    Le prix du matériel continue de baisser tandis que leur puissance de traitement continue d'augmenter. Dans cette réalité, de nombreuses grosses machines puissantes aujourd'hui ont tendance à être sous-utilisées, mesurées par les cycles CPU inactifs, la mémoire inutilisée, etc. La consolidation de machines virtuelles sur moins de machines physiques se traduit par moins de ressources physiques et donc une meilleure efficacité.
  1. J'ai amélioré.T. réactivité et productivité.
    L'approvisionnement du nouveau matériel physique implique une longue période d'attente d'acquisition suivie d'une longue période d'installation et de déploiement après son arrivée. En revanche, le provisionnement des machines virtuelles peut être automatisé et rendu disponible en quelques minutes plutôt qu'en quelques jours ou même semaines que prend parfois l'acquisition de machines traditionnelles.
  1. Réduction des coûts.
    Les grands centres de données permettront d'économiser de l'argent grâce à des coûts d'exploitation réduits. L'économie se présente sous la forme de factures d'énergie réduites en raison de la réduction des besoins en refroidissement et en énergie.

Présentation de KVM

La machine virtuelle basée sur le noyau, ou KVM en abrégé, est une solution d'hyperviseur gratuite et open source. Il est en concurrence dans un secteur mature avec des alternatives open source telles que Xen, VirtualBox, ainsi que des produits propriétaires tels que VMware vSphere, Citrix XenServer, Microsoft Hyper-V.

Avant 2005, les solutions d'hyperviseur de l'époque, telles que Xen et VirtualBox, étaient toutes basées sur des logiciels. L'architecture x86 ne prévoyait tout simplement pas la prise en charge de la virtualisation.  En 2005, l'introduction des extensions de jeu d'instructions Intel VT et AMD-V a définitivement changé le paysage de la virtualisation. KVM a publié sa première version en 2006, et a été l'un des premiers hyperviseurs à tirer parti de la nouvelle disposition matérielle pour optimiser les performances de virtualisation.

Vous pouvez installer KVM sur n'importe quel ordinateur x86 32 bits ou 64 bits, la « machine hôte » dans le jargon hyperviseur, qui prend en charge l'extension Intel VT ou AMD-V. Aujourd'hui, les hyperviseurs modernes prennent généralement en charge la virtualisation hybride : assistée par le matériel lorsque cela est possible et un basculement vers le logiciel uniquement pour les chipsets plus anciens.

KVM est classé comme un hyperviseur de type 2, ce qui signifie qu'il s'exécute dans un système d'exploitation hôte. Comme son nom l'indique, KVM est basé sur le noyau, et pour être plus précis, c'est le noyau Linux. Il n'est donc pas surprenant que KVM ne supporte que Linux comme système d'exploitation hôte. (KVM a ensuite été porté sur FreeBSD.)  Si vous voulez un hyperviseur multiplateforme open source de type 2, VirtualBox est un bon candidat. VirtualBox peut s'exécuter nativement sur Windows, Linux, Mac OS X et Solaris.

Xen, en revanche, est un hyperviseur de type 1, également connu sous le nom d'hyperviseur bare-metal, qui s'exécute directement en tant que micrologiciel sur la machine hôte. L'avantage du type 1 par rapport au type 2 est l'efficacité gagnée grâce à l'hyperviseur s'exécutant directement sur le matériel sous-jacent. L'inconvénient est qu'un hyperviseur de type 1 peut ne pas prendre en charge une gamme de périphériques hôtes aussi large que le système d'exploitation hôte d'un hyperviseur de type 2.

Bien que les hyperviseurs puissent différer selon qu'ils nécessitent un système d'exploitation hôte et lesquels, ils sont très similaires en ce qui concerne les systèmes d'exploitation invités qu'ils prennent en charge, c'est-à-dire le système d'exploitation qu'une machine virtuelle peut exécuter. KVM prend en charge la virtualisation des systèmes d'exploitation invités suivants :

KVM est capable d'exécuter des images de système d'exploitation invité non modifiées. Cette fonctionnalité est connue sous le nom de virtualisation complète, par opposition à la para-virtualisation où le système d'exploitation invité est modifié pour une gestion spéciale des opérations qui sont considérablement plus difficiles à exécuter sur la machine virtuelle que sur la machine hôte.


Comment fonctionne KVM

KVM se compose de 2 composants technologiques : le noyau et l'espace utilisateur. Le composant noyau se compose de 2 modules noyau chargeables : kvm.ko, et soit kvm-intel.ko ou kvm-amd.ko. Le kvm.Le module ko fournit un traitement de virtualisation de base indépendant de l'architecture. Le kvm-intel.ko et kvm-amd.les modules ko correspondent aux modules spécifiques aux processeurs Intel et AMD. Ces modules ont été fusionnés dans le noyau Linux à partir de la version 2 du noyau.6.20.

L'intégration étroite de KVM avec le noyau Linux a ses avantages. KVM est capable de déléguer à Linux pour faire le gros travail du système, tout en se concentrant sur la gestion des nouvelles instructions de virtualisation exposées par le matériel. KVM bénéficie également en héritant de toute amélioration continue du système en amont dans la communauté Linux plus large.

Il est important que les modules du noyau le soient, ils n'émulent pas le matériel de la machine virtuelle sur lequel le système d'exploitation invité s'exécute. Ce travail appartient à l'espace utilisateur. KVM utilise QEMU, qui s'exécute dans l'espace utilisateur, pour créer les machines virtuelles qui interagissent avec les systèmes d'exploitation invités.  Chaque machine virtuelle est simplement un processus Linux régulier. Un grand avantage est que vous pouvez utiliser des commandes Linux familières telles que top et kill pour surveiller et gérer les machines virtuelles.


Résumé & conclusion

KVM est une excellente solution open source pour une virtualisation complète sur la plate-forme hôte Linux. Après plus de 10 ans de développement actif, KVM est devenu de facto l'outil de virtualisation de niveau machine standard dans de nombreuses distributions Linux.

Tutoriel Bataille pour Wesnoth
The Battle for Wesnoth est l'un des jeux de stratégie open source les plus populaires auxquels vous pouvez jouer en ce moment. Non seulement ce jeu es...
0 A.ré. Didacticiel
Sur les nombreux jeux de stratégie disponibles, 0 A.ré. parvient à se démarquer comme un titre complet et un jeu tactique très profond bien qu'il soit...
Tutoriel Unity3D
Introduction à Unity 3D Unity 3D est un puissant moteur de développement de jeux. C'est une plateforme multiplateforme qui vous permet de créer des je...