【IT168 技術(shù)文檔】
IBM在2007年11月15日推出了藍云計算平臺,為客戶帶來即買即用的云計算平臺。它包括一系列的云計算產(chǎn)品,使得計算不僅僅局限在本地機器或遠(yuǎn)程服務(wù)器農(nóng)場(即服務(wù)器集群),通過
架構(gòu)一個分布式、可全球訪問的資源結(jié)構(gòu),使得數(shù)據(jù)中心在類似于互聯(lián)網(wǎng)的環(huán)境下運行計算。
通過IBM的技術(shù)白皮書,我們可以一窺藍云計算平臺的內(nèi)部構(gòu)造。“藍云”建立在IBM大規(guī)模計算領(lǐng)域的專業(yè)技術(shù)基礎(chǔ)上,基于由IBM軟件、系統(tǒng)技術(shù)和服務(wù)支持的開放標(biāo)準(zhǔn)和開源軟件。簡單地說,“藍云”基于IBM Almaden研究中心(Almaden Research Center)的云基礎(chǔ)架構(gòu),包括Xen和PowerVM虛擬化、Linux操作系統(tǒng)映像以及Hadoop文件系統(tǒng)與并行構(gòu)建。“藍云”由IBM Tivoli軟件支持,通過管理服務(wù)器來確?;谛枨蟮淖罴研阅?。這包括通過能夠跨越多服務(wù)器實時分配資源的軟件,為客戶帶來一種無縫體驗,加速性能并確保在最苛刻環(huán)境下的穩(wěn)定性。IBM新近發(fā)布的“藍云(Blue Cloud)”計劃,能夠幫助用戶進行云計算環(huán)境的搭建。它通過將Tivoli、DB2、WebSphere與硬件產(chǎn)品(目前是x86刀片服務(wù)器)集成,能夠為企業(yè)架設(shè)一個分布式、可全球訪問的資源結(jié)構(gòu)。根據(jù)IBM的計劃,首款支持Power和x86處理器刀片服務(wù)器系統(tǒng)的“藍云”產(chǎn)品將于2008年正式推出,并且計劃隨后推出基于System z“大型主機”的云環(huán)境,以及基于高密度機架集群的云環(huán)境。
在IBM的云計算白皮書上,我們可以看到如下的藍云計算平臺配置情況。
圖4演示了藍云計算的高層架構(gòu)??梢钥吹?,藍云計算平臺由一個數(shù)據(jù)中心: IBM Tivoli部署管理軟件(Tivoli Provisioning Manager)、IBM Tivoli監(jiān)控軟件(IBM Tivoli Monitoring)、IBM WebSphere應(yīng)用服務(wù)器、IBM DB2數(shù)據(jù)庫以及一些虛擬化的組件共同組成。圖中的架構(gòu)主要描述了云計算的后臺架構(gòu),并沒有涉及到前臺的用戶界面。
藍云的硬件平臺并沒有什么特殊的地方,但是藍云使用的軟件平臺相較于以前的分布式平臺具有不同的地方,主要體現(xiàn)在對與虛擬機的使用以及對于大規(guī)模數(shù)據(jù)處理軟件Apache Hadoop的部署。Hadoop是網(wǎng)絡(luò)開發(fā)人員根據(jù)Google公司公開的資料開發(fā)出來的類似于Google File System的Hadoop File System以及相應(yīng)的Map/Reduce編程規(guī)范?,F(xiàn)在也正在進一步開發(fā)類似于Google的Chubby系統(tǒng)以及相應(yīng)的分布式數(shù)據(jù)庫管理系統(tǒng)BigTable。由于Hadoop是開源的,因此可以被用戶單位直接修改,以適合應(yīng)用的特殊需求。IBM的藍云產(chǎn)品則直接將Hadoop軟件集成到自己本身的云計算平臺之上。
“藍云”中的虛擬化
從藍云的結(jié)構(gòu)上我們還可以看出,在每一個節(jié)點上運行的軟件棧與傳統(tǒng)的軟件棧一個很大的不同在于藍云內(nèi)部使用了虛擬化技術(shù)。虛擬化的方式在云計算中可以在兩個級別上實現(xiàn)。一個級別是在硬件級別上實現(xiàn)虛擬化。硬件級別的虛擬化可以使用IBM p系列的服務(wù)器,獲得硬件的邏輯分區(qū)LPAR。邏輯分區(qū)的CPU資源能夠通過IBM Enterprise Workload Manager來管理。通過這樣的方式加上在實際使用過程中的資源分配策略,能夠使得相應(yīng)的資源合理地分配到各個邏輯分區(qū)。P系列系統(tǒng)的邏輯分區(qū)最小粒度是1/10顆中央處理器(CPU)。
虛擬化的另外一個級別可以通過軟件來獲得,在藍云計算平臺中使用了Xen虛擬化軟件。Xen也是一個開源的虛擬化軟件,能夠在現(xiàn)有的Linux基礎(chǔ)之上運行另外一個操作系統(tǒng),并通過虛擬機的方式靈活地進行軟件部署和操作。
通過虛擬機的方式進行云計算資源的管理具有特殊的好處。由于虛擬機是一類特殊的軟件,能夠完全模擬硬件的執(zhí)行,因此能夠在上面運行操作系統(tǒng),進而能夠保留一整套運行環(huán)境語義。這樣,可以將整個執(zhí)行環(huán)境通過打包的方式傳輸?shù)狡渌锢砉?jié)點上,這樣就能夠使得執(zhí)行環(huán)境與物理環(huán)境隔離,方便整個應(yīng)用程序模塊的部署??傮w上來說,通過將虛擬化的技術(shù)應(yīng)用到云計算的平臺,可以獲得一些良好的特性。
1. 云計算的管理平臺能夠動態(tài)地將計算平臺定位到所需要的物理平臺上,而無需停止運行在虛擬機平臺上的應(yīng)用程序,這比采用虛擬化技術(shù)之前的進程遷移方法更加靈活。
2. 能夠更加有效率地使用主機資源,將多個負(fù)載不是很重的虛擬機計算節(jié)點合并到同一個物理節(jié)點上,從而能夠關(guān)閉空閑的物理節(jié)點,達到節(jié)約電能的目的。
3. 通過虛擬機在不同物理節(jié)點上的動態(tài)遷移,能夠獲得與應(yīng)用無關(guān)的負(fù)載平衡性能。由于虛擬機包含了整個虛擬化的操作系統(tǒng)以及應(yīng)用程序環(huán)境,因此在進行遷移的時候帶著整個運行環(huán)境,達到了與應(yīng)用無關(guān)的目的。
4. 在部署上也更加靈活,即可以將虛擬機直接部署到物理計算平臺當(dāng)中。
總而言之,通過虛擬化的方式,云計算平臺能夠達到極其靈活的特性,而如果不使用虛擬化的方式則會有很多的局限。
“藍云”中的存儲結(jié)構(gòu)
藍云計算平臺中的存儲體系結(jié)構(gòu)對于云計算來說也是非常重要的,無論是操作系統(tǒng),服務(wù)程序還是用戶應(yīng)用程序的數(shù)據(jù)都保存在存儲體系中。云計算并不排斥任何一種有用的存儲體系結(jié)構(gòu),而是需要跟應(yīng)用程序的需求結(jié)合起來獲得最好的性能提升??傮w上來說,云計算的存儲體系結(jié)構(gòu)包含類似于Google File System的集群文件系統(tǒng)以及基于塊設(shè)備方式的存儲區(qū)域網(wǎng)絡(luò)SAN兩種方式。
在設(shè)計云計算平臺的存儲體系結(jié)構(gòu)的時候,不僅僅是需要考慮存儲的容量。實際上隨著硬盤容量的不斷擴充以及硬盤價格的不斷下降,使用當(dāng)前的磁盤技術(shù),可以很容易通過使用多個磁盤的方式獲得很大的磁盤容量。相較于磁盤的容量,在云計算平臺的存儲中,磁盤數(shù)據(jù)的讀寫速度是一個更重要的問題。單個磁盤的速度很有可能限制應(yīng)用程序?qū)τ跀?shù)據(jù)的訪問,因此在實際使用的過程中,需要將數(shù)據(jù)分布到多個磁盤之上,并且通過對于多個磁盤的同時讀寫以達到提高速度的目的。在云計算平臺中,數(shù)據(jù)如何放置是一個非常重要的問題,在實際使用的過程中,需要將數(shù)據(jù)分配到多個節(jié)點的多個磁盤當(dāng)中。而能夠達到這一目的的存儲技術(shù)趨勢當(dāng)前有兩種方式,一種是使用類似于Google File System的集群文件系統(tǒng),另外一種是基于塊設(shè)備的存儲區(qū)域網(wǎng)絡(luò)SAN系統(tǒng)。
Google文件系統(tǒng)在前面已經(jīng)做過一定的描述。在IBM的藍云計算平臺中使用的是它的開源實現(xiàn)Hadoop HDFS (Hadoop Distributed File System)。這種使用方式將磁盤附著于節(jié)點的內(nèi)部,并且為外部提供一個共享的分布式文件系統(tǒng)空間,并且在文件系統(tǒng)級別做冗余以提高可靠性。在合適的分布式數(shù)據(jù)處理模式下,這種方式能夠提高總體的數(shù)據(jù)處理效率。Google文件系統(tǒng)的這種架構(gòu)與SAN系統(tǒng)有很大的不同。
SAN系統(tǒng)也是云計算平臺的另外一種存儲體系結(jié)構(gòu)選擇,在藍云平臺上也有一定的體現(xiàn),IBM也提供SAN的平臺能夠接入到藍云計算平臺中。圖5就是一個SAN系統(tǒng)的結(jié)構(gòu)示意圖。
從圖5中可以看到,SAN系統(tǒng)是在存儲端構(gòu)建存儲的網(wǎng)絡(luò),將多個存儲設(shè)備構(gòu)成一個存儲區(qū)域網(wǎng)絡(luò)。前端的主機可以通過網(wǎng)絡(luò)的方式訪問后端的存儲設(shè)備。而且,由于提供了塊設(shè)備的訪問方式,與前端操作系統(tǒng)無關(guān)。在SAN連接方式上,可以有多種選擇。一種選擇是使用光纖網(wǎng)絡(luò),能夠操作快速的光纖磁盤,適合于對性能與可靠性要求比較高的場所。另外一種選擇是使用以太網(wǎng),采取iSCSI協(xié)議,能夠運行在普通的局域網(wǎng)環(huán)境下,從而降低了成本。由于存儲區(qū)域網(wǎng)絡(luò)中的磁盤設(shè)備并沒有與某一臺主機綁定在一起,而是采用了非常靈活的結(jié)構(gòu),因此對于主機來說可以訪問多個磁盤設(shè)備,從而能夠獲得性能的提升。在存儲區(qū)域網(wǎng)絡(luò)中,使用虛擬化的引擎來進行邏輯設(shè)備到物理設(shè)備的映射,管理前端主機到后端數(shù)據(jù)的讀寫。因此虛擬化引擎是存儲區(qū)域網(wǎng)絡(luò)中非常重要的管理模塊。
SAN系統(tǒng)與分布式文件系統(tǒng)例如Google File System并不是相互對立的系統(tǒng),而是在構(gòu)建集群系統(tǒng)的時候可供選擇的兩種方案。其中,在選擇SAN系統(tǒng)的時候,為了應(yīng)用程序的讀寫,還需要為應(yīng)用程序提供上層的語義接口,此時就需要在SAN之上構(gòu)建文件系統(tǒng)。而Google File System正好是一個分布式的文件系統(tǒng),因此能夠建立在SAN系統(tǒng)之上??傮w來說,SAN與分布式文件系統(tǒng)都可以提供類似的功能,例如對于出錯的處理等。至于如何使用還是需要由建立在云計算平臺之上的應(yīng)用程序來決定。
與Google不同的是,IBM并沒有基于云計算提供外部可訪問的網(wǎng)絡(luò)應(yīng)用程序。這主要是由于IBM并不是一個網(wǎng)絡(luò)公司,而是一個IT的服務(wù)公司。當(dāng)然,IBM內(nèi)部以及IBM未來為客戶提供的軟件服務(wù)會基于云計算的架構(gòu)。(