登錄

虛擬化技術(shù)

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

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

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

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

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

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

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

  純軟件虛擬化解決方案存在很多限制?!翱蛻簟辈僮飨到y(tǒng)很多情況下是通過VMM(VirtualMachineMonitor,虛擬機(jī)監(jiān)視器)來與硬件進(jìn)行通信,由VMM來決定其對系統(tǒng)上所有虛擬機(jī)的訪問。(注意,大多數(shù)處理器和內(nèi)存訪問獨(dú)立于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)有更好的性能。

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

  通常所說的虛擬化主要是指平臺虛擬化技術(shù),通過使用控制程序(Control Program,也被稱為Virtual Machine Monitor 或 Hypervisor),隱藏特定計(jì)算平臺的實(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ù)對象可以分成存儲虛擬化、計(jì)算虛擬化、 網(wǎng)絡(luò)虛擬化等。

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

  平臺虛擬化又包括:

  • 全虛擬化

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

  • 超虛擬化

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

  • 硬件輔助虛擬化

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

  • 部分虛擬化

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

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

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

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

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

  1. 資源控制??刂瞥绦虮仨毮軌?a href="/wiki/%E7%AE%A1%E7%90%86" title="管理">管理所有的系統(tǒng)資源。
  2. 等價性。在控制程序管理下運(yùn)行的程序(包括操作系統(tǒng)),除時序和資源可用性之外的行為應(yīng)該與沒有控制程序時的完全一致,且預(yù)先編寫的特權(quán)指令可以自由地執(zhí)行。
  3. 效率性。絕大多數(shù)的客戶機(jī)指令應(yīng)該由主機(jī)硬件直接執(zhí)行而無需控制程序的參與。

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

評論  |   0條評論