開源云計算平臺的比較_第1頁
開源云計算平臺的比較_第2頁
開源云計算平臺的比較_第3頁
開源云計算平臺的比較_第4頁
開源云計算平臺的比較_第5頁
已閱讀5頁,還剩46頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

哈爾濱工業(yè)大學工學碩士學位論文-PAGEII--PAGEII-開源云計算平臺比較摘要當今,云計算作為一種成功的商業(yè)模式正在快速的發(fā)展,得到了商業(yè)界和學術界的大力支持。因為能夠提供強大的計算和存儲能力,云計算能夠以較低的成本完成海量的任務,受到了許多IT公司的青睞,紛紛推出了云計算發(fā)展戰(zhàn)略。云計算包含兩個方面的含義:一方面是底層構建的云計算平臺的基礎設施,是構建上層應用程序的基礎;另一方面是構建在這個基礎平臺之上的云計算應用程序。本文首先簡述了云計算,云計算的背景,以及云計算平臺構架,然后主要對當前的幾種云計算平臺做了很簡單的匯總調研,并從幾個方面總結分析了其特征和性能。關鍵詞云計算;開源;云計算平臺ComparativeofopensourcecloudcomputingplatformAbstractToday,thecloudcomputingasasuccessfulbusinessmodelisdevelopingrapidly,andhasgotthecommercialandacademicsupport.Becauseitcanprovidepowerfulcomputingandstoragecapacity,cloudcomputingcancompletemassivetaskatlowcost,manyITcompaniesattachegreatimportancetoit,andlaunchtheircloudcomputingstrategyoneafteranother.Cloudcomputingconsistsoftwoaspects:oneistobuildtheunderlyinginfrastructureforcloudcomputingplatformthatisusedtobuildthebasisfortheupperapplication;theotherhand,iscloudcomputingapplicationsbuiltonthisfoundationplatform.Thisarticlefirstbrieflycloudcomputing,inthecontextofcloudcomputing,cloudcomputingplatformarchitecture,andthenseveralcloudcomputingplatformtodoasimplesummaryofresearchandsummaryanalysisofitsfeaturesandperformancefromseveralaspects.KeywordsCloudcomputing;Opensource;CloudcomputingplatformPAGEII---PAGEIV-目錄摘要 =1\*ROMANIAbstract =2\*ROMANII第1章緒論 11.1課題背景 11.2云計算背景及平臺結構 11.3研究現(xiàn)狀 31.3.1國外云計算發(fā)展現(xiàn)狀 31.3.2國內(nèi)云計算發(fā)展現(xiàn)狀 31.4云計算體系結構 4第2章云計算技術 62.1云計算特點 62.2云計算分類 72.2.1軟件即服務(SaaS) 72.2.2平臺即服務(PaaS) 72.2.3基礎設施即服務(IaaS) 82.3云計算與網(wǎng)格計算 8第3章主要開源云計算平臺簡介 103.1Abiquo公司開源云計算平臺 103.1.1abiquo 103.1.2abiNtense 123.1.3abiData 133.2Eucalyptus開源云計算平臺 133.2.1軟件架構 143.2.2組件 153.2.3AmazonWeb服務兼容性 173.2.4功能 173.2.5拓撲結構 183.2.6虛擬組網(wǎng) 193.310genMongoDB開源高性能存儲平臺 203.3.1MongoDB的架構分析 213.3.2MongoDB適用范圍 233.3.3數(shù)據(jù)操作:集合和文件 243.3.4MongoDB的工具 263.4EnomalyECP彈性計算平臺 273.4.1EnomalyECP的特征 283.4.2功能清單 293.5云計算平臺Nimbus 313.5.1Nimbus特點 333.5.2Nimbus體系結構 333.5.3Nimbus組件 343.5.4云中間件的設計與實現(xiàn) 353.6本章小結 37第4章云計算平臺簡單分析 384.1開源云計算平臺的各自特點 384.1.1Abiquo公司平臺的特點 384.1.2Eucalyptus開源云計算平臺特點 384.1.310genMongoDB開源高性能存儲平臺特點 394.1.4EnomalyECP彈性云計算平臺 414.1.5Nimbus云計算平臺的特點 424.2本章小結 43結論 44致謝 45參考文獻 46附錄 47-PAGE10--PAGE47-緒論課題背景如何讓計算機快速處理最復雜的計算任務一直是計算機研究者追求的目標,云計算就是一種新興的計算模型:用戶可以利用該模型在任何地方通過連接的設備訪問應用程序,應用程序位于可大規(guī)模伸縮的數(shù)據(jù)中心,計算資源可在其中動態(tài)部署并進行共享。簡言之,有了云計算,用戶不需要計算能力很強的客戶端,而是可以直接從“云”里(服務器端)獲得計算能力。利用高速互聯(lián)網(wǎng)的傳輸能力,將數(shù)據(jù)的處理過程從個人計算機或服務器轉移到互聯(lián)網(wǎng)集群中,集群中的計算機都是很普通的工業(yè)標準服務器,由一個大型的數(shù)據(jù)處理中心管理著,數(shù)據(jù)中心按客戶的需要分配計算資源,達到與超級計算機同樣的效果。那么到底何為云計算,為讀者剖析云計算背后所采用的具體技術。首先看一下在IBM的技術白皮書“CloudComputing”中的云計算定義:“云計算一詞用來同時描述一個系統(tǒng)平臺或者一種類型的應用程序。一個云計算的平臺按需進行動態(tài)地部署(provision)、配置(configuration)、重新配置(reconfigure)以及取消服務(deprovision)等。在云計算平臺中的服務器可以是物理的服務器或者虛擬的服務器。高級的計算云通常包含一些其他的計算資源,例如存儲區(qū)域網(wǎng)絡(SANs),網(wǎng)絡設備,防火墻以及其他安全設備等。云計算在描述應用方面,它描述了一種可以通過互聯(lián)網(wǎng)Internet進行訪問的可擴展的應用程序?!霸茟谩笔褂么笠?guī)模的數(shù)據(jù)中心以及功能強勁的服務器來運行網(wǎng)絡應用程序與網(wǎng)絡服務。任何一個用戶可以通過合適的互聯(lián)網(wǎng)接入設備以及一個標準的瀏覽器就能夠訪問一個云計算應用程序。”上述定義給出了云計算兩個方面的含義:一方面描述了基礎設施,用來構造應用程序,其地位相當于PC機上的操作系統(tǒng);另一方面描述了建立在這種基礎設施之上的云計算應用。云計算是IT界中一種很富有生命力的計算技術,開源云計算更是被認為是IT的趨勢,那么開源云計算的平臺又有哪些呢?本文就這一問題對開源云計算平臺研究現(xiàn)狀做了做了簡單的調研與分析,希望可以給云計算相關研究提供參考,推動云計算技術的發(fā)展。云計算背景及平臺結構隨著人們對計算能力的要求越來越高,單獨的系統(tǒng)已經(jīng)不能滿足人們對計算能力的需求。對著分布式計算、并行計算、網(wǎng)格計算等的發(fā)展,近幾年又提出了一個全新的計算模式——云計算。云計算是一種商業(yè)計算模型,它可以將計算任務分布在大量計算機構成的資源池上。使用云計算的用戶可以按需要獲取計算力、存儲空間和信息服務。云計算的應用包含這樣一種思想,把力量結合起來,給其中的每一個成員使用。從總體來看,云計算可以從大規(guī)模分布式的基礎架構以及平臺之上的云計算應用程序兩個方面去理解,其中基礎架構建設方面是構建整個云計算平臺的根本。云計算將計算推到了云中,也將人們的日常生活與“云”緊密聯(lián)系在一起。因為云計算從一開始定位的服務對象就是所有普通用戶,可以是個人,也可以是商業(yè)性質的企業(yè)或組織。這就意味著云計算具有無限的潛力,所以云計算的概念一經(jīng)提出,馬上獲得了眾多IT企業(yè)的高度關注,并迅速發(fā)展成為了轉變傳統(tǒng)計算模式的一種革新技術。計算機軟件與硬件技術的飛速發(fā)展也導致了計算模型的不斷演化。繼分布式計算,并行計算,網(wǎng)格計算,效用計算,Web2.0等計算概念與模型的不斷被推出以后,計算機工業(yè)界與學術界又提出了云計算模型,在某種意義上實現(xiàn)對這些計算概念與模型的泛化與商業(yè)化??傮w上來講,云計算通過互聯(lián)網(wǎng)將超大規(guī)模的計算與存儲資源整合起來,并以可信服務的形式按需提供給用戶。圖1-1典型云計算平臺結構圖1-1給出了一個典型的云計算平臺結構。用戶通過簡單的終端如筆記本,PDA,甚至手機,使用簡單的客戶端軟件甚至Web就能訪問超大規(guī)模的計算與存儲資源?;谶@種計算模型的誘人商業(yè)前景,目前各大主流IT公司Microsoft、Google、IBM、VMware、Amazon、Oracle等紛紛推出自己的云計算平臺。研究現(xiàn)狀國外云計算發(fā)展現(xiàn)狀云計算是多種技術混合演進的結果,由于有社會的需求以及多家公司的推動,發(fā)展非常迅速。Google是最大的云計算技術的使用者,Google于2007年10月在全球宣布了云計劃。目前,Google已經(jīng)允許第三方在Google云計算中通過GoogleAppEngine運行大型的并行程序。Google云計算技術主要包括:GFS,MapReduce和Bigtable。隨后,在眾多開源項目中,最著名的Hadoop就是模仿Google云計算技術而產(chǎn)生的。IBM于2007年推出被稱為“藍云”的計算平臺,它包括一系列自我管理的虛擬化云計算軟件,使來自世界各地的應用都可以訪問分布式的大型服務器池。微軟在2008年10月推出了windowsAzure操作系統(tǒng),微軟希望通過在互聯(lián)網(wǎng)架構上打造新云計算平臺。Azure的底層是微軟全球基礎服務系統(tǒng),由第四代數(shù)據(jù)中心構成,目前,微軟已經(jīng)配置了大量的服務中心,包括幾十萬臺的服務器。亞馬遜研發(fā)了彈性云EC2以及簡單存儲服務S3。通過這些云計算技術為企業(yè)提供計算和存儲服務。服務的項目主要是:存儲空間、帶寬、CPU資源以及月租費。2007年11月,雅虎也將一個小規(guī)模的服務器群,即“云”,開放給卡內(nèi)基-梅隆大學的研究人員?;萜?、因特爾和雅虎三家公司聯(lián)合成立一系列數(shù)據(jù)中心,目的同樣是推廣云計算技術。國內(nèi)云計算發(fā)展現(xiàn)狀在中國,目前云計算的發(fā)展速度也非常迅猛。2008年IBM在北京和無錫先后建立的兩個云計算中心;2008年11月,廣東電子工廠研究院在東莞松山湖投資2億元建立云計算平臺;2009年11月11日,全國首家云計算產(chǎn)業(yè)協(xié)會在深圳成立。2009年底,成都云計算中心開通運營,該中心是國內(nèi)首家商業(yè)運營的規(guī)?;朴嬎阒行模墒锕庑畔a(chǎn)業(yè)集團的優(yōu)勢資源支持和建設。2009年12月中國云計算技術與產(chǎn)業(yè)聯(lián)盟在東京成立,四十多家企業(yè)一起共同倡議成立中國云計算技術與產(chǎn)業(yè)聯(lián)盟。中國移動研究院已經(jīng)建立了具備1024個CPU的元計算實驗中心;解放軍理工大學研制了云存儲系統(tǒng)MassCloud,并使用它支撐基于3G大規(guī)模視頻監(jiān)控應用和數(shù)字地球系統(tǒng)。瑞星、卡巴斯基、江民、金山、360安全衛(wèi)士、趨勢等公司都推出了自己的云安全解決方案。此外,2009年5月22日,中國電子學會舉辦了中國首屆云計算大會,共有1200多人與會。2009年11月2日,中國互聯(lián)網(wǎng)大會召開了“2009云計算產(chǎn)業(yè)峰會云計算體系結構云計算充分利用網(wǎng)絡和計算機技術實現(xiàn)資源的共享和服務,解決云進化、云控制、云推理和軟計算等復雜問題,其基礎架構可以用云計算體系結構來描述,而云計算的服務層次則從提供服務類型角度描述云計算對應提供的功能或服務,云計算技術層次從云計算軟硬件結合角度說明云計算平臺的構成。在云計算中,根據(jù)其服務集合所提供的服務類型,整個云計算服務集合被劃分成4個層次:應用層、平臺層、基礎設施層和虛擬化層。這4個層次每一層都對應著一個子服務集合。云計算的服務層次是根據(jù)服務類型即服務集合來劃分,層次是可以分割的,即某一層次可以單獨完成一項用戶的請求而不需要其他層次為其提供必要的服務和支持。應用層對應SaaS軟件即服務如:GoogleAPPS;平臺層對應PaaS平臺即服務如:IBMITFactory、GoogleAPPEngine;基礎設施層對應IaaS基礎設施即服務如:AmazonEC2、IBMBlueCloud、SunGrid;虛擬化層對應硬件即服務結合Paas提供硬件服務,包括服務器集群及硬件檢測等服務。云計算技術層次和云計算服務層次不是一個概念,后者從服務的角度來劃分云的層次,主要突出了云服務能給我?guī)硎裁?。而云計算的技術層次主要從系統(tǒng)屬性和設計思想角度來說明云,是對軟硬件資源在云計算技術中所充當角色的說明。從云計算技術角度來分,云計算大約有4部分構成:物理資源層、資源池層、管理中間件層和SOA構建層,如圖1-2所示。其中資源池層和管理中間件層是云計算技術的最關鍵部分。SOA構建層:將云計算能力封裝成標準的webservices服務,并納入到SOA體系進行管理和使用,時用戶端與云端交互操作的入口,可以完成用戶或服務注冊,對服務的定制和使用。管理中間件層:在云計算技術中,中間件位于服務和服務器集群之間,提供管理和服務即云計算體系結構中的管理系統(tǒng)。對標識、認證、授權、目錄、安全性等服務進行標準化和操作,為應用提供統(tǒng)一的標準化程序接口和協(xié)議,隱藏底層硬件、操作系統(tǒng)和網(wǎng)絡的異構性,統(tǒng)一管理網(wǎng)絡資源。其用戶管理包括用戶身份驗證、用戶許可、用戶定制管理;資源管理包括負載均衡、資源監(jiān)控、故障檢測等;安全管理包括身份驗證、訪問授權、安全審計、綜合防護等;映像管理包括映像創(chuàng)建、部署、管理等。圖1-2云計算技術層次模型資源池層:將大量相同類型的資源構成同構或接近同構的資源池,如計算池,存儲池和網(wǎng)絡池、數(shù)據(jù)庫資源等,構建資源池更多的是物理資源的集成和管理工作,通過軟件技術來實現(xiàn)相關的虛擬化功能包括虛擬環(huán)境、虛擬系統(tǒng)、虛擬平臺。物理資源層:主要指能支持計算機正常運行的一些硬件設備及技術,可以是價格低廉的PC,也可以是價格昂貴的服務器及磁盤陣列等設備,可以通過現(xiàn)有網(wǎng)絡技術和并行技術、分布式技術將分散的計算機組成一個能提供超強功能的集群用于計算和存儲等云計算操作。在云計算時代,本地計算機可能不再像傳統(tǒng)計算機那樣需要空間足夠的硬盤、大功率的處理器和大容量的內(nèi)存,只需要一些必要的硬件設備如網(wǎng)絡設備和基本的輸入輸出設備等。云計算技術云是一種大量的、可配置、易擴展、可動態(tài)規(guī)劃且便于訪問的虛擬化資源池,包括硬件、開發(fā)平臺以及所提供的服務等。同時該資源池實行按需分配,并提供安全保護。云是云計算基礎平臺,它從資源角度來認識云計算,其主要特點包括資源的虛擬化,資源的多樣性,資源的可擴展性,資源易優(yōu)化性,以及互聯(lián)網(wǎng)為中心,用戶按需分配等。云計算平臺是基于云資源之上,能有高效的提供計算服務的計算平臺。它是分布式計算,并行計算和網(wǎng)格計算的發(fā)展。云計算平臺通過相關策略,針對用戶的不同需求,動態(tài)、透明的提供虛擬計算與資源存儲,同時根據(jù)用戶的需求收取費用,讓普通用戶能夠高效,迅速的進行大規(guī)模并行計算和海量數(shù)據(jù)處理等。云計算特點從研究現(xiàn)狀看,云計算主要具有以下一些特點:超大規(guī)模云計算將計算任務分布在大量的計算機構成的資源池上分布執(zhí)行,具有大規(guī)模性。目前,谷歌云計算已經(jīng)具有100多萬臺服務器,Amazon、IBM、微軟等的云計算均有幾十萬臺服務器。虛擬化云計算支持用戶在任意位置、使用各種終端獲取應用服務。所請求的資源來自云,而不是固定的有形實體,應用在云中某處運行,用戶無需了解應用運行的具體位置。高可靠性云計算使用的數(shù)據(jù)多副本容錯、計算節(jié)點同構可互換等措施來保障服務的高可靠性,使用云計算比使用本地計算可靠。通用性云計算不針對特定的應用,再云環(huán)境的支撐下可以構造出千變?nèi)f化的應用,同一個云可以同時支持不同的應用運行。高可擴展性云的規(guī)??梢詣討B(tài)伸縮,滿足應用和用戶規(guī)模增長的需要。按需服務云是一個龐大的資源池,用戶按需計費購買。廉價由于暈的特殊容錯措施可以采用非及其廉價的節(jié)點來構成云,云的自動化集中式管理使大量企業(yè)無需負擔日以高昂的數(shù)據(jù)中心管理成本,云的通用性使資源的利用率較之傳統(tǒng)系統(tǒng)大幅提升,用戶可以充分享受云的低成本優(yōu)勢。云計算分類按照服務類型,云計算主要可以分為三類:基礎設施即服務IaaS、平臺即服務PaaS、軟件即服務SssS。如圖1-3所示:圖1-3云計算分類軟件即服務(SaaS)SaaS(Softwareasaservice)的含義是軟件即服務,是一種基于互聯(lián)網(wǎng)提出的軟件服務應用模式,提供SaaS服務就是把所提供的服務軟件統(tǒng)一的部署在自己建立的數(shù)據(jù)中心,企業(yè)只需提出需求,就可使用數(shù)據(jù)中心提供的服務。在這種服務模式下,企業(yè)用戶或個人用戶不用像使用傳統(tǒng)系統(tǒng)軟件那樣建立服務器。用戶也不用考慮版本和日常維護等,這些都由服務提供商進行處理。對于廣大中小型企業(yè)來說,這種SaaS模型不僅為他們帶來了方便,更為他們帶來了商機,規(guī)避了投資風險。因為這種模型便于用戶通過互聯(lián)網(wǎng)托管、部署和接入,用戶只要按需繳納費用而不用一次性投入大量的人力和物力。目前,SaaS已經(jīng)被用到企業(yè)管理軟件領域、產(chǎn)業(yè)技術和市場。國內(nèi)主要廠商有八百客、沃力森,主要研發(fā)CRM、ERP等在線應用。國外主要有SalesForce提供的在線CRM服務,Google在線Office和GoogleApps企業(yè)應用。平臺即服務(PaaS)PaaS(Platformasaservice)的含義是平臺即服務,是指將軟件研發(fā)的平臺作為一種服務提供給使用者。在這過程中,也是用到了SaaS所提供的服務,因此PaaS也是SaaS模式的一種應用,是把服務器平臺作為一種服務提供的商業(yè)模式。在傳統(tǒng)的軟件開發(fā)時代,若想要開發(fā)一個系統(tǒng),開發(fā)者必須先準備開發(fā)硬件、軟件平臺,而在PaaS模式下,開發(fā)者不需要自己準備,可以直接使用云計算提供商提供的服務器平臺和開發(fā)環(huán)境,大大縮短了開發(fā)周期。PaaS為開發(fā)者提供了便利,主要是因為它能提供企業(yè)研發(fā)所需要的中間件平臺(涵蓋了數(shù)據(jù)庫和Web應用發(fā)布服務器),同時這個中間件平臺時可定制的。應用軟件開發(fā)者根據(jù)自己的需要,定制適合自己的開發(fā)平臺,從而豐富了基于該平臺的應用,也豐富了SaaS服務。目前PaaS在商業(yè)界也得到了廣泛的應用。面向個人服務的Amazon公司,最初只是為了公司的運營,構建為一個系統(tǒng)平臺,面向個人和企業(yè)出租。用戶可以自由選擇操作系統(tǒng)和中間軟件,以這種方式提供硬件以及軟件平臺服務,最初只是為了挽回一些損失,推向市場后卻成為公司經(jīng)營增長點。Google公司也在這種服務方式下提供了平臺——GoogleAppEngine,這是一個開發(fā)語言(Phthon或Java)的使用環(huán)境,用戶無需搭建自己的Web發(fā)布平臺和數(shù)據(jù)庫服務器等,可直接使用Google提供的開發(fā)包,將開發(fā)好的軟件發(fā)布到Google提供的平臺上?;A設施即服務(IaaS)IaaS(Infrastructureasaservice)的含義是基礎設施即服務,是一種對資源的抽象。具體地說,IaaS是將基礎設施經(jīng)過虛擬化后的計算資源、存儲資源和網(wǎng)絡帶寬等以服務的方式通過互聯(lián)網(wǎng)提供給用戶使用,也是一種托管型的硬件使用方式。不同云計算提供商的基礎設施層所提供的服務有所不同,實現(xiàn)方式也有區(qū)別,但都有一個共同點,就是面對大規(guī)模的硬件資源,為實現(xiàn)高層次的資源管理,對底層資源進行虛擬化。通過虛擬化這一過程,屏蔽了硬件資源產(chǎn)品上的差異,也為實現(xiàn)各種硬件資源的統(tǒng)一管理提供了邏輯接口?;A設施層的資源虛擬化往往具有多個層次。目前業(yè)界提出了虛擬機、集群、虛擬數(shù)據(jù)中心和云等若干層次分明的資源抽象。資源虛擬化為資源邏輯定義了操作的對象和粒度,是構建基礎設施層的基礎。通過對不同品牌和型號的物力資源進行抽象,以一個全局統(tǒng)一的資源池進行管理并呈現(xiàn)給客戶,是基礎設施層的關鍵。在大規(guī)模的集群資源池中,負載問題一直都是研究的熱點與難點。如果資源池中的節(jié)點負載均衡,可以提高資源吃的整體效率。反之,會造成資源上的浪費。如果在設施層能提供自動化的負載均衡機制,提高資源負載均衡控制機制就不會出現(xiàn)某些節(jié)點由于負載過高而致使性能受到影響的情況。目前,典型的應用如Amazon的EC2、S3、SQS,Google提供的服務器托管、租賃等服務,IBM提供的BlueCloud均提供這種服務。云計算與網(wǎng)格計算網(wǎng)格是上世紀90年代中期發(fā)展起來的互聯(lián)網(wǎng)核心技術。網(wǎng)格技術的定義是:“在動態(tài)、多機構參與的虛擬組織中協(xié)同共享資源和求解問題”。網(wǎng)格實在網(wǎng)絡基礎上,基于SOA,使用互操作、按需集成等技術手段,把分散在不同地理位置的資源模擬成為一個整體,實現(xiàn)計算、存儲、數(shù)據(jù)、軟件以及設備等資源的共享,從而大幅圖稿資源的利用率,是用戶獲得前所未有的計算和信息能力。國際網(wǎng)格界致力于網(wǎng)格中間件、網(wǎng)格平臺和網(wǎng)格應用建設。著名的網(wǎng)格中間件有GlobusToolkit、UNICORE、Condor、gLite等,其中的GlobusToolkit得到了廣泛的認可。類似于云計算可以分為IaaS、PaaS、SaaS三種類型,網(wǎng)格計算也可以分為三種不同的類型:計算網(wǎng)格、信息網(wǎng)格和知識網(wǎng)格。網(wǎng)格計算在概念上爭論了很多年,在體系結構上也有三次大的變化,在標準規(guī)范上花費了大量的人力,并且所設定的目標也是非常的遠大——要在跨平臺、跨組織、跨信任域的極其復雜的異構環(huán)境下協(xié)同解決問題以及共享資源,要想共享的資源也是五花八門——高性能計算機、數(shù)據(jù)庫、設備、軟件、知識等等。網(wǎng)格計算個云計算的關系如下。目標方面,網(wǎng)格計算主要致力于共享高性能計算力和數(shù)據(jù)資源,實現(xiàn)資源共享和協(xié)同工作,而云計算則為了提供通用的計算機平臺和存儲空間,提供各種軟件服務。網(wǎng)格計算的資源來自于不同機構,而云間算則來自同一機構。網(wǎng)格計算希望共享的資源是異構資源,而云計算則是同構資源。網(wǎng)格計算的資源節(jié)點是高性能的計算機,但是云計算可以將簡單的服務器甚至是PC作為資源節(jié)點。網(wǎng)格計算通過虛擬組織來虛擬化試圖,云計算通過虛擬機。網(wǎng)格計算是解決以緊耦合問題為主的計算,云計算以松耦合問題為主。網(wǎng)格計算的用戶多為科學界人士,而云計算多用于商業(yè)以及社會。但是網(wǎng)格計算是免費的,而云計算是按量計費的。網(wǎng)格計算的標準:統(tǒng)一的國際標準OGSA/WSRF,云計算現(xiàn)在暫無標準,只有開放的云計算聯(lián)盟。從上可以看出,云計算暫時不在概念和標準上爭論和糾結,完全致力于商業(yè)應用。Google云計算和Amazon云計算就有著非常大的區(qū)別,云計算只是對二者以前認識的商業(yè)服務和應用新的共同名稱。網(wǎng)格計算和云計算的關系,就有點類似于OSI和TCP/IP之間的關系。OSI是TCP/IP的基礎,而TCP/IP的發(fā)展同時也推動了OSI的發(fā)展。兩者之間是滾動發(fā)展。同樣,沒有網(wǎng)格計算的基礎,云計算也就不會如此迅速的到來。云計算是網(wǎng)格計算的一種簡化版和實用版,更加注重的是實用性。而通常意義上講的網(wǎng)格更加重視的是標準規(guī)范,并且缺乏成功的商業(yè)模式。主要開源云計算平臺簡介Abiquo公司開源云計算平臺Abiquo公司推出了一套比較完整的云計算解決方案,它可以幫助用戶在各種復雜的環(huán)境下高效的構建公有、私有或混合云。這套方案主要包括三個部分:abiCloud、abiNtense和abiData。三個部分可以單獨使用,也可以搭配起來使用。如今公司有特定的部門或工作組對不同的系統(tǒng)架構的需求。此外,還有季節(jié)性需要擴大規(guī)模與產(chǎn)品的公司。不能夠參加這些要求以適當?shù)姆绞綄π枨?,使用戶感到受騙一個壞優(yōu)質的服務,從而不再使用該產(chǎn)品。隨著AbiCloud,有可能提供的需要,這些工作組為他們的環(huán)境(開發(fā),測試,生產(chǎn)前,生產(chǎn)),立即和即時的配置時,不再需要?;A結構不耗盡,但充分發(fā)揮其能力,而不是利用時間價值鏈(所提供的問題),在數(shù)據(jù)中心的空間節(jié)約了成本,提高了電力,專用于維護的人數(shù)等等。小企業(yè)和初創(chuàng)隨著AbiCloud,可以安裝自己的私有云,并獲得所有的好處,他們將在一家大公司與AbiCloud達到或一個主機提供商社區(qū)版的AbiCloud的自由軟件許可證下分發(fā),因此它是可能的,以適應特定的需要,例如,大學,獨立軟件供應商,SaaS提供商等

