javascript:void(0)
在上一篇中,我展示了虛拟機軟體QEMU的使用、效果及其性能,同時也分析了不同使用者對虛拟機的不同追求。但是不管是桌面使用者還是企業級使用者,對虛拟機軟體的追求有一點是共同的,那就是性能。QEMU是一個強大的虛拟機軟體,它可以完全以軟體的形式模拟出一台完整的電腦所需的所有硬體,甚至是模拟出不同架構的硬體,在這些虛拟的硬體之上,可以安裝完整的作業系統。QEMU的運作模式如下圖:

很顯然,這種完全以軟體模拟硬體的形式雖然功能強大,但是性能難以滿足使用者的需要。模拟出的硬體的性能和實體硬體的性能相比,必然會大打折扣。為了提高虛拟機軟體的性能,開發者們各顯神通。其中,最常用的辦法就是在主作業系統中通過核心子產品開一個洞,通過這個洞将虛拟機中的操作直接映射到實體硬體上,進而提高虛拟機中運作的作業系統的性能。如下圖:
其中KVM就是這種加速模式的典型代表。在社群中,大家常把KVM和Xen相提并論,但是它們其實完全不一樣。從上圖可以看出,使用核心子產品加速這種模式,主作業系統仍然占主導地位,核心子產品隻是在主作業系統中開一個洞,用來連接配接虛拟機和實體硬體,給虛拟機加速,但是虛拟機中的客戶作業系統仍然受到很大的限制。這種模式比較适合桌面使用者使用,主作業系統仍然是他們的主戰場,不管是辦公還是打遊戲,都通過主作業系統完成,客戶作業系統隻是按需使用。至于Xen,則完全使用不同的理念,比較适合企業級使用者使用,桌面使用者就不要輕易去碰了,具體内容下一篇我再講。
其實VirtualBox也是采取的這種核心子產品加速的模式。我之是以這麼說,是因為在安裝VirtualBox時,它會要求安裝DKMS。如下圖:
熟悉Linux的人知道,DKMS就是為了友善使用者管理核心子產品而存在的,不熟悉DKMS的人Google一下也可以了解個大概。關于VirtualBox的具體使用方面的内容,我下一篇再講。這一篇主要講KVM。
KVM和QEMU是相輔相成的,QEMU可以使用KVM核心子產品加速,而KVM需要使用QEMU運作虛拟機。從上圖可以看到,如果要使用Ubuntu的包管理軟體安裝KVM,其實安裝的就是qemu-kvm。而qemu-kvm并不是一個什麼很複雜的軟體包,它隻包含很少量幾個檔案,如下圖:
用man指令檢視一下它的文檔,發現qemu-kvm包不僅包含的檔案很少,而且它的可執行檔案kvm也隻是對qemu-system-x86_64指令的一個簡單包裝,如下圖:
那麼問題來了,kvm核心子產品究竟是由哪個包提供的呢?其實,自從Linux 2.6開始,kvm就已經被加入核心了。如果非要找出kvm核心子產品kvm.ko是由哪個包提供的,可以用如下指令考察一下:
寫到這裡,已經可以看出KVM的使用是很簡單的了。下面,我使用KVM運作一下上一篇中安裝的WinXP作業系統,體驗一下QEMU經過KVM加速後的運作效率。使用如下指令運作使用KVM加速的QEMU:
可以看出,使用KVM加速後,虛拟機中的WinXP運作速度提升了不少,開機隻用了34秒。我将分辨率調整為1366*768,圖形界面運作也很流暢,不管是打開IE浏覽器還是Office辦公軟體都沒有問題,再也沒有出現CPU使用率飙升到100%的情況。如果用 ps -ef |
grep qemu 指令檢視一下,發現kvm指令運作的還是qemu-system-x86_64程式,隻不過加上了-enable-kvm參數,如下圖:
另外,對于桌面使用者來說,有一個好用的圖形化界面也是很重要的。雖然QEMU和KVM自身不帶圖形界面的虛拟機管理器,但是我們可以使用第3方軟體,比如virt-manager。隻需要使用 sudo apt-get
install virt-manager 即可安裝該軟體。該軟體依賴于libvirt,在安裝過程中也會自動安裝。運作virt-manager的效果如下圖,注意必須使用sudo運作,因為該軟體需要超級使用者權限:
該軟體可自動識别系統中的虛拟機環境是QEMU+KVM還是Xen。建立一個虛拟機,由于之前安裝過一個WinXP系統,是以選擇導入現有硬碟鏡像。點下一步後,出現如下界面:
這一步沒什麼好說的,再點下一步,如下圖:
這裡可以設定網絡選項。如果勾選“在安裝前自定義配置”的話,還可以對硬體進行進一步的自定義,如下圖:
在上圖中,我們可以看到虛拟機支援的所有虛拟顯示卡的類型,在這裡,我當然選擇的是VMVGA,因為我以前經常用VMWare,知道這些作業系統在VMWare的虛拟顯示卡設定下運作得都沒有問題。當然,其它的選項都可以試一下,不過在虛拟的作業系統中需要安裝相應的驅動程式。
最後,虛拟機運作的效果圖如下:
可以看到,該程式提供的界面有非常豐富的功能菜單,功能是非常強大的,甚至可以向虛拟機中的作業系統發送組合按鍵。
可以這麼說,如果沒有VirtualBox的話,QEMU+KVM的組合應該是桌面使用者的首選。下一篇我将嘗試VirtualBox,VirtualBox号稱是最強大的開源虛拟機系統,敬請期待。