Linux Container OpenStack OpenVZ Docker Linux KVM Xen LXC 虛擬化

扮演雲端運算關鍵基礎 開源虛擬化技術概觀

2014-12-10
近年來,虛擬化風潮席捲全球,針對這個重大議題,本文將介紹虛擬化技術的發展,以及相關的開放原始碼虛擬化技術,讓讀者能夠對整個雲端運算中相當重要的虛擬化技術有非常深入的認識。
從最近雲端運算的發展中,可以看到開放原始碼勢力的大規模崛起,例如最近非常熱門儼然有成為雲端運算IaaS標準的OpenStack。OpenStack本身就是一個開放原始碼專案,而OpenStack核心是使用開放原始碼的Python程式語言設計的,作業系統底層使用Linux,虛擬化技術主要是使用開放原始碼的Linux KVM(Kernel-based Virtual Machine)及Xen,相關的基礎網路架構、儲存架構也都是以開放原始碼技術為基礎。由此可見,開放原始碼技術將會是未來雲端技術的核心。

開放原始碼虛擬化技術

虛擬化技術起源於1960年代在大型主機(Mainframe Computers)上為了分隔不同應用程式所存取的系統資源而開發的技術,之後由於需求的變化及軟硬體技術的更新,開始演進出許多種不同的應用形態。

現今雲端運算上的虛擬化技術,主要是將原本運作在實際伺服器上的伺服器作業系統,變成在虛擬化的軟體上執行,因此在硬體故障時,這些伺服器系統便可以很容易地移轉到另外一台已設置好虛擬化軟體的硬體上,系統不需要重新安裝與設定,新硬體與舊硬體也不必是相同規格,可以大幅簡化伺服器的管理。

同時,一套具備多核心中央處理器的硬體,也可以透過虛擬化執行多個作業系統,讓愈來愈強大的硬體資源可以得到更充分的利用,因此虛擬化技術是雲端運算很重要的基礎建設。

開放原始碼上主流的虛擬化技術大致上分兩種,一種是平台虛擬化技術(Platform Virtualization),另一種則是作業系統層級的虛擬化技術(Operating System-level Virtualization)。

平台虛擬化技術簡介

平台虛擬化的架構是用軟體建立一個模擬真實電腦硬體的虛擬機器(Virtual Machine),而原本執行在實際電腦硬體的作業系統,則運作執行在這個虛擬機器上,虛擬機器內運行的作業系統與實際的電腦硬體之間,會有軟體介面隔離控制這些虛擬機器對硬體的存取。

底層實際硬體執行平台虛擬化系統的這一層稱作Host,而運作在平台虛擬化系統之上的作業系統稱為Guest,進行平台虛擬化的系統軟體則被稱作Hypervisor或虛擬機器管理員(Virtual Machine Manager),Hypervisor因為主要是在控制虛擬機器的運作,又被稱為虛擬機器監視器(Virtual Machine Monitor),縮寫為VMM。

由於平台虛擬化是模擬整個實際的電腦硬體,因此平台虛擬化又被稱為硬體虛擬化(Hardware Virtualization),平台虛擬化又可分為下列幾種的演進:

1. 完全虛擬化

完全虛擬化(Full Virtualization)的運作方式是,由軟體完整模擬實際的電腦硬體,Guest作業系統執行的指令都是由虛擬機器管理員轉譯給底層的硬體處理。

因此Guest作業系統完全不需修改就可以執行,但Guest作業系統的每個指令因為都是由軟體進行轉譯,所以效能上較差,完全虛擬化的架構示意如圖1所示。


▲圖1 完全虛擬化架構。

2. 部分虛擬化

部分虛擬化(Partial Virtualization)只模擬部分硬體環境給某些特定應用軟體使用,因此這些特定應用軟體必須進行修改才能在模擬的環境中運作。部分虛擬化是提供應用程式執行模擬環境,不能運行整套作業系統。

3. 作業系統輔助虛擬化

作業系統輔助虛擬化的英文全稱為OS Assisted Virtualization,又稱作Para Virtualization。其作業系統輔助虛擬化並不模擬整個完整的硬體,而是提供一個虛擬化軟體介面供Guest作業系統使用,此軟體介面會直接與底層的硬體銜接,因此Guest作業系統的指令無須一一轉譯,運作效能會有很顯著的強化,但缺點是Guest作業系統須針對這個虛擬化介面進行修改。作業系統輔助虛擬化的架構示意,如圖2所示。


▲圖2 作業系統輔助虛擬化架構。

4. 硬體輔助虛擬化

硬體輔助虛擬化(Hardware Assisted Virtualization)是由中央處理器提供協助虛擬化的指令,虛擬機器管理員會將Guest作業系統的指令交由最底層中央處理器硬體處理,因此效能上當然大大勝過作業系統輔助虛擬化與完全虛擬化,Guest作業系統也完全無需修改。


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!