เข้าใจความสัมพันธ์ระหว่าง Qemu และ KVM


17

ความแตกต่างระหว่าง KVM และ Qemu คืออะไร? ตามที่ฉันเข้าใจแล้วหลังสามารถให้ "การเลียนแบบโหมดผู้ใช้" ซึ่งหมายความว่าเราสามารถเรียกใช้ไฟล์ปฏิบัติการที่สร้างขึ้นสำหรับสถาปัตยกรรมอื่นเช่นนี้:

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

.. และ "การจำลองคอมพิวเตอร์" ซึ่งหมายความว่าไม่เพียง แต่ทำการแปลไบนารี่แบบไดนามิก แต่เครื่องเสมือนทั้งหมดถูกจำลอง (การ์ดวิดีโอการ์ดเสียงการ์ดเครือข่ายอุปกรณ์ออปติคัล ฯลฯ ) ตัวอย่างเช่น:

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

ตามที่ฉันเข้าใจแล้ว Qemu ไม่ทราบวิธีการใช้ประโยชน์จากการจำลองเสมือนสำหรับฮาร์ดแวร์ (เช่น Intel VT-x หรือ AMD-V บนสถาปัตยกรรม x86) และในกรณีนี้ KVM สามารถช่วยได้เริ่ม Qemu ด้วยการสนับสนุน KVM อย่างไรก็ตาม KVM มีฟังก์ชั่นอื่น ๆ นอกเหนือจากการเข้าถึงโปรแกรมการจำลองเพื่อการจำลองเสมือนแบบใช้ฮาร์ดแวร์ช่วยในสถาปัตยกรรมฮาร์ดแวร์เฉพาะหรือไม่? เป็นไปได้ไหมที่จะสร้างเครื่องเสมือนทั้งหมด (CPU, การ์ดแสดงผล, อุปกรณ์ I / O และอื่น ๆ ) โดยใช้ KVM เท่านั้น ถ้าใช่แล้วโปรแกรมใดที่ควรใช้เพื่อสร้างและควบคุมเครื่องเสมือนนี้


2
อาจมีความซ้ำซ้อนของความแตกต่างระหว่าง KVM และ QEMU

คำตอบ:


16

คุณถูกต้องบางส่วน เพียงระวังเนื่องจากอาจมีความสับสน KVM เป็นชื่อของเทคโนโลยีการจำลองเสมือนในเคอร์เนล Linux

KVM ยังเป็นที่นิยมใช้เป็นชื่อของที่ส้อม (ชื่อที่ถูกต้องมากขึ้นจะ qemu-KVM) ของโครงการ QEMU ด้วยการสนับสนุนที่ดีกว่าสำหรับการทำงานแบบเสมือนฮาร์ดแวร์ การเรียกร้องนี้ได้รับการยืนยันจากโครงการ QEMUแต่เป็นของรุ่น 1.3 ของ QEMU คุณสมบัติทั้งหมดของ qemu-KVM ได้รับการควบรวมกิจการ

หน้าดาวน์โหลดสำหรับโครงการ KVMอธิบายความแตกต่างที่ค่อนข้างดีเช่นกัน

สิ่งหนึ่งที่ต้องจำไว้คือข้อดีของ qemu-kvm กำลังรวมอยู่ใน qemu รุ่นใหม่ดังนั้นฉันหวังว่าสักวันหนึ่งความแตกต่างระหว่างทั้งสองจะหายไป


ดังนั้น KVM "เทคโนโลยีการจำลองเสมือนในเคอร์เนล Linux" และ qemu-kvm เป็นสองสิ่งที่แตกต่างกันอย่างไร
dtmland

@dtland ใช่แล้ว qemu-kvm เป็นซอฟต์แวร์ userland ซึ่งใช้ KVM ในเคอร์เนล
chutz

6

KVM เป็นโมดูลเคอร์เนลที่อนุญาตให้กำหนดเวลาคำขอ VMs CPU โดยตรงจาก virtualization CPU virtualization ในโฮสต์ CPU และ RAM โดยมีค่าใช้จ่ายน้อยที่สุด QEMU ให้ส่วนที่เหลือของฮาร์ดแวร์ที่มีการจำลองเพราะเครื่องแม้แต่เสมือนไม่ได้เป็นเพียงซีพียู แต่เป็นฮาร์ดแวร์เพิ่มเติมจำนวนมาก QEMU สามารถเลียนแบบซีพียูได้ด้วย แต่เมื่อเทียบกับวิธีที่ KVM ทำมันจะช้าลงอย่างเจ็บปวดดังนั้นจึงผสานเพื่อให้ได้สิ่งที่ดีที่สุดทั้งสองโลก

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.