1. 程式人生 > >基於KVM、Xen、OpenVZ等虛擬化技術的WEB在線管理工具

基於KVM、Xen、OpenVZ等虛擬化技術的WEB在線管理工具

server 行操作 企業版 消息 嘗試 新的 管理員 過渡 client

1、Proxmox proxmox是一個開源的虛擬化管理平臺,支持集群管理和HA.在存儲方面,proxmox除了支持常用的lvm,nfs,iscsi,還支持集群存儲glusterfs和ceph,這也是我們選擇它的原因.官方網站http://www.proxmox.com。 Proxmox VE (Proxmox VirtualEnvironment) 是一個非常棒的集成OPENVZ【1】支持KVM【2】應用的環境。有方面易用的WEB界面,基於JAVA的UI和內核接口,可以登錄到VM客戶方便的操作,還有易用的模板功能,基本跟老外的商業VPS環境差不多了。
{通過Proxmox VE實現KVM&OpenVZ虛擬化雲計算 http://www.server110.com/openvz/201402/6784.html}
2、webvirtmgr WebVirtMgr 是一個基於 libvirt 開發的用來管理虛擬機的Web接口。你可創建和配置新的域,並調整域的資源分配,可通過 SSH 隧道的 VNC 瀏覽器提供完整的圖形控制臺來訪問 guest 域,支持 KVM。 3、Archipel Archipel 是一個管理和監控虛擬機的解決方案,不管是本機或者是整個數據中心的虛擬機,Archipel 都可以輕松的管理。Archipel 提供了集中式的管理機制,支持的虛擬機包括:KVM, Xen, OpenVZ, or VMWare.
4、CecOS Chinese Enterprise Cloud Operating System 中文企業雲操作系統(以下簡稱CecOS)是 OPENFANS 開源社區的企業雲操作系統項目,以KVM系統管理程序和開放的管理平臺為基礎,針對服務器和桌面虛擬化提供了一套完整的虛擬化解決方案,CecOS v1.0於2013年6月發布,目前發布的v1.4已經是CecOS的第五個穩定版本。
5、虛擬化管理系統 HyperVM 還有,這裏有一堆: http://www.linux-kvm.org/page/Management_Tools 虛擬化管理軟件比較(Eucalyptus, OpenNebula, OpenStack, OpenQRM, XenServer, Oracle VM, CloudStack, ConVirt)

最近籠統地學習和試用了幾款比較有名的虛擬化管理軟件。學習的內容包括Eucalyptus, OpenNebula, OpenStack, OpenQRM, XenServer, Oracle VM, CloudStack, ConVirt。借這一系列文章,對過去一個月的學習內容作一個階段性的總結。

(1)授權協議、許可證管理、購買價格等方面的比較

授權協議 許可證管理 商業模式
Eucalyptus 社區版采用GPLv3授權協議

企業版使用自定義的商業授權協議

社區版不需要安裝許可證

企業版需要在雲控制器(CLC)節點上安裝許可證

社區版免費使用

企業版按處理器核心總數收費,用戶購買的許可證針對特定版本永久有效。

OpenStack Apache 2.0授權協議 不需要許可證 免費使用
OpenNebula Apache 2.0授權協議 不需要許可證 社區版免費使用

企業版將社區版重新打包,提供補丁等程序的訪問權限,使得用戶能夠更容易的安裝、配置和管理,以訂閱的模式提供服務。

企業版按物理服務器總數收費,每臺物理服務器器的服務價格為250歐元每年。

OpenQRM 社區版使用GPLv2授權協議

企業版使用自定義的商業授權協議

不需要許可證 社區版免費使用

企業版將社區版重新打包,提供補丁等程序的訪問權限,使得用戶能夠更容易的安裝、配置和管理,以訂閱的模式提供服務。基本、標準和高級服務的價格分別為480、960、1920歐元每月。

XenServer Citrix XenServer系列產品均使用自定義的商業授權協議

基於XenServer的Xen Cloud Platform使用GPLv2授權協議

不管是XenServer還是Xen Cloud Platform都需要在每臺服務器安裝許可證

許可證每年更新一次

XenServer免費版本和開源版本的Xen Cloud Platform可以免費使用

XenServer高級版、企業版和白金版按物理服務器數量收費,分別是1000、2500和5000美元。購買的許可證針對特定版本永久有效

Oracle VM Oracle VM Server是基於Xen開發的,使用GPLv2協議發布,從Oracle的網站可以下載到源代碼,但是Oracle並不宣傳這一點。

Oracle VM Manager使用自定義的商業授權協議。

Oracle VM VirtualBox的二進制版本使用自定義的商業授權協議,源代碼使用GPLv2授權協議。

不需要許可證 免費使用,可以購買技術支持。技術支持的費用為每臺物理服務器8184人民幣每年。
CloudStack 社區版采用GPLv3授權協議企業版使用自定義的商業授權協議 社區版不需要安裝許可證

企業版需要在管理服務器上安裝許可證

社區版免費使用企業版提供增強功能和技術支持,收費模式不詳。
ConVirt 社區版使用GPLv2授權協議

企業版使用自定義的商業授權協議

社區版不需要安裝許可證

企業版需要在管理服務器上安裝許可證

社區版免費使用

企業版提供增強功能和技術支持,按物理服務器數量收費,每個節點費用1090美元。購買的許可證針對特定版本永久有效。

(2)項目歷史與運營團隊、社區規模和活躍程度、溝通交流等方面的比較

項目歷史與運營團隊 社區規模和活躍程度 溝通交流
Eucalyptus 最初是UCSB的HPC研究項目,2009年初成立公司來支持該項目的商業化運營。現任CEO是曾擔任MySQL CEO的Marten Mickos,現任工程部門SVP的Tim Cramerc曾擔任 Sun公司NetBeans和OpenSolaris項目的執行總監。整個管理團隊對開放源代碼項目的管理和運營方面具有豐富的經驗。 在同類開放源代碼項目當中,Eucalyptus的社區規模最大,活躍程度也最高。主要原因是該項目起源於大學研究項目,次要原因是管理團隊對開放源代碼理念的高度認同。Ubuntu 10.04服務器版選擇Eucalyptus作為UEC的基礎構架,大大地促進了Eucalyptu的推廣。 社區發表在論壇上的問題通常在48小時內得到回應,通過技術支持電子郵件提出的問題通常在24小時內得到回應。

Eucalyptus在北京和深圳設有辦事處,在中國有工程師提供支持團隊。

OpenStack OpenStack是服務器托管公司RackSpace與NASA共同發起的開放源代碼項目。在開放源代碼項目的管理和運營方面,RackSpace和NASA顯然缺乏足夠的經驗。針對OpenStack項目的批評集中在(1)RackSpace對項目有過於強烈的控制欲,(2)OpenStack項目的運作對於社區成員來說基本上是不透明的,(3)OpenStack項目對同類開放源代碼項目的攻擊性過強。 社區規模較小,主要參與者為支持/參與該項目的公司人員。有幾個公開的郵件列表,流量很小。由於該項目比較新,在網絡上可以參考的安裝與配置方面的文章不多。Ubuntu 11.04服務器版同時支持Eucalyptus和OpenStack作為UEC的基礎構架,將有助於OpenStack的推廣。 通過郵件列表進行技術方面的溝通,通常在48小時內得到回應。商務方面的郵件溝通,沒有得到回應。
OpenNebula 2005年啟動的研究性項目,2008年初發布第一個開放源代碼版本,2010年初大力推進開源社區的建設。 社區規模較小,主要參與者為支持/參與該項目的公司人員,以及少量的用戶。有幾個公開的郵件列表,流量比OpenStack項目的流量稍大。在網絡上搜索到一些中文版安裝和配置方面的文章,基本上是以訛傳訛,缺乏可操作性。英文版的相關文章也不多,可操作的更少。 通過郵件列表進行技術方面的溝通,通常在48小時內得到回應。
OpenQRM 起源於集群管理方面的軟件,2006年公開源代碼,2008年免費發布,目前版本為4.8。

項目的運營團隊較小,似乎只有Matt Rechenburg一個人。

有一些零星的用戶,基本上沒有形成社區。雖然功能還在不斷更新,但是用戶文檔的日期是2008年的。相關論壇的活躍程度比OpenStack和OpenNebula更差。 在論壇發布的問題,大約有50%左右沒有得到回應。通過電子郵件進行商務溝通,反應迅速,在24小時以內得到回應。
XenServer Citrix公司的產品,與Xen項目的發展基本同步。 圍繞Xen Cloud Platform有一些開放源代碼的項目,用於替代XenCentor提供基於桌面或者是瀏覽器的管理功能。 初期商務溝通的速度比較快。
Oracle VM Oracle公司的產品,用戶量較小。Oracle VM僅僅是Oracle用戶生態系統中的一部分,不是Oracle的關鍵業務。 有一定數量的用戶,但是沒有形成社區。在網絡上缺少與Oracle相關的討論與交流。Oracle VM團隊有一個博客網站,但是最近兩篇文章的日期分別是2010年11月和2008年1 月。產品下載的速度很慢。 初期商務溝通的速度比較快。在技術方面的溝通,Oracle在國內沒有相應的技術人員提供支持。
CloudStack 源於2008年成立的VMOps公司,2010年五月啟用cloud.com域名,2010年6 月共同啟動OpenStack項目。 用戶數量較少,論壇不是很活躍。官方文檔非常完備,按照文檔操作至少能夠順利地完成安裝和配置過程。網絡上可以搜索到一些可操作的安裝和配置文檔(得益於CloudStack的安裝和配置比較簡單)。 商務溝通比較困難,通過社區論壇和電子郵件提出的問題都沒有得到回應。
ConVirt 起源於2006年發起的XenMan項目,與Xen項目的發展基本同步。目前的版本為ConVirt 2.0。現任CEO和工程部門EVP均來自Oracle。 用戶規模與Eucalyptus相當,論壇的活躍程度很高。官方文檔非常完備,按照文檔操作至少能夠順利地完成安裝和配置過程。在網絡上搜索到的中英文的安裝配置教程也基本可用。 商務溝通非常順暢,社區發表在論壇上的問題通常在48小時內得到回應,通過技術支持電子郵件提出的問題通常在24小時內得到回應。

(3)綜合評估

總的來說,虛擬化管理軟件的用戶還不是很多。大部分虛擬化管理軟件的社區規模較小,活躍程度也不高。除了Eucalyptus積極地鼓勵社區用戶參與項目的開發與測試之外,其他項目選擇開放源代碼只是一種營銷策略。如果排除技術和價格方面的因素,最值得選擇的軟件無疑是Eucalyptus和ConVirt。這兩個項目擁有最大和最活躍的用戶社區,其開發/運營團隊與潛在客戶之間的溝通最為順暢。XenServer也是一個值得考慮的對象,但是XenServer社區版要求對每臺物理服務器都要每年更新一次許可證。對於擁有大量物理服務器的公司來說,管理和維護成千上百個許可證將是一個令人頭疼的問題。

架構篇:

(1)系統構架比較

系統構架
Eucalyptus Eucalyptus是一個與Amazon EC2兼容的IaaS系統。Eucalyptus包括雲控制器(CLC)、Walrus、集群控制器(CC)、存儲控制器(SC)和節點控制器(NC)。CLC是整個Eucalyptu系統的核心,負責高層次的資源調度,例如向CC請求計算資源。Walrus是 一個與Amazon S3類似的存儲服務,主要用於存儲虛擬機映像和用戶數據。CC是一個集群的前端,負責協調一個集群內的計算資源,並且管理集群內的網絡流量。SC是一個與Amazon EBS類似的存儲塊設備服務,可以用來存儲業務數據。NC是最終的計算節點,通過調用操作系統層的虛擬化技術來啟動和關閉虛擬機。在同一個集群(CC)內的所有計算節點(NC)必須在同一個子網內。 在一個集群(CC)內通常需要部署一臺存儲服務器(SC),為該集群內的計算節點提供數據存儲服務。

Eucalyptus通過Agent的方式來管理計算資源。在每一個計算節點上,都需要運行一個eucalyptus-nc的服務。該服務在集群控制器(CC)上註冊後,雲控制器(CLC)即可通過集群控制器(CLC)將需要運行的虛擬機映像文件(EMI)拷貝到該計算節點上運行。

Eucalyptus將虛擬機映像文件存儲在Walrus上。當用戶啟動一個虛擬機實例的時候,Eucalyptus首先將相應的虛擬機映像(EMI)從Walrus拷貝到將要運行該實例的計算節點(NC)上。當用戶關閉(或者是由於意外而重啟)一個虛擬機實例的時候,對虛擬機所做的修改並不會被寫回到Walrus上原來的虛擬機映像(EMI)上,所有對該虛擬機的修改都會丟失。如果用戶需要保存修改過的虛擬機,就需要利用工具(euca2ools)將該虛擬機實例保存為新的虛擬機映像(EMI)。如果用戶需要保存數據,則需要利用存儲服務器(SC)所提供的彈性塊設備來完成。

技術分享圖片

OpenStack OpenStack是一個與Amazon EC2兼容的IaaS系統。OpenStack包括OpenStack Compute和OpenStack Object Storage兩個部分。

OpenStack Compute又包含Web前端、計算服務、存儲服務、身份認證服務、存儲塊設備(卷)服務、網絡服務、任務調度等多個模塊。OpenStack Compute的不同模塊之間不共享任何信息,通過消息傳遞進行通訊。因此,不同的模塊可以運行在不同的服務器上,也可以運行在同一臺服務器上。
技術分享圖片

OpenStack Object Store可以利用通用服務器搭建可擴展的海量數據倉庫,並且通過冗余來保證數據的安全性。同一份數據的在多臺服務器上都有副本,將出現故障的服務器從集群中撤除不會影響數據的完整性,加入新的服務器後系統會自動地在新的服務器上為相應的文件創建新的副本。從功能上講,OpenStack Object Store同時具備Eucalyptus中的Walrus服務和彈性塊設備(SC)服務。不過OpenStack Object Store不是一個文件系統,不能夠保證數據的實時性。從這個方面來考慮,OpenStack Object Store更適合用於存儲需要長期保存的靜態數據,例如操作系統映像文件和多媒體數據。

技術分享圖片

OpenStack通過Agent的方式來管理計算資源。在每一個計算節點上,都需要運行nova-network服務和nova-compute服務。這些服務啟動之後,就可以通過消息隊列來與雲控制器進行交互。

OpenNebula OpenNebula的構架包括三個部分:驅動層、核心層、工具層。驅動層直接與操作系統打交道,負責虛擬機的創建、啟動和關閉,為虛擬機分配存儲,監控物理機和虛擬機的運行狀況。核心層負責對虛擬機、存儲設備、虛擬網絡等進行管理。工具層通過命令行界面/瀏覽器界面方式提供用戶交互接口,通過API方式提供程序調用接口。

技術分享圖片

OpenNebula使用共享存儲設備(例如NFS)來提供虛擬機映像服務,使得每一個計算節點都能夠訪問到相同的虛擬機映像資源。當用戶需要啟動或者是關閉某個虛擬機時,OpenNebula通過SSH登陸到計算節點,在計算節點上直接運行相對應的虛擬化管理命令。這種模式也稱為無代理模式,由於不需要在計算節點上安裝額外的軟件(或者服務),系統的復雜度也相對降低了。

技術分享圖片

OpenQRM OpenQRM是為了管理混合虛擬化環境而開發的一個虛擬化管理框架,包括基礎層(框架層)和插件。基礎層(框架)的作用是管理不同的插件,而對虛擬資源的管理(計算資源,存儲資源,映像資源)都是通過插件來實現的。OpenQRM的框架類似於Java語言中的Interface,定義了一系列虛擬機資源生命周期管理的方法,例如創建、啟動、關閉虛擬機等等。在個框架的基礎上,OpenQRM針對不同的虛擬化平臺(Xen、KVM)實現了不同的插件,用來管理不同的物理和虛擬資源。當出現新的資源需要支持的時候,只需要為OpenQRM編寫新的插件,就可以無縫地整合到原來的環境中去。

技術分享圖片

OpenQRM插件也是使用無代理模式工作的。當需要管理的目標節點提供SSH登錄方式時,OpenQRM插件通過SSH登陸到計算節點,在計算節點上直接運行相對應的虛擬化管理命令。當需要管理的目標節點提供HTTP/HTTPS/XML-RPC遠程調用接口時,OpenQRM插件通過目標節點所提供的遠程調用接口實現對目標平臺的管理。

OpenQRM是一個虛擬化管理平臺,不提供與Amazon EC2兼容的雲管理接口。

XenServer XenServer是對Xen虛擬化技術的進一步封裝,在Dom0上提供一系列命令行和遠程調用接口,獨立的管理軟件XenCenter通過遠程調用這些接口來管理多臺物理服務器。XenSever在標準Xen實現之上所實現的遠程調用接口類似於其他虛擬化管理平臺中所實現的Agent,因此XenServer是通過Agent方式工作的。由於只考慮對Xen虛擬化技術的支持,XenServer的構架相對簡單。

技術分享圖片

XenServer是一個虛擬化管理平臺,不提供與Amazon EC2兼容的雲管理接口。管理軟件XenCenter是運行在Windows操作系統上的,對於需要隨時隨地訪問管理功能的系統管理員來說有點不便。目前有一些第三方提供的開放源代碼的基於瀏覽器的XenServer管理工具,但是都還處於比較早期的階段。

Oracle VM Oracle VM包括Oracle VM Server和Oracle VM Manager兩個部分。Oracle VM Server在支持Xen的Oracle Linux上(Dom0)運行一個與Xen交互的Agent,該Agent為Oracle VM Manager提供了遠程調用接口。Oracle VM Manager通過一個Java應用程序來對多臺Oracle VM Server上的虛擬資源進行管理和調度,同時提供基於瀏覽器的管理界面。由於只考慮對Xen虛擬化技術的支持,Oracle VM Server / Manager的構架相對簡單。

技術分享圖片

Oracle VM是一個虛擬化管理平臺,不提供與Amazon EC2兼容的雲管理接口。

值得註意的是,Oracle VM Manager還通過Web Service的方式提供了虛擬機軟件生命周期管理的所有接口,使得用戶可以自己使用不同的編程語言來調用這些接口來開發自己的虛擬化管理平臺。不過由於Oracle在開放源代碼方面的負面形象,似乎沒有看到有這方面的嘗試。

CloudStack 與OpenQRM類似,CloudStack采用了“框架 + 插件”的系統構架,通過不同的插件來提供對不同虛擬化技術的支持。對於標準的Xen / KVM計算節點,CloudStack需要在計算節點上安裝Agent與控制節點進行交互;對於XenServer / VMWare計算節點,CloudStack通過XenServer / VMWare所提供的XML-RPC遠程調用接口與計算節點進行交互。

技術分享圖片

CloudStack本身是一個虛擬化管理平臺,但是它通過CloudBridge提供了與Amazon EC2相兼容的雲管理接口,對外提供IaaS服務。

ConVirt ConVirt是一個虛擬化管理平臺,使用無代理模式工作。當需要管理的目標節點提供SSH登錄方式時,ConVirt通過SSH登陸到計算節點,在計算節點上直接運行相對應的虛擬化管 理命令。當需要管理的目標節點提供HTTP/HTTPS/XML-RPC遠程調用接口時,ConVirt插件通過目標節點所提供的遠程調用接口實現對目標平臺的管理。

技術分享圖片

ConVirt是一個虛擬化管理平臺,不提供與Amazon EC2兼容的雲管理接口。但是ConVirt 3.0提供了與Amazon EC2 / Eucalyptus的用戶接口,使得ConVirt用戶能夠在同一個Web 管理界面下同時管理Amazon EC2 / Eucalyptus提供的虛擬計算資源。

(2)雲管理平臺還是虛擬化管理平臺?

在IaaS這個層面,雲管理和虛擬化管理的概念非常接近,但是有一些細微的差別。

虛擬化是指在同一臺物理機器上提供多臺虛擬機器(包括CPU、內存、存儲、網絡等計算資源)的能力。每一臺虛擬機器都能夠像普通的物理機器一樣運行完整的操作系統以及執行正常的應用程序。當需要管理的物理機器數量較小時,虛擬機生命周期管理(資源配置、啟動、關閉等等)可以通過手工去操作。當需要管理的物理機器數量較大時,就需要寫一些腳本/程序來提高虛擬機生命周期管理的自動化程度。以管理和調度大量物理/虛擬計算資源為目的系統,屬於虛擬化管理系統。這樣一個系統,通常用於管理企業內部計算資源。

雲計算是指通過網絡訪問物理/虛擬計算機並利用其計算資源的實踐。通常來講,雲計算提供商以虛擬機的方式向用戶提供計算資源。用戶無須了解虛擬機背後實際的物理資源狀況,只需了解自己所能夠使用的計算資源配額。因此,虛擬化技術是雲計算的基礎。任何一個雲計算管理平臺,都是構建在虛擬化管理平臺的基礎之上的。如果某個虛擬化管理平臺僅對某個集團內部提供服務,那麽這個虛擬化管理平臺也可以被稱為“私有雲”;如果某個虛擬化管理平臺對公眾提供服務,那麽這個虛擬化管理平臺也可以被稱為“公有雲”。服務對象的不同,對虛擬化管理平臺的構架和功能提出了不同的需求。

私有雲服務於集團內部的不同部門(或者應用),強調虛擬資源調度的靈活性。系統管理員需要為不同的部門(或者應用)定制不同的虛擬機,根據部門(或者應用)對計算資源的需求對分配給某些虛擬機的計算資源進行調整。從這個意義上來講,OpenQRM、XenServer、Oracle VM、CloudStack和ConVirt比較適合提供私有雲服務。

公有雲服務於公眾,強調虛擬資源的標準性。通過將計算資源切割成標準化的虛擬機配置(多個系列的產品,每個產品配置相同數量的CPU、內存、磁盤空間、網絡流量配額),公有雲提供商可以通過標準的服務合同(Service Level Agreement, SLA)以標準的價格出售計算資源。當用戶對計算資源的需求出現改變的時候,用戶只需要縮減或者是增加自己所使用的產品數量。由於Amazon EC2是目前比較成功的公有雲提供商,大部分雲管理平臺都在某種程度上模仿Amazon EC2的構架。從這個意義上來講,Eucalyptus、OpenNebula和OpenStack提供了與Amazon EC2兼容或者是類似的接口,比較適合提供公有雲服務。

公有雲和私有雲之間的界限,就像“內部/外部”和“部門/合作夥伴”的概念一樣,並不十分明顯。根據項目需求的不同,可能會有不同的解釋。

功能篇:

(1)支持的虛擬化技術

Xen KVM XenServer / XCP VMWare LXC openVZ
Eucalyptus Y Y Y
OpenStack Y Y Y Y Y
OpenNebula Y Y Y
OpenQRM Y Y Y Y Y Y
XenServer Y
Oracle VM Y
CloudStack Y Y Y
ConVirt Y Y

可以看出,Xen和KVM是目前獲得最廣泛的廠商虛擬化技術,緊隨其後的是VMWare。需要註意的是,XenServer是對Xen的進一步封裝,可以認為是一種新的虛擬化平臺(用戶在XenServer上不能直接執行Xend相關命令)。

(2)系統安裝和配置

前端 計算節點 備註
Eucalyptus 使用Ubuntu 10.04或者CentOS 5.5操作系統,通過apt-get install或者yum install的方式直接安裝二進制包,構建一個包含CLC、 Walrus、SC、CC的前端。根據官方網站提供的文檔進行操作,是比較容易實現的。 使用Ubuntu 10.04或者CentOS 5.5操作系統,通過apt-get install或者yum install的方式直接安裝二進制包,構建一個提供NC服務的計算節點。根據官方網站提供的文檔進行操作,是比較容易實現的。 Eucalyptus包含了一個dhcpd,如果配置不好的話,會造成一定的麻煩。另外,計算節點(NC)與集群控制器(CC)必須在一個C類子網裏(例如,掩碼為255.255.255.0)。如果NC和CC在一個超網裏(例如,掩碼為255.255.0.0),在註冊服務的時候會出現一些問題。

OpenStack 在Ubuntu 10.04上利用官方網站提供的nova-install腳本進行安裝,基本上沒有遇到問題。

在Ubuntu 10.04上利用官方網站提供的nova-install腳本進行安裝,基本上沒有遇到問題。 對於一個簡單的系統,安裝配置比較簡單。
OpenNebula 使用CentOS 5.5操作系統,配置好CentOS Karan源,啟用kbs-CentOS-Testing條目。下載對應的rpm包,直接yum localinstall –nogpgcheck opennebula*.rpm,就可以直接完成安裝過程。按照官方文檔創建/srv/cloud/one和/srv/cloud/images目錄,通過NFS共享/srv/cloud目錄。創建cloud用戶組和屬於cloud用戶組的oneadmin用戶。 按照官方文檔創建/srv/cloud/one和/srv/cloud/images目錄,通過NFS共享/srv/cloud目錄。創建cloud用戶組和屬於cloud用戶組的oneadmin用戶。

將前端服務器上oneadmin用戶的ssh key拷貝到計算節點上oneadmin用戶的authorized_keys中。這樣前端服務器才可以通過SSH登陸到計算節點上。

在CentOS 5.5 x86_64上進行安裝的時候,如果按照官方網站提供的文檔進行操作,先配置好必要的軟件依賴關系再安裝opennebula,就會出現xmlrpc-c包版本不對的錯誤。

網絡上可以搜索到一些安裝配置方面的文檔和教程,但是對於熟悉Linux但是不熟悉OpenNebula的開發人員來說,很難按照這些文檔完成安裝和配置過程。

OpenQRM 在Ubuntu 10.04上通過SVN下載OpenQRM源代碼,進入源代碼目錄後依次執行make / make install / make start命令。按照官方文檔的描述創建數據庫,然後通過Web界面進行下一步的安裝和配置。

計算節點配置好網橋和虛擬化支持之外不需要特別的安裝和配置。在OpenQRM管理界面中啟用相對應的插件即可通過插件對計算節點進行管理。 在Ubuntu 10.04上安裝前端時,可能需要手工安裝dhcp3-server。

啟用插件管理虛擬資源的操作流程不夠直觀,並且缺乏詳細的文檔。

XenServer 前端為基於Windows操作系統的XenCenter。在Windows XP上可以安裝,需要.NET Framework Update 2的支持。安轉過程非常簡單,基本上不需要配置。

從Citrix的網站下載ISO,刻盤直接安裝在裸機上即可。計算節點安裝完畢後,在XenCenter中把新增計算資源添加到資源池即可。 每一臺XenServer服務器都需要安裝從Citrix獲得License,並且每年更新一次。
Oracle VM 在CentOS 5.5 x86_64上進行安裝。將ISO文件mount起來後,執行runinstaller.sh即可。 從Oracle的網站下載ISO,刻盤直接安裝在裸機上即可。計算節點安裝完畢後,在Oracle VM Manager中把新增計算資源添加到資源池即可。 最好從Oracle的官方網站下載,不過速度很慢。通過迅雷等途徑下載的文件,看起來似乎沒有問題,但是ISO刻盤後在啟動操作系統安裝過程中會出現錯誤。

如果在Oracle VM Server上安裝Oracle VM Manager,建議分區的時候把/ 分得大一點,不然的話會由於磁盤空間不夠而無法安裝Oracle VM Manager。

CloudStack 在CentOS 5.5和Ubuntu 10.4上,按照官方網站的安裝文檔順序操作,基本沒有問題。

計算節點上必須安裝相應的Agent。 安裝配置相對簡單,但是在刪除物理資源的時候存在較多的問題。
ConVirt 在CentOS 5.5和Ubuntu 10.4上,按照官方網站的安裝文檔順序操作,基本沒有問題。

在Ubuntu 10.04上安裝企業版,需要手工sudo apt-get install libmysqlclient-dev。

在計算節點上的root用戶必須允許管理節點上運行ConVirt服務的用戶通過key auth方式登錄。

安裝配置相對簡單。

不同的虛擬化管理軟件有不同的設計理念,采用不同的系統構架,類似的概念也采用不同的術語來表述,其學習曲線也各不相同。對於大部分用戶來說,虛擬化管理軟件還是個新生事物。即使是粗略地嘗試一下利用不同的虛擬化管理軟件來安裝、配置和測試一個最小規模的私有雲系統,也需要花費不少的時間和精力。在這個過程當中,遇見各種各樣的問題都在所難免。不過,也只有親身經驗過這些形形色色的問題,才能夠切身體會不同虛擬化管理軟件的優點和缺點,並且在分析、總結、歸納的基礎上形成自己獨特的觀點。

(3)用戶界面

概述 用戶權限 資源池和虛擬機管理
Eucalyptus Eucalyptus提供了一個基於瀏覽器的簡單用戶界面,可以完成用戶註冊,下載credentials,對提供的產品類型進行簡單配置等。資源池和虛擬機生命周期管理需要通過euca2ools在命令行模式下完成。

euca2ools是一組基於命令行的工具,可以與Amazon EC2/S3相兼容的Web Service進行交互。該用具可以管理基於Amazon EC2、Eucalyptus和OpenStack,OpenNebula的雲計算服務。

euca2tools的主要功能包括:

– 查詢可以使用的域
– 管理SSH Key
– 虛擬機生命周期管理
– 安全組管理
– 管理卷和快照
– 管理虛擬機映像
– 管理IP

在Eucalyptus社區版中只有兩種類型的用戶:管理員,普通用戶。在Eucalyptus企業版中進一步提供了用戶組,屬於某個用戶組的用戶可以管理屬於該用戶組的計算資源。 管理員可以通過註冊或者是撤銷註冊某個計算節點,配置標準產品類型的計算資源(CPU、內存、存儲)。普通用戶只能夠在標準配置的基礎上創建、啟動、關閉虛擬機,不能夠定制化自己所需要的計算資源。

虛擬機映像文件(EMI)的制作,以及虛擬機生命周期管理等等操作,需要通過euca2ools在命令行模式下完成。在FireFox瀏覽器中,可以利用ElasticFox插件,在瀏覽器中啟動、監控和關閉虛擬機。ElasticFox的界面不夠美觀,並且提供的功能非常有限。

Eucalyptus不提供console功能。用戶可以通過SSH連接到自己所管理的虛擬機。

每一個公開發布的虛擬機映像(EMI),都是一個模板。用戶創建虛擬機實例的時候,系統根據用戶選擇的EMI將相應的虛擬機映像拷貝到目標計算節點上運行。Eucalyptus根據某種算法自動決定用戶的虛擬機將在哪個物理服務器上運行,用戶對物理服務器的狀況一無所知。

Eucalyptus中的虛擬機實例只是原虛擬機映像(EMI)的一個副本,用戶在運行的實例中對虛擬機所做的任何修改,不會被保存到原來的虛擬機映像中。如果用戶將運行的虛擬機實例關閉(例如:shutdown),用戶對虛擬機所作的任何修改都會丟失。如果用戶需要保存自己對虛擬機所做的修改,用戶可以選擇使用彈性塊設備來保存數據,或者將正在運行的虛擬機實例發布為新的EMI。(Amazon EC2自動地將停止運行的虛擬機實例保存為新的AMI,直到用戶銷毀該虛擬機實例為止。因此,用戶可以shutdown自己的虛擬機實例,但是保存自己對虛擬機所作的修改,直到用戶選擇銷毀該虛擬機實例為止。)

OpenStack OpenStack不缺省地提供基於瀏覽器的用戶界面。系統管理員需要手工創建用戶。大部分的管理操作,需要在命令行下進行。 盡管OpenStack和Eucalyptus在構架上有很大的不同,但是所暴露給用戶的界面是類似的(兩者都模仿了Amazon EC2的用戶接口規範)。因此,OpenStack同樣可以使用Eucalyptus所提供的euca2ools進行管理。

OpenStack的openstack-dashboard項目和django-nova項目提供了一個基於瀏覽器的用戶界面,沒有被集成到OpenStack安裝腳本中,需要單獨安裝。

OpenStack將用戶分成如下幾個類別:

admin — 雲服務管理員,擁有所有管理權限。

itsec — IT安全管理員,具有隔離有問題的虛擬機實例的權限。

projectmanager — 項目管理員,可以增加屬於該項目的新用戶,管理虛擬機映像,管理虛擬機生命周期。

netadmin — 網絡管理員,負責IP分配,管理防火墻。

developer — 開發人員,可以登錄進入屬於本項目的虛擬機,管理虛擬機生命周期

在模仿Amazon EC2的雲平臺(Eucalyptus, OpenStack, OpenNebula)中,OpenStack提供了顆粒度最細的用戶權限管理模式。

與Eucalyptus類似,虛擬機映像文件(EMI)的制作,以及虛擬機生命周期管理等等操作,需要通過euca2ools在命令行模式下完成。同樣,在FireFox瀏覽器中,可 以利用ElasticFox插件,在瀏覽器中啟動、監控和關閉虛擬機。

OpenStack不提供虛擬機console功能。用戶可以通過SSH連接到自己所管理的虛擬機。

正在開發中的openstack-dashboard,基於瀏覽器提供了比較完整的資源池管理功能和虛擬機生命周期管理功能。雖然界面還比較簡單,但是已經處於可用的狀態。

OpenStack的模板和虛擬機實例機制與Eucalyptus類似。與Eucalyptus類似,OpenStack根據某種算法自動決定用戶的虛擬機將在哪個物理服務器上運行,用戶對物理服務器的狀況一無所知。

OpenNebula OpenNebula不缺省地提供基於瀏覽器的用戶界面。系統管理員需要手工創建用戶。大部分的管理操作,需要在命令行下進行。

OpenNebula目前有兩個基於瀏覽器的用戶界面:SunStone和OneMC。這兩個項目需要單獨安裝。

同樣,OpenNebula提供了與Amazon EC2相兼容的Web Service接口。因此,可以通過FireFox所提供的ElasticFox插件和Eucalyptus提供的euca2ools工具集與OpenNebula雲平臺進行交互。

OpenNebula只有兩種類型的用戶:管理員,普通用戶。 在早期版本中,OpenNebula管理員可以在後臺通過命令行來管理資源池和虛擬機生命周期。 同樣,在FireFox瀏覽器中,可 以利用ElasticFox插件,在瀏覽器中啟動、監控和關閉虛擬機。

SunStone和OneMC這兩個項目都提供了比較完整的資源池管理和虛擬機生命周期管理功能。兩個項目的界面都比較簡單,但是基本上處於可用的狀態。SunStone沒有提供虛擬機console功能,OneMC通過VNC協議提供了虛擬機console功能。

OpenNebula的模板和虛擬機實例機制與Eucalyptus類似。但是並不缺省地使用euca2ools作為工具。

與Eucalyptus類似,OpenNebula根據某種算法自動決定用戶的虛擬機將在哪個物理服務器上運行,用戶對物理服務器的狀況一無所知。

OpenQRM 基於瀏覽器的用戶界面,功能比較豐富。 OpenQRM的管理界面只有兩種用戶:管理用戶,普通用戶。普通用戶只有查看權限,沒有管理權限。 通過啟用不同的插件,可以管理不同的計算資源。所有的資源池和虛擬機生命周期管理操作都可以通過瀏覽器界面完成。

OpenQRM的novnc插件可以提供基於VNC協議的虛擬機console功能。

XenServer XenCenter是基於Windows的桌面應用,安裝與操作都非常簡單,界面美觀,功能強大。

在參與評測的8 個軟件中,XenCenter的用戶界面是表現最出色的。基於Windows桌面的應用能夠迅速地對用戶的點擊動作作出反應,從而提高用戶體驗的滿意度。

系統管理員登錄XenCenter之後,可以結合Active Directory在用戶和用戶組的層面分配管理權限。

授權用戶可以通過圖形界面方便地進行資源池和虛擬機生命周期管理。在圖形界面上可以直觀地監控物理服務器和虛擬機的計算資源使用情況(CPU、內存、存儲、網絡活動)。

提供基於VNC的虛擬機console。

可以基於模板的部署新的虛擬機。

Oracle VM Oracle VM Manager提供了基於瀏覽器的管理界面。 Oracle VM Manager同時提供了role和group的概念。其中role定義了用戶所具備的權限,屬於同一個group的用戶擁有該group所被授予的權限。

Oracle VM Manager提供了三種role:

user — 擁有指定資源池的虛擬機生命周期管理權限。

manager — 擁有除了用戶管理之外的所有管理權限。

administrator — 擁有整個系統的管理權限。

授權用戶可以通過圖形界面方便地進行資源池和虛擬機生命周期管理。在圖形界面上可以直觀地監控物理服務器和虛擬機的計算資源使用情況(CPU、內存、存儲、網絡活動)。

提供基於VNC的虛擬機console。

可以基於模板的部署新的虛擬機。

CloudStack 基於瀏覽器的用戶界面,功能豐富,美觀大方。

CloudStack根據用戶的role將用戶分成三個類型:

admin — 全局管理員。

domain-admin — 域管理員,可以對某個域下的物理和虛擬資源進行管理。

user — 個體用戶,可以管理自己名下的虛擬機資源。

CloudStack對物理資源的管理完整地模擬了一個物理機房的實際情況,按照“機房(Zones)-》機櫃(Pods)-》集群(Cluster)-》服務器(Server)”的結構對物理服務器進行組織,使得管理員能夠在管理界面裏面的計算資源和機房裏面的計算資源建立起直觀的一一對應關系。

授權用戶可以通過圖形界面方便地進行資源池和虛擬機生命周期管理。在圖形界面上可以直觀地監控物理服務器和虛擬機的計算資源使用情況(CPU、內存、存儲、網絡活動)。

提供基於VNC的虛擬機console。

可以基於模板的部署新的虛擬機。

ConVirt 基於瀏覽器的用戶界面,功能豐富,美觀大方。 社區版可以註冊多個用戶,並可將用戶按照用戶組進行分類,但是所有的用戶擁有相同的全局管理權限。企業版則提供了更細致的用戶權限管理機制。除此之外,企業版還提供了對LDAP的支持。

授權用戶可以通過圖形界面方便地進行資源池和虛擬機生命周期管理。在圖形界面上可以直觀地監控物理服務器和虛擬機的計算資源使用情況(CPU、內存、存儲、網絡活動)。提供基於VNC的虛擬機console。

可以基於模板的部署新的虛擬機。

ConVirt的最大優點,在於其通過時程圖的方式在不同的層次上直觀地展示計算資源(包括物理資源和虛擬資源)的利用情況和健康狀況。在整個數據中心和資源池的層面,ConVirt實時顯示資源池數量、物理服務器和虛擬機數量、虛擬機密度、存儲資源使用狀況、負載最高的N 臺物理服務器和虛擬機。在物理服務器和虛擬機的層面,ConVirt實時顯示CPU和內存使用情況,監控人員可以通過CPU和內存時程圖及時地發現或者是調查系統異常情況。

在所有參與評測的虛擬化管理軟件中,XenServer / XCP和ConVirt的圖形用戶界面是做的最好的。XenCenter的圖形界面的優點在於提供了獨一無二的用戶體驗,ConVirt的圖形界面的優點在於以圖形的方式直觀地展示了從機房到虛擬機的健康狀況。CloudStack的圖形界面非常大氣,但是在功能上不如ConVirt那麽實用。不過按照CloudStack的目前的發展勢頭來看,下一個版本可能比較值得期待。

由於進行評測的時間較短,並且測試系統規模較小的原因,暫時無法對各個軟件的穩定性、健壯性、擴展性等等關鍵問題作出評估。

商務篇:

目前市面上形形色色的虛擬化管理軟件總數很多,這一系列文章所提及的幾個軟件僅僅其中的幾個代表。作為一個機構、或者是一家企業,在向虛擬化過渡時都不可避免地要面臨軟件選型的問題。本文作為這一系列文章的最後一篇,從商務和功能兩個方面提出自己的一點粗淺意見。

(1)商務評估

從商務上進行軟件選型,性價比通常是一個決定性的因素。在假定參與選型的軟件全部滿足技術要求的前提下,企業(機構)需要考慮的因素包括軟件的授權協議是否友好、許可證管理的難易程度、軟件和服務的價格高低、運營團隊在業界的聲譽、開發者社區和用戶社區的規模和活躍程度、商業與技術溝通的難易程度。

授權協議/許可證管理 — 以全部開放源代碼為10分,部分開放源代碼(例如以企業版的形式提供某些高級功能,或者以服務的形式提供特別版本的安裝包和補丁)扣1 分。商業版本需要在控制節點安裝許可證不扣分,需要在所有計算節點安裝許可證扣1 分,許可證需要每年更新者扣1 分。

價格指數 — 以全部功能免費使用為10分,以企業版的模式提供全部功能的軟件,每臺物理服務器每花費500美元扣1 分。

運營團隊 — 以運營團隊的規模、背景、影響力評分,存在的主觀因素較多。

社區因素 — 以開發者和用戶社區的規模和活躍程度評分,存在的主觀因素較多。

溝通交流 — 以個人與運營團隊、開發者社區、用戶社區之間的溝通順暢程度評分,存在的主觀因素較多。

授權協議

許可證管理

價格指數 運營團隊 社區因素 溝通交流 總分
Eucalyptus 9 8 9 9 10 45
OpenStack 10 10 8 8 7 43
OpenNebula 9 9 7 8 9 42
OpenQRM 9 8 6 7 8 37
XenServer 7 8 9 10 9 43
Oracle VM 9 7 7 6 7 36
CloudStack 9 8 7 6 7 37
ConVirt 9 8 8 9 10 44

(2)功能評估

從功能上進行虛擬化管理軟件選型,需要考慮的因素包括該軟件所支持的虛擬化技術、安裝配置的難易程度、開發和使用文檔的詳盡程度、所提供的功能是否全面以及用戶界面是否直觀友好、二次開發的難易程度、是否提供物理資源和虛擬資源的監控報表等等。

虛擬化技術支持 — 僅支持一種虛擬化技術為6 分,每增加一種虛擬化技術加1 分,10分封頂。

安裝配置 — 以按照官方文檔進行安裝配置的難易程度評分,存在的主觀因素較多。

開發/使用文檔 — 以官方所提供的開發與使用文檔的詳盡程度評分,文檔詳盡程度越高者得分越高。

功能與界面 — 綜合評分,涵蓋用戶進行物理資源和虛擬資源管理、虛擬機生命周期管理、訪問虛擬機資源和存儲資源的難易程度,用戶界面的美觀易用程度,以及綜合用戶體驗。

二次開發 — 基礎得分6 分,提供與Amazon EC2相兼容的程序調用接口者加3 分,提供二次開發接口但是與Amazon EC2不兼容者加2 分。

監控報表 — 基礎得分6 分,依系統所提供監控與分析功能的詳盡程度加分。

虛擬化技術支持 安裝配置 開發/使用文檔 功能與界面 二次開發 監控報表 總分
Eucalyptus 8 8 9 4 9 (Amazon WS) 6 44
OpenStack 10 8 8 4 9 (Amazon WS) 6 45
OpenNebula 8 8 7 4 9 (Amazon WS) 6 42
OpenQRM 10 9 5 10 6 (OS) 7 47
XenServer 6 10 10 10 8 (Plugin) 9 53
Oracle VM 6 9 8 7 8 (WS) 7 45
CloudStack 8 9 8 10 6 (OS) 8 49
ConVirt 7 10 10 10 8 (API) 10 55

(3)綜合評估

從商務上考慮,Eucalyptus和ConVirt以微弱 的優勢領先於其他選項。Eucalyptus是私有雲管理平臺的先行者。Ubuntu 10.04選擇捆綁Eucalyptus作為UEC的基礎構架,使得Ecualyptus比其他的私有雲管理平臺擁有更多的用戶和更加活躍的社區。此外,Ecualyptus在中國國內有銷售和技術支持人員,在溝通上比選擇其他軟件要更加容易。ConVirt排名第二,根本原因在於其銷售和技術支持團隊與(潛在的)客戶保持積極而有效的溝通。Citrix XenServer僅僅與其他兩個選項並列排名第三,輸在其過於嚴苛的許可證管理政策。的確,要給100臺以上的服務器單獨安裝許可證並且每年更新一次,可不是一件有意思的事情。

從功能上考慮,ConVirt與XenServer遙遙領先於其他選項。雖然ConVirt僅僅支持Xen和KVM兩種虛擬化技術,但是其安裝配置相對簡單,文檔詳盡、功能齊全、界面美觀、是比較容易上手的虛擬化管理軟件。更重要的是,ConVirt的監控報表功能直觀地展示了從數據中心到虛擬機的CPU、內存利用情況,使得用戶對整個數據中心的健康狀況一目了然。同樣,XenServer雖然僅支持Xen一種虛擬化技術,但是在安裝配置、操作文檔、用戶界面等方面都不亞於ConVirt。如果用戶對基於Windows的界面沒有強烈的抵觸情緒的話,XenServer是比較值得考慮的一個選型。

綜合如上考慮,對於希望利用虛擬化管理軟件提高硬件資源利用率和虛擬化管理自動化程度的企業(機構)來說,建議使用ConVirt來管理企業(機構)的計算資源。如果網管人員不希望深入了解Linux操作系統,並且所管理的物理服務器數量有限的話,XenServer也是一個不錯的選擇。ConVirt的瀏覽器界面是開放源代碼的,用戶可以對其進行定制化,將自己所需要的其他功能添加到同一個用戶界面中去。XenCenter則提供了一種插件機制,用戶可以通過插件的方式講自己的功能集成到XenCenter中。

不過,你的基礎設施是否需要與Amazon EC2相兼容呢?也就是說,你的用戶是否需要使用他們用於訪問和操作Amazon EC2的腳本和工具來訪問你的計算資源呢?如果是這樣的話,你可能需要在Eucalyptus和OpenStack之間作一個選擇(CloudStack和OpenNebula同樣提供了與Amazon EC2兼容的操作接口,但是CloudStack在商務方面得分不高,OpenNebula在功能方面得分不高)。Eucalyptus的歷史比OpenStack稍長,用戶群比OpenStack要大,社區的活躍程度也比OpenStack要高。不過OpenStack的後臺老板NASA比Eucalyptus要財大氣粗,Ubuntu 11.04也集成了OpenStack作為其UEC的基礎構架之一,表明OpenStack已經得到了社區的重視和支持。總的來說,開放源代碼的雲構架,還是一個不斷發展之中的新生食物。筆者只能夠建議用戶親自去安裝使用每一個軟件,最終基於自己的經驗以及需求達到一個最適合自己的選擇。

基於KVM、Xen、OpenVZ等虛擬化技術的WEB在線管理工具