複製鏈接
請複製以下鏈接發送給好友

虛擬機監控程序

鎖定
虛擬機監控程序,是一種為來賓操作系統實現抽象的物理硬件的軟件,在系統上,“虛擬”運行的來賓提供一套虛擬化硬件。
中文名
虛擬機監控程序
類    型
程序
定    義
一種為來賓操作系統實現抽象的物理硬件的軟件
目    的
監控

虛擬機監控程序由來

一度流行甚廣的“虛擬機監控程序”(hypervisor) 一詞。它已經成為虛擬化領域的一大熱門術語。但虛擬機監控程序並非新鮮事物。只要我們使用過虛擬機 (VM),就必然使用過虛擬機監控程序。事實上,IBM 早在上世紀七十年代就創造了“虛擬機監控程序”一詞。

虛擬機監控程序差異

在過去幾年中,在 x86 平台上運行的“1 類虛擬機監控程序”(包括 Microsoft Hyper-V 和 VMware ESX Server)得到了很大發展,這也導致產生一些混淆。大多數人使用的虛擬機監控程序(特別是對於客户端系統)被稱為“2 類虛擬機監控程序”。兩種虛擬機監控程序的差異何在?
Ⅰ型虛擬機監控程序的簡單時間線 Ⅰ型虛擬機監控程序的簡單時間線
1 類虛擬機監控程序直接在主機硬件上運行,而無需“主機操作系統”。Microsoft Hyper-V 和 VMware ESX Server 是 1 類虛擬機監控程序的常見例子。
2 類虛擬機監控程序需要運行主機操作系統。通常,2 類虛擬機監控程序主要作為用户模式應用程序在其主機操作系統上運行。Microsoft Virtual PC 和 VMware Workstation 是 2 類虛擬機監控程序的常見例子。
在大多數情況下,對於任何“始終運行的”工作負載(例如,虛擬化 SQL 或文件服務器),您都希望使用 1 類虛擬機監控程序。至少,1 類使用的資源要比 2 類少。但是,它可能需要用户登錄才能啓動(取決於主機),這對關鍵任務系統而言並非一個好的選擇。相反,2 類虛擬機監控程序更加適用於“按需”虛擬機。這種類型的角色包括用於測試、應用程序兼容性或安全訪問的虛擬機。 [1] 

虛擬機監控程序功能

Hyper-V
隨 Windows 7 一起發佈的 Windows 驅動程序工具包 (WDK) 提供了關於虛擬機監控程序版本 2 中新增功能的信息。
虛擬機監控程序是一種最初在具有 Hyper-V 的 Windows Server 2008 中支持的技術。具有 Hyper-V 的 Windows Server 2008 R2 支持 2.0 和更早版本的虛擬機監控程序。
下列功能是虛擬機監控程序版本 2 中的新功能:
擴展的快速超級調用接口
分區 CPU 兼容性屬性、兼容性模式和 CPU 供應商屬性
分區 XSAVE 功能
虛擬來賓空閒狀態。
分區參考時間啓蒙
對內核休止的支持
SMI 虛擬中斷類型
HvPortPropertyPreferredTargetVp 端口屬性
系統屬性
HV 分析
調用虛擬機監控程序調試器
下列特定於模型的寄存器 (MSR) 是虛擬機監控程序版本 2 中的新功能:
虛擬 APIC MSR
性能統計信息 MSR
參考 TSC 頁面 MSR
虛擬來賓空閒狀態 MSR
下列超級調用在虛擬機監控程序版本 2 中已棄用:
HvClearLogicalProcessorRunTimeGroup
HvSetLogicalProcessorRunTimeGroup
下列超級調用是虛擬機監控程序版本 2 中的新調用:
HvParkLogicalProcessors
HvMapSparseGpaPages
HvSetPortProperty
HvSetSystemProperty
HvInvokeHypervisorDebugger [2] 

虛擬機監控程序負載均衡

虛擬機監控程序監控程序

