首頁 > 軟體

Linux入門學習教學:虛擬機器體驗之KVM篇

2020-06-16 18:05:30

  在上一篇中,我展示了虛擬機器軟體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號稱是最強大的開源虛擬機器系統,具體見 Linux入門學習教學:虛擬機器體驗之VirtualBox篇 http://www.linuxidc.com/Linux/2015-03/114463.htm  。

--------------------------------------分割線 --------------------------------------

RHEL6 KVM虛擬化建立橋接網絡卡-網橋 http://www.linuxidc.com/Linux/2013-08/88517.htm

RedHat Linux KVM虛擬機器橋接 http://www.linuxidc.com/Linux/2013-02/79934.htm

CentOS 5.6下KVM的安裝/橋接設定/虛擬機器建立及執行 http://www.linuxidc.com/Linux/2012-12/76883.htm

Ubuntu下用libvirt安裝KVM虛擬機器時找不到/bin/qemu-kvm問題解決 http://www.linuxidc.com/Linux/2013-08/88985.htm

RedHat6.5下安裝設定KVM虛擬機器 http://www.linuxidc.com/Linux/2014-10/107972.htm

--------------------------------------分割線 --------------------------------------

 


IT145.com E-mail:sddin#qq.com