什麼是QEMU ? 什麼是KVM ? 什麼是QEMU-KVM?
什麼是QEMU?
QEMU是一個主機上的VMM(virtual machine monitor),通過動態二進制轉換來模擬CPU,並提供一系列的硬件模型,使guest os認為自己和硬件直接打交道,其實是同QEMU模擬出來的硬件打交道,QEMU再將這些指令翻譯給真正硬件進行操作。通過這種模式,guest os可以和主機上的硬盤,網卡,CPU,CD-ROM,音頻設備和USB設備進行交互。但由於所有指令都需要經過QEMU來翻譯,因而性能會比較差。什麼是KVM?
KVM實際是linux內核提供的虛擬化架構,可將內核直接充當hypervisor來使用。KVM需要處理器硬件本身支持虛擬化擴展,如intel VT 和AMD AMD-V技術。工作原理
KVM包含一個內核模塊kvm.ko用來實現核心虛擬化功能,以及一個和處理器強相關的模塊如kvm-intel.ko或kvm-amd.ko。KVM本身不實現任何模擬,僅僅是暴露了一個/dev/kvm
接口,這個接口可被宿主機用來主要負責vCPU的創建,虛擬內存的地址空間分配,vCPU寄存器的讀寫以及vCPU的運行。有了KVM以後,guest os的CPU指令不用再經過QEMU來轉譯便可直接運行,大大提高了運行速度。但KVM的kvm.ko本身只提供了CPU和內存的虛擬化,所以它必須結合QEMU才能構成一個完整的虛擬化技術,也就是QEMU-KVM。什麼是QEMU-KVM?
綜上所述,QEMU-KVM具有兩大作用:
- 提供對cpu,內存(KVM負責),IO設備(QEMU負責)的虛擬
- 對各種虛擬設備的創建,調用進行管理(QEMU負責)
原文出處:QEMU,KVM及QEMU-KVM介紹
留言
張貼留言