版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
云計(jì)算的技術(shù)分析與實(shí)現(xiàn)方案
2007年末,ibm宣布了云計(jì)算計(jì)劃。云計(jì)算的概念出現(xiàn)在人們面前。為了更好地理解云計(jì)算的本質(zhì)含義,本文通過分析行業(yè)中云計(jì)算的一些廣泛采用的實(shí)現(xiàn),并努力在現(xiàn)有大規(guī)模數(shù)據(jù)處理方面開展工作,分析云計(jì)算背后的具體技術(shù)。首先,讓我們關(guān)注云計(jì)算背后的特定技術(shù)。云計(jì)算定義是ibm技術(shù)的“云計(jì)算”。“云計(jì)算一詞用來同時(shí)描述一個(gè)系統(tǒng)平臺(tái)或者一種類型的應(yīng)用程序.一個(gè)云計(jì)算的平臺(tái)按需進(jìn)行動(dòng)態(tài)地部署(provision)、配置(configuration)、重新配置(reconfigure)以及取消服務(wù)(deprovision)等.在云計(jì)算平臺(tái)中的服務(wù)器可以是物理的服務(wù)器或者虛擬的服務(wù)器.高級(jí)的計(jì)算云通常包含一些其他的計(jì)算資源,例如存儲(chǔ)區(qū)域網(wǎng)絡(luò)(SANs),網(wǎng)絡(luò)設(shè)備,防火墻以及其他安全設(shè)備等.云計(jì)算在描述應(yīng)用方面,它描述了一種可以通過互聯(lián)網(wǎng)Internet進(jìn)行訪問的可擴(kuò)展的應(yīng)用程序.“云應(yīng)用”使用大規(guī)模的數(shù)據(jù)中心以及功能強(qiáng)勁的服務(wù)器來運(yùn)行網(wǎng)絡(luò)應(yīng)用程序與網(wǎng)絡(luò)服務(wù).任何一個(gè)用戶可以通過合適的互聯(lián)網(wǎng)接入設(shè)備以及一個(gè)標(biāo)準(zhǔn)的瀏覽器就能夠訪問一個(gè)云計(jì)算應(yīng)用程序.”上述定義給出了云計(jì)算兩個(gè)方面的含義:一方面描述了基礎(chǔ)設(shè)施,用來構(gòu)造應(yīng)用程序,其地位相當(dāng)于PC機(jī)上的操作系統(tǒng);另一方面描述了建立在這種基礎(chǔ)設(shè)施之上的云計(jì)算應(yīng)用.在與網(wǎng)格計(jì)算的比較上,網(wǎng)格程序是將一個(gè)大任務(wù)分解成很多小任務(wù)并行運(yùn)行在不同的集群以及服務(wù)器上,注重科學(xué)計(jì)算應(yīng)用程序的運(yùn)行.而云計(jì)算是一個(gè)具有更廣泛含義的計(jì)算平臺(tái),能夠支持非網(wǎng)格的應(yīng)用,例如支持網(wǎng)絡(luò)服務(wù)程序中的前臺(tái)網(wǎng)絡(luò)服務(wù)器、應(yīng)用服務(wù)器、數(shù)據(jù)庫服務(wù)器三層應(yīng)用程序架構(gòu)模式,以及支持當(dāng)前Web2.0模式的網(wǎng)絡(luò)應(yīng)用程序.云計(jì)算是能夠提供動(dòng)態(tài)資源池、虛擬化和高可用性的下一代計(jì)算平臺(tái).現(xiàn)有的云計(jì)算實(shí)現(xiàn)使用的技術(shù)體現(xiàn)了以下3個(gè)方面的特征:1)硬件基礎(chǔ)設(shè)施架構(gòu)在大規(guī)模的廉價(jià)服務(wù)器集群之上.與傳統(tǒng)的性能強(qiáng)勁但價(jià)格昂貴的大型機(jī)不同,云計(jì)算的基礎(chǔ)架構(gòu)大量使用了廉價(jià)的服務(wù)器集群,特別是x86架構(gòu)的服務(wù)器.節(jié)點(diǎn)之間的互聯(lián)網(wǎng)絡(luò)一般也使用普遍的千兆以太網(wǎng).2)應(yīng)用程序與底層服務(wù)協(xié)作開發(fā),最大限度地利用資源.傳統(tǒng)的應(yīng)用程序建立在完善的基礎(chǔ)結(jié)構(gòu),如操作系統(tǒng)之上,利用底層提供的服務(wù)來構(gòu)造應(yīng)用.而云計(jì)算為了更好地利用資源,采用了底層結(jié)構(gòu)與上層應(yīng)用共同設(shè)計(jì)的方法來完善應(yīng)用程序的構(gòu)建.3)通過多個(gè)廉價(jià)服務(wù)器之間的冗余,使用軟件獲得高可用性.由于使用了廉價(jià)的服務(wù)器集群,節(jié)點(diǎn)的失效將不可避免,并且會(huì)有節(jié)點(diǎn)同時(shí)失效的問題.為此,在軟件設(shè)計(jì)上需要考慮節(jié)點(diǎn)之間的容錯(cuò)問題,使用冗余的節(jié)點(diǎn)獲得高可用性.通過上面的技術(shù)手段,云計(jì)算達(dá)到了兩個(gè)分布式計(jì)算的重要目標(biāo):可擴(kuò)展性和高可用性.可擴(kuò)展性表達(dá)了云計(jì)算能夠無縫地?cái)U(kuò)展到大規(guī)模的集群之上,甚至包含數(shù)千個(gè)節(jié)點(diǎn)同時(shí)處理.高可用性代表了云計(jì)算能夠容忍節(jié)點(diǎn)的錯(cuò)誤,甚至有很大一部分節(jié)點(diǎn)發(fā)生失效也不會(huì)影響程序的正確運(yùn)行.學(xué)術(shù)界其實(shí)很早就展開了針對(duì)云計(jì)算方便用戶使用方面的研究,很多學(xué)術(shù)上的研究成果遠(yuǎn)早于云計(jì)算概念提出來之前就已得出.我國(guó)的計(jì)算機(jī)研究人員遠(yuǎn)在“云計(jì)算”這個(gè)名詞提出之前就已有透明計(jì)算的構(gòu)思.透明計(jì)算體現(xiàn)了云計(jì)算的特征,即資源池動(dòng)態(tài)的構(gòu)建、虛擬化、用戶透明等.清華大學(xué)張堯?qū)W教授(中國(guó)工程院院士)早在1998年就開始從事透明計(jì)算系統(tǒng)和理論的研究.工業(yè)界很多公司則分別提出了自己針對(duì)云計(jì)算的理解,用不同的技術(shù)來實(shí)現(xiàn)上述云計(jì)算的目標(biāo).本文主要研究工業(yè)界3個(gè)具體的云計(jì)算實(shí)例,具體包括Google的云計(jì)算平臺(tái)以及云計(jì)算的網(wǎng)絡(luò)應(yīng)用程序、IBM公司的“藍(lán)云”平臺(tái)產(chǎn)品以及Amazon公司的彈性計(jì)算云.此外,對(duì)云計(jì)算的學(xué)術(shù)研究現(xiàn)狀也進(jìn)行了調(diào)研與分析.1透明網(wǎng)絡(luò)技術(shù)張堯?qū)W教授領(lǐng)導(dǎo)的研究小組從1998年開始就從事透明計(jì)算系統(tǒng)和理論的研究,到2004年前后正式提出,并不斷完善了透明計(jì)算的概念和相關(guān)理論.隨著硬件、軟件以及網(wǎng)絡(luò)技術(shù)的發(fā)展,計(jì)算模式從大型機(jī)的方式逐漸過渡到微型個(gè)人計(jì)算機(jī)的方式,并且近年來過渡到普適計(jì)算上.但是用戶仍然很難獲得異構(gòu)類型的操作系統(tǒng)以及應(yīng)用程序,在輕量級(jí)的設(shè)備上很難獲得完善的服務(wù).而在透明計(jì)算中,用戶無須感知計(jì)算具體所在位置以及操作系統(tǒng)、中間件、應(yīng)用等技術(shù)細(xì)節(jié),只需要根據(jù)自己的需求,通過連通在網(wǎng)絡(luò)之上的各種設(shè)備選取相應(yīng)的服務(wù).圖1顯示了透明計(jì)算平臺(tái)的3個(gè)重要組成部分.用戶的顯示界面是前端的輕權(quán)設(shè)備,包括各種個(gè)人計(jì)算機(jī)、筆記本、PDA、智能手機(jī)等,被統(tǒng)稱為透明客戶端.透明客戶端可以是沒有安裝任何軟件的裸機(jī),也可以是裝有部分核心軟件平臺(tái)的輕巧性終端.中間的透明網(wǎng)絡(luò)則整合了各種有線和無線網(wǎng)絡(luò)傳輸設(shè)施,主要用來在各種透明客戶端與后臺(tái)服務(wù)器之間完成數(shù)據(jù)的傳遞,而用戶無須意識(shí)到網(wǎng)絡(luò)的存在.與云計(jì)算基礎(chǔ)服務(wù)設(shè)施構(gòu)想一致,透明服務(wù)器不排斥任何一種可能的服務(wù)提供方式,既可通過當(dāng)前流行的PC服務(wù)器集群方式來構(gòu)建透明服務(wù)器集群,也可使用大型服務(wù)器等.當(dāng)前透明計(jì)算平臺(tái)已經(jīng)達(dá)到了平臺(tái)異構(gòu)的目的,能夠支持Linux以及Windows操作系統(tǒng)的運(yùn)行.用戶具有很大的靈活性,能夠自主選擇自己所需要的操作系統(tǒng)運(yùn)行在透明客戶端上.透明服務(wù)器使用了流行的PC服務(wù)器集群的方式,預(yù)先存儲(chǔ)了各種不同的操作平臺(tái),包括操作系統(tǒng)的運(yùn)行環(huán)境、應(yīng)用程序以及相應(yīng)的數(shù)據(jù).每個(gè)客戶端從透明服務(wù)器上獲取并建立整個(gè)運(yùn)行環(huán)境以滿足用戶對(duì)于不同操作環(huán)境的需求.由于用戶之間的數(shù)據(jù)相互隔離,因此服務(wù)器集群可以選取用戶相對(duì)獨(dú)立的方式進(jìn)行存儲(chǔ),使得整個(gè)系統(tǒng)能夠擴(kuò)展到很大的規(guī)模.在服務(wù)器集群之上進(jìn)行相應(yīng)的冗余出錯(cuò)處理,很好地保護(hù)了每個(gè)用戶的透明計(jì)算數(shù)據(jù)安全性.2map創(chuàng)造及程序偽代碼Google公司有一套專屬的云計(jì)算平臺(tái),這個(gè)平臺(tái)先是為Google最重要的搜索應(yīng)用提供服務(wù),現(xiàn)在已經(jīng)擴(kuò)展到其他應(yīng)用程序.Google的云計(jì)算基礎(chǔ)架構(gòu)模式包括4個(gè)相互獨(dú)立又緊密結(jié)合在一起的系統(tǒng):GoogleFileSystem分布式文件系統(tǒng),針對(duì)Google應(yīng)用程序的特點(diǎn)提出的MapReduce編程模式,分布式的鎖機(jī)制Chubby以及Google開發(fā)的模型簡(jiǎn)化的大規(guī)模分布式數(shù)據(jù)庫BigTable.·GoogleFileSystem文件系統(tǒng)(GFS)除了性能,可伸縮性、可靠性以及可用性以外,GFS設(shè)計(jì)還受到Google應(yīng)用負(fù)載和技術(shù)環(huán)境的影響.體現(xiàn)在4個(gè)方面:1)充分考慮到大量節(jié)點(diǎn)的失效問題,需要通過軟件將容錯(cuò)以及自動(dòng)恢復(fù)功能集成在系統(tǒng)中;2)構(gòu)造特殊的文件系統(tǒng)參數(shù),文件通常大小以G字節(jié)計(jì),并包含大量小文件;3)充分考慮應(yīng)用的特性,增加文件追加操作,優(yōu)化順序讀寫速度;4)文件系統(tǒng)的某些具體操作不再透明,需要應(yīng)用程序的協(xié)助完成.圖2給出了GoogleFileSystem的系統(tǒng)架構(gòu).如圖2所示,一個(gè)GFS集群包含一個(gè)主服務(wù)器和多個(gè)塊服務(wù)器被多個(gè)客戶端訪問.大文件被分割成固定尺寸的塊,塊服務(wù)器把塊作為L(zhǎng)inux文件保存在本地硬盤上,并根據(jù)指定的塊句柄和字節(jié)范圍來讀寫塊數(shù)據(jù).為了保證可靠性,每個(gè)塊被缺省保存3個(gè)備份.主服務(wù)器管理文件系統(tǒng)所有的元數(shù)據(jù),包括名字空間、訪問控制、文件到塊的映射、塊物理位置等相關(guān)信息.通過服務(wù)器端和客戶端的聯(lián)合設(shè)計(jì),GFS對(duì)應(yīng)用支持達(dá)到性能與可用性最優(yōu).GFS是為Google應(yīng)用程序本身而設(shè)計(jì)的,在內(nèi)部部署了許多GFS集群.有的集群擁有超過1000個(gè)存儲(chǔ)節(jié)點(diǎn),超過300T的硬盤空間,被不同機(jī)器上的數(shù)百個(gè)客戶端連續(xù)不斷地頻繁訪問著.·MapReduce分布式編程環(huán)境Google構(gòu)造MapReduce編程規(guī)范來簡(jiǎn)化分布式系統(tǒng)的編程.應(yīng)用程序編寫人員只需將精力放在應(yīng)用程序本身,而關(guān)于集群的處理問題,包括可靠性和可擴(kuò)展性,則交由平臺(tái)來處理.MapReduce通過“Map(映射)”和“Reduce(化簡(jiǎn))”這樣兩個(gè)簡(jiǎn)單的概念來構(gòu)成運(yùn)算基本單元,用戶只需提供自己的Map函數(shù)以及Reduce函數(shù)即可并行處理海量數(shù)據(jù).為了進(jìn)一步理解MapReduce的編程方式,下面給出一個(gè)基于MapReduce編程方式的程序偽代碼.程序功能是統(tǒng)計(jì)文本中所有單詞出現(xiàn)的次數(shù).在圖3所示的map函數(shù)中,用戶的程序?qū)⑽谋局兴谐霈F(xiàn)的單詞都按照出現(xiàn)計(jì)數(shù)1(以Key-Value對(duì)的形式)發(fā)射到MapReduce給出的一個(gè)中間臨時(shí)空間中.通過MapReduce中間處理過程,將所有相同的單詞產(chǎn)生的中間結(jié)果分配到同樣一個(gè)Reduce函數(shù)中.而每一個(gè)Reduce函數(shù)則只需把計(jì)數(shù)累加在一起即可獲得最后結(jié)果.圖4給出了MapReduce執(zhí)行過程,分為Map階段以及Reduce兩個(gè)階段,都使用了集群中的所有節(jié)點(diǎn).在兩個(gè)階段之間還有一個(gè)中間的分類階段,即將中間結(jié)果包含相同的key的中間結(jié)果交給同一個(gè)Reduce函數(shù)去執(zhí)行.·分布式的大規(guī)模數(shù)據(jù)庫管理系統(tǒng)BigTable由于一部分Google應(yīng)用程序需要處理大量的格式化以及半格式化數(shù)據(jù),Google構(gòu)建了弱一致性要求的大規(guī)模數(shù)據(jù)庫系統(tǒng)BigTable.BigTable的應(yīng)用包括SearchHistory,Maps,Orkut,RSS閱讀器等.圖5給出了在BigTable模型中給出的數(shù)據(jù)模型.數(shù)據(jù)模型包括行列以及相應(yīng)的時(shí)間戳,所有的數(shù)據(jù)都存放在表格單元中.BigTable的內(nèi)容按照行來劃分,將多個(gè)行組成一個(gè)小表,保存到某一個(gè)服務(wù)器節(jié)點(diǎn)中.這個(gè)小表就被稱為Tablet.圖6是整個(gè)BigTable的存儲(chǔ)服務(wù)體系結(jié)構(gòu).與前述的系統(tǒng)類似,BigTable也是客戶端和服務(wù)器端的聯(lián)合設(shè)計(jì),使得性能能夠最大程度地符合應(yīng)用的需求.BigTable系統(tǒng)依賴于集群系統(tǒng)的底層結(jié)構(gòu),一個(gè)是分布式的集群任務(wù)調(diào)度器,一個(gè)是前述的Google文件系統(tǒng),還有一個(gè)分布式的鎖服務(wù)Chubby.Chubby是一個(gè)非常魯棒的粗粒度鎖,BigTable使用Chubby來保存根數(shù)據(jù)表格的指針,即用戶可以首先從Chubby鎖服務(wù)器中獲得根表的位置,進(jìn)而對(duì)數(shù)據(jù)進(jìn)行訪問.BigTable使用一臺(tái)服務(wù)器作為主服務(wù)器,用來保存和操作元數(shù)據(jù).主服務(wù)器除了管理元數(shù)據(jù)之外,還負(fù)責(zé)對(duì)tablet服務(wù)器(即一般意義上的數(shù)據(jù)服務(wù)器)進(jìn)行遠(yuǎn)程管理與負(fù)載調(diào)配.客戶端通過編程接口與主服務(wù)器進(jìn)行元數(shù)據(jù)通信,與tablet服務(wù)器進(jìn)行數(shù)據(jù)通信.以上是Google內(nèi)部云計(jì)算基礎(chǔ)平臺(tái)的3個(gè)主要部分.Google還構(gòu)建其他云計(jì)算組件,包括一個(gè)領(lǐng)域描述語言以及分布式鎖服務(wù)機(jī)制等.文獻(xiàn)描述了Google內(nèi)部構(gòu)建集群的方法,即使用了大量的x86服務(wù)器集群來構(gòu)建整個(gè)計(jì)算的硬件基礎(chǔ)設(shè)施.Sawzall是一種建立在MapReduce基礎(chǔ)上的領(lǐng)域語言,專門用于大規(guī)模的信息處理.Chubby是前述的一個(gè)高可用、分布式數(shù)據(jù)鎖服務(wù).當(dāng)有機(jī)器失效時(shí),Chubby使用Paxos算法來保證備份的一致性.Chubby的小型分布式文件系統(tǒng)的每一個(gè)單元都可以用來提供鎖服務(wù).3“藍(lán)云”軟件平臺(tái)IBM的“藍(lán)云”計(jì)算平臺(tái)是一套軟、硬件平臺(tái),將Internet上使用的技術(shù)擴(kuò)展到企業(yè)平臺(tái)上,使得數(shù)據(jù)中心使用類似于互聯(lián)網(wǎng)的計(jì)算環(huán)境.“藍(lán)云”大量使用了IBM先進(jìn)的大規(guī)模計(jì)算技術(shù),結(jié)合了IBM自身的軟、硬件系統(tǒng)以及服務(wù)技術(shù),支持開放標(biāo)準(zhǔn)與開放源代碼軟件.“藍(lán)云”基于IBMAlmaden研究中心的云基礎(chǔ)架構(gòu),采用了Xen和PowerVM虛擬化軟件,Linux操作系統(tǒng)映像以及Hadoop軟件(GoogleFileSystem以及MapReduce的開源實(shí)現(xiàn)).IBM已經(jīng)正式推出了基于x86芯片服務(wù)器系統(tǒng)的“藍(lán)云”產(chǎn)品.由圖可知,“藍(lán)云”計(jì)算平臺(tái)由一個(gè)數(shù)據(jù)中心、IBMTivoli部署管理軟件(Tivoliprovisioningmanager)、IBMTivoli監(jiān)控軟件(IBMTivolimonitoring)、IBMWebSphere應(yīng)用服務(wù)器、IBMDB2數(shù)據(jù)庫以及一些開源信息處理軟件和開源虛擬化軟件共同組成.“藍(lán)云”的硬件平臺(tái)環(huán)境與一般的x86服務(wù)器集群類似,使用刀片的方式增加了計(jì)算密度.“藍(lán)云”軟件平臺(tái)的特點(diǎn)主要體現(xiàn)在虛擬機(jī)以及對(duì)于大規(guī)模數(shù)據(jù)處理軟件ApacheHadoop的使用上.Hadoop是開源版本的GoogleFileSystem軟件和MapReduce編程規(guī)范.·“藍(lán)云”計(jì)算平臺(tái)中的虛擬化技術(shù)“藍(lán)云”軟件的一個(gè)重要特點(diǎn)是虛擬化技術(shù)的使用.虛擬化的方式在“藍(lán)云”中有兩個(gè)級(jí)別,一個(gè)是在硬件級(jí)別上實(shí)現(xiàn)虛擬化,另一個(gè)是通過開源軟件實(shí)現(xiàn)虛擬化.硬件級(jí)別的虛擬化可以使用IBMp系列的服務(wù)器,獲得硬件的邏輯分區(qū)LPAR(logicpartition).邏輯分區(qū)的CPU資源能夠通過IBMEnterpriseWorkloadManager來管理.通過這樣的方式加上在實(shí)際使用過程中的資源分配策略,能夠使相應(yīng)的資源合理地分配到各個(gè)邏輯分區(qū).p系列系統(tǒng)的邏輯分區(qū)最小粒度是1/10顆中央處理器(CPU).Xen則是軟件級(jí)別上的虛擬化,能夠在Linux基礎(chǔ)上運(yùn)行另外一個(gè)操作系統(tǒng).虛擬機(jī)是一類特殊的軟件,能夠完全模擬硬件的執(zhí)行,運(yùn)行不經(jīng)修改的完整的操作系統(tǒng),保留了一整套運(yùn)行環(huán)境語義.通過虛擬機(jī)的方式,在云計(jì)算平臺(tái)上獲得如下一些優(yōu)點(diǎn):1)云計(jì)算的管理平臺(tái)能夠動(dòng)態(tài)地將計(jì)算平臺(tái)定位到所需要的物理節(jié)點(diǎn)上,而無須停止運(yùn)行在虛擬機(jī)平臺(tái)上的應(yīng)用程序,進(jìn)程遷移方法更加靈活2)降低集群電能消耗,將多個(gè)負(fù)載不是很重的虛擬機(jī)計(jì)算節(jié)點(diǎn)合并到同一個(gè)物理節(jié)點(diǎn)上,從而能夠關(guān)閉空閑的物理節(jié)點(diǎn),達(dá)到節(jié)約電能的目的;3)通過虛擬機(jī)在不同物理節(jié)點(diǎn)上的動(dòng)態(tài)遷移,遷移了整體的虛擬運(yùn)行環(huán)境,能夠獲得與應(yīng)用無關(guān)的負(fù)載平衡性能;4)在部署上也更加靈活,即可以將虛擬機(jī)直接部署到物理計(jì)算平臺(tái)上,而虛擬機(jī)本身就包括了相應(yīng)的操作系統(tǒng)以及相應(yīng)的應(yīng)用軟件,直接將大量的虛擬機(jī)映像復(fù)制到對(duì)應(yīng)的物理節(jié)點(diǎn)即可.·“藍(lán)云”計(jì)算平臺(tái)中的存儲(chǔ)體系結(jié)構(gòu)“藍(lán)云”計(jì)算平臺(tái)中的存儲(chǔ)體系結(jié)構(gòu)對(duì)于云計(jì)算來說也是非常重要的,無論是操作系統(tǒng)、服務(wù)程序還是用戶的應(yīng)用程序的數(shù)據(jù)都保存在存儲(chǔ)體系中.“藍(lán)云”存儲(chǔ)體系結(jié)構(gòu)包含類似于GoogleFileSystem的集群文件系統(tǒng)以及基于塊設(shè)備方式的存儲(chǔ)區(qū)域網(wǎng)絡(luò)SAN.在設(shè)計(jì)云計(jì)算平臺(tái)的存儲(chǔ)體系結(jié)構(gòu)時(shí),不僅僅是需要考慮存儲(chǔ)容量的問題.實(shí)際上,隨著硬盤容量的不斷擴(kuò)充以及硬盤價(jià)格的不斷下降,可以通過組合多個(gè)磁盤獲得很大的磁盤容量.相對(duì)于磁盤的容量,在云計(jì)算平臺(tái)的存儲(chǔ)中,磁盤數(shù)據(jù)的讀寫速度是一個(gè)更重要的問題,因此需要對(duì)多個(gè)磁盤進(jìn)行同時(shí)讀寫.這種方式要求將數(shù)據(jù)分配到多個(gè)節(jié)點(diǎn)的多個(gè)磁盤當(dāng)中.為達(dá)到這一目的,存儲(chǔ)技術(shù)有兩個(gè)選擇,一個(gè)是使用類似于GoogleFileSystem的集群文件系統(tǒng),另一個(gè)是基于塊設(shè)備的存儲(chǔ)區(qū)域網(wǎng)絡(luò)SAN系統(tǒng).在藍(lán)云計(jì)算平臺(tái)上,SAN系統(tǒng)與分布式文件系統(tǒng)(例如GoogleFileSystem)并不是相互對(duì)立的系統(tǒng),SAN提供的是塊設(shè)備接口,需要在此基礎(chǔ)上構(gòu)建文件系統(tǒng),才能被上層應(yīng)用程序所使用.而GoogleFileSystem正好是一個(gè)分布式的文件系統(tǒng),能夠建立在SAN之上.兩者都能提供可靠性、可擴(kuò)展性,至于如何使用還需要由建立在云計(jì)算平臺(tái)上的應(yīng)用程序來決定,這也體現(xiàn)了計(jì)算平臺(tái)與上層應(yīng)用相互協(xié)作的關(guān)系.4彈性計(jì)算云平臺(tái)主要發(fā)展情況Amazon是互聯(lián)網(wǎng)上最大的在線零售商,每天負(fù)擔(dān)著大量的網(wǎng)絡(luò)交易,同時(shí)Amazon也為獨(dú)立軟件開發(fā)人員以及開發(fā)商提供云計(jì)算服務(wù)平臺(tái).Amazon將他們的云計(jì)算平臺(tái)稱為彈性計(jì)算云(elasticcomputecloud,簡(jiǎn)稱EC2),是最早提供遠(yuǎn)程云計(jì)算平臺(tái)服務(wù)的公司.Amazon將自己的彈性計(jì)算云建立在公司內(nèi)部的大規(guī)模集群計(jì)算的平臺(tái)上,而用戶可以通過彈性計(jì)算云的網(wǎng)絡(luò)界面去操作在云計(jì)算平臺(tái)上運(yùn)行的各個(gè)實(shí)例(instance).用戶使用實(shí)例的付費(fèi)方式由用戶的使用狀況決定,即用戶只需為自己所使用的計(jì)算平臺(tái)實(shí)例付費(fèi),運(yùn)行結(jié)束后計(jì)費(fèi)也隨之結(jié)束.這里所說的實(shí)例即是由用戶控制的完整的虛擬機(jī)運(yùn)行實(shí)例.通過這種方式,用戶不必自己去建立云計(jì)算平臺(tái),節(jié)省了設(shè)備與維護(hù)費(fèi)用.Amazon的彈性計(jì)算云由名為Amazon網(wǎng)絡(luò)服務(wù)(AmazonWebservices)的現(xiàn)有平臺(tái)發(fā)展而來.2006年3月,Amazon發(fā)布了簡(jiǎn)單存儲(chǔ)服務(wù)(simplestorageservice,簡(jiǎn)稱S3),用戶使用SOAP協(xié)議存放和獲取自己的數(shù)據(jù)對(duì)象.在2007年7月,Amazon公司推出了簡(jiǎn)單隊(duì)列服務(wù)(simplequeueservice,簡(jiǎn)稱SQS),這項(xiàng)服務(wù)能夠使得托管虛擬主機(jī)之間發(fā)送的消息,支持分布式程序之間的數(shù)據(jù)傳遞,無須考慮消息丟失的問題.Amazon又繼續(xù)提供了EBS(elasticblockstorage)服務(wù),為用戶提供塊級(jí)別的存儲(chǔ)接口.在提供這些基礎(chǔ)設(shè)施的同時(shí),Amazon公司開發(fā)了彈性計(jì)算云EC2系統(tǒng),開放給外部開發(fā)人員使用.圖8給出了一個(gè)EC2系統(tǒng)的使用模式.從圖8中可以看出,彈性計(jì)算云用戶使用客戶端通過SOAPoverHTTPS協(xié)議與Amazon彈性計(jì)算云內(nèi)部的實(shí)例進(jìn)行交互.這樣,彈性計(jì)算云平臺(tái)為用戶或者開發(fā)人員提供了一個(gè)虛擬的集群環(huán)境,在用戶具有充分靈活性的同時(shí),也減輕了云計(jì)算平臺(tái)擁有者(Amazon公司)的管理負(fù)擔(dān).彈性計(jì)算云中的每一個(gè)實(shí)例代表一個(gè)運(yùn)行中的虛擬機(jī).用戶對(duì)自己的虛擬機(jī)具有完整的訪問權(quán)限,包括針對(duì)此虛擬機(jī)操作系統(tǒng)的管理員權(quán)限.虛擬機(jī)的收費(fèi)也是根據(jù)虛擬機(jī)的能力進(jìn)行費(fèi)用計(jì)算的,實(shí)際上,用戶租用的是虛擬的計(jì)算能力.總而言之,Amazon通過提供彈性計(jì)算云,滿足了小規(guī)模軟件開發(fā)人員對(duì)集群系統(tǒng)的需求,減小了維護(hù)負(fù)擔(dān)其收費(fèi)方式相對(duì)簡(jiǎn)單明了:用戶使用多少資源,只需為這一部分資源付費(fèi)即可.為了彈性計(jì)算云的進(jìn)一步發(fā)展,Amazon規(guī)劃了如何在云計(jì)算平臺(tái)基礎(chǔ)上幫助用戶開發(fā)網(wǎng)絡(luò)化的應(yīng)用程序.除了網(wǎng)絡(luò)零售業(yè)務(wù)以外,云計(jì)算也是Amazon公司的核心價(jià)值所在,必然會(huì)在彈性計(jì)算云的平臺(tái)上添加更多的網(wǎng)絡(luò)服務(wù)組件模塊,為用戶構(gòu)建云計(jì)算應(yīng)用提供方便.5dynamo中大量數(shù)據(jù)的存儲(chǔ)及處理本節(jié)我們將主要討論與上述系統(tǒng)有關(guān)的文獻(xiàn)資料以及分布式計(jì)算實(shí)際系統(tǒng)最新進(jìn)展的論文.由于云計(jì)算技術(shù)在互聯(lián)網(wǎng)應(yīng)用上的重要性,有很多論文都出自各個(gè)大公司的研究院,這包括傳統(tǒng)的軟件和服務(wù)公司(如Microsoft,惠普)以及新興的網(wǎng)絡(luò)服務(wù)公司(如Yahoo,Google等).關(guān)于云計(jì)算技術(shù)上的研究主要包括兩個(gè)方面,一個(gè)是如何構(gòu)建分布式平臺(tái)的基礎(chǔ)設(shè)施,另一個(gè)是如何幫助開發(fā)人員在云計(jì)算的分布式平臺(tái)上進(jìn)行編程.在分布式平臺(tái)的基礎(chǔ)設(shè)施研究上,主要包括微軟的Dryad框架.Amazon公司的Dynamo框架,以及應(yīng)用于A公司的Neptune框架.微軟公司為了方便應(yīng)用程序開發(fā)人員進(jìn)行分布式程序的開發(fā),提供了一個(gè)平臺(tái)Dryad,以支持有向無環(huán)圖類型數(shù)據(jù)流的并行程序.Dryad是一個(gè)一般化的框架,能夠支持MapReduce類型的應(yīng)用程序以及關(guān)系代數(shù)的一些操作.而Dryad的整體框架則根據(jù)程序的要求完成調(diào)度工作,自動(dòng)完成任務(wù)在各個(gè)節(jié)點(diǎn)上的運(yùn)行.Amazon公司的研究人員研究了如何通過集群的技術(shù)快速存取大量的(鍵值,數(shù)據(jù))對(duì)的問題(即Key,Value對(duì)),并建立Dynamo系統(tǒng)來維護(hù)這些信息.由于Amazon公司的特殊性,其公司內(nèi)部的應(yīng)用程序在很多情況下需要處理(鍵值,數(shù)據(jù))對(duì),并且需要擴(kuò)展到大規(guī)模集群上.在對(duì)于讀寫控制方面,傳統(tǒng)的讀寫處理方式是盡量簡(jiǎn)化讀的操作,而將復(fù)雜性放在寫操作上,Dynamo系統(tǒng)則將復(fù)雜性放在讀的方面,將整個(gè)系統(tǒng)設(shè)計(jì)成總是可以寫入的,以提高網(wǎng)絡(luò)用戶購物的體驗(yàn).Dynamo主要使用結(jié)構(gòu)化的P2P結(jié)構(gòu)一致性哈希算法來對(duì)數(shù)據(jù)進(jìn)行劃分與存儲(chǔ),使用向量時(shí)鐘的方式幫助完成數(shù)據(jù)讀取,并采用哈希樹與Gossip協(xié)議等一些手段對(duì)錯(cuò)誤進(jìn)行處理.應(yīng)用于A的Neptune技術(shù)則針對(duì)大量數(shù)據(jù)進(jìn)行歸并.總體框架首先將數(shù)據(jù)分布到大規(guī)模集群網(wǎng)絡(luò)上,每一個(gè)網(wǎng)絡(luò)中的節(jié)點(diǎn)只需保存一部分?jǐn)?shù)據(jù)即可.而后每一個(gè)節(jié)點(diǎn)在數(shù)據(jù)上做相應(yīng)的操作,將操作輸出的中間結(jié)果進(jìn)行歸并操作即可獲得最終的結(jié)果.這種歸并方式在網(wǎng)絡(luò)數(shù)據(jù)處理的應(yīng)用上非常廣泛.在幫助開發(fā)人員在云計(jì)算的分布式平臺(tái)上進(jìn)行編程的研究方面,有很多研究機(jī)構(gòu)開發(fā)了新的編程模式,對(duì)MapReduce編程模式進(jìn)行擴(kuò)展或者更新.Yahoo公司擴(kuò)展了MapReduce框架,在MapReduce步驟之后加入一個(gè)Merge的步驟,從而形成一個(gè)新的MapReduceMerge框架.使用這樣的框架應(yīng)用程序開發(fā)人員可以自己提供Merge函數(shù),做兩個(gè)數(shù)據(jù)集合的合并操作.Stanford大學(xué)的研究人員將MapReduce的思想應(yīng)用到多核處理器上,主要工作是在多核處理器的基礎(chǔ)上構(gòu)建了一套MapReduce的編程框架,并結(jié)合各種不同的應(yīng)用程序在多核上的表現(xiàn)與現(xiàn)有的使用pthread編程方式進(jìn)行比較.結(jié)果表明,在適合MapReduce表達(dá)的應(yīng)用程序上,MapReduce效率較高,在多核上的應(yīng)用是有價(jià)值的.Wisconsin大學(xué)的研究人員在Cell處理器上運(yùn)行了基于MapReduce的應(yīng)用程序.由于Cell處理器是異構(gòu)多核的處理器,由1個(gè)中央處理器和8個(gè)協(xié)處理器構(gòu)成,對(duì)此編程比較困難.他們將MapReduce的框架移植到Cell處理器的架構(gòu)上.實(shí)驗(yàn)結(jié)果表明,Cell處理器上的MapReduce程序有一定程度的性能提高.在不同于MapReduce編程方面,HP的Sinfonia將注意力關(guān)注于分布式共享內(nèi)存的使用.Sinfornia提供了一個(gè)新的編程接口,一個(gè)對(duì)于內(nèi)存的讀寫操作三元組(Compare,Read,Write)在這個(gè)三元組中,Compare是比較列表,由應(yīng)用程序提供一系列的值與相應(yīng)的集群內(nèi)存中的數(shù)值進(jìn)行比較,類似地,Read和Write是讀出和寫入的列表,表明一系列的讀寫操作.其語意是首先進(jìn)行Compare列表的比較,如果所有的比較都能得到滿足,則進(jìn)行三元組中的讀寫操作.如果上述的任何一個(gè)部分操作失敗,則整個(gè)操作回卷到操作之前的狀態(tài),保持系統(tǒng)一致.目前已經(jīng)在這種模式上完成了分布式文件系統(tǒng)的構(gòu)建以及分布式的垃圾收集系統(tǒng)等.同時(shí),這樣的一種系統(tǒng)也能夠容忍大量節(jié)點(diǎn)的失敗,完成了對(duì)于可用性的保證.6云計(jì)算系統(tǒng)的特征本節(jié)主要討論云計(jì)算的共同特征以及它們之間的差異點(diǎn).從用戶的角度來看,云計(jì)算系統(tǒng)將各種數(shù)據(jù)包括用戶數(shù)據(jù)都通過網(wǎng)絡(luò)保存到遠(yuǎn)端的云存儲(chǔ)平臺(tái)上,減小了用戶對(duì)于數(shù)據(jù)管理的負(fù)擔(dān);同時(shí),云計(jì)算系統(tǒng)也將處理數(shù)據(jù)的服務(wù)程序通過遠(yuǎn)程的大規(guī)模云計(jì)算處理平臺(tái)進(jìn)行,能夠負(fù)擔(dān)大
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度綠色金融創(chuàng)新產(chǎn)品開發(fā)貸款合同3篇
- 2024質(zhì)保協(xié)議書范本
- 2024葡萄品種專項(xiàng)銷售代理協(xié)議版B版
- 2024跨區(qū)域連鎖加盟門店承包合同
- 2024版最正式的借款合同
- 二零二五年度電商綠色物流合作協(xié)議3篇
- 2024軟件許可合同 with 軟件功能與技術(shù)支持服務(wù)
- 二零二五年度陜西省旅游項(xiàng)目開發(fā)合作合同2篇
- 西安文理學(xué)院《汽車試驗(yàn)技術(shù)及性能試驗(yàn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年度國(guó)際貿(mào)易供應(yīng)鏈合同解析3篇
- 2024年公務(wù)員考試《公共基礎(chǔ)知識(shí)》全真模擬試題1000題及答案
- DB3301T 0382-2022 公共資源交易開評(píng)標(biāo)數(shù)字見證服務(wù)規(guī)范
- 幼兒教育專業(yè)國(guó)家技能人才培養(yǎng)工學(xué)一體化課程設(shè)置方案
- 2025年會(huì)計(jì)從業(yè)資格考試電算化考試題庫及答案(共480題)
- 江蘇省無錫市2023-2024學(xué)年八年級(jí)上學(xué)期期末數(shù)學(xué)試題(原卷版)
- DL-T 5876-2024 水工瀝青混凝土應(yīng)用酸性骨料技術(shù)規(guī)范
- GB/T 44889-2024機(jī)關(guān)運(yùn)行成本統(tǒng)計(jì)指南
- 2024年6月英語六級(jí)考試真題及答案(第2套)
- 職業(yè)院校技能大賽(高職組)市政管線(道)數(shù)字化施工賽項(xiàng)考試題庫(含答案)
- 危險(xiǎn)化學(xué)品目錄(2024版)
- 華為經(jīng)營(yíng)管理-華為的股權(quán)激勵(lì)(6版)
評(píng)論
0/150
提交評(píng)論