資源描述:
《Google云計(jì)算原理》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、.....Google云計(jì)算原理Google擁有全球最強(qiáng)大的搜索引擎。除了搜索業(yè)務(wù)以外,Google還有GoogleMaps、GoogleEarth、Gmail、YouTube等各種業(yè)務(wù),包括剛誕生的GoogleWave。這些應(yīng)用的共性在于數(shù)據(jù)量巨大,而且要面向全球用戶提供實(shí)時(shí)服務(wù),因此Google必須解決海量數(shù)據(jù)存儲(chǔ)和快速處理問(wèn)題。Google的訣竅在于它發(fā)展出簡(jiǎn)單而又高效的技術(shù),讓多達(dá)百萬(wàn)臺(tái)的廉價(jià)計(jì)算機(jī)協(xié)同工作,共同完成這些前所未有的任務(wù),這些技術(shù)是在誕生幾年之后才被命名為Google云計(jì)算技術(shù)。Google云
2、計(jì)算技術(shù)具體包括:Google文件系統(tǒng)GFS、分布式計(jì)算編程模型MapReduce、分布式鎖服務(wù)Chubby和分布式結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)系統(tǒng)Bigtable等。其中,GFS提供了海量數(shù)據(jù)的存儲(chǔ)和訪問(wèn)的能力,MapReduce使得海量信息的并行處理變得簡(jiǎn)單易行,Chubby保證了分布式環(huán)境下并發(fā)操作的同步問(wèn)題,Bigtable使得海量數(shù)據(jù)的管理和組織十分方便。本章將對(duì)這四種核心技術(shù)進(jìn)行詳細(xì)介紹。2.1Google文件系統(tǒng)GFSGoogle文件系統(tǒng)(GoogleFileSystem,GFS)是一個(gè)大型的分布式文件系統(tǒng)。它為G
3、oogle云計(jì)算提供海量存儲(chǔ),并且與Chubby、MapReduce以及Bigtable等技術(shù)結(jié)合十分緊密,處于所有核心技術(shù)的底層。由于GFS并不是一個(gè)開(kāi)源的系統(tǒng),我們僅僅能從Google公布的技術(shù)文檔來(lái)獲得一點(diǎn)了解,而無(wú)法進(jìn)行深入的研究。文獻(xiàn)[1]是Google公布的關(guān)于GFS的最為詳盡的技術(shù)文檔,它從GFS產(chǎn)生的背景、特點(diǎn)、系統(tǒng)框架、性能測(cè)試等方面進(jìn)行了詳細(xì)的闡述。當(dāng)前主流分布式文件系統(tǒng)有RedHat的GFS[3](GlobalFileSystem)、IBM的GPFS[4]、Sun的Lustre[5]等。這些系
4、統(tǒng)通常用于高性能計(jì)算或大型數(shù)據(jù)中心,對(duì)硬件設(shè)施條件要求較高。以Lustre文件系統(tǒng)為例,它只對(duì)元數(shù)據(jù)管理器MDS提供容錯(cuò)解決方案,而對(duì)于具體的數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)OST來(lái)說(shuō),則依賴其自身來(lái)解決容錯(cuò)的問(wèn)題。例如,Lustre推薦OST節(jié)點(diǎn)采用RAID技術(shù)或SAN存儲(chǔ)區(qū)域網(wǎng)來(lái)容錯(cuò),但由于Lustre自身不能提供數(shù)據(jù)存儲(chǔ)的容錯(cuò),一旦OST發(fā)生故障就無(wú)法恢復(fù),因此對(duì)OST的穩(wěn)定性就提出了相當(dāng)高的要求,從而大大增加了存儲(chǔ)的成本,而且成本會(huì)隨著規(guī)模的擴(kuò)大線性增長(zhǎng)。學(xué)習(xí)參考.....正如李開(kāi)復(fù)所說(shuō)的那樣,創(chuàng)新固然重要,但有用的創(chuàng)新更重要
5、。創(chuàng)新的價(jià)值,取決于一項(xiàng)創(chuàng)新在新穎、有用和可行性這三個(gè)方面的綜合表現(xiàn)。GoogleGFS的新穎之處并不在于它采用了多么令人驚訝的技術(shù),而在于它采用廉價(jià)的商用機(jī)器構(gòu)建分布式文件系統(tǒng),同時(shí)將GFS的設(shè)計(jì)與Google應(yīng)用的特點(diǎn)緊密結(jié)合,并簡(jiǎn)化其實(shí)現(xiàn),使之可行,最終達(dá)到創(chuàng)意新穎、有用、可行的完美組合。GFS使用廉價(jià)的商用機(jī)器構(gòu)建分布式文件系統(tǒng),將容錯(cuò)的任務(wù)交由文件系統(tǒng)來(lái)完成,利用軟件的方法解決系統(tǒng)可靠性問(wèn)題,這樣可以使得存儲(chǔ)的成本成倍下降。由于GFS中服務(wù)器數(shù)目眾多,在GFS中服務(wù)器死機(jī)是經(jīng)常發(fā)生事情,甚至都不應(yīng)當(dāng)將其視
6、為異?,F(xiàn)象,那么如何在頻繁的故障中確保數(shù)據(jù)存儲(chǔ)的安全、保證提供不間斷的數(shù)據(jù)存儲(chǔ)服務(wù)是GFS最核心的問(wèn)題。GFS的精彩在于它采用了多種方法,從多個(gè)角度,使用不同的容錯(cuò)措施來(lái)確保整個(gè)系統(tǒng)的可靠性。2.1.1系統(tǒng)架構(gòu)GFS的系統(tǒng)架構(gòu)如圖2-1[1]所示。GFS將整個(gè)系統(tǒng)的節(jié)點(diǎn)分為三類(lèi)角色:Client(客戶端)、Master(主服務(wù)器)和ChunkServer(數(shù)據(jù)塊服務(wù)器)。Client是GFS提供給應(yīng)用程序的訪問(wèn)接口,它是一組專(zhuān)用接口,不遵守POSIX規(guī)范,以庫(kù)文件的形式提供。應(yīng)用程序直接調(diào)用這些庫(kù)函數(shù),并與該庫(kù)鏈接
7、在一起。Master是GFS的管理節(jié)點(diǎn),在邏輯上只有一個(gè),它保存系統(tǒng)的元數(shù)據(jù),負(fù)責(zé)整個(gè)文件系統(tǒng)的管理,是GFS文件系統(tǒng)中的大腦。ChunkServer負(fù)責(zé)具體的存儲(chǔ)工作。數(shù)據(jù)以文件的形式存儲(chǔ)在ChunkServer上,ChunkServer的個(gè)數(shù)可以有多個(gè),它的數(shù)目直接決定了GFS的規(guī)模。GFS將文件按照固定大小進(jìn)行分塊,默認(rèn)是64MB,每一塊稱為一個(gè)Chunk(數(shù)據(jù)塊),每個(gè)Chunk都有一個(gè)對(duì)應(yīng)的索引號(hào)(Index)。學(xué)習(xí)參考.....圖2-1GFS體系結(jié)構(gòu)客戶端在訪問(wèn)GFS時(shí),首先訪問(wèn)Master節(jié)點(diǎn),獲取將
8、要與之進(jìn)行交互的ChunkServer信息,然后直接訪問(wèn)這些ChunkServer完成數(shù)據(jù)存取。GFS的這種設(shè)計(jì)方法實(shí)現(xiàn)了控制流和數(shù)據(jù)流的分離。Client與Master之間只有控制流,而無(wú)數(shù)據(jù)流,這樣就極大地降低了Master的負(fù)載,使之不成為系統(tǒng)性能的一個(gè)瓶頸。Client與ChunkServer之間直接傳輸數(shù)據(jù)流,同時(shí)由于文件被分成多個(gè)Chunk進(jìn)行分