圖6 BigTable系統(tǒng)的組織結(jié)構(gòu)
與前述的系統(tǒng)類似,BigTable也是客戶端和服務(wù)器端的聯(lián)合設(shè)計,使得性能能夠最大程度地符合應用的需求,BigTable系統(tǒng)依賴于集群系統(tǒng)的底層結(jié)構(gòu),一個是分布式的集群任務(wù)調(diào)度器,一個是前述的Google文件系統(tǒng),還有一個分布式的鎖服務(wù)Chubby,Chubby是一個非常魯棒的粗粒度鎖,BigTable使用Chubby來保存根數(shù)據(jù)表格的指針,即用戶可以首先從Chubby鎖服務(wù)器中獲得根表的位置,進而對數(shù)據(jù)進行訪問,BigTable使用一臺服務(wù)器作為主服務(wù)器,用來保存和操作元數(shù)據(jù),主服務(wù)器除了管理元數(shù)據(jù)之外,還負責對tablet服務(wù)器(即一般意義上的數(shù)據(jù)服務(wù)器)進行遠程管理與負載調(diào)配,客戶端通過編程接口與主服務(wù)器進行元數(shù)據(jù)通信,與tablet服務(wù)器進行數(shù)據(jù)通信。
以上是Google內(nèi)部云計算基礎(chǔ)平臺的3個主要部分,Google還構(gòu)建其他云計算組件,包括一個領(lǐng)域描述語言以及分布式鎖服務(wù)機制等,文獻[5]描述了Google內(nèi)部構(gòu)建集群的方法,即使用了大量的x86服務(wù)器集群來構(gòu)建整個計算的硬件基礎(chǔ)設(shè)施,Sawzall是一種建立在MapReduce基礎(chǔ)上的領(lǐng)域語言,專門用于大規(guī)模的信息處理,Chubby[9]是前述的一個高可用、分布式數(shù)據(jù)鎖服務(wù),當有機器失效時,Chubby使用Paxos算法來保證備份的一致性,Chubby的小型分布式文件系統(tǒng)的每一個單元都可以用來提供鎖服務(wù)。
3 IBM“藍云”計算平臺
IBM的“藍云”計算平臺是一套軟、硬件平臺,將Internet上使用的技術(shù)擴展到企業(yè)平臺上,使得數(shù)據(jù)中心使用類似于互聯(lián)網(wǎng)的計算環(huán)境,“藍云”大量使用了IBM先進的大規(guī)模計算技術(shù),結(jié)合了IBM自身的軟、硬件系統(tǒng)以及服務(wù)技術(shù),支持開放標準與開放源代碼軟件,“藍云”基于IBM Almaden研究中心的云基礎(chǔ)架構(gòu),采用了Xen和PowerVM虛擬化軟件,Linux操作系統(tǒng)映像以及Hadoop軟件(Google File System以及MapReduce的開源實現(xiàn)),IBM已經(jīng)正式推出了基于x86芯片服務(wù)器系統(tǒng)的“藍云”產(chǎn)品。
圖7 IBM“藍云”產(chǎn)品架構(gòu)
由圖可知,“藍云”計算平臺由一個數(shù)據(jù)中心、IBM Tivoli部署管理軟件(Tivoli provisioning manager)、IBM Tivoli監(jiān)控軟件(IBM Tivoli monitoring)、IBM WebSphere應用服務(wù)器、IBM DB2數(shù)據(jù)庫以及一些開源信息處理軟件和開源虛擬化軟件共同組成,“藍云”的硬件平臺環(huán)境與一般的x86服務(wù)器集群類似,使用刀片的方式增加了計算密度,“藍云”軟件平臺的特點主要體現(xiàn)在虛擬機以及對于大規(guī)模數(shù)據(jù)處理軟件Apache Hadoop的使用上,Hadoop是開源版本的Google File System軟件和MapReduce編程規(guī)范。
·“藍云”計算平臺中的虛擬化技術(shù)
“藍云”軟件的一個重要特點是虛擬化技術(shù)的使用,虛擬化的方式在“藍云”中有兩個級別,一個是在硬件級別上實現(xiàn)虛擬化,另一個是通過開源軟件實現(xiàn)虛擬化,硬件級別的虛擬化可以使用IBM p系列的服務(wù)器,獲得硬件的邏輯分區(qū)LPAR(logic partition),邏輯分區(qū)的CPU資源能夠通過IBM EntERPrise Workload Manager來管理,通過這樣的方式加上在實際使用過程中的資源分配策略,能夠使相應的資源合理地分配到各個邏輯分區(qū),p系列系統(tǒng)的邏輯分區(qū)最小粒度是1/10顆中央處理器(CPU),Xen則是軟件級別上的虛擬化,能夠在Linux基礎(chǔ)上運行另外一個操作系統(tǒng)。
虛擬機是一類特殊的軟件,能夠完全模擬硬件的執(zhí)行,運行不經(jīng)修改的完整的操作系統(tǒng),保留了一整套運行IBM Tivoli Tivoli provising WebSphere application Virtualization infrastructure based on open source Linux & Xen Monitoring Provisioning baremental & Xen VM環(huán)境語義,通過虛擬機的方式,在云計算平臺上獲得如下一些優(yōu)點:
1) 云計算的管理平臺能夠動態(tài)地將計算平臺定位到所需要的物理節(jié)點上,而無須停止運行在虛擬機平臺上的應用程序,進程遷移方法更加靈活;
2) 降低集群電能消耗,將多個負載不是很重的虛擬機計算節(jié)點合并到同一個物理節(jié)點上,從而能夠關(guān)閉空閑的物理節(jié)點,達到節(jié)約電能的目的;
3) 通過虛擬機在不同物理節(jié)點上的動態(tài)遷移,遷移了整體的虛擬運行環(huán)境,能夠獲得與應用無關(guān)的負載平衡性能;
4) 在部署上也更加靈活,即可以將虛擬機直接部署到物理計算平臺上,而虛擬機本身就包括了相應的操作系統(tǒng)以及相應的應用軟件,直接將大量的虛擬機映像復制到對應的物理節(jié)點即可。
·“藍云”計算平臺中的存儲體系結(jié)構(gòu)
“藍云”計算平臺中的存儲體系結(jié)構(gòu)對于云計算來說也是非常重要的,無論是操作系統(tǒng)、服務(wù)程序還是用戶的應用程序的數(shù)據(jù)都保存在存儲體系中,“藍云”存儲體系結(jié)構(gòu)包含類似于Google File System的集群文件系統(tǒng)以及基于塊設(shè)備方式的存儲區(qū)域網(wǎng)絡(luò)SAN。
在設(shè)計云計算平臺的存儲體系結(jié)構(gòu)時,不僅僅是需要考慮存儲容量的問題,實際上,隨著硬盤容量的不斷擴充以及硬盤價格的不斷下降,可以通過組合多個磁盤獲得很大的磁盤容量,相對于磁盤的容量,在云計算平臺的存儲中,磁盤數(shù)據(jù)的讀寫速度是一個更重要的問題,因此需要對多個磁盤進行同時讀寫,這種方式要求將數(shù)據(jù)分配到多個節(jié)點的多個磁盤當中,為達到這一目的,存儲技術(shù)有兩個選擇,一個是使用類似于Google File System的集群文件系統(tǒng),另一個是基于塊設(shè)備的存儲區(qū)域網(wǎng)絡(luò)SAN系統(tǒng)。
在藍云計算平臺上,SAN系統(tǒng)與分布式文件系統(tǒng)(例如Google File System)并不是相互對立的系統(tǒng),SAN提供的是塊設(shè)備接口,需要在此基礎(chǔ)上構(gòu)建文件系統(tǒng),才能被上層應用程序所使用,而Google File System正好是一個分布式的文件系統(tǒng),能夠建立在SAN之上,兩者都能提供可靠性、可擴展性,至于如何使用還需要由建立在云計算平臺上的應用程序來決定,這也體現(xiàn)了計算平臺與上層應用相互協(xié)作的關(guān)系。
4 Amazon的彈性計算云
Amazon是互聯(lián)網(wǎng)上最大的在線零售商,每天負擔著大量的網(wǎng)絡(luò)交易,同時Amazon也為獨立軟件開發(fā)人員以及開發(fā)商提供云計算服務(wù)平臺,Amazon將他們的云計算平臺稱為彈性計算云(elastic compute cloud,簡稱EC2),是最早提供遠程云計算平臺服務(wù)的公司,Amazon將自己的彈性計算云建立在公司內(nèi)部的大規(guī)模集群計算的平臺上,而用戶可以通過彈性計算云的網(wǎng)絡(luò)界面去操作在云計算平臺上運行的各個實例(instance),用戶使用實例的付費方式由用戶的使用狀況決定,即用戶只需為自己所使用的計算平臺實例付費,運行結(jié)束后計費也隨之結(jié)束,這里所說的實例即是由用戶控制的完整的虛擬機運行實例,通過這種方式,用戶不必自己去建立云計算平臺,節(jié)省了設(shè)備與維護費用。
Amazon的彈性計算云由名為Amazon網(wǎng)絡(luò)服務(wù)(Amazon Web services)的現(xiàn)有平臺發(fā)展而來,2006年3月,Amazon發(fā)布了簡單存儲服務(wù)(simple storage service,簡稱S3),用戶使用SOAP協(xié)議存放和獲取自己的數(shù)據(jù)對象,在2007年7月,Amazon公司推出了簡單隊列服務(wù)(simple queue service,簡稱SQS),這項服務(wù)能夠使得托管虛擬主機之間發(fā)送的消息,支持分布式程序之間的數(shù)據(jù)傳遞,無須考慮消息丟失的問題,Amazon又繼續(xù)提供了EBS(elastic block storage)服務(wù),為用戶提供塊級別的存儲接口,在提供這些基礎(chǔ)設(shè)施的同時,Amazon公司開發(fā)了彈性計算云EC2系統(tǒng),開放給外部開發(fā)人員使用,圖8給出了一個EC2系統(tǒng)的使用模式。
從圖8中可以看出,彈性計算云用戶使用客戶端通過SOAP over HTTPS協(xié)議與Amazon彈性計算云內(nèi)部的實例進行交互,這樣,彈性計算云平臺為用戶或者開發(fā)人員提供了一個虛擬的集群環(huán)境,在用戶具有充分靈活性的同時,也減輕了云計算平臺擁有者(Amazon公司)的管理負擔,彈性計算云中的每一個實例代表一個運行中的虛擬機,用戶對自己的虛擬機具有完整的訪問權(quán)限,包括針對此虛擬機操作系統(tǒng)的管理員權(quán)限,虛擬機的收費也是根據(jù)虛擬機的能力進行費用計算的,實際上,用戶租用的是虛擬的計算能力。
總而言之,Amazon通過提供彈性計算云,滿足了小規(guī)模軟件開發(fā)人員對集群系統(tǒng)的需求,減小了維護負擔,其收費方式相對簡單明了:用戶使用多少資源,只需為這一部分資源付費即可。
為了彈性計算云的進一步發(fā)展,Amazon規(guī)劃了如何在云計算平臺基礎(chǔ)上幫助用戶開發(fā)網(wǎng)絡(luò)化的應用程序,除了網(wǎng)絡(luò)零售業(yè)務(wù)以外,云計算也是Amazon公司的核心價值所在,必然會在彈性計算云的平臺上添加更多的網(wǎng)絡(luò)服務(wù)組件模塊,為用戶構(gòu)建云計算應用提供方便。
圖8 Amazon彈性計算云使用模式
5 云計算的學術(shù)研究
本節(jié)我們將主要討論與上述系統(tǒng)有關(guān)的文獻資料以及分布式計算實際系統(tǒng)最新進展的論文,由于云計算技術(shù)在互聯(lián)網(wǎng)應用上的重要性,有很多論文都出自各個大公司的研究院,這包括傳統(tǒng)的軟件和服務(wù)公司(如Microsoft,惠普)以及新興的網(wǎng)絡(luò)服務(wù)公司(如Yahoo,Google等),關(guān)于云計算技術(shù)上的研究主要包括兩個方面,一個是如何構(gòu)建分布式平臺的基礎(chǔ)設(shè)施,另一個是如何幫助開發(fā)人員在云計算的分布式平臺上進行編程。
在分布式平臺的基礎(chǔ)設(shè)施研究上,主要包括微軟的Dryad框架,Amazon公司的Dynamo框架,以及應用于Ask,com公司的Neptune框架,微軟公司為了方便應用程序開發(fā)人員進行分布式程序的開發(fā),提供了一個平臺Dryad,以支持有向無環(huán)圖類型數(shù)據(jù)流的并行程序,Dryad是一個一般化的框架,能夠支持MapReduce類型的應用程序以及關(guān)系代數(shù)的一些操作,而Dryad的整體框架則根據(jù)程序的要求完成調(diào)度工作,自動完成任務(wù)在各個節(jié)點上的運行,Amazon公司的研究人員研究了如何通過集群的技術(shù)快速存取大量的(鍵值,數(shù)據(jù))對的問題(即Key,Value對),并建立Dynamo系統(tǒng)來維護這些信息,由于Amazon公司的特殊性,其公司內(nèi)部的應用程序在很多情況下需要處理(鍵值,數(shù)據(jù))對,并且需要擴展到大規(guī)模集群上,在對于讀寫控制方面,傳統(tǒng)的讀寫處理方式是盡量簡化讀的操作,而將復雜性放在寫操作上,Dynamo系統(tǒng)則將復雜性放在讀的方面,將整個系統(tǒng)設(shè)計成總是可以寫入的,以提高網(wǎng)絡(luò)用戶購物的體驗,Dynamo主要使用結(jié)構(gòu)化的P2P結(jié)構(gòu)一致性哈希算法來對數(shù)據(jù)進行劃分與存儲,使用向量時鐘的方式幫助完成數(shù)據(jù)讀取,并采用哈希樹與Gossip協(xié)議等一些手段對錯誤進行處理,應用于Ask,com的Neptune技術(shù)則針對大量數(shù)據(jù)進行歸并,總體框架首先將數(shù)據(jù)分布到大規(guī)模集群網(wǎng)絡(luò)上,每一個網(wǎng)絡(luò)中的節(jié)點只需保存一部分數(shù)據(jù)即可,而后每一個節(jié)點在數(shù)據(jù)上做相應的操作,將操作輸出的中間結(jié)果進行歸并操作即可獲得最終的結(jié)果,這種歸并方式在網(wǎng)絡(luò)數(shù)據(jù)處理的應用上非常廣泛。
在幫助開發(fā)人員在云計算的分布式平臺上進行編程的研究方面,有很多研究機構(gòu)開發(fā)了新的編程模式,對MapReduce編程模式進行擴展或者更新,Yahoo公司擴展了MapReduce框架,在MapReduce步驟之后加入一個Merge的步驟,從而形成一個新的MapReduceMerge框架,使用這樣的框架應用程序開發(fā)人員可以自己提供Merge函數(shù),做兩個數(shù)據(jù)集合的合并操作,Stanford大學的研究人員將MapReduce的思想應用到多核處理器上,主要工作是在多核處理器的基礎(chǔ)上構(gòu)建了一套MapReduce的編程框架,并結(jié)合各種不同的應用程序在多核上的表現(xiàn)與現(xiàn)有的使用pthread編程方式進行比較,結(jié)果表明,在適合MapReduce表達的應用程序上,MapReduce效率較高,在多核上的應用是有價值的,Wisconsin大學的研究人員在Cell處理器上運行了基于MapReduce的應用程序,由于Cell處理器是異構(gòu)多核的處理器,由1個中央處理器和8個協(xié)處理器構(gòu)成,對此編程比較困難,他們將MapReduce的框架移植到Cell處理器的架構(gòu)上,實驗結(jié)果表明,Cell處理器上的MapReduce程序有一定程度的性能提高,在不同于MapReduce編程方面,HP的Sinfonia將注意力關(guān)注于分布式共享內(nèi)存的使用,Sinfornia提供了一個新的編程接口,一個對于內(nèi)存的讀寫操作三元組(Compare,Read,Write),在這個三元組中,Compare是比較列表,由應用程序提供一系列的值與相應的集群內(nèi)存中的數(shù)值進行比較,類似地,Read和Write是讀出和寫入的列表,表明一系列的讀寫操作,其語意是首先進行Compare列表的比較,如果所有的比較都能得到滿足,則進行三元組中的讀寫操作,如果上述的任何一個部分操作失敗,則整個操作回卷到操作之前的狀態(tài),保持系統(tǒng)一致,目前已經(jīng)在這種模式上完成了分布式文件系統(tǒng)的構(gòu)建以及分布式的垃圾收集系統(tǒng)等,同時,這樣的一種系統(tǒng)也能夠容忍大量節(jié)點的失敗,完成了對于可用性的保證。
6 云計算系統(tǒng)的特征比較與未來的發(fā)展
本節(jié)主要討論云計算的共同特征以及它們之間的差異點,從用戶的角度來看,云計算系統(tǒng)將各種數(shù)據(jù)包括用戶數(shù)據(jù)都通過網(wǎng)絡(luò)保存到遠端的云存儲平臺上,減小了用戶對于數(shù)據(jù)管理的負擔;同時,云計算系統(tǒng)也將處理數(shù)據(jù)的服務(wù)程序通過遠程的大規(guī)模云計算處理平臺進行,能夠負擔大量數(shù)據(jù)的處理工作,可以說,云計算是數(shù)據(jù)共享計算模式與服務(wù)共享計算模式的結(jié)合體,是下一代計算模式的發(fā)展方向,從平臺技術(shù)構(gòu)建來看,云計算具有3個基本特征,即系統(tǒng)建立在大規(guī)模的廉價服務(wù)器集群之上,通過基礎(chǔ)設(shè)施與上層應用程序的協(xié)同構(gòu)建以達到最大效率利用硬件資源的目的,以及通過軟件的方法容忍多個節(jié)點的錯誤,通過云計算對這3個方面基本特征的體現(xiàn),達到了分布式系統(tǒng)兩個方面的目標,即系統(tǒng)的可擴展性和可靠性。
各個云計算平臺也各自具有不同的特點,特別是在平臺的使用上,透明計算平臺為用戶同時提供了用戶實際接觸的客戶端節(jié)點以及無法接觸的遠程虛擬存儲服務(wù)器,是一個半公開的環(huán)境,Google的云計算平臺環(huán)境是私有的環(huán)境,除了開放有限的應用程序接口,例如GWT(Google Web toolkit),Google App Engine以及Google Map API等以外,Google并沒有將云計算的內(nèi)部基礎(chǔ)設(shè)施共享給外部的用戶使用,IBM的“藍云”計算平臺則是可供銷售的軟、硬件集合,用戶基于這些軟、硬件產(chǎn)品構(gòu)建自己的云計算應用,Amazon的彈性計算云則是托管式的云計算平臺,用戶可以通過遠端的操作界面直接操作使用,看不到實際的物理節(jié)點,表1從其他角度比較了各個云計算系統(tǒng)的不同之處,可以看出,雖然云計算系統(tǒng)在很多方面具有共性,但實際上各個系統(tǒng)之間還是有很大不同的,這也給云計算用戶或者開發(fā)人員帶來了不同的體驗。
云計算未來主要有兩個發(fā)展方向:一個是構(gòu)建與應用程序緊密結(jié)合的大規(guī)模底層基礎(chǔ)設(shè)施,使得應用能夠擴展到很大的規(guī)模;另一個是通過構(gòu)建新型的云計算應用程序,在網(wǎng)絡(luò)上提供更加豐富的用戶體驗,第1個發(fā)展趨勢能夠從現(xiàn)有的云計算研究狀況中體現(xiàn)出來,詳見上一節(jié)的分析,而在云計算應用的構(gòu)造上,很多新型的社會服務(wù)型網(wǎng)絡(luò),如facebook等,已經(jīng)體現(xiàn)了這個發(fā)展趨勢,而在研究上則開始注重如何通過云計算基礎(chǔ)平臺將多個業(yè)務(wù)融合起來。
7 結(jié)束語
本文討論了當前云計算技術(shù)發(fā)展的前沿技術(shù),通過具體的云計算實例進行詳細分析與研究,使讀者能夠掌握云計算的內(nèi)部含義,從總體上來說,云計算可以從大規(guī)模分布式的基礎(chǔ)架構(gòu)以及平臺之上的云計算應用程序兩個方面去理解,而本文的重點則放在云計算的基礎(chǔ)架構(gòu)建設(shè)方面,這是構(gòu)建整個云計算平臺的根本,總結(jié)本文的云計算系統(tǒng)實例以及相關(guān)的研究現(xiàn)狀,相信隨著云計算概念的提出以及相應系統(tǒng)構(gòu)建實踐經(jīng)驗的獲得,在不久的將來,工業(yè)界和學術(shù)界對云計算的研究無疑會成為一個熱點。
轉(zhuǎn)載請注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標題:云計算:系統(tǒng)實例與研究現(xiàn)狀(下)
本文網(wǎng)址:http://www.ezxoed.cn/html/consultation/1083979201.html