登錄

虛擬化技術(shù)

百科 > 計(jì)算機(jī) > 虛擬化技術(shù)

1.什么是虛擬化技術(shù)

  虛擬化技術(shù)是指實(shí)現(xiàn)虛擬化的具體的技術(shù)性手段和方法的集合性概念。虛擬化技術(shù)可以擴(kuò)大硬件的容量,簡(jiǎn)化軟件的重新配置過(guò)程。

2.虛擬化技術(shù)的內(nèi)容

  虛擬化技術(shù)最早出現(xiàn)在20世紀(jì)60年代的IBM大型機(jī)系統(tǒng),在70年代的System 370系列中逐漸流行起來(lái),這些機(jī)器通過(guò)一種叫虛擬機(jī)監(jiān)控器的程序在物理硬件之上生成許多可以運(yùn)行獨(dú)立操作系統(tǒng)軟件的虛擬機(jī)(Virtual Machine)實(shí)例。隨著多核系統(tǒng)、集群、網(wǎng)格甚至云計(jì)算的廣泛部署,虛擬化技術(shù)在商業(yè)應(yīng)用上的優(yōu)勢(shì)日益體現(xiàn),不僅降低了IT成本,而且還增強(qiáng)了系統(tǒng)安全性和可靠性,虛擬化的概念也逐漸深入到人們?nèi)粘5墓ぷ髋c生活中。虛擬化是一個(gè)廣義的術(shù)語(yǔ),在計(jì)算機(jī)方面通常是指計(jì)算元件在虛擬的基礎(chǔ)上而不是真實(shí)的基礎(chǔ)上運(yùn)行。它可以擴(kuò)大硬件的容量,簡(jiǎn)化軟件的重新配置過(guò)程,減少軟件虛擬機(jī)相關(guān)開銷和支持更廣泛的操作系統(tǒng)方面。虛擬化技術(shù)可以同時(shí)運(yùn)行多個(gè)操作系統(tǒng),而且每一個(gè)操作系統(tǒng)中都有多個(gè)程序運(yùn)行,每一個(gè)操作系統(tǒng)都運(yùn)行在一個(gè)虛擬的CPU或者是虛擬主機(jī)上;可以在相互獨(dú)立的空間內(nèi)運(yùn)行而互不影響,從而顯著提高計(jì)算機(jī)的工作效率

  虛擬化技術(shù)與多任務(wù)以及超線程技術(shù)是完全不同的。多任務(wù)是指在一個(gè)操作系統(tǒng)中多個(gè)程序同時(shí)一起運(yùn)行,而在虛擬化技術(shù)中,則可以同時(shí)運(yùn)行多個(gè)操作系統(tǒng),而且每一個(gè)操作系統(tǒng)中都有多個(gè)程序運(yùn)行,每一個(gè)操作系統(tǒng)都運(yùn)行在一個(gè)虛擬的CPU或者是虛擬主機(jī)上;而超線程技術(shù)只是單CPU模擬雙CPU來(lái)平衡程序運(yùn)行性能,這兩個(gè)模擬出來(lái)的CPU是不能分離的,只能協(xié)同工作。

  虛擬化技術(shù)也與VMwareWorkstation等同樣能達(dá)到虛擬效果的軟件不同,是一個(gè)巨大的技術(shù)進(jìn)步,具體表現(xiàn)在減少軟件虛擬機(jī)相關(guān)開銷和支持更廣泛的操作系統(tǒng)方面。

  純軟件虛擬化解決方案存在很多限制?!翱蛻簟辈僮飨到y(tǒng)很多情況下是通過(guò)VMM(VirtualMachineMonitor,虛擬機(jī)監(jiān)視器)來(lái)與硬件進(jìn)行通信,由VMM來(lái)決定其對(duì)系統(tǒng)上所有虛擬機(jī)的訪問(wèn)。(注意,大多數(shù)處理器和內(nèi)存訪問(wèn)獨(dú)立于VMM,只在發(fā)生特定事件時(shí)才會(huì)涉及VMM,如頁(yè)面錯(cuò)誤。)在純軟件虛擬化解決方案中,VMM在軟件套件中的位置是傳統(tǒng)意義上操作系統(tǒng)所處的位置,而操作系統(tǒng)的位置是傳統(tǒng)意義上應(yīng)用程序所處的位置。

  虛擬化技術(shù)是一套解決方案。完整的情況需要CPU、主板芯片組、BIOS和軟件的支持,例如VMM軟件或者某些操作系統(tǒng)本身。即使只是CPU支持虛擬化技術(shù),在配合VMM的軟件情況下,也會(huì)比完全不支持虛擬化技術(shù)的系統(tǒng)有更好的性能。

