1. 程式人生 > >虛擬化技術中KVM,Xen,Qemu的區別和聯絡

虛擬化技術中KVM,Xen,Qemu的區別和聯絡

虛擬化型別

全虛擬化(Full Virtualization)

全虛擬化也成為原始虛擬化技術,該模型使用虛擬機器協調guest作業系統和原始硬體,VMM在guest作業系統和裸硬體之間用於工作協調,一些受保護指令必須由Hypervisor(虛擬機器管理程式)來捕獲處理。

全虛擬化模型 
圖1 全虛擬化模型

全虛擬化的執行速度要快於硬體模擬,但是效能方面不如裸機,因為Hypervisor需要佔用一些資源

半虛擬化(Para Virtualization)

半虛擬化是另一種類似於全虛擬化的技術,它使用Hypervisor分享存取底層的硬體,但是它的guest作業系統集成了虛擬化方面的程式碼。該方法無需重新編譯或引起陷阱,因為作業系統自身能夠與虛擬程序進行很好的協作。

半虛擬化模型 
圖2 半虛擬化模型

半虛擬化需要guest作業系統做一些修改,使guest作業系統意識到自己是處於虛擬化環境的,但是半虛擬化提供了與原作業系統相近的效能。

虛擬化技術

KVM(Kernel-based Virtual Machine)基於核心的虛擬機器

KVM是整合到Linux核心的Hypervisor,是X86架構且硬體支援虛擬化技術(Intel VT或AMD-V)的Linux的全虛擬化解決方案。它是Linux的一個很小的模組,利用Linux做大量的事,如任務排程、記憶體管理與硬體裝置互動等。

KVM虛擬化平臺架構 
圖3 KVM虛擬化平臺架構

Xen

Xen 是第一類執行再裸機上的虛擬化管理程式(Hypervisor)。它支援全虛擬化和半虛擬化,Xen支援hypervisor和虛擬機器互相通訊,而且提供 在所有Linux版本上的免費產品,包括Red Hat Enterprise Linux和SUSE Linux Enterprise Server。Xen最重要的優勢在於半虛擬化,此外未經修改的作業系統也可以直接在xen上執行(如Windows),能讓虛擬機器有效執行而不需要仿 真,因此虛擬機器能感知到hypervisor,而不需要模擬虛擬硬體,從而能實現高效能。

Xen虛擬化平臺架構 
圖4 Xen虛擬化平臺架構

QEMU

QEMU是一套由Fabrice Bellard所編寫的模擬處理器的自由軟體。它與Bochs,PearPC近似,但其具有某些後兩者所不具備的特性,如高速度及跨平臺的特性。經由kqemu這個開源的加速器,QEMU能模擬至接近真實電腦的速度。

KVM和QEMU的關係

準確來說,KVM是Linux kernel的一個模組。可以用命令modprobe去載入KVM模組。載入了模組後,才能進一步通過其他工具建立虛擬機器。但僅有KVM模組是 遠遠不夠的,因為使用者無法直接控制核心模組去作事情,你還必須有一個執行在使用者空間的工具才行。這個使用者空間的工具,kvm開發者選擇了已經成型的開源虛 擬化軟體 QEMU。說起來QEMU也是一個虛擬化軟體。它的特點是可虛擬不同的CPU。比如說在x86的CPU上可虛擬一個Power的CPU,並可利用它編譯出 可執行在Power上的程式。KVM使用了QEMU的一部分,並稍加改造,就成了可控制KVM的使用者空間工具了。所以你會看到,官方提供的KVM下載有兩 大部分(qemu和kvm)三個檔案(KVM模組、QEMU工具以及二者的合集)。也就是說,你可以只升級KVM模組,也可以只升級QEMU工具。這就是 KVM和QEMU 的關係。

Xen虛擬化平臺架構 
圖5 KVM和QEMU關係