entendimento da relação entre Qemu e KVM

17

Qual é a diferença entre KVM e Qemu? Pelo que entendi, este último é capaz de fornecer "emulação de modo de usuário", o que significa que é possível executar um único executável criado para outra arquitetura como esta:

# 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
# 

..e "emulação de computador", o que significa que não somente é realizada a tradução binária dinâmica, mas também é imitada a máquina virtual (placa de vídeo, placa de som, placas de rede, dispositivos ópticos etc.). Por exemplo:

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

Como eu entendi, o Qemu não sabe tirar proveito da virtualização de hardware (por exemplo, soluções Intel VT-x ou AMD-V na arquitetura x86) e este é o caso em que a KVM pode ajudar - é possível iniciar o Qemu com o suporte da KVM. No entanto, o KVM fornece outras funcionalidades além do acesso de programas de emulação à virtualização assistida por hardware em arquiteturas de hardware específicas? É possível criar uma máquina virtual inteira (CPU, placa de vídeo, dispositivos de E / S, etc.) usando apenas KVM? Se sim, quais programas se deve usar para criar e controlar essa máquina virtual?

Martin
fonte
2
possível duplicata da diferença entre KVM e QEMU

Respostas:

16

Você está parcialmente correto. Apenas tome cuidado, pois pode haver alguma confusão. KVM é o nome da tecnologia de virtualização no kernel do Linux.

O KVM também é comumente usado como o nome de um fork (um nome mais preciso seria qemu-kvm) do projeto QEMU, com melhor suporte para a virtualização de hardware . Essa afirmação foi confirmada pelo projeto QEMU , mas a partir da versão 1.3 do QEMU, todos os recursos do qemu-kvm foram mesclados .

A página de download do projeto KVM explica essa diferença também.

Mais uma coisa a ter em mente é que as vantagens do qemu-kvm estão sendo mescladas nas versões mais recentes do qemu, então espero que um dia a diferença entre os dois desapareça.

chutz
fonte
Então, o KVM "a tecnologia de virtualização no kernel Linux" e o qemu-kvm são duas coisas diferentes?
dtmland
@dtmland Bem, sim. qemu-kvm é um software da terra do usuário que usa o KVM no kernel.
chutz 01/03
6

O KVM é um módulo do kernel que permite, através de extensões de CPU específicas da virtualização, agendar uma solicitação de CPU de VMs diretamente na CPU e na RAM do host, com uma quantidade mínima de sobrecarga. O QEMU fornece o restante do hardware emulado, porque uma máquina, mesmo virtual, não é apenas uma CPU - é um monte de hardware adicional. O QEMU também pode emular a CPU, mas comparado à maneira como o KVM faz, é dolorosamente lento, portanto, a fusão, para obter o melhor dos dois mundos

dyasny
fonte