Memahami hubungan antara Qemu dan KVM

17

Apa perbedaan antara KVM dan Qemu? Seperti yang saya mengerti, yang terakhir dapat memberikan "emulasi mode pengguna" yang berarti seseorang dapat menjalankan satu executable yang dibangun untuk beberapa arsitektur lain seperti ini:

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

..dan "emulasi komputer", yang berarti bahwa tidak hanya terjemahan biner dinamis dilakukan, tetapi seluruh mesin virtual ditiru (kartu video, kartu suara, kartu jaringan, perangkat optik dll). Sebagai contoh:

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

Seperti yang saya pahami, Qemu tidak tahu bagaimana memanfaatkan virtualisasi perangkat keras (misalnya solusi Intel VT-x atau AMD-V pada arsitektur x86) dan ini adalah kasus di mana KVM dapat membantu - seseorang dapat memulai Qemu dengan dukungan KVM. Namun, apakah KVM menyediakan fungsionalitas lain selain akses untuk program emulasi ke virtualisasi berbantuan perangkat keras pada arsitektur perangkat keras tertentu? Apakah mungkin membuat mesin virtual utuh (CPU, kartu video, perangkat I / O, dll) hanya dengan menggunakan KVM? Jika ya, lalu program mana yang harus digunakan untuk membuat dan mengendalikan mesin virtual ini?

Martin
sumber
2
kemungkinan duplikat Perbedaan antara KVM dan QEMU

Jawaban:

16

Anda sebagian benar. Berhati-hatilah, karena mungkin ada beberapa kebingungan. KVM adalah nama teknologi virtualisasi di kernel Linux.

KVM juga biasa digunakan sebagai nama fork (nama yang lebih akurat adalah qemu-kvm) dari proyek QEMU dengan dukungan yang lebih baik untuk virtualisasi perangkat keras . Klaim ini dikonfirmasi oleh proyek QEMU , tetapi pada versi 1.3 QEMU semua fitur qemu-kvm telah digabungkan .

Halaman pengunduhan untuk proyek KVM menjelaskan perbedaan itu dengan cukup baik.

Satu hal lagi yang perlu diingat adalah bahwa keuntungan qemu-kvm sedang digabungkan dalam rilis baru qemu, jadi saya berharap suatu hari perbedaan antara keduanya akan hilang.

chutz
sumber
Jadi, KVM "teknologi virtualisasi di kernel Linux" dan qemu-kvm adalah dua hal yang berbeda?
dtmland
@ Dtmland Yah, ya. qemu-kvm adalah perangkat lunak userland yang menggunakan KVM di kernel.
chutz
6

KVM adalah modul kernel yang memungkinkan, melalui virtualisasi ekstensi CPU khusus, untuk menjadwalkan permintaan CPU VMs langsung di host CPU dan RAM, dengan jumlah overhead yang minimal. QEMU menyediakan sisa perangkat keras yang ditiru, karena mesin, bahkan virtual, bukan hanya CPU - itu banyak perangkat keras tambahan. QEMU juga dapat meniru CPU, tetapi dibandingkan dengan cara KVM melakukannya, sangat lambat, sehingga bergabung, untuk mendapatkan yang terbaik dari kedua dunia

dyasny
sumber