資源描述:
《Google云計(jì)算的關(guān)鍵技術(shù)(一)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、?Google云計(jì)算的關(guān)鍵技術(shù)(一)Google云計(jì)算的關(guān)鍵技術(shù)主要包括:Google文件系統(tǒng)GFS、分布式計(jì)算編程模型MapReduce、分布式鎖服務(wù)Chubby和分布式結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)系統(tǒng)BigTable等。其中:1)GFS提供了海量數(shù)據(jù)存儲(chǔ)和訪問(wèn)的能力;2)MapReduce使得海量信息的并行處理變得簡(jiǎn)單易行;3)Chubby保證了分布式環(huán)境下并發(fā)操作的同步問(wèn)題;4)BigTable使得海量數(shù)據(jù)的管理和組織十分方便。lGFSGFS是一個(gè)面向海量數(shù)據(jù)密集型應(yīng)用的、可伸縮的分布式文件系統(tǒng),它為Google云計(jì)算提
2、供了海量存儲(chǔ)的能力,處于整個(gè)Google云計(jì)算技術(shù)體系的最底層。GFS使用廉價(jià)的商用機(jī)器構(gòu)建分布式文件系統(tǒng),將容錯(cuò)的任務(wù)交由文件系統(tǒng)來(lái)完成,利用軟件的方法解決系統(tǒng)可靠性的問(wèn)題,不但使得存儲(chǔ)的成本成倍下降,更是很好地在頻繁的故障中確保了數(shù)據(jù)存儲(chǔ)的安全和數(shù)據(jù)存儲(chǔ)服務(wù)的連續(xù)性,從整體上確保了整個(gè)系統(tǒng)的可靠性,進(jìn)而可以為大量客戶機(jī)提供高性能的服務(wù)。一、架構(gòu)一個(gè)GFS集群包含一個(gè)單獨(dú)的Master邏輯節(jié)點(diǎn)、多臺(tái)Chunk服務(wù)器,并且同時(shí)被多個(gè)客戶端訪問(wèn),如下圖所示。GFS存儲(chǔ)的文件都被分割成固定大小的Chunk。在Chun
3、k創(chuàng)建的時(shí)候,Master服務(wù)器會(huì)給每個(gè)Chunk分配一個(gè)不變的、全球唯一的64位的Chunk標(biāo)識(shí)。Chunk服務(wù)器把Chunk以linux文件的形式保存在本地硬盤上,并且根據(jù)指定的Chunk標(biāo)識(shí)和字節(jié)范圍來(lái)讀寫塊數(shù)據(jù)。出于可靠性的考慮,每個(gè)塊都會(huì)復(fù)制到多個(gè)塊服務(wù)器上。缺省情況下,我們使用3個(gè)存儲(chǔ)復(fù)制節(jié)點(diǎn),不過(guò)用戶可以為不同的文件命名空間設(shè)定不同的復(fù)制級(jí)別。Master節(jié)點(diǎn)管理所有的文件系統(tǒng)元數(shù)據(jù),在邏輯上只有一個(gè)。這些元數(shù)據(jù)包括名字空間、訪問(wèn)控制信息、文件和Chunk的映射信息、以及當(dāng)前Chunk的位置信息;M
4、aster節(jié)點(diǎn)還管理著系統(tǒng)范圍內(nèi)的活動(dòng),比如Chunk在Chunk服務(wù)器之間的遷移等。Master節(jié)點(diǎn)使用心跳信息周期地和每個(gè)Chunk服務(wù)器通訊,發(fā)送指令到各個(gè)Chunk服務(wù)器并接收Chunk服務(wù)器的狀態(tài)信息。GFS客戶端代碼以庫(kù)的形式被鏈接到客戶程序里??蛻舳舜a實(shí)現(xiàn)了GFS文件系統(tǒng)的API接口函數(shù)、應(yīng)用程序與Master節(jié)點(diǎn)和Chunk服務(wù)器通訊、以及對(duì)數(shù)據(jù)進(jìn)行讀寫操作??蛻舳撕蚆aster節(jié)點(diǎn)的通信只獲取元數(shù)據(jù),所有的數(shù)據(jù)操作都是由客戶端直接和Chunk服務(wù)器進(jìn)行交互的。無(wú)論是客戶端還是Chunk服務(wù)器都
5、不需要緩存文件數(shù)據(jù)(客戶端會(huì)緩存元數(shù)據(jù))??蛻舳司彺鏀?shù)據(jù)幾乎沒(méi)有什么用處,因?yàn)榇蟛糠殖绦蛞匆粤鞯姆绞阶x取一個(gè)巨大文件,要么工作集太大根本無(wú)法被緩存。Chunk服務(wù)器不需要緩存文件數(shù)據(jù)的原因是:Chunk以本地文件的方式保存,Linux操作系統(tǒng)的文件系統(tǒng)緩存會(huì)把經(jīng)常訪問(wèn)的數(shù)據(jù)緩存在內(nèi)存中。設(shè)計(jì)思路:集中+分布。單一的Master節(jié)點(diǎn)便于通過(guò)全局的信息精確定位Chunk的位置以及進(jìn)行復(fù)制決策。同時(shí),為了避免Master節(jié)點(diǎn)成為系統(tǒng)的瓶頸,必須減少對(duì)Master節(jié)點(diǎn)的讀寫:客戶端并不通過(guò)Master節(jié)點(diǎn)讀寫文件數(shù)據(jù),
6、只是通過(guò)其詢問(wèn)應(yīng)該聯(lián)系的Chunk服務(wù)器,后續(xù)的操作將直接和Chunk服務(wù)器進(jìn)行數(shù)據(jù)讀寫操作。二、客戶端訪問(wèn)GFS流程首先,客戶端把文件名和程序指定的字節(jié)偏移,根據(jù)固定的Chunk大小,轉(zhuǎn)換成文件的Chunk索引。然后,它把文件名和Chunk索引發(fā)送給Master節(jié)點(diǎn)。Master節(jié)點(diǎn)將相應(yīng)的Chunk標(biāo)識(shí)和副本的位置信息發(fā)還給客戶端??蛻舳擞梦募虲hunk索引作為key緩存這些信息。之后客戶端發(fā)送請(qǐng)求到其中的一個(gè)副本處,一般會(huì)選擇最近的。請(qǐng)求信息包含了Chunk的標(biāo)識(shí)和字節(jié)范圍。在對(duì)這個(gè)Chunk的后續(xù)讀取
7、操作中,客戶端不必再和Master節(jié)點(diǎn)通訊了,除非緩存的元數(shù)據(jù)信息過(guò)期或者文件被重新打開。三、Chunk尺寸的設(shè)定Chunk的大小是關(guān)鍵的設(shè)計(jì)參數(shù)之一。選擇64MB這個(gè)較大尺寸有幾個(gè)重要的優(yōu)點(diǎn)。首先,它減少了客戶端和Master節(jié)點(diǎn)通訊的需求,因?yàn)橹恍枰淮魏蚆ater節(jié)點(diǎn)的通信就可以獲取Chunk的位置信息,之后就可以對(duì)同一個(gè)Chunk進(jìn)行多次的讀寫操作。這種方式對(duì)降低工作負(fù)載來(lái)說(shuō)效果顯著,因?yàn)閼?yīng)用程序通常是連續(xù)讀寫大文件。其次,采用較大的Chunk尺寸,客戶端能夠?qū)σ粋€(gè)塊進(jìn)行多次操作,這樣就可以通過(guò)與Chun
8、k服務(wù)器保持較長(zhǎng)時(shí)間的TCP連接來(lái)減少網(wǎng)絡(luò)負(fù)載。第三,選用較大的Chunk尺寸減少了Master節(jié)點(diǎn)需要保存的元數(shù)據(jù)的數(shù)量。這就允許我們把元數(shù)據(jù)全部放在內(nèi)存中。此外,為了避免因內(nèi)部碎片造成的空間浪費(fèi),GFS采用了惰性空間分配策略。四、元數(shù)據(jù)Master服務(wù)器存儲(chǔ)3種主要類型的元數(shù)據(jù),包括:文件和Chunk的命名空間、文件和Chunk的對(duì)應(yīng)關(guān)系、每個(gè)Chunk副本的存放地點(diǎn)