Virtualisation

KVM, qu'est-ce que c'est ?

KVM (Kernel-based Virtual Machine) est une technologie de virtualisation Open Source intégrée à Linux®. Avec KVM, vous pouvez transformer Linux en un hyperviseur qui permet à une machine hôte d'exécuter plusieurs environnements virtuels isolés, appelés invités ou machines virtuelles.

KVM fait partie de Linux. Si vous disposez de Linux 2.6.20 ou d'une version plus récente, alors vous disposez de KVM. La technologie KVM a été présentée pour la première fois en 2006, puis intégrée à la version du noyau Linux mainline un an plus tard. Comme la technologie KVM fait partie du code Linux existant, elle bénéficie immédiatement de chaque nouvelle fonctionnalité, nouveau correctif ou nouvelle amélioration apportés à Linux sans qu'aucune intervention supplémentaire ne soit nécessaire.


Fonctionnement de la technologie KVM

KVM convertit Linux en un hyperviseur de type 1 (système nu). Pour exécuter des machines virtuelles, tous les hyperviseurs ont besoin de certains composants au niveau du système d'exploitation : gestionnaire de mémoire, planificateur de processus, pile d'entrées/sorties (E/S), pilotes de périphériques, gestionnaire de la sécurité, pile réseau, etc. La technologie KVM comprend tous ces composants, car elle est intégrée au noyau Linux. Chaque machine virtuelle est mise en œuvre en tant que processus Linux standard. Elle est gérée par le planificateur Linux standard et dispose de matériel de virtualisation dédié (carte réseau, carte graphique, un ou plusieurs processeurs, mémoire, disques).


Mise en œuvre de la technologie KVM

Pour faire court, vous devez utiliser une version de Linux publiée après 2007, installée sur du matériel x86 qui prend en charge la virtualisation. Si ces conditions sont remplies, il ne vous reste plus qu'à charger deux modules existants (un module de noyau hôte et un module spécifique au processeur), un émulateur et les pilotes qui vous permettront d'exécuter d'autres systèmes.

Fonctionnalités de KVM

En résumé, KVM fait partie de Linux et Linux fait partie de KVM. KVM bénéficie de tout ce dont dispose Linux, ainsi que de certaines fonctionnalités qui en font l'hyperviseur favori des entreprises.

Sécurité

La technologie KVM utilise à la fois SELinux (security-enhanced Linux) et sVirt (secure virtualization) pour renforcer la sécurité et l'isolation des machines virtuelles. SELinux établit des barrières de sécurité autour des machines virtuelles. sVirt étend les fonctionnalités de SELinux, ce qui permet d'appliquer une sécurité de type contrôle d'accès obligatoire (MAC) aux machines virtuelles invitées et d'éviter les erreurs d'étiquetage manuel.

Stockage

La technologie KVM peut utiliser tout système de stockage pris en charge par Linux, y compris certains disques locaux et des serveurs de stockage en réseau (NAS). L'architecture MPIO (Multipath I/O) peut être utilisée pour améliorer le stockage et assurer la redondance. KVM prend aussi en charge les systèmes de fichiers partagés de sorte que les images des machines virtuelles puissent être partagées par plusieurs hôtes. Les images de disques prennent en charge l'allocation dynamique, ce qui permet d'allouer les ressources de stockage à la demande plutôt qu'en un seul bloc dès le départ.

Matériel pris en charge

La technologie KVM peut utiliser un large éventail de plateformes matérielles qui sont certifiées compatibles avec Linux. Comme les fournisseurs de matériel contribuent régulièrement au développement du noyau, les fonctionnalités matérielles les plus récentes sont rapidement intégrées au noyau Linux.

Gestion de la mémoire

La technologie KVM hérite des fonctionnalités de gestion de la mémoire de Linux, notamment NUMA (Non-Uniform Memory Access) et KSM (Kernel Samepage Merging). La mémoire d'une machine virtuelle peut être échangée et renforcée par de larges volumes pour de meilleures performances. Elle peut aussi être partagée et renforcée par un fichier de disque.

Migration à chaud

