OpenNebula是一款為云計算而打造的開源工具箱。它允許你與Xen,KVM或VMware ESX一起建立和管理私有云,同時還提供Deltacloud適配器與Amazon EC2相配合來管理混合云。除了像Amazon一樣的商業(yè)云服務提供商,在不同OpenNebula實例上運行私有云的Amazon合作伙伴也同樣可以作為遠程云服務供應商。
目前版本,可支持XEN、KVM和VMware,以及實時存取EC2和 ElasticHosts,它也支持印象檔的傳輸、復制和虛擬網(wǎng)絡管理網(wǎng)絡。
圖1 OpenNebula總體架構圖
OpenNebula可以構建私有云、混合云、公開云。
私有云
私有云的目的是給本地的用戶和管理員提供了一個靈活和敏捷的私人基礎設施,以在可管理的域內運行虛擬化服務。 OpenNebula虛擬基礎設施暴露虛擬化、網(wǎng)絡、圖像和物理資源的配置、管理、監(jiān)督和會計的功能接口。
圖2 私有云
一個OpenNebula私有云為平臺基礎設施的用戶提供了一個快速交付和可擴展性的平臺,以滿足最終用戶的動態(tài)需求。服務托管在虛擬機,然后提交,監(jiān)視和被云控制,通過使用OpenNebula運營中心或OpenNebula的任何接口。
圖3 私有云內用戶視圖
混合云
OpenNebula提供Deltacloud適配器與Amazon EC2相配合來管理混合云。
圖4 混合云
公開云
OpenNebula公有云是私有云的一個擴展,是在私有云的基礎上對外暴露REST接口。如果你要讓合作伙伴或外部用戶能夠訪問您的基礎設施,或出售你的服務,云接口可以被添加到您的私有或混合云。顯然,一個本地的云解決方案是任何公共云自然后端。
圖5 公開云
OpenNebula的構架包括三個部分:驅動層、核心層、工具層。驅動層直接與操作系統(tǒng)打交道,負責虛擬機的創(chuàng)建、啟動和關閉,為虛擬機分配存儲,監(jiān)控物理機和虛擬機的運行狀況。核心層負責對虛擬機、存儲設備、虛擬網(wǎng)絡等進行管理。工具層通過命令行界面/瀏覽器界面方式提供用戶交互接口,通過API方式提供程序調用接口。
圖6 三層架構圖
OpenNebula使用共享存儲設備(例如NFS)來提供虛擬機映像服務,使得每一個計算節(jié)點都能夠訪問到相同的虛擬機映像資源。當用戶需要啟動或者是關閉某個虛擬機時,OpenNebula通過SSH登陸到計算節(jié)點,在計算節(jié)點上直接運行相對應的虛擬化管理命令。這種模式也稱為無代理模式,由于不需要在計算節(jié)點上安裝額外的軟件(或者服務),系統(tǒng)的復雜度也相對降低了。
圖7 前端節(jié)點和集群節(jié)點之間交互
網(wǎng)絡架構
OpenNebula使用橋連接來構建虛擬網(wǎng)絡,每個節(jié)點的IP和MAC地址在一定范圍內生成。一個網(wǎng)絡會連接到一個特定的橋。每一個網(wǎng)絡有他自己的擁有者并且可以對外公開或私有。每一個虛擬網(wǎng)絡之間是相互隔離的。
虛擬網(wǎng)絡里使用Ebtables來過濾數(shù)據(jù)鏈路層數(shù)據(jù)包。
參考資料
1.虛擬化管理軟件比較 -- 構架篇:http://www.qyjohn.net/?p=1263
2.opennebula.org:http://opennebula.org/
3.OpenNebula Workshop:http://hpc.uamr.de/wissen/opennebula-workshop/