Hypervisor又稱為虛擬機監視程序。從根本上說,Hypervisor是軟體和硬體堆棧的「管理者」。而「Hypervisor」來源於「Supervisor」這個單詞。
什麼是Hypervisor?
當人們問「什麼是Hypervisor」時,大多數人通常會以其採用的產品來進行回答,例如VMware或Microsoft Hyper-V。VMware和微軟這兩家公司是主要的Hypervisor供應商,但是Hypervisor以及其虛擬化的功能遠不止這些,以下將深入研究Hypervisor的用途以及可用的不同類型。
在更深層次上,Hypervisor是一個由軟體、硬體或固件組成的進程,該進程在物理主機上運行以創建虛擬機(VM)。這些虛擬機作為獨立的應用程式伺服器,儘管它們實際上共享主機的CPU周期、內存和帶寬。Hypervisor可以根據需要來啟動、配置和停用虛擬機。這種分解、提供和退役的操作使Hypervisor成為了「管理者」。
Hypervisor具有多種使用情況,其中包括伺服器、應用程式、存儲和桌面的虛擬化。
Hypervisors的兩種類型
在數據中心中運行的Hypervisors主要有兩種類型:Type 1和 Type 2。那麼它們是什麼?它們最適合哪種使用情況?
Hypervisors在管理虛擬化環境中起到關鍵作用
Type 1是一個嵌入到主機物理層中的命令。在那裡,Hypervisors根據需要啟動和關閉虛擬機,並將主機計算機資源動態分配給虛擬機。
Type 2範圍則受到更多限制,通常是在一臺物理伺服器上運行。這一類型從主機軟體層運行,可以在其中將虛擬機創建為不同的進程。像Type 1一樣,Type 2可以在其虛擬機中定義不同的作業系統。
這兩種類型具有不同的用例,但它們之間並沒有明顯的區別。
例如,Linux KVM和FreeBSD bhyv是將其管理程序作為內核模塊運行的常規作業系統。啟用軟體的虛擬機管理程序使主機作業系統(OS)有效地運行為可以虛擬化採用不同作業系統(OS)的Type 1,但是它仍然是一種通用作業系統,因此將其定義為Type 2。
那麼,Type 1和Type 2這兩種類型之間的區別是什麼?在什麼時候會選擇其中一種而不是另一種呢?
Type 1:原生/裸機Hypervisors
Type 1裸機Hypervisors支持高度可擴展的虛擬化,因為它們通常直接在嵌入在固件中的硬體層上運行。Type 1的其他術語是本機/嵌入式Hypervisors,這是因為它們的硬體位置不同。
最終用戶無法像使用Type 2一樣向現有計算機添加Type 1軟體。Type 1被嵌入到專用伺服器固件中,並且最終的主機支持虛擬化生產環境。
與從主機作業系統(OS)運行的Type 2不同,Type 1獨立於主機作業系統,可以直接訪問主機伺服器,從而在功能和硬體方面獲得了優勢。從那裡,Type 1發出控制主機資源和管理虛擬機的命令。
直接分配主機資源的能力使Type 1具有高度的可擴展性,並使它們能夠通過選擇虛擬化作業系統來創建多個虛擬機。
在這兩種情況下,Type 1都具有以下特徵:虛擬機和主機(有時是虛擬機和虛擬機)之間有效的資源共享、動態資源使用、低延遲和高帶寬通信,以及網絡管理的全局視圖。
儘管本文主要涉及數據中心中的Type 1和Type 2,但是嵌入式Hypervisor也存在於各種大型嵌入式系統中。嵌入式系統包括複雜的環境,如都市的交通燈或機器人工廠的控制器。
Type 1的虛擬化
Type 1是虛擬化網絡背後的主要機制。而Type 2提供了一組不同的服務,很少擴展到生產環境中。
整合系統:由於物理硬體可以輕鬆支持多個物理機(PM),因此降低了新設備和伺服器資源的成本。虛擬化的原始驅動力是伺服器整合,仍然是其最主要的用例。IT還將其用於桌面虛擬化和存儲。優化物理資源:為不同的應用程式購買單獨的物理伺服器既昂貴又費時,並且會佔用數據中心空間。Type 1使IT團隊可以更好地利用伺服器硬體,從而降低資本支出,釋放數據中心的空間,並最大程度地減少能耗。更好的資源分配:大多數Type 1允許管理員按應用程式優先級人工設置資源分配。它們中的大多數還根據需要自動執行資源分配,從而在虛擬化環境中實現動態和高效的資源分配。保持高可用性:這些Hypervisor不僅可以虛擬化計算機,還可以通過原生持久性和冗餘來保護高可用性。例如,故障轉移群集支持虛擬化節點環境,以便在節點發生故障時繼續提供可用性。更好的測試/開發:Type 2允許管理員隔離用於測試生產環境的系統。開發人員還可以在自己的環境中部署專用的虛擬化環境,並使用克隆的生產數據進行測試。Type 1供應商
這些虛擬機監控程序產品包括在虛擬化行業領先的VMware ESX/ESXi和Microsoft Hyper-V,以及Citrix和Oracle VM Server的Hypervisor。後者包括SPARC和x86版本。
Type 2主機
Type 2主機執行軟體虛擬化。它們在主機作業系統上作為軟體應用程式運行,與基於硬體的Type 1相比,它們更像是已經安裝的應用程式。大多數Type 2用戶利用這個更簡單的Hypervisors在單臺計算機上運行虛擬機,而不像Type 1的部署和管理那樣複雜。
Type 2在主機作業系統運行,並將實例虛擬化為軟體進程。它支持多個來賓作業系統,但不能直接訪問主機硬體或其資源。這會導致更高的開銷,這就是Type 2不太可能運行大型動態虛擬化網絡的原因。
Type 2的部署和性能
這一類型也易於部署和管理。例如,用戶可以將Type 2 VMware Workstation直接安裝到現有Windows實例中。與其相反,Type 1需要管理員運用其專業知識,並且花費更多時間進行部署和管理。
而且,由於Type 2運行時會產生額外的開銷,因此它們的性能不如Type 1高。它們在現有作業系統中運行,因此虛擬化性能受到在軟體層中工作的限制。其他正在運行的應用程式將從Hypervisors獲取更多資源,這將進一步降低虛擬機性能。
對於簡單而主流應用的Type 2用例來說(例如在Mac作業系統上運行Windows實例),這不是什麼太大的問題。但是對於高性能場景(例如擴展多個虛擬機並嘗試創建虛擬網絡)來說,這是不夠的。
Type 2供應商
Type 2作業系統級別工作,並將來賓作業系統與主機作業系統分離。例如,VMware Workstation和Oracle的開源VirtualBox。