La technologie KVM prend en charge la migration à chaud, c'est-à-dire la possibilité de déplacer une machine virtuelle en fonctionnement entre différents hôtes physiques, sans entraîner d'interruption de service. La machine virtuelle reste alimentée, les connexions réseau restent actives et les applications continuent de fonctionner pendant le déplacement de la machine virtuelle. KVM enregistre également l'état actuel d'une machine virtuelle afin de pouvoir le stocker et d'y revenir ultérieurement.

Performances et évolutivité

La technologie KVM hérite des performances de Linux et elle évolue pour s'adapter à la charge de la demande si le nombre de machines invitées ou de requêtes augmente. KVM permet de virtualiser les charges de travail applicatives les plus exigeantes. Elle constitue le socle des installations de virtualisation dans de nombreuses entreprises, notamment les datacenters et les clouds privés (via OpenStack®).

Planification et contrôle des ressources

Dans le modèle KVM, une machine virtuelle est un processus Linux, planifié et géré par le noyau. Le planificateur Linux permet un contrôle précis des ressources allouées à un processus Linux et garantit une certaine qualité de service pour un processus donné. Pour KVM, ces ressources incluent le planificateur entièrement impartial, les groupes de contrôle, les espaces de noms réseau et les extensions temps réel.

Réduction de la latence et meilleure définition des priorités

Le noyau Linux inclut des extensions temps réel qui permettent aux applications basées sur des machines virtuelles de fonctionner selon une plus faible latence et une meilleure définition des priorités (par rapport aux systèmes nus). Le noyau divise aussi les processus qui nécessitent de longs délais de calcul en de plus petits composants, qui sont ensuite planifiés et traités.

Gestion de KVM

Il est possible de gérer manuellement un petit nombre de machines virtuelles lancées depuis une même station de travail sans avoir recours à un outil de gestion. Les grandes entreprises utilisent un logiciel de gestion de la virtualisation qui sert d'interface avec les environnements virtuels et le matériel physique sous-jacent, dans le but de simplifier l'administration des ressources, d'optimiser l'analyse des données et de rationaliser l'exploitation. C'est dans cette optique que Red Hat a créé la solution Red Hat Virtualization.


KVM et Red Hat

Nous sommes tellement convaincus par l'efficacité de KVM que nous l'utilisons comme hyperviseur dans tous nos produits de virtualisation. Par ailleurs, nous contribuons sans cesse à l'amélioration du code du noyau via la communauté KVM. Mais puisque la technologie KVM fait partie de Linux, elle est déjà intégrée à Red Hat Enterprise Linux. Alors pourquoi ai-je besoin de la solution Red Hat Virtualization ?

Red Hat propose deux versions de KVM. La version de KVM incluse dans Red Hat Enterprise Linux dispose de toutes les fonctionnalités de gestion de base d'un hyperviseur. Elle permet aux clients d'exécuter jusqu'à 4 machines virtuelles isolées sur un même hôte. La solution Red Hat Virtualization contient une version avancée de KVM qui permet une gestion d'entreprise d'un nombre illimité de machines invitées. C'est idéal pour la virtualisation des datacenters, les stations de travail techniques, les clouds privés et les environnements de développement ou de production.

Vous disposez d'une application qui nécessite un système d'exploitation plus ancien ? Vous souhaitez mener un projet pilote pour une nouvelle application dans un environnement à faible risque ? Vous pouvez configurer Red Hat Enterprise Linux en tant qu'hyperviseur de base pour exécuter jusqu'à 4 machines virtuelles isolées sur un même hôte.

Voilà tout ce dont vous avez besoin. Ni plus, ni moins. Vous pouvez l'installer où vous le souhaitez (systèmes nus, propriétaires ou Open Source) et commencer à déployer des dizaines, voire des centaines de machines virtuelles avec un hyperviseur avancé aux performances exceptionnelles et une plateforme de gestion qui vous facilite la vie.

La marque verbale OpenStack et le logo en forme de lettre O carrée, ensemble ou séparément, sont des marques commerciales ou des marques déposées de l'OpenStack Foundation aux États-Unis et dans d'autres pays et sont utilisés avec l'autorisation de l'OpenStack Foundation. Nous ne sommes pas affiliés à l'OpenStack Foundation ou à la communauté OpenStack, ni approuvés ou sponsorisés par celles-ci.

Vous ne savez pas encore tout sur la virtualisation...