AbiCloud社區(qū)是一個集合所有那些希望利用開放版本的在線資源。注冊是免費的,不需要任何妥協(xié),其所有權。abiquoabiCloud是abiquo公司的最重要的產(chǎn)品,是一款開源云管理軟件,可以創(chuàng)建管理資源并且可以按需擴展。使公司能夠以快速、簡單和可擴展的方式創(chuàng)建和管理大型、復雜的IT基礎設施(包括虛擬服務器,網(wǎng)絡,應用,存儲設備等等)。AbiCloud較之同類其他產(chǎn)品的一個主要的區(qū)別在于其強大的Web界面管理,用戶可以通過拖拽一個虛擬機來部署一個新的服務。這個版本允許通過VirtualBox部署實例,它還支持VMware,KVM和Xen等不同的虛擬機。abiCloud目前主要有三個版本:社區(qū)版(CommuntyVersion)、企業(yè)版(EnterpriseVersion)和ISP版(ISPVersion,ISP表示互聯(lián)網(wǎng)服務提供商)。社區(qū)版向公眾免費提供,企業(yè)版則在社區(qū)版基礎上添加了一些高級特征,而ISP版通過擴展企業(yè)版的內(nèi)容來允許ISP出售其云計算服務。abiCloud的基本架構如圖3-1所示:圖3-1abiCloud基本架構abiCloud的基本架構清晰明了,其中,abiCloud_WS是平臺的虛擬工廠,工廠主要負責管理各種虛擬化技術。abiCloud_VWS(abiCloudVirtulMonitorSystem)用來監(jiān)控虛擬化設備的運行狀態(tài)。從圖2.1中也可以看出,abiCloud除了客戶端采用了flex技術外,其他部分幾乎都是由JAVA語言來實現(xiàn)的。和abiCloud相比,其他兩個產(chǎn)品使用的并不是很多。官網(wǎng)上給出的手冊上給出了abiquo的功能:實現(xiàn)任何虛擬機管理程序的互動;易于和其他程序集成;開源;可擴展的公共或私有云;基于標準;多租戶云。我們可以用abiCloud完成下述工作:管理物理基礎設施:管理數(shù)據(jù)中心(這個社區(qū)版本僅適用于一個數(shù)據(jù)中心)管理架管理體檢設備。管理虛擬機管理程序(Hypervisor)(此社區(qū)版工程與VirtualBox虛擬技術)控制你的物理機與虛擬基礎架構設備的狀態(tài)2.企業(yè)/用戶管理:

