四、云計(jì)算的核心技術(shù)
云計(jì)算系統(tǒng)運(yùn)用了許多技術(shù),其中以編程模型、數(shù)據(jù)管理技術(shù)、數(shù)據(jù)存儲(chǔ)技術(shù)、虛擬化技術(shù)、云計(jì)算平臺(tái)管理技術(shù)最為關(guān)鍵。
(1)編程模型
MapReduce是Google開(kāi)發(fā)的java、Python、C++編程模型,它是一種簡(jiǎn)化的分布式編程模型和高效的任務(wù)調(diào)度模型,用于大規(guī)模數(shù)據(jù)集(大于1TB)的并行運(yùn)算。嚴(yán)格的編程模型使云計(jì)算環(huán)境下的編程十分簡(jiǎn)單。MapReduce模式的思想是將要執(zhí)行的問(wèn)題分解成Map(映射)和Reduce(化簡(jiǎn))的方式,先通過(guò)Map程序?qū)?shù)據(jù)切割成不相關(guān)的區(qū)塊,分配(調(diào)度)給大量計(jì)算機(jī)處理,達(dá)到分布式運(yùn)算的效果,再通過(guò)Reduce程序?qū)⒔Y(jié)果匯整輸出。
(2) 海量數(shù)據(jù)分布存儲(chǔ)技術(shù)
云計(jì)算系統(tǒng)由大量服務(wù)器組成,同時(shí)為大量用戶服務(wù),因此云計(jì)算系統(tǒng)采用分布式存儲(chǔ)的方式存儲(chǔ)數(shù)據(jù),用冗余存儲(chǔ)的方式保證數(shù)據(jù)的可靠性。云計(jì)算系統(tǒng)中廣泛使用的數(shù)據(jù)存儲(chǔ)系統(tǒng)是Google的GFS和Hadoop團(tuán)隊(duì)開(kāi)發(fā)的GFS的開(kāi)源實(shí)現(xiàn)HDFS。
GFS即Google文件系統(tǒng)(Google File System),是一個(gè)可擴(kuò)展的分布式文件系統(tǒng),用于大型的、分布式的、對(duì)大量數(shù)據(jù)進(jìn)行訪問(wèn)的應(yīng)用。GFS的設(shè)計(jì)思想不同于傳統(tǒng)的文件系統(tǒng),是針對(duì)大規(guī)模數(shù)據(jù)處理和Google應(yīng)用特性而設(shè)計(jì)的。它運(yùn)行于廉價(jià)的普通硬件上,但可以提供容錯(cuò)功能。它可以給大量的用戶提供總體性能較高的服務(wù)。
一個(gè)GFS集群由一個(gè)主服務(wù)器(master)和大量的塊服務(wù)器(chunkserver)構(gòu)成,并被許多客戶(Client)訪問(wèn)。主服務(wù)器存儲(chǔ)文件系統(tǒng)所以的元數(shù)據(jù),包括名字空間、訪問(wèn)控制信息、從文件到塊的映射以及塊的當(dāng)前位置。它也控制系統(tǒng)范圍的活動(dòng),如塊租約(lease)管理,孤兒塊的垃圾收集,塊服務(wù)器間的塊遷移。主服務(wù)器定期通過(guò)HeartBeat消息與每一個(gè)塊服務(wù)器通信,給塊服務(wù)器傳遞指令并收集它的狀態(tài)。GFS中的文件被切分為64MB的塊并以冗余存儲(chǔ),每份數(shù)據(jù)在系統(tǒng)中保存3個(gè)以上備份。
客戶與主服務(wù)器的交換只限于對(duì)元數(shù)據(jù)的操作,所有數(shù)據(jù)方面的通信都直接和塊服務(wù)器聯(lián)系,這大大提高了系統(tǒng)的效率,防止主服務(wù)器負(fù)載過(guò)重。
(3) 海量數(shù)據(jù)管理技術(shù)
云計(jì)算需要對(duì)分布的、海量的數(shù)據(jù)進(jìn)行處理、分析,因此,數(shù)據(jù)管理技術(shù)必需能夠高效的管理大量的數(shù)據(jù)。云計(jì)算系統(tǒng)中的數(shù)據(jù)管理技術(shù)主要是Google的BT(BigTable)數(shù)據(jù)管理技術(shù)和Hadoop團(tuán)隊(duì)開(kāi)發(fā)的開(kāi)源數(shù)據(jù)管理模塊HBase。
BT是建立在GFS, Scheduler, Lock Service和MapReduce之上的一個(gè)大型的分布式數(shù)據(jù)庫(kù),與傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)不同,它把所有數(shù)據(jù)都作為對(duì)象來(lái)處理,形成一個(gè)巨大的表格,用來(lái)分布存儲(chǔ)大規(guī)模結(jié)構(gòu)化數(shù)據(jù)。
Google的很多項(xiàng)目使用BT來(lái)存儲(chǔ)數(shù)據(jù),包括網(wǎng)頁(yè)查詢,Google earth和Google金融。這些應(yīng)用程序?qū)T的要求各不相同:數(shù)據(jù)大小(從URL到網(wǎng)頁(yè)到衛(wèi)星圖象)不同,反應(yīng)速度不同(從后端的大批處理到實(shí)時(shí)數(shù)據(jù)服務(wù))。對(duì)于不同的要求,BT都成功的提供了靈活高效的服務(wù)。
(4)虛擬化技術(shù)
通過(guò)虛擬化技術(shù)可實(shí)現(xiàn)軟件應(yīng)用與底層硬件相隔離,它包括將單個(gè)資源劃分成多個(gè)虛擬資源的裂分模式,也包括將多個(gè)資源整合成一個(gè)虛擬資源的聚合模式。虛擬化技術(shù)根據(jù)對(duì)象可分成存儲(chǔ)虛擬化、計(jì)算虛擬化、網(wǎng)絡(luò)虛擬化等,計(jì)算虛擬化又分為系統(tǒng)級(jí)虛擬化、應(yīng)用級(jí)虛擬化和桌面虛擬化。
(5)云計(jì)算平臺(tái)管理技術(shù)
云計(jì)算資源規(guī)模龐大,服務(wù)器數(shù)量眾多并分布在不同的地點(diǎn),同時(shí)運(yùn)行著數(shù)百種應(yīng)用,如何有效的管理這些服務(wù)器,保證整個(gè)系統(tǒng)提供不間斷的服務(wù)是巨大的挑戰(zhàn)。
云計(jì)算系統(tǒng)的平臺(tái)管理技術(shù)能夠使大量的服務(wù)器協(xié)同工作,方便的進(jìn)行業(yè)務(wù)部署和開(kāi)通,快速發(fā)現(xiàn)和恢復(fù)系統(tǒng)故障,通過(guò)自動(dòng)化、智能化的手段實(shí)現(xiàn)大規(guī)模系統(tǒng)的可靠運(yùn)營(yíng)。
五、典型云計(jì)算平臺(tái)介紹
由于云計(jì)算技術(shù)范圍很廣,目前各大IT企業(yè)提供的云計(jì)算服務(wù)主要根據(jù)自身的特點(diǎn)和優(yōu)勢(shì)實(shí)現(xiàn)的。下面以Google、IBM、Amazon為例說(shuō)明:
(1)Google 的云計(jì)算平臺(tái)
Google的硬件條件優(yōu)勢(shì),大型的數(shù)據(jù)中心、搜索引擎的支柱應(yīng)用,促進(jìn)Google云計(jì)算迅速發(fā)展。Google的云計(jì)算主要由MapReduce、Google文件系統(tǒng)(GFS)、BigTable組成。它們是Google內(nèi)部云計(jì)算基礎(chǔ)平臺(tái)的3個(gè)主要部分。Google 還構(gòu)建其他云計(jì)算組件,包括一個(gè)領(lǐng)域描述語(yǔ)言以及分布式鎖服務(wù)機(jī)制等。Sawzall是一種建立在MapReduce基礎(chǔ)上的領(lǐng)域語(yǔ)言,專門用于大規(guī)模的信息處理。Chubby是一個(gè)高可用、分布式數(shù)據(jù)鎖服務(wù),當(dāng)有機(jī)器失效時(shí),Chubby使用Paxos算法來(lái)保證備份。
(2)IBM“藍(lán)云”計(jì)算平臺(tái)
“藍(lán)云”解決方案是由IBM云計(jì)算中心開(kāi)發(fā)的企業(yè)級(jí)云計(jì)算解決方案。該解決方案可以對(duì)企業(yè)現(xiàn)有的基礎(chǔ)架構(gòu)進(jìn)行整合,通過(guò)虛擬化技術(shù)和自動(dòng)化技術(shù),構(gòu)建企業(yè)自己擁有的云計(jì)算中心,實(shí)現(xiàn)企業(yè)硬件資源和軟件資源的統(tǒng)一管理、統(tǒng)一分配、統(tǒng)一部署、統(tǒng)一監(jiān)控和統(tǒng)一備份,打破應(yīng)用對(duì)資源的獨(dú)占,從而幫助企業(yè)實(shí)現(xiàn)云計(jì)算理念。
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ù),支持開(kāi)放標(biāo)準(zhǔn)與開(kāi)放源代碼軟件。
“藍(lán)云”基于IBM Almaden研究中心的云基礎(chǔ)架構(gòu),采用了Xen和PowerVM虛擬化軟件,Linux操作系統(tǒng)映像以及Hadoop軟件(Google File System以及MapReduce的開(kāi)源實(shí)現(xiàn))。IBM已經(jīng)正式推出了基于x86芯片服務(wù)器系統(tǒng)的“藍(lán)云”產(chǎn)品。下圖為IBM “藍(lán)云”的架構(gòu):
由圖可知,“藍(lán)云”計(jì)算平臺(tái)由一個(gè)數(shù)據(jù)中心、IBM Tivoli部署管理軟件(Tivoli provisioning manager)、IBM Tivoli監(jiān)控軟件(IBM Tivoli monitoring)、IBM WebSphere應(yīng)用服務(wù)器、IBM DB2數(shù)據(jù)庫(kù)以及一些開(kāi)源信息處理軟件和開(kāi)源虛擬化軟件共同組成。“藍(lán)云”的硬件平臺(tái)環(huán)境與一般的x86服務(wù)器集群類似,使用刀片的方式增加了計(jì)算密度。“藍(lán)云”軟件平臺(tái)的特點(diǎn)主要體現(xiàn)在虛擬機(jī)以及對(duì)于大規(guī)模數(shù)據(jù)處理軟件Apache Hadoop的使用上。
“藍(lán)云”平臺(tái)的一個(gè)重要特點(diǎn)是虛擬化技術(shù)的使用。虛擬化的方式在“藍(lán)云”中有兩個(gè)級(jí)別,一個(gè)是在硬件級(jí)別上實(shí)現(xiàn)虛擬化,另一個(gè)是通過(guò)開(kāi)源軟件實(shí)現(xiàn)虛擬化。硬件級(jí)別的虛擬化可以使用IBM p系列的服務(wù)器,獲得硬件的邏輯分區(qū)LPAR(logic partition)。邏輯分區(qū)的CPU資源能夠通過(guò)IBM Enterprise Workload Manager來(lái)管理。通過(guò)這樣的方式加上在實(shí)際使用過(guò)程中的資源分配策略,能夠使相應(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)境語(yǔ)義。通過(guò)虛擬機(jī)的方式,在云計(jì)算平臺(tái)上獲得如下一些優(yōu)點(diǎn) :
1)云計(jì)算的管理平臺(tái)能夠動(dòng)態(tài)地將計(jì)算平臺(tái)定位到所需要的物理節(jié)點(diǎn)上, 而無(wú)須停止運(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)通過(guò)虛擬機(jī)在不同物理節(jié)點(diǎn)上的動(dòng)態(tài)遷移,遷移了整體的虛擬運(yùn)行環(huán)境,能夠獲得與應(yīng)用無(wú)關(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ì)算來(lái)說(shuō)也是非常重要的,無(wú)論是操作系統(tǒng)、服務(wù)程序還是用戶的應(yīng)用程序的數(shù)據(jù)都保存在存儲(chǔ)體系中。“藍(lán)云”存儲(chǔ)體系結(jié)構(gòu)包含類似于Google File System 的集群文件系統(tǒng)以及基于塊設(shè)備方式的存儲(chǔ)區(qū)域網(wǎng)絡(luò)SAN。
在設(shè)計(jì)云計(jì)算平臺(tái)的存儲(chǔ)體系結(jié)構(gòu)時(shí),可以通過(guò)組合多個(gè)磁盤獲得很大的磁盤容量。相對(duì)于磁盤的容量,在云計(jì)算平臺(tái)的存儲(chǔ)中,磁盤數(shù)據(jù)的讀寫速度是一個(gè)更重要的問(wèn)題,因此需要對(duì)多個(gè)磁盤進(jìn)行同時(shí)讀寫。這種方式要求將數(shù)據(jù)分配到多個(gè)節(jié)點(diǎn)的多個(gè)磁盤當(dāng)中。為達(dá)到這一目的,存儲(chǔ)技術(shù)有兩個(gè)選擇,一個(gè)是使用類似于Google File System的集群文件系統(tǒng),另一個(gè)是基于塊設(shè)備的存儲(chǔ)區(qū)域網(wǎng)絡(luò)SAN系統(tǒng)。
在藍(lán)云計(jì)算平臺(tái)上,SAN 系統(tǒng)與分布式文件系統(tǒng)(例如Google File System)并不是相互對(duì)立的系統(tǒng),SAN提供的是塊設(shè)備接口,需要在此基礎(chǔ)上構(gòu)建文件系統(tǒng),才能被上層應(yīng)用程序所使用。而Google File System正好是一個(gè)分布式的文件系統(tǒng),能夠建立在SAN之上。兩者都能提供可靠性、可擴(kuò)展性,至于如何使用還需要由建立在云計(jì)算平臺(tái)上的應(yīng)用程序來(lái)決定,這也體現(xiàn)了計(jì)算平臺(tái)與上層應(yīng)用相互協(xié)作的關(guān)系。
(3)Amazon的彈性計(jì)算云
Amazon是互聯(lián)網(wǎng)上最大的在線零售商,為了應(yīng)付交易高峰,不得不購(gòu)買了大量的服務(wù)器。而在大多數(shù)時(shí)間,大部分服務(wù)器閑置,造成了很大的浪費(fèi),為了合理利用空閑服務(wù)器,Amazon建立了自己的云計(jì)算平臺(tái)彈性計(jì)算云EC2(elastic compute cloud),并且是第一家將基礎(chǔ)設(shè)施作為服務(wù)出售的公司。
Amazon將自己的彈性計(jì)算云建立在公司內(nèi)部的大規(guī)模集群計(jì)算的平臺(tái)上,而用戶可以通過(guò)彈性計(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é)束。這里所說(shuō)的實(shí)例即是由用戶控制的完整的虛擬機(jī)運(yùn)行實(shí)例。通過(guò)這種方式,用戶不必自己去建立云計(jì)算平臺(tái),節(jié)省了設(shè)備與維護(hù)費(fèi)用。
上圖為EC2系統(tǒng)的使用模式。從圖中可以看出,彈性計(jì)算云用戶使用客戶端通過(guò)SOAP over HTTPS協(xié)議與Amazon彈性計(jì)算云內(nèi)部的實(shí)例進(jìn)行交互。這樣,彈性計(jì)算云平臺(tái)為用戶或者開(kāi)發(fā)人員提供了一個(gè)虛擬的集群環(huán)境,在用戶具有充分靈活性的同時(shí),也減輕了云計(jì)算平臺(tái)擁有者(Amazon公司)的管理負(fù)擔(dān)。彈性計(jì)算云中的每一個(gè)實(shí)例代表一個(gè)運(yùn)行中的虛擬機(jī)。用戶對(duì)自己的虛擬機(jī)具有完整的訪問(wèn)權(quán)限,包括針對(duì)此虛擬機(jī)操作系統(tǒng)的管理員權(quán)限。虛擬機(jī)的收費(fèi)也是根據(jù)虛擬機(jī)的能力進(jìn)行費(fèi)用計(jì)算的,實(shí)際上,用戶租用的是虛擬的計(jì)算能力。
總而言之,Amazon通過(guò)提供彈性計(jì)算云,滿足了小規(guī)模軟件開(kāi)發(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ǔ)上幫助用戶開(kāi)發(fā)網(wǎng)絡(luò)化的應(yīng)用程序。除了網(wǎng)絡(luò)零售業(yè)務(wù)以外,云計(jì)算也是Amazon公司的核心價(jià)值所在。Amazon將來(lái)會(huì)在彈性計(jì)算云的平臺(tái)基礎(chǔ)上添加更多的網(wǎng)絡(luò)服務(wù)組件模塊,為用戶構(gòu)建云計(jì)算應(yīng)用提供方便。
六、云計(jì)算技術(shù)發(fā)展面臨的主要問(wèn)題
盡管云計(jì)算模式具有許多優(yōu)點(diǎn),但是也存在的一些問(wèn)題,如數(shù)據(jù)隱私問(wèn)題、安全問(wèn)題、軟件許可證問(wèn)題、網(wǎng)絡(luò)傳輸問(wèn)題等。
· 數(shù)據(jù)隱私問(wèn)題:如何保證存放在云服務(wù)提供商的數(shù)據(jù)隱私,不被非法利用,不僅需要技術(shù)的改進(jìn),也需要法律的進(jìn)一步完善。
· 數(shù)據(jù)安全性:有些數(shù)據(jù)是企業(yè)的商業(yè)機(jī)密,數(shù)據(jù)的安全性關(guān)系到企業(yè)的生存和發(fā)展。云計(jì)算數(shù)據(jù)的安全性問(wèn)題解決不了會(huì)影響云計(jì)算在企業(yè)中的應(yīng)用。
· 用戶使用習(xí)慣:如何改變用戶的使用習(xí)慣,使用戶適應(yīng)網(wǎng)絡(luò)化的軟硬件應(yīng)用是長(zhǎng)期而艱巨的挑戰(zhàn)。
· 網(wǎng)絡(luò)傳輸問(wèn)題:云計(jì)算服務(wù)依賴網(wǎng)絡(luò),目前網(wǎng)速低且不穩(wěn)定,使云應(yīng)用的性能不高。云計(jì)算的普及依賴網(wǎng)絡(luò)技術(shù)的發(fā)展。
評(píng)論