虛擬化技術原理

如今很流行什麼大數據,虛擬化,雲計算什麼一堆堆的,聽着就高端大氣上檔次,那麼什麼是虛擬化呢,筆者也在學習中,和你們分享下最近學的虛擬化,但願你們一塊兒學習


虛擬化前言
在生產環境中,可能會須要不少服務來應用,可是有的服務可能佔用的資源會不多,若是每一個服務用一臺服務器來跑的話,可能會很浪費資源,並且增大消費,可是若是把不少服務在一臺服務器上跑的話,文件會很混亂。因此但願服務運行在不少個不會影響的OS,而且減小服務器數量。所以,虛擬化技術應用而生,簡單的說,虛擬化技術就是一臺服務器上運行多個OS。
列如VMware workstation虛擬機來講,VMware只是服務器上的一個進程,而它上面能夠運行不少個虛擬機, 如Centos、Ubantu、0三、08等各類系統,它們只是進程VMware裏面的進程,這些虛擬機都城爲Guest OS,而宿主機爲Host OS
虛擬化技術原理
虛擬化概念
再分層架構中,提供虛擬化平臺的層稱爲hypervisor,又叫VMM。虛擬化的核心技術就是VMM(虛擬機監控器),它是一個管理中間層軟件,運行在系統和硬件之間,可讓多個OS共享一套硬件。VMM具備管理、部署、規劃虛擬機硬件的功能。VMM和虛擬機一塊兒運行,而且相互不爲影響。當運行VMM時,VMM會分配給每臺虛擬機指定的CPU、Memory、I/O等硬件資源,並加載Guest OS。固然,虛擬機裏的操做一樣也是由VMM來接收再轉發給硬件。
VMM必須知足三個要求:一、程序在虛擬環境中和真實環境中運行必須徹底相同。 二、指令集中的絕大部分指令能夠直接在CPU上運行(排除電源關閉等指令集) 三、VMM能徹底控制全部系統資源。
虛擬化技術原理
虛擬化類型
虛擬化根據不一樣的標準有不少種分類,如:徹底虛擬化、半虛擬化、硬件虛擬化、跨平臺虛擬化等。服務器

徹底虛擬化
在徹底虛擬化中,Guest OS就像在運行在正常的服務器上同樣,徹底不知道本身運行在虛擬化平臺上,能夠向機器發出指令,Guest OS發出的指令,全程由VMM接受,再轉發送給CPU,但對於一些敏感的指令,VMM會過濾掉。
列如Guest OS發出power off的指令,若是不通過過濾CPU會直接關閉電源。這裏VMM會接受並修改這個指令,再轉發給CPU,僅讓CPU關閉虛擬機的電源。
硬件虛擬化
硬件虛擬化是由CPU廠商直接在芯片上提供了對虛擬化的支持。好比Intel的vt和AMD的amd-v都爲CPU增長了新的執行模式。Intel對指令集從新設計,使得本來不能經過先陷入後模擬的方式執行的指令均可以順利執行。開啓vt-x後,能夠把一個CPU邏輯上轉換爲多個CPU。新的指令集增長了Root模式位於Ring 0的下面,能夠理解爲在硬件級別增添了Ring -1,讓VMM運行Ring -1(至關於普通服務器Ring 0),而Guest OS運行在Non-Root模式——Ring 0。當切換到Guest模式時,CPU提供了先前完整的特權等級,讓Guest OS能夠不加修改的運行在物理的CPU上。此時,VMM經過一個位於內存的數據結構(Intel稱爲VMCS,AMD稱爲VMCB)來控制Guest OS與Host OS的交互,以完成整個平臺的虛擬化
虛擬化技術原理
筆者如今也就學了這麼多,但願你們有什麼多指出來,你們一塊兒學習數據結構

相關文章
相關標籤/搜索