虛擬化類型
全虛擬化(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做大量的事,如任務調度、內存管理與硬件設備交互等。

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

圖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 的關系。

圖5 KVM和QEMU關系