虛擬化技術

虛擬化技術概述

如果你開始閱讀這篇文章,就默認你了解什麼是馮諾伊曼結構。下圖就是經典的馮諾伊曼結構,有輸入輸出,有存儲器,有 cpu, 而其中又有控制單元也有運算單元 ALU。這些就構成基本的計算機硬件系統了。而所謂虛擬化技術指的就是,希望能在一台主機上模擬出很多套這樣完整的結構,使同一台主機能夠虛擬為多台主機使用。

深入點說,其實虛擬化技術意味的就是對計算資源的抽象。隨著雲計算的概念提出,虛擬化技術可以對數據中心的等等計算資源進行管理和分配,可以實現硬件級虛擬化,服務器虛擬化,存儲虛擬化,網絡虛擬化,桌面虛擬化。本篇就來說說對這些虛擬化技術的理解。

虛擬化技術分類

硬件級虛擬化

我們可以把虛擬化技術分為兩大類,第一類是建立在宿主主機上的,也就是說宿主機是有操作系統的,稱為寄居虛擬化。第二類的宿主機是沒有操作系統的,稱為裸機虛擬化。

寄居虛擬化

寄居虛擬化的模型如下圖所示。最底層是計算機系統的基礎物理硬件,再上是主機的操作系統,操作系統上是一個 VMM(Virtual Machine Monitor),而 VMM 上才是用戶端的虛擬機。

在寄居虛擬化的模型下,虛擬機對計算機系統的各種調用都是通過 VMM 以及操作系統相互協調一起完成的。Windows 用戶常用的 VMware, VirtualBox 都是以這種方式完成的。

裸機虛擬化


裸機虛擬化則是說,直接將 VMM 安裝在底層硬件之上。在裸機虛擬化的場景下,VMM 也叫做 Hypervisor。虛擬機所要執行的指令都會依靠 Hypervisor 接管並與硬件交互。

服務器虛擬化

概括地說,服務器虛擬化是一個抽象的概念,對數據中心的虛擬化有著極大的重要性。簡單來說,就是把一個物理的服務器虛擬成若干個獨立的邏輯服務器。

服務器虛擬化層次

最常見的服務器虛擬化層次就是硬件級虛擬化,分為寄居虛擬化和裸機虛擬化。在上面的硬件級虛擬化已經介紹過了。

服務器虛擬化底層實現

CPU 虛擬化

CPU 虛擬化就是把一個物理 CPU 抽象成若干個虛擬 CPU 。因為一個物理 CPU 在同意時間內只能服務於一個操作系統,所以將 CPU 虛擬化有助於使多個客戶操作系統在同一時間內併發執行,而虛擬 CPU 的運行相互隔離,互不影響。

內存虛擬化

內存虛擬化是將物理內存統一管理,封裝成多個虛擬的邏輯內存空間提供給若干個虛擬機使用,因此每個虛擬機就擁有了獨立的內存資源。

I/O 虛擬化

因為 I/O 設備的多樣性和異構性,導致 I/O 設備的虛擬化會更加複雜和困難。I/O 虛擬化的概念是要將真實世界的物理 I/O 設備統一管理,包裝成多個虛擬設備給虛擬機使用,以響應虛擬機的 I/O 請求。

虛擬機遷移

虛擬機遷移的概念是虛擬機源實例從源宿主機移到目標主機,且能夠恢復原先的狀態,以便能夠繼續執行原本的任務。虛擬機遷移技術在雲計算領域十分重要,增強了系統的容錯程度,且對於錯誤也可以做到無損的修復。

總體來說,虛擬機遷移技術分為三大類,P2V(Physical to Virtual),V2V(Virtual to Virtual),V2P(Virtual to Physical),V 表虛擬機,P 表物理機。

虛擬機動態遷移

虛擬機遷移技術中,最關注的點就是實時遷移(live migration)。意思就是在虛擬機都仍在運行的情況下要完成宿主機到目標機的遷移。

這就包括宿主機完整的狀態和資源的遷移。像是 cpu 狀態,內存狀態和數據信息,磁盤,I/O 設備等等。

虛擬機遷移步驟


內存遷移

內存遷移是虛擬機遷移過程中最困難的部分,因為不可能小且數據量大又必須完全完整。為了完成無損的內存遷移,又可以細分成三個階段:

  1. push
  2. stop-and-copy
  3. pull

網絡資源遷移

網絡資源遷移包含宿主機本身所有的網絡資源,像是網絡協議(TCP/IP)或是 IP 地址等等,都要跟著一起遷移。

存儲設備遷移

存儲設備遷移通常需要占用大量的時間和資源,所以通常做法是以共享方式共享數據,文件系統等等,而不是真正物理意義上的遷移。

隔離技術

隔離技術在虛擬化中非常重要。指的是虛擬機之間在未經許可或配置下,不可互聯,不可互相訪問的技術。

  • 從軟件角度而言,互相隔離的虛擬機就像各自獨立的計算機
  • 從硬件角度而言,互相隔離的虛擬機就像擁有自己的cpu, I/O, memory 等等
  • 從網絡角度而言,被隔離的虛擬機能夠對外提供網絡服務,也一樣可以接受來自外界的網絡服務

存儲虛擬化

存儲虛擬化將系統中分散的存儲資源整合起來,利用有限的物理資源提供大的虛擬存 儲空間,提高了存儲資源利用率,降低了單位存儲空間的成本,降低了存儲管理的負擔和 複雜性。在虛擬層通過使用資料鏡像、資料校驗和多路徑等技術,提高了資料的可靠性及 系統的可用性。同時,還可以利用負載均衡、資料移轉、資料塊重組等技術提升系統的潛 在性能。另外,存儲虛擬化技術可以通過整合和重組底層物理資源,從而得到多種不同性 能和可靠性的新的虛擬裝置,以滿足多種存儲應用的需求。

存儲虛擬化一般模型


如上圖所示,虛擬化存儲系統通常是會在底層的物理設備上再加上一層虛擬化層,將物理設備映射成一個虛擬存儲池。
一般用戶使用虛擬化層對外提供的接口向虛擬存儲池發起請求,而虛擬化層的作用就在於處理這些請求並映射到具體的存儲設備。使用虛擬化層的好處有三:

  1. 減少存儲系統的物理開銷
  2. 實現存儲系統數據共享
  3. 提高系統的可靠性和可擴展性

存儲虛擬化實現方式

網絡虛擬化

網絡虛擬化的技術主要應用於數據中心。傳統數據中心因為服務器之間的異構性,數據格式不統一等等的問題,導致數據中心網絡傳輸效率低下。
由於雲計算技術的提倡,使得虛擬資料中心中業務的集中度、服務的客戶數量遠超過傳統的資料中心,因此對網路的高頻寬、低擁塞提出更高的要求。
虛擬化技術中的網絡虛擬化技術就應用在這種場景下,分為三個層級的虛擬化。

桌面虛擬化

猜你喜欢

转载自blog.csdn.net/weixin_46803507/article/details/109135913