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