儘管管理員會將應用負載平均分配到每台虛擬主機上,但是自動負載均衡特性依然是無可替代的。
服務器虛擬機監控程序環境當中的大多數嚴重問題似乎都和資源爭奪相關。從虛擬機監控程序原理上來説,虛擬機監控程序技術的基礎是服務器硬件性能不斷髮展,其能夠提供的資源已經遠遠超過了單一負載需求,因此可以將一套物理資源分配給多種負載同時使用。
虛擬機監控程序這種資源共享方式看似非常簡單,但是通常問題都會出現在細節方面。如果多個虛擬機監控程序負載共享一個通用硬件資源池,那麼在虛擬機監控程序生產環境當中必須提前引入某種機制,避免任何虛擬機消耗過多的資源,導致其他虛擬機監控程序資源被佔用。

虛擬機監控程序消耗

確實,現在管理員可以使用多種不同技術來保證資源消耗處於監控狀態。管理員可以限制特定虛擬機能夠消耗的CPU、內存、網絡和存儲等硬件資源。此外,創建新的虛擬機監控程序時,管理員通常會將其放置到擁有足夠硬件資源的主機服務器上,以防止新加入的負載不會對現有虛擬機監控程序性能造成負面影響。
虛擬機監控程序這種方式和其他機制都能夠很好地保證虛擬機監控程序處於受監控狀態。但是問題在於服務器虛擬化環境是高度動態的。由於服務器故障、主機重啓、系統維護或者很多其他原因,虛擬機監控程序r可能將負載自動實時遷移到另外一台主機上。類似地,虛擬機監控程序的資源消耗也有可能隨着時間而變化。最初啓動時虛擬機上的負載只需要使用很少的硬件資源,但是隨着越來越多的用户開始使用運行在虛擬機監控程序上的應用程序,虛擬機的資源消耗量會不斷增加。
因此問題在於不斷變化的負載以及虛擬機監控程序實時遷移可能完全破壞管理員最初的規劃,也就是將虛擬機創建在最為合適的主機服務器上。
儘管為了適應不斷變化的運行環境,管理員可以手動遷移虛擬機,但是這種做法並不是最佳方案,而使用虛擬機監控程序和管理軟件來實現自動負載均衡是一種更為高效的方式。

虛擬機監控程序解決方案

所有虛擬機監控程序廠商都推出自己的負載均衡解決方案。對於微軟Hyper-V來説,可以使用System Setter VM Manager當中的一種稱為動態優化的技術來實現負載均衡。虛擬機監控程序動態優化技術非常簡單,虛擬機監控程序會進行週期性檢查(默認每隔十分鐘)來查看主機服務器上的可用資源是否已經低於預定閥值。如果任何服務器的資源值較低,那麼動態優化進程會把一台或者多台虛擬機實施遷移到擁有更多可用資源的主機當中。
動態優化特性工作在主機服務器組層面。從VM Manager控制枱當中,進入Fabric workspace,選擇想要調整的主機組,之後點擊主機組當中的集羣。之後,點擊屏幕頂端的Host Cluster標籤,再點擊Optimize Host按鈕。之後Windows會打開Optimize Host Cluster對話框。對話框將會詢問你是否對某些虛擬機進行實施遷移,虛擬機監控程序以實現更好的性能表現。如果一台或者多台主機出現可用硬件資源低於閥值的情況,系統就會彈出這種提示。而如果所有主機都擁有足夠的可用硬件資源,那麼系統不會彈出推薦窗口,即便虛擬機分佈不是十分均衡。
為了使得集羣優化進程自動出現,現在關閉對話框,之後點擊屏幕最上方的Folder標籤,單擊Properties按鈕。之後會出現一個新的“All Host Prosperities”對話框。現在點擊“Dynamic Optimization”,之後勾選“Automatically Migrate VMs to Balance Load at this Frequency (Minutes)”複選框。在這個對話框當中,你還可以配置負載均衡頻率、服務器資源閥值以及負載均衡激進程度等參數。更加激進的負載均衡策略將會提高系統資源利用效率,但是也會導致更高的實時遷移頻率。點擊OK來完成配置過程。
在任何虛擬機監控程序環境當中,高效利用硬件資源都是非常重要的。虛擬機監控程序通過自動將虛擬機從負載過重的主機移動到擁有大量可用資源的主機當中,VM Manager動態優化特性可以幫助實現這種目標。 [3] 
參考資料