虛擬化技術基礎知識
在實際的生產(chǎn)環(huán)境中,虛擬化技術主要用來解決高性能的物理硬件產(chǎn)能過剩和老的舊的硬件產(chǎn)能過低的重組重用,透明化底層物理硬件,從而最大化的利用物理硬件,以下是由學習啦小編整理關于虛擬化技術基礎知識的內(nèi)容,希望大家喜歡!
虛擬化技術的定義
虛擬化技術與多任務以及超線程技術是完全不同的。多任務是指在一個操作系統(tǒng)中多個程序同時一起運行,而在虛擬化技術中,則可以同時運行多個操作系統(tǒng),而且每一個操作系統(tǒng)中都有多個程序運行,每一個操作系統(tǒng)都運行在一個虛擬的CPU或者是虛擬主機上;而超線程技術只是單CPU模擬雙CPU來平衡程序運行性能,這兩個模擬出來的CPU是不能分離的,只能協(xié)同工作。
虛擬化技術也與VMware Workstation等同樣能達到虛擬效果的軟件不同,是一個巨大的技術進步,具體表現(xiàn)在減少軟件虛擬機相關開銷和支持更廣泛的操作系統(tǒng)方面。
純軟件虛擬化解決方案存在很多限制。“客戶”操作系統(tǒng)很多情況下是通過VMM(Virtual Machine Monitor,虛擬機監(jiān)視器)來與硬件進行通信,由VMM來決定其對系統(tǒng)上所有虛擬機的訪問。(注意,大多數(shù)處理器和內(nèi)存訪問獨立于VMM,只在發(fā)生特定事件時才會涉及VMM,如頁面錯誤。)在純軟件虛擬化解決方案中,VMM在軟件套件中的位置是傳統(tǒng)意義上操作系統(tǒng)所處的位置,而
操作系統(tǒng)的位置是傳統(tǒng)意義上應用程序所處的位置。
虛擬化技術是一套解決方案。完整的情況需要CPU、主板芯片組、BIOS和軟件的支持,例如VMM軟件或者某些操作系統(tǒng)本身。即使只是CPU支持虛擬化技術,在配合VMM的軟件情況下,也會比完全不支持虛擬化技術的系統(tǒng)有更好的性能。
兩大CPU巨頭Intel和AMD都想方設法在虛擬化領域中占得先機,但是AMD的虛擬化技術在時間上要比Intel落后幾個月。Intel自2005年末開始便在其處理器產(chǎn)品線中推廣應用Intel Virtualization Technology(Intel VT)虛擬化技術。
而AMD方面也已經(jīng)發(fā)布了支持AMD Virtualization Technology(AMD VT)虛擬化技術的一系列處理器產(chǎn)品,包括Socket S1接口的Turion 64 X2系列以及Socket AM2接口的Athlon 64 X2系列和Athlon 64 FX系列等等,并且絕大多數(shù)的AMD下一代主流處理器,包括即將發(fā)布的Socket F接口的Opteron都將支持AMD VT虛擬化技術。
虛擬化技術的原理
虛擬機是對真實計算環(huán)境的抽象和模擬,VMM 需要為每個虛擬機分配一套數(shù)據(jù)結(jié)構(gòu)來管理它們狀態(tài),包括虛擬處理器的全套寄存器,物理內(nèi)存的使用情況,虛擬設備的狀態(tài)等等。VMM 調(diào)度虛擬機時,將其部分狀態(tài)恢復到主機系統(tǒng)中。并非所有的狀態(tài)都需要恢復,例如主機 CR3 寄存器中存放的是 VMM 設置的頁表物理地址,而不是 Guest OS 設置的值。主機處理器直接運行 Guest OS 的機器指令,由于 Guest OS運行在低特權(quán)級別,當訪問主機系統(tǒng)的特權(quán)狀態(tài)(如寫 GDT寄存器)時,權(quán)限不足導致主機處理器產(chǎn)生異常,將運行權(quán)自動交還給 VMM。此外,外部中斷的到來也會導致 VMM 的運行。
VMM 可能需要先將 該虛擬機的當前狀態(tài)寫回到狀態(tài)數(shù)據(jù)結(jié)構(gòu)中,分析虛擬機被掛起的原因,然后代表 Guest OS 執(zhí)行相應的特權(quán)操作。最簡單的情況,如Guest OS 對 CR3 寄存器的修改,只需要更新虛擬機的狀態(tài)數(shù)據(jù)結(jié)構(gòu)即可。一般而言,大部分情況下,VMM 需要經(jīng)過復雜的流程才能完成原本簡單的操作。最后 VMM 將運行權(quán)還給 Guest OS,Guest OS 從上次被中斷的地方繼續(xù)執(zhí)行,或處理 VMM “塞”入的虛擬中斷和異常。這種經(jīng)典的虛擬機運行方式被稱為 Trap-And-Emulate,虛擬機對于 Guest OS 完全透明,Guest OS 不需要任何修改,但是 VMM 的設計會比較復雜,系統(tǒng)整體性能受到明顯的損害。
虛擬化技術的分類
硬件虛擬化
虛擬機(Virtual machine或VM),可以像真實機器一樣運行程序的計算機的軟件實現(xiàn)
便攜式應用程序,允許程序在便攜式設備中運行而不用在操作系統(tǒng)中安裝
跨平臺虛擬化,允許針對特定CPU或者操作系統(tǒng)的軟件不做修改就能運行在其他平臺上,例如Wine
虛擬設備,運行于虛擬化平臺之上,面向應用的虛擬機映像
模擬器
完全虛擬化,敏感指令在操作系統(tǒng)和硬件之間被捕捉處理,客戶操作系統(tǒng)無需修改,所有軟件都能在虛擬機中運行,例如IBM CP/CMS,VirtualBox,VMware Workstation
硬件輔助虛擬化,利用硬件(主要是CPU)輔助處理敏感指令以實現(xiàn)完全虛擬化的功能,客戶操作系統(tǒng)無需修改,例如VMware Workstation,Xen,KVM
部分虛擬化,針對部分應用程序進行虛擬,而不是整個操作系統(tǒng)
準虛擬化/超虛擬化(paravirtualization),為應用程序提供與底層硬件相似但不相同的軟件接口,客戶操作系統(tǒng)需要進行修改,例如早期的Xen
操作系統(tǒng)級虛擬化,使操作系統(tǒng)內(nèi)核支持多用戶空間實體,例如Parallels Virtuozzo Containers,Unix-like系統(tǒng)上的chroot,Solaris上的Zone
平臺虛擬化,將操作系統(tǒng)和硬件平臺資源分割開
應用程序虛擬化,在操作系統(tǒng)和應用程序間建立虛擬環(huán)境
虛擬內(nèi)存,將不相鄰的內(nèi)存區(qū),甚至硬盤空間虛擬成統(tǒng)一連續(xù)的內(nèi)存地址
存儲虛擬化,將實體存儲空間(如硬盤)分隔成不同的邏輯存儲空間
網(wǎng)絡虛擬化,將不同網(wǎng)絡的硬件和軟件資源結(jié)合成一個虛擬的整體
虛擬專用網(wǎng)絡(),在大型網(wǎng)絡(通常是Internet)中的不同計算機(節(jié)點)通過加密連接而組成的虛擬網(wǎng)絡,具有類似局域網(wǎng)的功能
存儲器虛擬化,將網(wǎng)絡系統(tǒng)中的隨機存儲器聚合起來,形成統(tǒng)一的虛擬內(nèi)存池
桌面虛擬化,在本地計算機顯示和操作遠程計算機桌面,在遠程計算機執(zhí)行程序和儲存信息
數(shù)據(jù)庫虛擬化
軟件虛擬化
服務虛擬化
虛擬化發(fā)展時間線
看過“虛擬化技術基礎知識“的人還看了:
2.虛擬化基礎知識
3.虛擬機基礎知識
虛擬化技術基礎知識




