天天看點

虛拟化簡介虛拟化簡介

虛拟化簡介

虛拟化概念

虛拟化技術是指在一個或以上的客作業系統(Guest Operating System,簡稱:Guest OS)在一個宿主作業系統(Host Operating System,簡稱:Host OS)下運作的一種技術。客作業系統也稱為客戶機,宿主作業系統也稱為主控端。

虛拟化示意圖

虛拟化類型

虛拟化的類型總的來說,從實作的方式可以分為兩個類型,分别為硬體虛拟化和軟體虛拟化。從虛拟化的程度,可以分為完全虛拟化和準虛拟化,準虛拟化也稱為半虛拟化。下面将針對每一種方式做一個簡單的介紹:

硬體虛拟化

實體平台本身提供了對特殊指令的截獲和重定向的硬體支援。虛拟化對使用者隐藏了真實的計算機硬體,表現出另一個抽象計算平台。目前主要有兩種:intel VT和AMD-V。

intel VT:英特爾虛拟化技術(IVT,Intel Virtualization Technology),由英特爾開發的一種虛拟化技術,利用IVT可以對在系統上的客作業系統,通過虛拟機檢視器(VMM,Virtual Machine Monitor)來虛拟一套硬體裝置,以供客作業系統使用。

AMD-V:AMD虛拟化(AMD Virtualization),AMD公司推出了支援虛拟化的硬體輔助技術,用于幫助VMM進行虛拟化,進而有效降低了虛拟化的開銷,提高性能。

軟體虛拟化

就是用純軟體的方法在現有的實體平台上(往往并不支援硬體虛拟化)實作對實體平台通路的截獲和模拟。

完全虛拟化

全虛拟化為客戶機提供了完整的虛拟X86 平台,包括處理器、記憶體和外設,支援運作任何理論上可在真實實體平台上運作的作業系統,為虛拟機的配置提供了最大程度的靈活性。

半虛拟化

改動客戶作業系統,使它以為自己運作在虛拟環境下,能夠與虛拟機監控機協同工作。這種方法就叫準虛拟化(para-virtualization),也叫半虛拟化。

差別點:全虛拟化對主機性能影響較,不需要對客戶機作業系統做任何修改即可正常運作任何非虛拟化環境中已存在基于X86 平台的作業系統和軟體,是全虛拟化無可比拟的優勢。半虛拟化對主機性能影響較小。

虛拟化管理程式(Hypervisor)

Hypervisor,又稱虛拟機器螢幕(英語:virtual machine monitor,縮寫為 VMM),是用來建立與執行虛拟機器的軟體、固件或硬體。hypervisor提供虛拟的作業平台來執行客體作業系統(guest operating systems),負責管理其他客體作業系統的執行階段;這些客體作業系統,共同分享虛拟化後的硬體資源。

虛拟化解決方案

虛拟化的解決方案有很多種,Xen和KVM,是開源免費的虛拟化件;WMware是付費的虛拟化軟體;Hyper-V微軟的收費虛拟化解決方案;Docker是一種容器技術,屬于一種輕量級虛拟化解決方案。下面簡單介紹一下主流的KVM和Xen。

KVM:基于核心的虛拟機(英語:Kernel-based Virtual Machine,縮寫為 KVM),是一種用于Linux核心中的虛拟化基礎設施,可以将Linux核心轉化為一個hypervisor。KVM是x86架構且硬體支援虛拟化技術(如 intel VT 或 AMD-V)的Linux全虛拟化解決方案。

Xen是一個開放源代碼虛拟機螢幕,由XenProject開發。Xen 在系統硬體與虛拟機之間插入一個虛拟化層,将系統硬體轉換為一個邏輯計算資源池,Xen 可将其中的資源動态地配置設定給任何作業系統或應用程式。在虛拟機中運作的作業系統能夠與虛拟資源互動,就好像它們是實體資源一樣。

Xen的實作方法是運作支援Xen功能的kernel,這個kernel是工作在Xen的控制之下,叫做Domain0,使用這個kernel啟動機器後,你可以在這個機器上使用qemu軟體,虛拟出多個系統。Xen的缺點是如果你需要更新Xen的版本,你需要重新編譯整個核心,而且,稍有設定不慎,系統就無法啟動。

相比較,KVM就簡化的多了。它不需要重新編譯核心,也不需要對目前kernel做任何修改,它隻是幾個可以動态加載的.ko子產品。它結構更加精簡、代碼量更小。是以,出錯的可能性更小。并且在某些方面,性能比Xen更勝一籌。

Xen的半虛拟化:Xen通過半虛拟化的技術獲得高效能的表現(較少的效能損失,典型的情況下大約損失2%,在最糟的情況下會有8%的效能耗損),但是這要求虛拟機使用經過修改的用戶端作業系統。

Xen的完全虛拟化:Intel為Xen貢獻了更新檔以支援其VT-X架構擴充,而AMD則進行修改以支援其AMD-V架構擴充。如果系統處理器支援虛拟硬體擴充(Intel和AMD對本地支援虛拟化的擴充),這項技術将允許未經修改的作業系統運作在Xen虛拟機中。

繼續閱讀