虛擬化的本質
1. 磁區
磁區意味著虛擬化層為多個虛擬機劃分服務器資源的能力;每個虛擬機可以同時運行一個單獨的(相同/不相同的)作業系統,使您能夠在同一臺服務器上運行多個應用程式;每個作業系統只能看到虛擬化層為其提供的“虛擬硬體”(虛擬網卡、CPU、記憶體等),以使它認為運行在自己的專用服務器上,
2. 隔離
虛擬機之間是相互隔離的,一個虛擬機的崩潰或者故障不會影響到同意服務器上的其他虛擬機,一個虛擬機中的病毒等與其他虛擬機相隔離,就像每個虛擬機都位于單獨的物理機器上一樣,
可以進行資源控制以提供性能隔離:您可以為每個虛擬機指定最大或者最小資源使用量,以確保某個虛擬機不會占用所有的資源而使得同一系統中的其他虛擬機無資源可用,
可以在單一機器上同時運行多個負載/應用程式/作業系統,而不會出現傳統x86服務器體系結構的局限性所涉及到的問題(應用程式沖突、DDL沖突等)
3.封裝
封裝意味著將整個虛擬機(硬體配置、BIOS配置、記憶體狀態、磁盤狀態、CPU狀態)儲存在獨立于物理硬體的一小組檔案中,這樣,就只需要復制幾個檔案就可以隨時隨地根據需要復制、保存和移動虛擬機,
4.相對于硬體獨立
因為虛擬機是運行于虛擬化層的,所以只能看到虛擬化層提供的虛擬硬體;此虛擬硬體也同樣無需考慮到物理服務器的情況;這樣,虛擬機就可以在任何x86服務器上運行而無需進行任何修改,這打破了作業系統和硬體以及應用程式和作業系統/硬體之間的約束,
基于X86架構的CPU虛擬化如何實作?
- 方法1:半虛擬化技術
修改Guest OS規避虛擬化漏洞
限制了作業系統范圍(只能是可修改的作業系統,如Linux),
- 方法2:全虛擬化-二進制翻譯
運行時修改Guest OS二進制代碼,支持廣泛的OS,但引入了新的復雜性,
- 方法3:硬體輔助虛擬化
通過解決虛擬化漏洞,簡化VMM軟體
消除了半虛擬化和二進制翻譯
< 關鍵點:經典CPU虛擬化,主要采用“特權解除”、“陷入-模擬”的方式>
為什么x86架構的CPU有這三種方法呢?其原因在于x86架構的CPU在非特權級別存在19條敏感指令,這三種方法就是為了解決這個問題,但請注意,特權級別指令也屬于敏感指令,并不能把原因直接描述成解決x86架構下的敏感指令,
目前,x86架構的CPU虛擬化實作絕對的主流是“硬體輔助虛擬化”,即Intel-V和AMD-V,
在某些場合,描述硬體輔助虛擬化為全虛擬化,也就是此時需要注意,全虛擬化即可以是軟體實作的全虛擬化,應對上述的方法2;也可以是硬體實作的全虛擬化,對應上述的方法3.
記憶體虛擬化如何實作?
記憶體虛擬化的核心,在于引入一層新的地址空間-客戶機物理地址空間,客戶機會以為自己運行在真是的物理地址空間中,實際上是通過VMM訪問真實的物理地址,在VMM中保存客戶機地址空間和物理地址空間的映射表,
虛擬機安裝Tools,有什么作用?
Tools是虛擬機的驅動程式,空虛擬機創建并安裝作業系統后,需要在虛擬機上安裝華為提供的Tools,以便提高虛擬機的IO處理性能,實作對虛擬機的硬體監控和其他高級功能,
這些高級功能包括如下:
①遷移虛擬機
②安全關閉虛擬機、安全重啟虛擬機、休眠虛擬機
③在線調整虛擬機的CPU規格
④虛擬機藍屏檢測
⑤創建虛擬機快照
⑥虛擬機與主機時鐘同步
⑦虛擬機網卡的高級功能,如QoS
什么是記憶體復用?
通過記憶體復用技術,將物理記憶體虛擬出更多的記憶體供虛擬機使用,使虛擬機記憶體規格總和可以大于主機物理記憶體,最終提高主機的虛擬機密度,
記憶體復用有三種方式:
1.記憶體共享:虛擬機之間共享同一物理記憶體空間,此時虛擬機僅對記憶體做只讀操作,當虛擬機需要對記憶體進行寫操作時,開辟另一記憶體空間,并修改映射,
2.記憶體置換:虛擬機長時間未訪問的記憶體內容被置換到存盤中,并建立映射,當虛擬機再次訪問該記憶體內容時再置換回來,
3.記憶體氣泡:Hypervisor通過記憶體氣泡將較為空閑的虛擬機記憶體釋放給記憶體使用率較高的虛擬機,從而提高記憶體利用率,
<記憶體氣泡的原理:Ballon Driver從源虛擬機申請可用記憶體頁面,通過Grant Table授權給目標虛擬機,并更新虛擬機物理地址和機器地址映射表>
記憶體共享,寫時復制

如圖所示,虛擬機之間共享統一物理記憶體空間(藍色部分),此時的虛擬機只可以對記憶體做只讀操作,當虛擬機需要對記憶體進行寫操作(橙色部分),需開辟另一記憶體空間(多臺虛擬機共享資料內容為零的記憶體頁),并修改映射,
記憶體置換

記憶體氣泡

系統主動回收虛擬機暫時不用的物理記憶體,分配給需要復用記憶體的虛擬機,記憶體的回收和分配均為系統動態執行,虛擬機上的應用無感知,整個物理服務器上的所有虛擬機使用的分配記憶體總量不能超過該服務器的物理記憶體總量,
打開記憶體復用功能之后,由記憶體復用策略接管物理記憶體的分配,在記憶體不緊張時虛擬機可以使用全部物理記憶體,當出現競爭時,由記憶體復用策略為虛擬機實時調度記憶體資源,綜合運用記憶體復用技術釋放虛擬機空閑記憶體,為其他虛擬機的記憶體需求提供條件,
通過記憶體復用技術,可降低運營商或企業的成本,
當計算節點的記憶體數量固定時,可以提高計算節點的虛擬機密度,
當計算節點的虛擬機密度固定時,可以節省計算節點的記憶體數量,
記憶體復用依賴關系
1.如果集群下存在使用iNIC網卡的主機,則不能開啟集群記憶體復用功能,
2.每個計算節點上運行的所有虛擬機的預留記憶體之和不能大于虛擬機使用的實際可用物理記憶體總和,
3.同時開啟主機記憶體復用和Guest NUMA或者同時開啟主機CPU資源隔離模式和Guest NUMA,會導致Guest NUMA功能失效,
記憶體復用怎么配置?
在同通過VRM管理界面的集群資源控制,對CNA主機的記憶體復用進行開/關操作,
記憶體復用的比值是多少?
華為虛擬化平臺,通過智能復用以上三種技術可將記憶體復用比提升至150%,
記憶體復用的三項技術對主機性能有沒有影響?
要視乎一臺主機存在多少臺虛擬機,并且每臺虛擬機所分配的記憶體量大小和超配記憶體量與物理記憶體量的比率,如果比率過高,虛擬機數量多過,業務過于繁忙,性能肯定有影響,
Third Day 繼續在學習的路上前進!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/286208.html
標籤:其他
