登錄

虛擬化技術(shù)

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

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

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

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

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

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

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

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

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

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

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

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

  平臺虛擬化又包括:

  • 全虛擬化

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

  • 超虛擬化

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

  • 硬件輔助虛擬化

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

  • 部分虛擬化

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

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

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

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

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

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

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

評論  |   0條評論