管理企業(yè)管理用戶

控制用戶登錄

管理用戶配置文件軟/硬件限制

3.管理設備庫:管理本地資源庫虛擬圖像定義虛擬影像的要求。連接到公共OVF庫私營每個企業(yè)庫從localhost圖像資料庫上傳/下載4.管理虛擬基礎架構每個企業(yè)都有其虛擬基礎架構管理虛擬數(shù)據(jù)中心管理虛擬設備分配私有IP的虛擬機捆綁圖像管理專用網(wǎng)絡abiNtenseabiNtense使用基于網(wǎng)格的架構,類似于Grid的架構,有效的減少了大規(guī)模高性能計算的執(zhí)行時間。abiNtense特點:可以在任何設備上執(zhí)行(PC,服務器,嵌入式);分配工作量以優(yōu)化資源的能力;易于開發(fā),部署和監(jiān)控在不同的計算機上開發(fā)的應用程序同時進行。圖3-2abiNtense架構abiData

abiData由HadoopCommon,hBase,Pig開發(fā)而來,是一個信息管理系統(tǒng),可以用來搭建分析大量數(shù)據(jù)的應用。是低成本的云存儲解決方案。abiData通過以下3種方式來實現(xiàn)PB級的信息處理:冗余(分布式存儲);可伸縮;負載均衡(均勻分布的數(shù)據(jù))??蛻舳丝梢栽谝粋€文件夾來管理他們的檔案,即使信息分散在多個遠程服務器。過程如下:圖3-3abiData管理過程搜索查詢;在不同的DA節(jié)點和應用程序上搜索;發(fā)現(xiàn)數(shù)據(jù),返回主服務器;執(zhí)行計算并返回到用戶或應用。搜索過程分為避免鎖和數(shù)據(jù)丟失。abiData跨不同的節(jié)點可以將數(shù)據(jù)復制,以避免數(shù)據(jù)丟失。Eucalyptus開源云計算平臺ElasticUtilityComputingArchitectureforLinkingYourProgramsToUsefulSystems(Eucalyptus)是一種開源的軟件基礎結構,用來通過計算集群或工作站群實現(xiàn)彈性的、實用的云計算。它最初是美國加利福尼亞大學SantaBarbara計算機科學學院的一個研究項目,現(xiàn)在已經(jīng)商業(yè)化,發(fā)展成為了EucalyptusSystemsInc。不過,Eucalyptus仍然按開源項目那樣維護和開發(fā)。EucalyptusSystems還在基于開源的Eucalyptus構建額外的產(chǎn)品;它還提供支持服務。Eucalyptus云計算軟件,在一個平臺上(分為opensource版和enterprise版),提供了對這些資源的抽象。Eucalyptus的源碼是公開的。并且有提供給CentOS5,Debiansqueeze,OpenSUSE11,F(xiàn)edora12的軟件包。兼容的私有云和混合云是一個開源軟件,它允許組織建立自助服務,彈性云數(shù)據(jù)中心內(nèi)使用現(xiàn)有的IT基礎設施。Eucalyptus匯集計算,存儲和網(wǎng)絡資源,可以動態(tài)縮放或應用程序工作負載的變化,使AWS兼容的私有云和混合云。Eucalyptus系統(tǒng)與AWS宣布了一項正式協(xié)議,在2012年保持保真度與AWS的API,目前支持S3,EC2,EBS,和IAM。軟件架構Eucalyptus是兼容AWS的API,使用戶可以利用Eucalyptus命令來管理Amazon或Eucalyptus實例。云用戶還可以將Eucalyptus私有云和Amazon公共云創(chuàng)建一個混合云之間的實例。Eucalyptus利用操作系統(tǒng)虛擬化,應用程序和協(xié)議棧之間實現(xiàn)隔離。操作系統(tǒng)虛擬化專用CPU,內(nèi)存,磁盤和網(wǎng)絡資源,系統(tǒng)和應用程序,使他們不互相干擾。圖3-4Eucalyptus的基礎架構以下是Eucalyptus所使用的術語和概念的解釋:圖片—一個形象是一個固定的軟件模塊,系統(tǒng)軟件,應用軟件和配置信息的集合,開始從已知的基線(一成不變/固定)。一個形象的例子是一個Linux的虛擬機配置Apache,MySQL和Perl中,PHP。當捆綁和上傳到Eucalyptus云,這變成了Eucalyptus類鏡像(EMI)。實例—當圖像被投入使用,它被稱為一個實例。配置在運行時動態(tài)執(zhí)行,云控制器決定圖像將運行的,和連接,以滿足存儲和網(wǎng)絡資源的需求。IP尋址—Eucalyptus實例可以有公共和私有IP。從圖像創(chuàng)建實例時,被分配到一個IP地址的實例。對于需要一個永久的IP地址,如web服務器的情況下,Eucalyptus提供彈性的IP地址。這些是預先分配的Eucalyptus云的一個實例。彈性IP仍然存在實例是否正在運行與否。換句話說,如果你停止并重新啟動它的一個實例數(shù)小時,數(shù)天或數(shù)周后,實例仍然被分配到相同的彈性IP地址結合。一致的DNS解析,這是必不可少的。安全性—實現(xiàn)TCP/IP協(xié)議棧的第3層安全使用安全組,都有一個共同的防火墻規(guī)則集。這是一種機制,防火墻關閉的實例使用的IP地址和端口阻止/允許功能。在TCP/IP層的2個實例是隔離的。如果這是不存在的,root用戶可以操縱網(wǎng)絡的實例,并獲取到鄰近的情況下,違反了基本的云實例隔離和分離的宗旨。網(wǎng)絡—有三種組網(wǎng)方式。在管理模式Eucalyptus的實例,包括安全組和彈性IP管理本地網(wǎng)絡。Eucalyptus維護一個DHCP服務器,民辦非可路由的IP地址,并提供實例。一個實例中創(chuàng)建一個安全組,并得到一個IP,從該組中的范圍。還有一個公共池(有彈性)的IP,用戶可以綁定到一個實例在啟動時或在運行時動態(tài)。VLAN用于在不同的安全組的網(wǎng)絡實例。如果有沒有VLAN禮物,使用安全組可以實現(xiàn)在不同的子網(wǎng)隔離。系統(tǒng)模式,本質上是物理的LAN連接到EucalyptusEucalyptus云的網(wǎng)絡管理。Eucalyptus分配一個MAC地址,并通過節(jié)點控制器的橋梁實例的網(wǎng)絡接口連接的物理以太網(wǎng)LAN。系統(tǒng)模式需要的情況下可達物理LAN上的DHCP服務器。系統(tǒng)模式不提供彈性IP,安全組或虛擬機隔離。在靜態(tài)模式下,Eucalyptus維護一個DHCP服務器分配IP地址的實例。靜態(tài)模式下不提供彈性IP,安全組或虛擬機隔離。訪問控制—Eucalyptus的用戶分配一個身份,訪問控制,身份可以組合在一起。組件Eucalyptus具有模塊化,分布式,高度可擴展的架構,提供六種不同的組件:云控制器(CLC)是一個Java程序,提供EC2兼容SOAP和查詢接口,一個網(wǎng)絡接口,以及向外界。除了處理傳入的請求,CLC作為管理接口的云管理和進行高層次的資源調度和系統(tǒng)記帳。CLC接受用戶API請求像euca2ools或基于GUI的工具,像桉用戶控制臺命令行界面和管理底層計算,存儲和網(wǎng)絡資源。只有一個CLC可以存在每個云和處理驗證,會計,報告和報價管理。每個安裝系統(tǒng)只有一個云控制器。云控制器相當于系統(tǒng)的中樞神經(jīng),是用戶的課件入口點和作出全局決定的組件,負責處理用戶發(fā)出的請求或系統(tǒng)管理員發(fā)出的管理請求,作出高層的虛擬機實例調度決定,處理服務等級協(xié)議和維護系統(tǒng)及用戶相關的元數(shù)據(jù)。云控制器由一組服務組成,這些服務用于處理用戶請求、驗證和維護系統(tǒng)、用戶元數(shù)據(jù)(虛擬機映像和SSH密鑰對等),并可管理和監(jiān)視虛擬機實例的運行。這些服務由企業(yè)服務總線ESB來配置、管理和發(fā)布。Eucalyptus的設計強調透明和簡單,以便促進Eucalyptus的實驗和擴展。為了達到這一粒度級別的擴展,云控制器的組件包括虛擬機調度器、SLA引擎、用戶接口和管理接口等。Walrus,用Java編寫的,是Eucalyptus相當于AWS的簡單存儲服務(S3)。walrus提供持久性存儲的Eucalyptus云中的虛擬機,并可以用作一個簡單的HTTP存儲服務解決方案。有沒有數(shù)據(jù)類型限制walrus,它可以包含圖像(即用來啟動虛擬機,積木),卷快照(即時間點的副本)和應用程序數(shù)據(jù)。再次,每個云中只有一個walrus可以存在。集群控制器(CC)是寫在C和行為作為前端,為集群內(nèi)的Eucalyptus云與存儲控制器和節(jié)點控制器進行通信。管理實例(即虛擬機)執(zhí)行和服務水平協(xié)議(SLA),每個集群。集群管理器運行在集群的結頭點或服務器上,可以訪問私有或公有網(wǎng)絡。一個集群控制器可以管理多個節(jié)點控制器,集群管理器負責從所屬的節(jié)點控制其收集節(jié)點的狀態(tài)信息,根據(jù)這些節(jié)點的資源狀態(tài)信息分配虛擬機實例,并管理公共和私有實例網(wǎng)絡的配置。用Java編寫的存儲控制器(SC)和Eucalyptus相當于AWSEBS。它與群集控制器節(jié)點控制器通信,在其特定的群集實例管理Eucalyptus塊卷和快照。如果需要持久性數(shù)據(jù)寫入到內(nèi)存的集群外的一個實例,這將需要寫入的walrus,這是任何集群中的任何實例。存儲控制器接口和存儲系統(tǒng),包括本地,NFS,iSCSI的SAN。VMware的經(jīng)紀人是一個可選組件,為VMware環(huán)境提供了一個AWS兼容接口和物理群集控制器上運行。VMware的經(jīng)紀覆蓋現(xiàn)有的ESX/ESXi主機和,Eucalyptus機圖像(EMIS)轉換為VMware虛擬磁盤。VMware的群集控制器和VMware,可以直接連接到ESX/ESXi主機或vCenterServer的經(jīng)紀人之間的相互作用介導。節(jié)點控制器(NC)是用C語言編寫的,托管的虛擬機實例,并管理虛擬網(wǎng)絡端點。下載和緩存圖像walrus以及創(chuàng)建和緩存實例。每個群集節(jié)點控制器的數(shù)量雖然沒有理論上的限制,性能極限是存在的。節(jié)點控制器負責管理一個物理節(jié)點。節(jié)點控制器是運行在虛擬機寄宿的物理資源上的一個組件,負責啟動、檢查、關閉和清除虛擬機實例等工作。可以安裝多個節(jié)點控制器,但一臺機器只需運行一個節(jié)點控制器,因為一個節(jié)點控制器可以管理該節(jié)點上運行的多個虛擬機實例。AmazonWeb服務兼容性Eucalyptus保持較高的保真度與AWSAPI。組織可以使用或重復使用許多現(xiàn)有的AWS兼容的工具,圖像和腳本來管理自己的基礎設施作為服務(IaaS)的環(huán)境前提。AWS的API來實現(xiàn)Eucalyptus上,使工具在云計算生態(tài)系統(tǒng),可以與AWS可以使用相同的API,Eucalyptus。在2012年3月,Amazon網(wǎng)絡服務和Eucalyptus宣布AWS和Eucalyptus之間的兼容性的詳細信息。作為該協(xié)議的一部分,將支持AWS的Eucalyptus,因為他們繼續(xù)擴大與AWSAPI的兼容性和客戶用例??蛻艨梢栽谄洮F(xiàn)有的數(shù)據(jù)中心,兼容流行的AmazonWeb服務,如Amazon彈性計算云(EC2)和Amazon簡單存儲服務(S3)中運行應用程序。Eucalyptus提供這些AWS功能的兼容性:EC2AmazonEBSAmazon機器映像(AMI)S3Amazon的身份和訪問管理(IAM)AmazonELB-Eucalyptus3.3Amazon自動縮放-Eucalyptus3.3Amazon的CloudWatch-Eucalyptus3.3功能基于Web的Eucalyptus用戶控制臺Eucalyptus用戶控制臺提供了一個接口,為用戶提供自助服務和配置的計算,網(wǎng)絡和存儲資源。開發(fā)和測試團隊可以管理虛擬實例,使用內(nèi)置的密鑰管理和加密功能。進入虛擬實例可以使用熟悉的SSH和RDP機制。使用加密從EBS引導能力,可以停止和重新啟動虛擬應用程序配置實例。Eucalyptus云組件的高可用性的設計是高度可在多個層面。服務組件的IaaS云控制器,集群控制器,Walrus,存儲控制器,和VMware代理被配置為多種類型的故障是有彈性的冗余系統(tǒng)。管理云機狀態(tài)保存和恢復到正常工作條件下,在發(fā)生硬件或軟件故障。多機圖像格式:Eucalyptus可以運行多個版本的Windows和Linux虛擬機映像。用戶可以建立一個Eucalyptus類圖片(EMIS)的庫實現(xiàn)基礎設施的細節(jié),讓他們在Eucalyptus云上運行應用程序元數(shù)據(jù)。也兼容Eucalyptus云的AmazonMachineImages。VMware映像和vApp可以轉換Eucalyptus云和AWS公共云上運行。企業(yè)就緒的身份管理Eucalyptus用戶身份管理,可以集成到現(xiàn)有的MicrosoftActiveDirectory或LDAP系統(tǒng)具有細粒度的基于角色的訪問控制對云資源。SAN集成Eucalyptus支持SAN設備可以被配置為利用的存儲陣列,以提高性能和可靠性。EBS持久存儲卷Eucalyptus機圖片可以備份,提高了圖像的啟動時間和性能實現(xiàn)全面持久的虛擬機實例。Eucalyptus還支持直接附加存儲的能力,直接連接JBOD存儲配置。拓撲結構在一個單一集群的安裝中,如圖3-5所示,將至少包含兩個機器:一個機器運行CC、SC和CLC;另一個機器運行NC。這種配置主要適合于試驗的目的以及快速配置的目的。通過將所有東西都組合到一個機器內(nèi),還可以進一步簡化,但這個機器需要非常健壯才能這樣做。圖3-5一個單集群Eucalyptus安裝的拓撲在多集群安裝中,可以將各個組件(CC、SC、NC和CLC)放置在單獨的機器上。如果想要用它來執(zhí)行重大的任務,那么這么做就是一種配置Eucalyptus云的理想方式。多集群安裝還能通過選擇與其上運行的控制器類型相適應的機器來顯著提高性能。比如,可以選擇一個具有超快CPU的機器來運行CLC。多集群的結果是可用性的提高、負載和資源的跨集群分布。集群的概念類似于AmazonEC2內(nèi)的可用性區(qū)域的概念。資源可以跨多個可用性區(qū)域分配,這樣一來,一個區(qū)域內(nèi)的故障不會影響到整個應用程序,如圖3-6所示。圖3-6一個多集群Eucalyptus安裝的拓撲虛擬組網(wǎng)虛擬機實例的互聯(lián)問題是構建云計算基礎設施最重要的工作之一。不同于由物理機器組成的物理網(wǎng)絡,虛擬機實例組成的網(wǎng)絡是一個虛擬化的網(wǎng)絡,通過虛擬化處理可以是網(wǎng)絡簡單和易配置。某個域內(nèi)的虛擬機實例彼此之間應有網(wǎng)絡連接,且他們中至少有一個虛擬機實例和外部公共網(wǎng)絡相連,以便于為其所有者提供訪問入口及與其他域實例進行交互。由于用戶對自己所監(jiān)管的虛擬機具有超級用戶權限,可以訪問基本的網(wǎng)絡接口,因此具有獲取烯烴IP和MAC地址的能力,并可對系統(tǒng)網(wǎng)絡造成干擾。此外,如果兩個實例運行在同一臺物理機器上,虛擬機用戶可以影響和窺探另外一個虛擬機的網(wǎng)絡包,這將導致安全問題。因此在有不同用戶分享的云計算平臺上,協(xié)調完成單一任務的虛擬機之間應該可以通信,而屬于不同用戶的虛擬機之間應該是通信隔離的。為了解決上述問題,每個虛擬機提供兩個虛擬網(wǎng)絡接口,一個座位公共接口,一個成為私有接口。公共接口的作用是和用戶所管轄的虛擬機的外部進行通信,或在由服務等級協(xié)議定義的可用區(qū)域的實例之間進行通信。在一個有可用的IP地址的環(huán)境中,這些地址可以在虛擬機實例啟動時分配給他們以允許實例進行通信。而在具有支持外部通信路由器的私有網(wǎng)絡中,虛擬機實例進行網(wǎng)絡地址轉換后,其公共網(wǎng)絡接口可以分配一個幼小的私有地址,通過網(wǎng)絡地址轉換的路由器訪問外部網(wǎng)絡。實例的私有借口只能在跨度的虛擬機之間進行通信,以解決不同虛擬機實例之間的通信問題。集群控制器負責創(chuàng)建和銷毀實例虛擬網(wǎng)絡接口,節(jié)點控制器通過配置以下三種方式建立公共接口網(wǎng)絡。1.是虛擬機的公共接口直接連結到與物理機器網(wǎng)路相連的以太網(wǎng)軟件上,管理員可以像處理常規(guī)的DHCP請求那樣處理虛擬機網(wǎng)絡的DHCP請求。2.允許管理員定義一個動態(tài)的IP地址池和一個網(wǎng)絡,集群控制器通過一個接口連接到該網(wǎng)絡,運行在集群管理器的DHCP請求服務器負責在實例啟動時將地址動態(tài)的分配給這些實例。3.定義靜態(tài)的MAC/IP地址對,每個實例啟動時系統(tǒng)給其分配一個空閑的MAC/IP對,實力終結后釋放改MAC/IP對。實例的私有接口通過橋接器連接到一個被稱為虛擬分布式以太網(wǎng)的全虛擬以太網(wǎng)系統(tǒng)(VDE),VDE是一個以太網(wǎng)協(xié)議的線程級實現(xiàn)。VDE網(wǎng)絡通過通用的TUN/TAP接口連接到真正的以太網(wǎng)上,TUN/TAP提供了從Linux內(nèi)核到用戶空間的以太網(wǎng)通信服務。一個VDE網(wǎng)絡由VDE交換機和它們的電纜連接構成,VDE交換機位于節(jié)點控制器和集群控制器上,VDE交換機采用生成樹協(xié)議(SpanningTreeProtocol),它防止環(huán)路的同時允許冗余存在于網(wǎng)絡之中。如果沒有防火墻,VDE網(wǎng)絡是完全連接的,即VDE交換機和另外的每一個VDE交換機都直接相連;有防火墻的情況下,VDE至少和系統(tǒng)中的一個VDE交換機相連。為了保證系統(tǒng)的安全,需要對實例實行網(wǎng)絡流量隔離。這些實例可以是運行在相同主機上,也可以運行在同一物理網(wǎng)絡中的不同機器上。系統(tǒng)要求任意兩個實例之間不能夠相互檢查和修改彼此的網(wǎng)絡通信,具體方法是用虛擬局域網(wǎng)給屬于特定用戶的實例集打上網(wǎng)絡標簽,以此來隔絕和轉發(fā)不同的網(wǎng)絡流量。10genMongoDB開源高性能存儲平臺MongoDB(humongous)是一個由10gen團隊開發(fā)和支持的開源的面向文檔的數(shù)據(jù)庫系統(tǒng),由C++撰寫而成,以此來解決應用程序開發(fā)社區(qū)中的大量現(xiàn)實問題。它是數(shù)據(jù)庫系統(tǒng)NoSQL家族的一部分。取而代之的是在一個“經(jīng)典”的關系數(shù)據(jù)庫表中的數(shù)據(jù)存儲,MongoDB中存儲結構化數(shù)據(jù)的JSON文件動態(tài)模式(MongoDB的調用格式BSON),使某些類型的應用程序中的數(shù)據(jù)的整合更容易,更快。10gen發(fā)展MongoDB的開始于2007年,當時,該公司正在建設一個平臺,作為一個類似的WindowsAzure或谷歌應用程序引擎服務。2009年,MongoDB的開源作為一個獨立的產(chǎn)品AGPL許可證。在2010年3月,從1.4版本中,MongoDB中已被視為生產(chǎn)做好準備。最新的穩(wěn)定版本2.4.0,在2013年3月被推出。功能:面向集合的存儲:適合存儲對象及JSON形式的數(shù)據(jù)。動態(tài)查詢:Mongo支持豐富的查詢表達式。查詢指令使用JSON形式的標記,可輕易查詢文檔中內(nèi)嵌的對象及數(shù)組。完整的索引支持:包括文檔內(nèi)嵌對象及數(shù)組。Mongo的查詢優(yōu)化器會分析查詢表達式,并生成一個高效的查詢計劃。查詢監(jiān)視:Mongo包含一個監(jiān)視工具用于分析數(shù)據(jù)庫操作的性能。復制及自動故障轉移:Mongo數(shù)據(jù)庫支持服務器之間的數(shù)據(jù)復制,支持主-從模式及服務器之間的相互復制。復制的主要目標是提供冗余及自動故障轉移。高效的傳統(tǒng)存儲方式:支持二進制數(shù)據(jù)及大型對象(如照片或圖片)自動分片以支持云級別的伸縮性:自動分片功能支持水平的數(shù)據(jù)庫集群,可動態(tài)添加額外的機器。MongoDB的架構分析MongoDB數(shù)據(jù)文件內(nèi)部結構圖3-7MongoDB數(shù)據(jù)文件內(nèi)部結構1.MongoDB在數(shù)據(jù)存儲上按命名空間來劃分,一個Collection是一個命名空間,一個索引也是一個命名空間。2.同一個命名空間的數(shù)據(jù)被分成很多個Extent,Extent之間使用雙向鏈表連接。3.在每一個Extent中,保存了具體每一行的數(shù)據(jù),這些數(shù)據(jù)也是通過雙向鏈接來連接的。4.每一行數(shù)據(jù)存儲空間不僅包括數(shù)據(jù)占用空間,還可能包含一部分附加空間,這使得在數(shù)據(jù)Update變大后可以不移動位置。5.索引以B-Tree結構實現(xiàn)。MongoDB數(shù)據(jù)同步圖3-8數(shù)據(jù)同步流程本流程可簡要描述如下:紅色箭頭表示寫操作可以寫到Primary上,然后異步同步到多個Secondary上。藍色箭頭表示讀操作可以從Primary或Secondary任意一個中讀取。各個Primary與Secondary之間一直保持心跳同步檢測,用于判斷ReplicaSets的狀態(tài)。分片機制圖3-9分片機制1.MongoDB的分片是指定一個分片key來進行,數(shù)據(jù)按范圍分成不同的chunk,每個chunk的大小有限制。2.有多個分片節(jié)點保存這些chunk,每個節(jié)點保存一部分的chunk。3.每一個分片節(jié)點都是一個ReplicaSets,這樣保證數(shù)據(jù)的安全性。4.當一個chunk超過其限制的最大體積時,會分裂成兩個小的chunk。5.當chunk在分片節(jié)點中分布不均衡時,會引發(fā)chunk遷移操作。分布式-Sharding(碎片)MongoDB的auto-sharding功能是指mongodb通過mongos自動建立一個水平擴展的數(shù)據(jù)庫集群系統(tǒng),將數(shù)據(jù)庫分表存儲在sharding的各個節(jié)點上。一個mongodb集群包括一些shards(包括一些mongod進程),mongos路由進程,一個或多個config服務器。Shards每一個shard包括一個或多個服務和存儲數(shù)據(jù)的mongod進程(mongod是MongoDB數(shù)據(jù)的核心進程)。典型的每個shard開啟多個服務來提高服務的可用性。這些服務/mongod進程在shard中組成一個復制集。ChunksChunk是一個來自特殊集合中的一個數(shù)據(jù)范圍,(collection,minKey,maxKey)描敘一個chunk,它介于minKey和maxKey范圍之間。例如chunks的maxsize大小是100M,如果一個文件達到或超過這個范圍時,會被切分到2個新的chunks中。當一個shard的數(shù)據(jù)過量時,chunks將會被遷移到其他的shards上。同樣,chunks也可以遷移到其他的shards上。ConfigServersConfig服務器存儲著集群的metadata信息,包括每個服務器,每個shard的基本信息和chunk信息,Config服務器主要存儲的是chunk信息。每一個config服務器都復制了完整的chunk信息。MongoDB適用范圍MongoDB是非常適合以下情況:1.存檔和事件記錄。2.文檔和內(nèi)容管理系統(tǒng)。作為一個面向文檔的數(shù)據(jù)庫(JSON),MongoDB的靈活的架構這是一個不錯的選擇。3.電子商務。一些網(wǎng)站都在使用MongoDB的電子商務基礎設施(通常在最終訂單處理和會計結合的RDBMS)為核心。4.博彩。高性能小的讀/寫操作是一個不錯的選擇MongoDB的地理空間索引也用于某些游戲可以幫助。5.高容量的問題。傳統(tǒng)的DBMS中的數(shù)據(jù)可能過于昂貴的問題。在許多情況下,開發(fā)商將傳統(tǒng)的文件系統(tǒng),而不是使用平面文件或其他方法編寫自定義代碼。6.移動。具體而言,在服務器端的移動通信系統(tǒng)的基礎設施。地理空間索引是這里的關鍵。7.一個網(wǎng)站的運營數(shù)據(jù)存儲。MongoDB是非常善于實時的插入,更新和查詢。提供必要的功能,為大型網(wǎng)站的實時數(shù)據(jù)存儲的可擴展性和復制。特定的Web使用情況的例子:8.內(nèi)容管理9.評論的存儲,管理,投票10.用戶注冊時,配置文件,會話數(shù)據(jù)11.項目采用迭代/敏捷開發(fā)方法。Mongo的BSON數(shù)據(jù)格式,使得它很容易在文檔樣式/“無模式”的格式來存儲和檢索數(shù)據(jù)。除了現(xiàn)有對象的新屬性是很容易的,一般不需要堵“ALTERTABLE”風格的操作。12.實時統(tǒng)計數(shù)據(jù)/分析13.網(wǎng)站數(shù)據(jù):Mongo非常適合實時的插入,更新與查詢,并具備網(wǎng)站實時數(shù)據(jù)存儲所需的復制及高度伸縮性。14.緩存:由于性能很高,Mongo也適合作為信息基礎設施的緩存層。在系統(tǒng)重啟之后,由Mongo搭建的持久化緩存層可以避免下層的數(shù)據(jù)源過載。15.大尺寸,低價值的數(shù)據(jù):使用傳統(tǒng)的關系型數(shù)據(jù)庫存儲一些數(shù)據(jù)時可能會比較昂貴,在此之前,很多時候程序員往往會選擇傳統(tǒng)的文件進行存儲。16.高伸縮性的場景:Mongo非常適合由數(shù)十或數(shù)百臺服務器組成的數(shù)據(jù)庫。Mongo的路線圖中已經(jīng)包含對MapReduce引擎的內(nèi)置支持。17.用于對象及JSON數(shù)據(jù)的存儲:Mongo的BSON數(shù)據(jù)格式非常適合文檔化格式的存儲及查詢。數(shù)據(jù)操作:集合和文件MongoDB的類JSON文件中存儲結構化數(shù)據(jù),使用動態(tài)模式(稱為BSON),而不是預定義的模式。在MongoDB中,一個數(shù)據(jù)元素被稱為文檔,文件保存在集合中。一個集合可以具有任意數(shù)目的文件。MongoDB實例中的數(shù)據(jù)的配置的是創(chuàng)新的,相對于傳統(tǒng)的關系型數(shù)據(jù)庫(“RDBMS”,“關系數(shù)據(jù)庫管理系統(tǒng)”)。在RDBMS中的數(shù)據(jù)可以看出,組織中的“表”,其中包括“紀錄”(或“行”),它們都包括在

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論