comprendre la relation entre Qemu et KVM

17

Quelle est la différence entre KVM et Qemu? Si je comprends bien, ce dernier est capable de fournir une "émulation en mode utilisateur", ce qui signifie que l'on peut exécuter un seul exécutable construit pour une autre architecture comme celle-ci:

# file busybox-sparc 
busybox-sparc: ELF 32-bit MSB executable, SPARC, version 1 (SYSV), statically linked, stripped
# qemu-sparc busybox-sparc ls
Packages_arm     Packages_i386    arm              busybox-armv6l   busybox-i686     busybox-powerpc  busybox-sparc    busybox-x86_64   i386
# 

..et "émulation informatique", ce qui signifie que non seulement la traduction binaire dynamique est effectuée, mais que toute la machine virtuelle est émulée (carte vidéo, carte son, cartes réseau, périphériques optiques, etc.). Par exemple:

# qemu-system-sparc64 -hda hda.img -cdrom debian-6.0.5-sparc-CD-1.iso -boot d

Comme je l'ai compris, Qemu ne sait pas comment tirer parti de la virtualisation matérielle (par exemple les solutions Intel VT-x ou AMD-V sur l'architecture x86) et c'est le cas où KVM peut aider - on peut démarrer Qemu avec le support KVM. Cependant, KVM fournit-il d'autres fonctionnalités que l'accès des programmes d'émulation à la virtualisation assistée par matériel sur des architectures matérielles spécifiques? Est-il possible de créer une machine virtuelle entière (CPU, carte vidéo, périphériques d'E / S, etc.) en utilisant uniquement KVM? Si oui, quels programmes utiliser pour créer et contrôler cette machine virtuelle?

Martin
la source
2
doublon possible de Différence entre KVM et QEMU

Réponses:

16

Vous avez partiellement raison. Soyez prudent, car il peut y avoir une certaine confusion. KVM est le nom de la technologie de virtualisation dans le noyau Linux.

KVM est également couramment utilisé comme nom d'un fork (un nom plus précis serait qemu-kvm) du projet QEMU avec un meilleur support pour la virtualisation matérielle . Cette affirmation a été confirmée par le projet QEMU , mais à partir de la version 1.3 de QEMU, toutes les fonctionnalités de qemu-kvm ont été fusionnées .

La page de téléchargement du projet KVM explique également très bien cette différence.

Une autre chose à garder à l'esprit est que les avantages de qemu-kvm sont fusionnés dans les nouvelles versions de qemu, donc j'espère qu'un jour la différence entre les deux disparaîtra.

chutz
la source
Donc, KVM "la technologie de virtualisation dans le noyau Linux" et qemu-kvm sont deux choses différentes?
dtmland
@dtmland Eh bien, oui. qemu-kvm est un logiciel utilisateur qui utilise KVM dans le noyau.
chutz
6

KVM est un module de noyau qui permet, via des extensions de CPU spécifiques à la virtualisation, de planifier une demande de CPU de VM directement dans le CPU et la RAM de l'hôte, avec un minimum de surcharge. QEMU fournit le reste du matériel émulé, car une machine, même virtuelle, n'est pas seulement un CPU - c'est beaucoup de matériel supplémentaire. QEMU peut également émuler le CPU, mais par rapport à la façon dont le KVM le fait, il est douloureusement lent, donc la fusion, pour tirer le meilleur parti des deux mondes

Dyasny
la source