虛擬化技術
出自 MBA智库百科(https://wiki.mbalib.com/)
目錄 |
虛擬化技術是指實現虛擬化的具體的技術性手段和方法的集合性概念。虛擬化技術可以擴大硬體的容量,簡化軟體的重新配置過程。
虛擬化技術最早出現在20世紀60年代的IBM大型機系統,在70年代的System 370系列中逐漸流行起來,這些機器通過一種叫虛擬機監控器的程式在物理硬體之上生成許多可以運行獨立操作系統軟體的虛擬機(Virtual Machine)實例。隨著多核系統、集群、網格甚至雲計算的廣泛部署,虛擬化技術在商業應用上的優勢日益體現,不僅降低了IT成本,而且還增強了系統安全性和可靠性,虛擬化的概念也逐漸深入到人們日常的工作與生活中。虛擬化是一個廣義的術語,在電腦方面通常是指計算元件在虛擬的基礎上而不是真實的基礎上運行。它可以擴大硬體的容量,簡化軟體的重新配置過程,減少軟體虛擬機相關開銷和支持更廣泛的操作系統方面。虛擬化技術可以同時運行多個操作系統,而且每一個操作系統中都有多個程式運行,每一個操作系統都運行在一個虛擬的CPU或者是虛擬主機上;可以在相互獨立的空間內運行而互不影響,從而顯著提高電腦的工作效率。
虛擬化技術與多任務以及超線程技術是完全不同的。多任務是指在一個操作系統中多個程式同時一起運行,而在虛擬化技術中,則可以同時運行多個操作系統,而且每一個操作系統中都有多個程式運行,每一個操作系統都運行在一個虛擬的CPU或者是虛擬主機上;而超線程技術只是單CPU模擬雙CPU來平衡程式運行性能,這兩個模擬出來的CPU是不能分離的,只能協同工作。
虛擬化技術也與VMwareWorkstation等同樣能達到虛擬效果的軟體不同,是一個巨大的技術進步,具體表現在減少軟體虛擬機相關開銷和支持更廣泛的操作系統方面。
純軟體虛擬化解決方案存在很多限制。“客戶”操作系統很多情況下是通過VMM(VirtualMachineMonitor,虛擬機監視器)來與硬體進行通信,由VMM來決定其對系統上所有虛擬機的訪問。(註意,大多數處理器和記憶體訪問獨立於VMM,只在發生特定事件時才會涉及VMM,如頁面錯誤。)在純軟體虛擬化解決方案中,VMM在軟體套件中的位置是傳統意義上操作系統所處的位置,而操作系統的位置是傳統意義上應用程式所處的位置。
虛擬化技術是一套解決方案。完整的情況需要CPU、主板晶元組、BIOS和軟體的支持,例如VMM軟體或者某些操作系統本身。即使只是CPU支持虛擬化技術,在配合VMM的軟體情況下,也會比完全不支持虛擬化技術的系統有更好的性能。
通常所說的虛擬化主要是指平臺虛擬化技術,通過使用控製程序(Control Program,也被稱為Virtual Machine Monitor 或 Hypervisor),隱藏特定計算平臺的實際物理特性,為用戶提供抽象的、統一的、模擬的計算環境(稱為虛擬機)。虛擬機中運行的操作系統被稱為客戶機操作系統(Guest OS),運行虛擬機監控器的操作系統被稱為主機操作系統(Host OS),當然某些虛擬機監控器可以脫離操作系統直接運行在硬體之上(如 VMWARE 的 ESX 產品)。運行虛擬機的真實系統我們稱之為主機系統。虛擬化技術根據對象可以分成存儲虛擬化、計算虛擬化、 網路虛擬化等。
- 平臺虛擬化,針對電腦和操作系統的虛擬化。
- 資源虛擬化,針對特定的系統資源的虛擬化,比如記憶體、存儲、網路資源等。
- 應用程式虛擬化,包括模擬、模擬、解釋技術等。
平臺虛擬化又包括:
- 全虛擬化
全虛擬化是指虛擬機模擬了完整的底層硬體,包括處理器、物理記憶體、時鐘、外設等,使得為原始硬體設計的操作系統或其它系統軟體完全不做任何修改就可以在虛擬機中運行。操作系統與真實硬體之間的交互可以看成是通過一個預先規定的硬體介面進行的。全虛擬化 VMM 以完整模擬硬體的方式提供全部介面(同時還必須模擬特權指令的執行過程)。
- 超虛擬化
這是一種修改Guest OS部分訪問特權狀態的代碼以便直接與VMM交互的技術。在超虛擬化虛擬機中,部分硬體介面以軟體的形式提供給客戶機操作系統,這可以通過 Hypercall(VMM提供給Guest OS的直接調用,與系統調用類似)的方式來提供。
- 硬體輔助虛擬化
硬體輔助虛擬化是指藉助硬體(主要是主機處理器)的支持來實現高效的全虛擬化。
- 部分虛擬化
VMM只模擬部分底層硬體,因此客戶機操作系統不做修改是無法在虛擬機中運行的,其它程式可能也需要進行修改。
- 操作系統級虛擬化
在傳統操作系統中,所有用戶的進程本質上是在同一個操作系統的實例中運行,因此內核或應用程式的缺陷可能影響到其它進程。操作系統級虛擬化是一種在伺服器操作系統中使用的輕量級的虛擬化技術,內核通過創建多個虛擬的操作系統實例(內核和庫)來隔離不同的進程,不同實例中的進程完全不瞭解對方的存在。
1974年,Popek和Goldberg在《Formal Requirements for Virtualizable Third Generation Architectures》 論文中提出了一組稱為虛擬化準則的充分條件,滿足這些條件的控製程序可以被稱為虛擬機監控器(Virtual Machine Monitor,簡稱VMM):
- 資源控制。控製程序必須能夠管理所有的系統資源。
- 等價性。在控制程式管理下運行的程式(包括操作系統),除時序和資源可用性之外的行為應該與沒有控製程序時的完全一致,且預先編寫的特權指令可以自由地執行。
- 效率性。絕大多數的客戶機指令應該由主機硬體直接執行而無需控製程序的參與。
儘管基於簡化的假設,但上述條件仍為評判一個電腦體系結構是否能夠有效支持虛擬化提供了一個便利方法,也為設計可虛擬化電腦架構給出了指導原則。