陳立民
中國聯通研究院 北京 100032
大數據時代,“數據即資產”成為業(yè)界的核心共識。不斷積累的海量數據,給數據的存儲與檢索、數據挖掘與智能應用等信息處理技術帶來全新的挑戰(zhàn)。如何善用自身數據資產、發(fā)揮大數據能量、為企業(yè)帶來具有競爭力的優(yōu)勢是研發(fā)部門亟需解決的問題。作為新一代的資源使用和交付模式,云計算為上述問題提供了有前景的解決思路。它在大規(guī)模的廉價服務器集群之上架構基礎設施,從傳統地強調單機性能轉向了借助廉價服務器集群的“虛擬化、分布式、智能化”。云計算提供了具有高擴展性和可用性的分布式并行計算,為大數據時代的海量數據存儲與處理提供了切實可行的方案,可以說,云計算是大數據時代的系統工程[1]。
面對云計算帶來的新機遇與挑戰(zhàn),各大運營商均嚴陣以待,積極尋找定位、發(fā)展自己的云戰(zhàn)略[2-4]。云計算分為三個層面,即基礎架構(IaaS)、平臺(PaaS)和應用軟件(SaaS),它們分別向用戶提供虛擬數據中心、開發(fā)和測試環(huán)境以及在線軟件等服務。對于正在制定云戰(zhàn)略的公司來說,在IaaS與PaaS之間選擇合適的模式是非常重要的一個決策。與PaaS相比,IaaS具有更廣泛的應用范圍,且支持OVF等協議,能夠跨平臺和降低對供應商的依賴性,更具靈活性和機動性,更適合大型企業(yè)。此外,運營商具有大量IDC資源,這正是IaaS的一個典型應用領域,當前階段運營商宜使用IaaS發(fā)展云戰(zhàn)略。
相比商用IaaS產品,開源項目進一步降低了用戶對廠商的依賴性,具有更好的兼容性、擴展性、靈活性和可維護性,為用戶提供了備選方案。各開源項目在諸多方面具有不同的特色與優(yōu)勢,這使用戶在根據自身的需求和期望選擇合適的開源項目時有一定難度,特別是新進入云計算領域的用戶。本文介紹了當前主流的開源IaaS云,分析對比了這些開源IaaS云的特點和優(yōu)勢,幫助用戶選擇合適的開源IaaS云,發(fā)展自己的云戰(zhàn)略。
云計算分布式計算(Distributed Computing)、并行計算(Parallel Computing)、效用計算(Utility Computing)、網絡存儲(Network Storage Technologies)、虛擬化(Virtualization)、負載均衡(Load Balance)等傳統計算技術和網絡技術發(fā)展融合的產物。它是一種通過互聯網以服務的方式提供動態(tài)可伸縮的虛擬化資源的計算模式,提供以下三個層面的資源與服務。
1) 基礎設施即服務(Infrastructure as a Service,IaaS)。IaaS通過網絡向用戶提供計算機(物理機和虛擬機)、存儲空間、網絡連接、負載均衡和防火墻等基本計算資源,用戶在此基礎上部署和運行各種軟件,包括操作系統和應用程序。業(yè)界主要的IaaS有亞馬遜EC2、微軟Azure、谷歌Compute Engine、開源社區(qū)的OpenStack等。
2) 平臺即服務(Platform as a Service,PaaS)。PaaS提供用戶開發(fā)環(huán)境,不僅包括操作系統,還包括編程語言執(zhí)行環(huán)境、數據庫和Web服務器等。PaaS將軟件開發(fā)平臺作為一種服務提供給用戶。用戶基于PaaS平臺部署和運行自己的應用,它只需關注自身的應用,節(jié)省了管理和控制PaaS層的復雜性和成本。業(yè)界主要PaaS有微軟的Azure、谷歌的Google App Engine、開源社區(qū)的Hadoop和Storm等。
3) 軟件即服務(Software as a Service,SaaS)。SaaS將運行在云計算基礎設施上的應用程序作為服務提供給用戶。提供商在云基礎設施上安裝和運行應用軟件,用戶通過客戶端(Web瀏覽器、上網本等)進行訪問。業(yè)界主要的SaaS有Salesforce的CRM、谷歌Apps、微軟Off i ce365等。
圖1展示了云計算三種模式及用戶間的關系。用戶可以根據自身需求,自主地選擇云計算的模式,三種模式的選擇不存在相關性。SaaS云通常部署在云上(PaaS或者IaaS);PaaS與IaaS之間并沒有繼承關系,PaaS可以部署在IaaS上(如圖1中虛箭頭所示),也可以直接部署在物理資源上。
圖1 云計算三種模式及用戶間關系
目前,亞馬遜、微軟、IBM、Oracle等是提供IaaS服務的典型代表,但各廠商間對虛擬化軟件的兼容性相對不足,且開放性和可維護性較弱,很難滿足企業(yè)需求的靈活性和適應性。開源IaaS具有更好的兼容性、擴展性、靈活性和可維護性,為用戶提供了商用IaaS以外的備選方案。下面簡介Eucalyptus、CloudStack、OpenNebula、AbiCloud和OpenStack等5個開源IaaS項目。
Eucalyptus[5]是一個面向研究社區(qū)的開源軟件基礎設施,它采用模塊化的設計,各組件間通過SOAP消息相互通信。Eucalyptus實現過程中使用了常見的Linux工具和基本的Web服務技術,用戶可以很方便地擴展、安裝和維護。Eucalyptus是商業(yè)應用亞馬遜EC2的開源實現,且獲得了亞馬遜公司在AWS API兼容性方面的技術支持,與商業(yè)服務接口具有很好的兼容性。Eucalyptus使用輕量級開源關系數據庫HSQLDB,這影響了Eucalyptus的擴展性,因為HSQLDB不適合管理大型數據,例如百萬數量級記錄的數據庫應用。此外,Eucalyptus并非100%開源,它已經開始商業(yè)化,但仍然按開源項目維護和開發(fā)。
CloudStack[6]是Apache軟件組織經營的一個具有高可用性及擴展性的開源云計算平臺,同時也是一個開源的云計算解決方案。CloudStack通過CloudBridge提供兼容亞馬遜EC2的接口,對外提供具有高可用性及擴展性的IaaS服務。它采用“框架+插件”的系統構架,通過不同的插件支持不同的虛擬化技術,如KVM、XenServer、VMware、Oracle VM、Xen等。
CloudStack采用分層結構,即客戶端層、核心引擎層以及資源層,它提供管理多臺物理主機的單一接口,用戶可以通過Web界面、命令行工具和功能齊全的API管理使用自己的云。此外,CloudStack提供了兼容AWS EC2和S3的API。
OpenNebula[7]是歐洲研究學會發(fā)起的開源IaaS計劃,它是由自動化引擎的集群轉變的IaaS平臺,可以說,OpenNebula是一個比其它開源IaaS更開源的項目。OpenNebula支持Xen,KVM或VMware ESX建立和管理私有云,同時還提供Deltacloud適配器,與Amazon EC2配合來管理混合云。中國移動研究院的“大云”和中國科學院的“凌云”項目均基于OpenNebula開源框架構建。
OpenNebula能夠在分布式基礎設施上根據資源分配策略、結合數據中心資源和遠程云資源實現多層服務的動態(tài)布置。OpenNebula的構架包括驅動層、核心層、工具層。驅動層負責虛擬機的創(chuàng)建、啟動和關閉,監(jiān)控物理機和虛擬機的運行狀況。核心層負責管理虛擬機、存儲設備、虛擬網絡等。工具層通過命令行界面/瀏覽器界面方式提供用戶交互接口,通過API方式提供程序調用接口。
AbiCloud[8]是AbiQuo公司推出的一款開源產品,用于幫助用戶以快速、簡單和可擴展的方式創(chuàng)建和管理大型、復雜的IT基礎設施(包括虛擬服務器、網絡、應用、存儲設備等等)。較同類其他產品,AbiCloud的主要特色在于其強大的Web界面管理,用戶可以通過拖拽一個虛擬機來部署一個新的服務。
目前,AbiCloud的文檔資料比較缺乏,且開源的community版本對資源也有一定限制(譬如只允許安裝一個數據中心)。
OpenStack[9]是NASA和Rackspace合作研發(fā)的開源項目,旨在建設與管理公共及私有云。目前,它擁有最大和最活躍的社區(qū),受到IT行業(yè)各領域的廣泛支持和關注,有超過150家公司和成千上萬的個人開發(fā)者加入該陣營,其中不乏IT業(yè)界知名的公司,如AT&T、IBM、HP、Redhat、Suse、Intel、Cisco、WMware等。
OpenStack具有良好的架構,目前Folsom版有7個核心組件:Compute(計算)、Object Storage(對象存儲)、Identity(身份認證)、Dashboard(儀表盤)、 Block Storage(塊存儲)、Network(網絡)和Image Service(鏡像服務)。OpenStack遵循Open Virtualization Format、AMQP、SQLAlchemy等標準,并支持OpenFlow等新的標準,具有徹底的開放性,被譽為“21世紀的Linux”。
表1對比了上述幾個開源IaaS云在部署方式、開發(fā)語言、數據庫、擴展性、操作系統、虛擬技術、接口及類型、兼容性、特色優(yōu)勢等幾個方面的區(qū)別。這份對比在技術層面是比較粗淺的,旨在幫助用戶根據自身需求選擇開源IaaS云時做一個初步取舍。
表1 幾個開源IaaS云之間的比較
Eucalyptus主要用于部署私有云和混合云,目前與其它開源IaaS相比具有最好的兼容性,但受限于所支持的數據庫HSQLDB,擴展性最差;擴展性方面,OpenStack最為出色,可以支持百萬臺物理機和千萬級的虛擬機。CloudStack與OpenNebula是較OpenStack成熟的IaaS云,且文檔豐富,具有較好的擴展性、良好的易用性和豐富的功能,對于資源有限的用戶,它們都是不錯的選擇。此外,CloudStack支持多角色用戶,具有最好的用戶權限管理機制;而OpenNebula比較突出的特點是支持異構配置,多個運行環(huán)境不同甚至沖突的軟件可以共存在同一基礎設施上。AbiCloud是唯一支持Linux以外操作系統的IaaS,具有強大的Web界面管理接口,但兼容性不好,且文檔匱乏,特別是在API方面,這給用戶帶來很大顧慮,甚至放棄AbiCloud。作為IaaS中的后起之秀,OpenStack處于高速發(fā)展階段,但它在產品化方面不夠成熟與穩(wěn)定,安裝和配置相對復雜,適合具有較強技術能力的企業(yè)使用。但從長遠角度來看,OpenStack技術優(yōu)勢明顯、完全開源、支持新標準,且已經被Ubuntu集成作為其UEC的基礎構架之一。
大數據時代累積的海量數據為數據的存儲和智能處理帶來了技術挑戰(zhàn),云計算以其高擴展性與可用性的分布并行計算提供了潛在的解決方案。本文明確了云計算三種模式(IaaS、PaaS和SaaS)間的關系,并比較研究了幾個具有代表性的開源IaaS,幫助用戶根據自身需求選擇開源IaaS云,部署和發(fā)展自己的云戰(zhàn)略。
參考文獻
[1]姚宏宇,田溯寧.云計算:大數據時代的系統工程[M].北京:電子工業(yè)出版社,2013
[2]婁瑜.中國聯通信息化云計算工作探討[J].信息通信技術,2012,6(1):19-23
[3]石屹嶸,段勇.云計算在電信IT領域的應用探討[J].電信科學,2009(9):24-28
[4]張敏,陳云海.電信運營商云計算發(fā)展及應用研究[J].信息通信技術,2010,4(2):46-51
[5]Eucalyptus White Papers[EB/OL].[2013-06-01].http://www.eucalyptus.com/resources/whitepaper,2013
[6]Apache CloudStack Documentation[EB/OL].[2013-06-05].http://cloudstack.apache.org/docs/en-US/,2013
[7]OpenNebula Documentation[EB/OL].[2013-06-01].http://opennebula.org/documentation:rel4.0,2013
[8]AbiCloud White Papers[EB/OL].[2013-06-10].http://www.abiquo.com/resources/case-studies/,2013
[9]OpenStack Home[EB/OL].[2013-06-10].http://www.openstack.org/,2013