近年來,虛擬化風潮席捲全球,針對這個重大議題,本文將介紹虛擬化技術的發展,以及相關的開放原始碼虛擬化技術,讓讀者能夠對整個雲端運算中相當重要的虛擬化技術有非常深入的認識。
作業系統層級虛擬化:OpenVZ
OpenVZ是Parallels這家公司所維護的開放原始碼社群計畫,Parallels最有名的商業產品就是在Mac OS X上可以運作多個不同作業系統的虛擬化產品Parallels Desktop,因為OpenVZ是相當早就開始發展的作業系統層級虛擬化技術,目前網路上流行的作業系統層級虛擬化私有伺服器(VPS)大部分都是使用OpenVZ技術,因此Linux核心中許多作業系統層級虛擬化的Linux容器(Linux Container,LXC)技術都是OpenVZ發展團隊所貢獻的。
OpenVZ本身有一個控制工具組vzctl來管理OpenVZ的運作,Linux標準Kernel搭配OpenVZ控制工具便可使用。不過,Linux標準主流Kernel並沒有收錄所有OpenVZ發展的特色,因此若是要完全發揮OpenVZ所提供的功能,OpenVZ推薦可以使用OpenVZ根據標準Linux核心另行修正發表的Linux核心,OpenVZ的架構如圖6所示。
|
▲圖6 OpenVZ架構示意圖。 |
作業系統層級虛擬化:Docker
Docker起源於Solomon Hykes在提供PaaS(Platform as a Service)服務公司dotCloud所發展的軟體計畫。原本Docker並不是開放原始碼軟體,不過在2013年Docker便以開放原始碼方式發表,因為原始碼的釋出,就此Docker開啟了快速的發展。
原本Docker是以Linux容器(Linux Container,LXC)技術為基礎,LXC是一個使用者空間工具(User-space Tools),提供一個系統介面以銜接核心空間(Kernel-space)所提供的作業系統層級虛擬化功能,如控制群組(Control Groups,cgroups)或核心命名空間(Kernel Namespaces)。不過,Docker在0.9版開始便自行以Google發展的Go程式語言開發libcontainer程式庫以取代LXC。
Docker因為提供了簡易好用的工具及環境,因此成為新崛起且非常熱門的Linux作業系統層級虛擬化技術,Amazon、OpenStack計畫以及Red Hat都開始將Docker整合進入其雲端平台中,連微軟也宣布將會把Docker整合到其Azure平台以及下一版的Windows Server產品中,圖7是由Docker官方網站所取得的Docker架構示意圖。
|
▲圖7 Docker架構示意圖。 |
結語
本文介紹了虛擬化技術的發展以及相關開放原始碼虛擬化技術,讓讀者能對整個雲端運算中相當重要的虛擬化技術有更進一步的了解,接著將會開始一一詳細介紹這些虛擬化技術的實際安裝與部署應用。
<本文作者:黃明華,目前主要擔任雲端及儲存技術顧問,負責協助開發相關應用產品。擅長研究各式系統及程式技術,並提供相關技術支援、諮詢、導入及評估服務,特別是自由軟體/開放原始碼相關系統與技術。>