3.虛擬化技術(shù)的分類

  通常所說(shuō)的虛擬化主要是指平臺(tái)虛擬化技術(shù),通過(guò)使用控制程序(Control Program,也被稱為Virtual Machine Monitor 或 Hypervisor),隱藏特定計(jì)算平臺(tái)的實(shí)際物理特性,為用戶提供抽象的、統(tǒng)一的、模擬的計(jì)算環(huán)境(稱為虛擬機(jī))。虛擬機(jī)中運(yùn)行的操作系統(tǒng)被稱為客戶機(jī)操作系統(tǒng)(Guest OS),運(yùn)行虛擬機(jī)監(jiān)控器的操作系統(tǒng)被稱為主機(jī)操作系統(tǒng)(Host OS),當(dāng)然某些虛擬機(jī)監(jiān)控器可以脫離操作系統(tǒng)直接運(yùn)行在硬件之上(如 VMWARE 的 ESX 產(chǎn)品)。運(yùn)行虛擬機(jī)的真實(shí)系統(tǒng)我們稱之為主機(jī)系統(tǒng)。虛擬化技術(shù)根據(jù)對(duì)象可以分成存儲(chǔ)虛擬化、計(jì)算虛擬化、 網(wǎng)絡(luò)虛擬化等。

  1. 平臺(tái)虛擬化,針對(duì)計(jì)算機(jī)和操作系統(tǒng)的虛擬化。
  2. 資源虛擬化,針對(duì)特定的系統(tǒng)資源的虛擬化,比如內(nèi)存、存儲(chǔ)、網(wǎng)絡(luò)資源等。
  3. 應(yīng)用程序虛擬化,包括仿真、模擬、解釋技術(shù)等。

  平臺(tái)虛擬化又包括:

  • 全虛擬化

  全虛擬化是指虛擬機(jī)模擬了完整的底層硬件,包括處理器、物理內(nèi)存、時(shí)鐘、外設(shè)等,使得為原始硬件設(shè)計(jì)的操作系統(tǒng)或其它系統(tǒng)軟件完全不做任何修改就可以在虛擬機(jī)中運(yùn)行。操作系統(tǒng)與真實(shí)硬件之間的交互可以看成是通過(guò)一個(gè)預(yù)先規(guī)定的硬件接口進(jìn)行的。全虛擬化 VMM 以完整模擬硬件的方式提供全部接口(同時(shí)還必須模擬特權(quán)指令的執(zhí)行過(guò)程)。

  • 超虛擬化

  這是一種修改Guest OS部分訪問(wèn)特權(quán)狀態(tài)的代碼以便直接與VMM交互的技術(shù)。在超虛擬化虛擬機(jī)中,部分硬件接口以軟件的形式提供給客戶機(jī)操作系統(tǒng),這可以通過(guò) Hypercall(VMM提供給Guest OS的直接調(diào)用,與系統(tǒng)調(diào)用類似)的方式來(lái)提供。

  • 硬件輔助虛擬化

  硬件輔助虛擬化是指借助硬件(主要是主機(jī)處理器)的支持來(lái)實(shí)現(xiàn)高效的全虛擬化。

  • 部分虛擬化

  VMM只模擬部分底層硬件,因此客戶機(jī)操作系統(tǒng)不做修改是無(wú)法在虛擬機(jī)中運(yùn)行的,其它程序可能也需要進(jìn)行修改。

  • 操作系統(tǒng)級(jí)虛擬化

  在傳統(tǒng)操作系統(tǒng)中,所有用戶的進(jìn)程本質(zhì)上是在同一個(gè)操作系統(tǒng)的實(shí)例中運(yùn)行,因此內(nèi)核或應(yīng)用程序的缺陷可能影響到其它進(jìn)程。操作系統(tǒng)級(jí)虛擬化是一種在服務(wù)器操作系統(tǒng)中使用的輕量級(jí)的虛擬化技術(shù),內(nèi)核通過(guò)創(chuàng)建多個(gè)虛擬的操作系統(tǒng)實(shí)例(內(nèi)核和庫(kù))來(lái)隔離不同的進(jìn)程,不同實(shí)例中的進(jìn)程完全不了解對(duì)方的存在。

4.虛擬化技術(shù)的原理

  1974年,Popek和Goldberg在《Formal Requirements for Virtualizable Third Generation Architectures》 論文中提出了一組稱為虛擬化準(zhǔn)則的充分條件,滿足這些條件的控制程序可以被稱為虛擬機(jī)監(jiān)控器(Virtual Machine Monitor,簡(jiǎn)稱VMM):

  1. 資源控制。控制程序必須能夠管理所有的系統(tǒng)資源。
  2. 等價(jià)性。在控制程序管理下運(yùn)行的程序(包括操作系統(tǒng)),除時(shí)序和資源可用性之外的行為應(yīng)該與沒(méi)有控制程序時(shí)的完全一致,且預(yù)先編寫的特權(quán)指令可以自由地執(zhí)行。
  3. 效率性。絕大多數(shù)的客戶機(jī)指令應(yīng)該由主機(jī)硬件直接執(zhí)行而無(wú)需控制程序的參與。

  盡管基于簡(jiǎn)化的假設(shè),但上述條件仍為評(píng)判一個(gè)計(jì)算機(jī)體系結(jié)構(gòu)是否能夠有效支持虛擬化提供了一個(gè)便利方法,也為設(shè)計(jì)可虛擬化計(jì)算機(jī)架構(gòu)給出了指導(dǎo)原則。

評(píng)論  |   0條評(píng)論