北京華爲HCIE雲計算技術的基礎 必須瞭解的什麼是虛擬化?-ielab網絡實驗室

北京華爲HCIE雲計算技術的基礎 必須瞭解的什麼是虛擬化?-ielab網絡實驗室在計算機中,虛擬化是一種資源管理技術,是將計算機的各種實體資源,如服務器網絡內存及存儲等,予以抽象、轉換後呈現出來,打破實體結構間的不可切割的障礙,使用戶可以比原本的組態更好的方式來應用這些資源。這些資源的新虛擬部分是不受現有資源的架設方式,地域或物理組態所限制。一般所指的虛擬化資源包括計算能力和資料存儲。在實際的生產環境中,虛擬化技術主要用來解決高性能的物理硬件產能過剩和老的舊的硬件產能過低的重組重用,透明化底層物理硬件,從而最大化的利用物理硬件。

虛擬化是雲計算的基礎。簡單的說,虛擬化使得在一臺物理的服務器上可以跑多臺虛擬機,虛擬機共享物理機的CPU、內存、IO 硬件資源,但邏輯上虛擬機之間是相互隔離的。在計算機方面,虛擬化一般指通過對計算機物理資源的抽象,提供一個或多個操作環境,實現資源的模擬、隔離或共享等。

本質上,虛擬化就是由位於下層的軟件模塊,通過向上一層軟件模塊提供一個與它原先所期待的運行環境完全一致的接口的方法,抽象出一個虛擬的軟件或硬件接口,使得上層軟件可以直接運行在虛擬環境上。通過空間上的分割、時間上的分時以及模擬,虛擬化可將一份資源抽象成多份,亦可將多份資源抽象成一份。

虛擬化可以分爲虛擬化對象和虛擬化過程:

  1. 虛擬化對象:
  • CPU虛擬化:目標是使虛擬機上的指令能被正常執行,且效率接近物理機。
  • 內存虛擬化:目標是能夠做好虛擬機內存空間的隔離,使每個虛擬機都認爲自己擁有了整個內存地址,且效率接近物理機。
  • I/O虛擬化:目標是不僅讓虛擬機訪問到他們需要的I/O資源,而且也要做好隔離工作,同時減輕虛擬化帶來的開銷。
  1. 虛擬化過程:
  • 全虛擬化:使用VMM實現CPU、內存、設備I/O的虛擬化,而Guest OS和計算機系統硬件都不需要進行修改。
  • 半虛擬化:使用VMM實現CPU和內存虛擬化,設備I/O虛擬化由Guest OS實現,這種方式兼容性較差。
  • 硬件輔助虛擬化:藉助硬件的支持來實現高效的全虛擬化,該方式不需要修改Guest OS,兼容性好。

 

我們接下來主要看看如何進行虛擬化:

  1. CPU虛擬化:

主要的兩個關鍵問題:

  • 如何模擬CPU指令:

敏感指令:可以讀寫系統關鍵資源的指令

特權指令:只能在處理器的最高特權級執行

  • 如何共享CPU:

利用與Native操作系統類似的機制——通過定時器中斷,在中斷觸發時陷入VMM,從而根據調度機制進行調度。

  1. 內存虛擬化:

把物理機的真實物理內容統一管理,包裝成多個虛擬機的內存給若干虛擬機使用。KVM通過內存虛擬化共享物理系統內存,動態分配給虛擬機。

一般來說物理地址都是從0開始的,而且內存都是連續的。但是物理地址的0只有一個,無法滿足所有的虛擬機從0開始的請求;而且雖然可以實現連續的物理地址分配,但是內存使用效率不高,缺乏靈活性。

  1. I/O虛擬化:

可以被看做是位於服務器組件的系統和各種可用I/O處理單元之間的硬件中間件層,使得多個guest可以重複使用有限的外設資源。I/O虛擬化的過程,就是模擬設備的這些寄存器和內存,截獲Guest OS對I/O端口和寄存器的訪問。在KVM中,客戶機可用的設備可分爲三類:

  1. 模擬設備:由純軟件模擬的設備;
  2. Virtio設備:實現VIRTIO API的半虛擬化設備;
  3. PCI設備直接分配。
  1. 全虛擬化:

也稱爲原始虛擬化技術,該模型使用虛擬機協調Guest操作系統和原始硬件,VMM在Guest操作系統和裸硬件之間用於工作協調,一些受保護指令必須由Hypervisor(虛擬機管理程序)來捕獲處理。全虛擬化的運行速度要快於硬件模擬,但是性能方面不如裸機,因爲Hypervisor需要佔用一些資源。北京華爲HCIE雲計算技術的基礎 必須瞭解的什麼是虛擬化?-ielab網絡實驗室

  1. 半虛擬化:

另一種類似於全虛擬化的技術,它使用Hypervisor分享存取底層的硬件,但是它的Guest操作系統集成了虛擬化方面的代碼。該方法無需重新編譯或引起陷阱,因爲操作系統自身能夠與虛擬進程進行很好的協作。半虛擬化需要Guest操作系統做一些修改,使Guest操作系統意識到自己是處於虛擬化環境的,但是半虛擬化提供了與原操作系統相近的性能。

  1. 硬件輔助虛擬化:

Intel/AMD等硬件廠商通過對部分全虛擬化和半虛擬化使用到的軟件技術進行硬件化來提高性能。硬件輔助虛擬化技術常用於優化全虛擬化和半虛擬化產品,最出名的例子莫過於VMware Workstation,它雖然屬於全虛擬化,但是在它的6.0版本中引入了硬件輔助虛擬化技術,比如Intel的VT-x和AMD的AMD-V。現在市面上的主流全虛擬化和半虛擬化產品都支持硬件輔助虛擬化,包括VirtualBox,KVM,VMware ESX和Xen。通過引入硬件技術,將使虛擬化技術更接近物理機的速度。北京華爲HCIE雲計算技術的基礎 必須瞭解的什麼是虛擬化?-ielab網絡實驗室

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章