云計(jì)算Google的技術(shù)構(gòu)架_第1頁
云計(jì)算Google的技術(shù)構(gòu)架_第2頁
云計(jì)算Google的技術(shù)構(gòu)架_第3頁
云計(jì)算Google的技術(shù)構(gòu)架_第4頁
云計(jì)算Google的技術(shù)構(gòu)架_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、云計(jì)算Google的技術(shù)構(gòu)架_、/ A 一、刖計(jì)算無疑是今年IT技術(shù)界最熱點(diǎn)的關(guān)鍵詞之一。從谷歌趨勢分析來看,國際上Cloud computing是從2007年中期開頭成為整個業(yè)界關(guān)注的重點(diǎn),在中國云計(jì)算是從2022年開 頭成為中國IT界和通信界關(guān)注的核心。特殊是,當(dāng)中國移動2022年開頭關(guān)注 計(jì)算,并推 動中國移動相關(guān)的業(yè)務(wù)支撐系統(tǒng)、業(yè)務(wù)軟件平臺開頭向計(jì)算的平臺遷移。使得整個中國IT界、通信界的相關(guān)產(chǎn)業(yè)力氣更加關(guān)注計(jì)算,同時大家也開頭意識到了計(jì)算確實(shí)可以大大的節(jié)約海量計(jì)算的總體擁有本錢。cloud computing 云計(jì)算當(dāng)業(yè)界談到 計(jì)算的時候,都會第一個想到谷歌Googleo我們?nèi)粘T谑?/p>

2、用的GoogleSearch, Google Earth, Goolge Map, Google Gmail, Google Doc 等等業(yè)務(wù)都是 Google 基于 自己計(jì)算平臺來供應(yīng)的。Google也是通過云計(jì)算的方式,大量的降低計(jì)算本錢,使之業(yè)務(wù)更具有競爭力。Google原先企業(yè)初期階段,獲得的投資有限,只能自己攢機(jī),但是很差的機(jī)器不行能發(fā)揮服務(wù)器的性能和穩(wěn)定性,于是只有去想該如何提高牢靠性,如何采用很多”破爛“機(jī)器獲 據(jù)說有Intel的,也有AMD的在使用。8個2GB的DDR3,支持ECC容錯的高速內(nèi)存, 采納RAID 1的磁盤鏡像,來提升I/O效率。磁盤采納SATA,單機(jī)存儲容量可以

3、到達(dá)1-2TB。每個服務(wù)器刀片自帶12V的電池來保證在短期沒有外部電源的時候可以保持服務(wù)器刀片正常運(yùn)行。Google的硬件設(shè)計(jì)人員認(rèn)為,這個自帶電池的方式,要比傳統(tǒng)的使用UPS的方式效率更高。一般數(shù)據(jù)中心多倚賴稱為不間斷電源系統(tǒng)(UPS)的大型中控機(jī)型,這基本上算是大電池,Page 9會在主電力失效而發(fā)電機(jī)還來不及啟動時,臨時幫助供電。Google 的硬件設(shè)計(jì)人員表示,直接把電力內(nèi)建到服務(wù)器比擬廉價,而且本錢能直接跟服務(wù)器數(shù)量相符合?!斑@種作法比使用大型UPS節(jié)約得多,如此也不會鋪張多余的容量J效率也是另一個財務(wù)考量因素。大型UPS可達(dá)92-95%的效率,這意味著很多電力還是被鋪張掉了。但Go

4、ogle采納的內(nèi)建電池作法卻好很多,Google相關(guān)人員表示,“我們測量 的結(jié)果是效率超過99.9%年份Google服務(wù)器刀片硬件配置1999/2000 PII/PIII 128MB+200切004Celeron 533, Pill 1.4 SMP, 2-4GB DRAM, Dual XEON 2.0/1-4GB/40-160GBIDE - SATA Disks via Silicon Images SATA 3114/SATA 31242006Dual Opteron/Working Set DRAM(4GB+)/2x400GB IDE (RAIDO?)20222-Way/Dual Core

5、/16GB/1-2TB SATA6、Google服務(wù)器使用的操作系統(tǒng)Google服務(wù)器使用的操作系統(tǒng)是基于RedhatLinux2.6的內(nèi)核,并做了大量修改。修改了 GNUC函數(shù)庫(glibc),遠(yuǎn)程過程調(diào)用(RPC),開發(fā)了自己的Ipvs,自己修改了文件系 統(tǒng),形成了自己的GFSII,修改了 linux內(nèi)核和相關(guān)的子系統(tǒng),是其支持IPV6。采納了 Python來作 為主要的腳本語言。下表是一些大型互聯(lián)網(wǎng)公司使用的操作系統(tǒng)比照。網(wǎng)站操作系統(tǒng)Web應(yīng)用服務(wù)器GoogleLinuxGoogle Web ServerPage 10微軟Windows serverIISebayWindows serv

6、erIIS阿里巴巴LinuxApache新浪Free BSDApache百度LinuxApache163LinuxApache搜狐Sco UnixApache7、Google計(jì)算文件系統(tǒng)GFS/GFSIIGFSII cell是Google文件系統(tǒng)中最基礎(chǔ)的模塊。任何文件和數(shù)據(jù)都可以采用這種底層模塊。GFSII通過基于Linux分布存儲的方式,對于服務(wù)器來說,分成了主服務(wù)器(MasterServers)和塊存儲服務(wù)器(Chunk Servers), GFS上的塊存儲服務(wù)器上的存儲空間以64MB為單位,分成很多的存儲塊,由主服務(wù)器來進(jìn)行存儲內(nèi)容的調(diào)度和安排。每一份數(shù)據(jù)都是一式三份的方式,將同樣的數(shù)

7、據(jù)分布存儲在不同的服務(wù)器集中,以保證數(shù)據(jù)的平安性和吞吐的效率提高。當(dāng)需要對于文件、數(shù)據(jù)進(jìn)行存儲的時候,應(yīng)用程序之間將需求發(fā)給主服務(wù)器,主服務(wù)器依據(jù)所管理的塊存儲服務(wù)器的狀況,將需要存儲的內(nèi)容進(jìn)行安排,并將可以存儲的消息(使用那些塊存儲服務(wù)器,那些地址空間),有應(yīng)用程序下面的GFS 接口在對文件和數(shù)據(jù)直接存儲到相應(yīng)的塊存儲服務(wù)器當(dāng)中。塊存儲服務(wù)器要定時通過心跳信號的方式告知主服務(wù)器,目前自己的狀況,一旦心跳信號出了問題,主服務(wù)器會自動將有問題的塊存儲服務(wù)器的相關(guān)內(nèi)容進(jìn)行復(fù)制。以保證數(shù)據(jù)的 平安性。數(shù)據(jù)被存儲時是經(jīng)過壓縮的。采納的BMDiff和Zippy算法。BMDiff使用最長公共子序列進(jìn)行壓縮

8、,壓縮lOOMB/s, 解壓縮約lOOOMB/s.類似的有IBMHashSuffix Array DeltaCompression.Zippy是LZW的改進(jìn)版本,壓縮比不如LZW, 但是速度更快.Page 118、Google 并行計(jì)算構(gòu)架Mapreduce有了強(qiáng)大的分布式文件系統(tǒng),Google遇到的問題就是怎么才能讓公司全部的程序員都學(xué)會些分布式計(jì)算的程序呢?于是,那些Google工程師們從lisp和其他函數(shù)式編程語言中的映射和化簡操作中得到靈感,搞出了 Map/Reduce這一套并行計(jì)算的框架。Map/Reduce被Google拿來重新了 Google Search Engine的整個索引

9、系統(tǒng)。ffi Doug Cutting同樣用Java 將這一套實(shí)現(xiàn)和HDFS合在一起成為Hadoop的Core。MapReduce是Google提出的一個軟件架構(gòu),用于大規(guī)模數(shù)據(jù)集(大于1TB)的并行運(yùn)算。概念“Map(映射)”和“Reduce (化簡)”,和他們的主要思想,都是從函數(shù)式編程語言借來的,還有從矢量編程語言借來的特性。映射和化簡簡潔說來,一個映射函數(shù)就是對一些獨(dú)立元素組成的概念上的列表(例如,一個測試成 績的列表)的每一個元素進(jìn)行指定的操作(比方前面的例子里,有人覺察全部同學(xué)的成果都 被高估了一分,他可以定義一個“減一”的映射函數(shù),用來修正這個錯誤。)。事實(shí)上,每個 元素都是被獨(dú)

10、立操作的,而原始列表沒有被更改,由于這里創(chuàng)立了一個新的列表來保存新的答案。這就是說,Map答案。這就是說,Map操作是可以高度并行的,這對高性能要求的應(yīng)用以并行計(jì)算領(lǐng)域的需求特別有用。而化簡操作指的是對一個列表的元素進(jìn)行適當(dāng)?shù)暮喜ⅲㄟB續(xù)看前面的例子,假如有人想 知道班級的平均分該怎么做?他可以定義一個化簡函數(shù),通過讓列表中的元素 跟自己的相 Page 12鄰的元素相加的方式把列表減半,如此遞歸運(yùn)算直到列表只剩下一個元素,然后用這個元素 除以人數(shù),就得到了平均分。)。雖然他不如映射函數(shù)那么并 行,但是由于化簡總是有一個簡潔的答案,大規(guī)模的運(yùn)算相對獨(dú)立,所以化簡函數(shù)在高度并行環(huán)境下也很有用。分布和

11、牢靠性MapReduce通過把對數(shù)據(jù)集的大規(guī)模操作分發(fā)給網(wǎng)絡(luò)上的每個節(jié)點(diǎn)實(shí)現(xiàn)牢靠性;每個 節(jié)點(diǎn)會周期性的把完成的工作和狀態(tài)的更新報告回來。假如一個節(jié)點(diǎn)保持緘默超過一個預(yù) 設(shè)的時間間,主節(jié)點(diǎn)(類同Google File System中的主服務(wù)器)紀(jì)錄下這個節(jié)點(diǎn)狀態(tài)為 死亡,并把安排給這個節(jié)點(diǎn)的數(shù)據(jù)發(fā)到別的節(jié)點(diǎn)。每個操作使用命名文件的原子操作以確保不 會發(fā)生并行線程間的沖突;當(dāng)文件被改名的時候,系統(tǒng)可能會把他們復(fù)制到任務(wù)名以外的另一個名字上去。(避開副作用)。化簡操作工作方式很類似,但是由于化簡操作在并行力量較差,主節(jié)點(diǎn)會盡量把化簡操作調(diào)度在一個節(jié)點(diǎn)上,或者離需要操作的數(shù)據(jù)盡可能進(jìn)的節(jié)點(diǎn)上了;這個

12、特性可以滿意Google的需求,由于他們有足夠的帶寬,他們的內(nèi)部網(wǎng)絡(luò)沒有那么多的機(jī)器。在Google, MapReduce用在特別廣泛的應(yīng)用程序中,包括“分布grep,分布排序,web 連接圖反轉(zhuǎn),每臺機(jī)器的詞矢量,web訪問日志分析,反向索引構(gòu)建,文檔聚類,機(jī)器學(xué)習(xí),基于統(tǒng)計(jì)的機(jī)器翻譯”值得留意的是,MapReduce實(shí)現(xiàn)以后,它被用來重新生成Google的整個索弓I,并取代老的ad hoc程序去更新索引。MapReduce會生成大量的臨時文件, 為了提高效率,它采用Google文件系統(tǒng)來管理和訪問這些文件。Page 139、Google并行計(jì)算數(shù)據(jù)庫Bigtable有了強(qiáng)大的存儲,有了強(qiáng)大

13、的計(jì)算力量,剩下的Google要面對的是:它的應(yīng)用中有很多結(jié)構(gòu)化、半結(jié)構(gòu)化的數(shù)據(jù),如何高效地管理這些結(jié)構(gòu)化、半結(jié)構(gòu)化的數(shù)據(jù)呢? Google 需要的是一個分布式的類DBMS的系統(tǒng),于是催生了 BigTable這個東西讓Google在供應(yīng)新Google 的 BigTable 從 2004 年初就開頭研發(fā)了,BigTable 服務(wù)時的運(yùn)行本錢降低,最大限度地采用了計(jì)算力量。BigTable是建立在GFS , Scheduler , LockService 和 MapReduce 之上的。每個Table都是一個多維的稀疏圖sparse map。Table由行和列組成,并且每個存儲單元cell都有一個

14、時間戳。在不同的時間對同一個存儲單元cell有多份拷貝,這樣就可以記錄數(shù)據(jù)的變動狀況。數(shù)據(jù)存儲的結(jié)構(gòu)是(row:string, column:string, time:int64)-string行:表中的行鍵(目前任意字符串至64KB的大?。C恳粋€讀取或?qū)懭氲臄?shù)據(jù)下單行的關(guān) 鍵是原子(不管數(shù)目不同的列被讀取或行中寫的),更簡潔為客戶的緣由關(guān)于系統(tǒng)中的行為同時 存在對同一行的更新。歹!J:Page 14列項(xiàng)分為集合稱為列的家族,它們形成了訪問掌握的基本單位。全部數(shù)據(jù)在一列中存儲的家族通常是同一類型。當(dāng)數(shù)據(jù)以這個列鍵值被存儲之前,列的家族必需被創(chuàng)立。家族內(nèi)的 任何列鍵值可以使用。由于,重疊的列鍵

15、值比擬少,與此相反,一個表可能有無限的列數(shù)。時間戳:Bigtable的每一個細(xì)胞中可以包含多個版本同樣的數(shù)據(jù),這些版本的時間戳索引。Bigtable的時間戳64位整數(shù)。它們可以被安排由Bigtable的,在這種狀況下,他們真正代表聯(lián)聰以 微秒的時間,或明確指定的客戶端應(yīng)用程序。應(yīng)用程序需要避開沖突必需制造自己獨(dú)特的時間戳。不同一個單元格的版本都存儲在時間戳挨次遞減,因此,最近的版本可以首先閱讀。為了管理 大的Table,把Table依據(jù)行分割,這些分割后的數(shù)據(jù)統(tǒng)稱為:Tablets。每 個Tablets也許有100-200 MB,每個機(jī)器存儲100個左右的Tablets。底層的架構(gòu)是:GFS。

16、由于GFS是一種分布式的文件系統(tǒng),采納Tablets的機(jī)制后,可以獲得很好的負(fù)載均衡。比 如:可以把常常響應(yīng)的表移動到其他空閑機(jī)器上,然后快速重建。Tablets 在系統(tǒng)中的存儲方式是不行修改的immutable是不行修改的immutable的SSTables, 一臺機(jī)器一個日志文件。BigTable中最重要的選擇是將數(shù)據(jù)存儲分為兩局部,主體局部是不行變的,以SSTable 的格式存儲在GFS中,最近的更新那么存儲在內(nèi)存(稱為memtable)中。讀操作需要依據(jù) SSTable和memtable還綜合打算要讀取的數(shù)據(jù)的值。Page 15Google的Bigtable是不支持事務(wù),只保證對單條紀(jì)

17、錄的原子性。事務(wù)是好東西,但事 務(wù)也是導(dǎo)致數(shù)據(jù)庫實(shí)現(xiàn)簡單化、性能下降最主要的根源。BigTable的開發(fā)者通過調(diào)研后覺察 其實(shí)大家對事務(wù)都沒什么需求,只要保證對單條紀(jì)錄的更新是原子的就可以了。這樣,為了 支持事務(wù)所要考慮的串行化、事務(wù)的回滾等、死鎖檢測(一般認(rèn)為,分布式環(huán)境中的死鎖檢 測是不行能的,一般都用超時解決)等等簡單問題都不見了。系統(tǒng)實(shí)現(xiàn)進(jìn)一步簡化。10 Google 并行鎖服務(wù) Chubby lock在Google這種的分布式系統(tǒng)中,需要一種分布式鎖服務(wù)來保證系統(tǒng)的全都性。于是 Google 有了 Chubby lock service。而同樣是 Yahoo ! Research 向

18、開源貢獻(xiàn)了 Zookeeper,個類似Google Chubby的工程。得更高的性能。這就有了云計(jì)算的雛形。今日我們都知道Google的規(guī)模,而假如我們不去認(rèn)清計(jì)算的強(qiáng)大,我們就不知道互Page 2聯(lián)網(wǎng)的將來和規(guī)章。Google在98年的時候被迫覺察了這一規(guī)章,然后我們看到了聚合的 力量,今日微軟、IBM、雅虎、百度、亞馬遜這些企業(yè)看到了規(guī)章,于是開頭進(jìn)入 計(jì)算領(lǐng)域。所以我們討論計(jì)算,可以系統(tǒng)剖析一下Google的技術(shù)構(gòu)架,這對于我們搭建自己自身的計(jì)算平臺有比擬好的借鑒意義和標(biāo)桿意義!二、Google的整體技術(shù)構(gòu)架說明由于Google沒有官方發(fā)布一個自身的技術(shù)構(gòu)架說明。本文主要的信息都來自互聯(lián)

19、網(wǎng)中對于Google 網(wǎng)絡(luò)技術(shù)構(gòu)架的分析,大量信息來自。Google最大的IT優(yōu)勢在于它能建筑出既富于性價比(并非廉價)又能承受極高負(fù)載的 高性能系統(tǒng)。因此Google認(rèn)為自己與競爭對手,如亞馬遜網(wǎng)站(Amazon)、電子港灣(eBay)、 微軟(Microsoft)和雅虎(Yahoo)等公司相比,具有更大的本錢優(yōu)勢。其IT系統(tǒng)運(yùn)營約為其他互在Google File System(GFS)中,有很多的服務(wù)器,這些服務(wù)器需要選舉其中的一臺作為master servero Value就是master server的地址,GFS就是用Chubby來解決的這個問題,所有的server通過Chubby供

20、應(yīng)的通信合同到Chubby server上創(chuàng)立同一個文件,當(dāng)然,最終 只有一個server能夠獲準(zhǔn)創(chuàng)立這個文件,這個server就成為了 master,它會在這個文件中 寫入自己的地址,這樣其它的server通過讀取這個文件就能知道被選出的master 的地址。Chubby首先是一個分布式的文件系統(tǒng)。Chubby能夠供應(yīng)機(jī)制使得client可以在Chubbyservice上創(chuàng)立文件和執(zhí)行一些文件的基本操作。說它是分布式的文件系統(tǒng),是由于一個Chubby cell是一個分布式的系統(tǒng)。但是,從更高一點(diǎn)的語義層面上,Chubby 是一個lockservice, 一個針對松耦合的分布式系統(tǒng)的locks

21、erviceo所謂lock service,就是這個service能夠供應(yīng)開發(fā)人員常常用的“鎖”,“解鎖”功能。通過Chubby, 一個分布式系統(tǒng)中的上千個client都能夠 對于某項(xiàng)資源進(jìn)行“加鎖”,“解鎖二Chubby中的“鎖”就是建立文件,在上例中,創(chuàng)立文件其實(shí)就是進(jìn)行“加鎖”操作,Page 16創(chuàng)立文件勝利的那個server其實(shí)就是搶占到了 “鎖二用戶通過翻開、關(guān)閉和讀取文件,獲 取共享鎖或者獨(dú)占鎖;并且通過通信機(jī)制,向用戶發(fā)送更新信息。11、Google消息序列處理系統(tǒng)Google WorkqueueGWQ (Google Workqueue)系統(tǒng)是負(fù)責(zé)將Mapreduce的工作任務(wù)

22、支配各個各個計(jì)算 單位的(Cell/Cluster)。仲裁(進(jìn)程優(yōu)先級)附表,安排資源,處理故障,報告狀況,提供的 結(jié)果- 通常隊(duì)列掩蓋在GFS上的。消息隊(duì)列處理系統(tǒng)可以同時管理數(shù)萬服務(wù)器。通過API 接口和命令行可以調(diào)動GWQ來進(jìn)行工作。12、Google 的開發(fā)工具。除了傳統(tǒng)的C+和Javao還開頭大量使用PythonoPython是一種面對對象、直譯式計(jì)算機(jī)程序設(shè)計(jì)語言,也是一種功能強(qiáng)大而完善的通 用型語言,已經(jīng)具有十多年的進(jìn)展歷史,成熟且穩(wěn)定。這種語言具有特別簡捷而清楚的語法 特點(diǎn),適合完成各種高層任務(wù),幾乎可以在全部的操作系統(tǒng)中運(yùn)行。Python可能被粗略地分類為“腳本語言”(Scr

23、ipt Language),但實(shí)際上一些大規(guī)模軟件開發(fā)方案例如Zope、Mnet的支持者較開發(fā)方案例如Zope、Mnet的支持者較BitTorrent, Google 也廣泛地使用它。Python喜愛稱它為一種高級動態(tài)編程語言,緣由是“腳本語言”泛指僅作簡潔編程任務(wù)的語言,如shell script、JavaScript等只能處理簡潔任務(wù)的編程語言,并不能與Python相提并論。此外,由于Python 對于C和其他語言的良好支持,很多人還把Python作為一種“水語言”(Glue Language)使用。使用Python 將其他語言編寫的程序進(jìn)行集成和封裝。在Google內(nèi)部的很多工程使用C+

24、編寫性能要求極高的局部,然后用Python調(diào)用相應(yīng)的模塊。Sawzall,為了是內(nèi)部的工程師和程序人員可以更便利的適應(yīng)并行計(jì)算的方式,Google自己開發(fā)的一種查詢語言,Sawzall是一種類型平安的腳本語言。由于Sawzall自身處理了 很多問題,所以完成相同功能的代碼就簡化了特別多與MapReduce的C+代碼相比簡化了 10倍不止。Page 17四、借鑒與總結(jié)從Google的整體的技術(shù)構(gòu)架來看,Google計(jì)算系統(tǒng)依舊是邊做科學(xué)討論,邊進(jìn)行商業(yè)部署,依靠系統(tǒng)冗余和良好的軟件構(gòu)架來低本錢的支撐浩大的系統(tǒng)運(yùn)作的。大型的并行計(jì)算,超大規(guī)模的IDC快速部署,通過系統(tǒng)構(gòu)架來使廉價PC服務(wù)器具有超過

25、大型機(jī)的穩(wěn)定性都已經(jīng)不在是科學(xué)試驗(yàn)室的故事,已經(jīng)成為了互聯(lián)網(wǎng)時代,IT企業(yè)獲得 核心競爭力進(jìn)展的基石。Google在應(yīng)對互聯(lián)網(wǎng)海量數(shù)據(jù)處理的壓力下,充分借鑒了大量開源代碼,大量借鑒了其他討論機(jī)構(gòu)和專家的思路,走了一條差異化的技術(shù)道路,構(gòu)架自己的有創(chuàng)新性的計(jì)算平 臺。從Google這樣互聯(lián)網(wǎng)企業(yè)可以看到,基于Linux系統(tǒng)的開源代碼的方式,讓企業(yè)可以 不收到商業(yè)軟件系統(tǒng)的限制,可以自主進(jìn)行二次、定制開發(fā)。而這種能充分采用社會資源, 并依據(jù)自己的力量進(jìn)行定制化的系統(tǒng)設(shè)計(jì)最終將會成為互聯(lián)網(wǎng)企業(yè)之間的核心競爭力。聯(lián)網(wǎng)公司的60%左右。同時Google程序員的效率比其他Web公司同行們高出50%100%

26、,緣由是Google 已經(jīng)開發(fā)出了一整套專用于支持大規(guī)模并行系統(tǒng)編程的定制軟件庫。從整體來看,Google的計(jì)算平臺包括了如下的技術(shù)層次。1)網(wǎng)絡(luò)系統(tǒng):包括外部網(wǎng)絡(luò)(Exterior Network),這個外部網(wǎng)絡(luò)并不是指運(yùn)營商自己的骨干網(wǎng),也是指在Google計(jì)算服務(wù)器中心以外,由Google自己搭建的由于不同地區(qū)/國家,不同應(yīng)用之間的負(fù)載平衡的數(shù)據(jù)交換網(wǎng)絡(luò)。內(nèi)部網(wǎng)絡(luò)(Interior Network),連接各個Google 自建的數(shù)據(jù)中心之間的網(wǎng)絡(luò)系統(tǒng)。2)硬件系統(tǒng):從層次上來看,包括單個服務(wù)器、整合了多服務(wù)器機(jī)架和存放、連接各個服務(wù)器機(jī)架的數(shù)據(jù)中心(IDC)。3)軟件系統(tǒng):包括每個服務(wù)器

27、上面的安裝的單機(jī)的操作系統(tǒng)經(jīng)過修改過的Redhat LinuxoGoogle計(jì)算底層軟件系統(tǒng)(文件系統(tǒng)GFS、并行計(jì)算處理算法Mapreduce并行數(shù)據(jù)庫Bigtable,并行鎖服務(wù)Chubby Lock,計(jì)算消息隊(duì)列GWQ )Google內(nèi)部使用的軟件開發(fā)工具Python Java C+Page 3Google 自己開發(fā)的應(yīng)用軟件 Google Search Google Email Google Earth三、Google各個層次技術(shù)介紹1、Google外部網(wǎng)絡(luò)系統(tǒng)介紹當(dāng)一個互聯(lián)網(wǎng)用戶輸入的時候,這個URL懇求就會發(fā)到Google DNS解析服務(wù)器當(dāng)中去,那么Google的DNS服務(wù)器就會

28、依據(jù)用戶自身的IP地址來推斷,這個用戶懇求是來自那個我國、那個地區(qū)。依據(jù)不同用戶的IP地址信息,解析到不同的Google的數(shù)據(jù)中心。進(jìn)入第一道防火墻,這次防火墻主要是依據(jù)不同端口來推斷應(yīng)用,過濾相應(yīng)的流量。如果僅僅接受 掃瞄器應(yīng)用的訪問,一般只會開放80端口 ,和443端口 s (通過SSL加密)。將其他的來自互聯(lián)網(wǎng)上的非Ipv4/V6非80a43端口的懇求都放棄,避開患病互聯(lián)網(wǎng)上大量的DOS攻擊。據(jù)說Google使用了思杰科技(Citrix Systems)的Netscaler應(yīng)用交換機(jī)來做web應(yīng)用Page 4的優(yōu)化。NetScaler 可將Web應(yīng)用性能加速高達(dá)5倍。使用高級優(yōu)化技術(shù)如動

29、態(tài)緩存時,或者當(dāng)網(wǎng)絡(luò)延遲或數(shù)據(jù)包喪失增大時,性能增益會更高。這里提到的 multiplexting 技術(shù)是可以是進(jìn)行 的每個session 分解開。從不同的后端服務(wù)器(緩存)來獵取 內(nèi)容,這樣可以大大提升web 性能,同時有效降低后端web應(yīng)用服務(wù)器的處理和聯(lián)接壓力。在大量的web應(yīng)用服務(wù)器(Web Server Farm)前,Google使用反向代理(ReverseProxy )的技術(shù)。反向代理(Reverse Proxy )方式是指以代理服務(wù)器來接受internet上的連接懇求, 然后將懇求轉(zhuǎn)發(fā)給內(nèi)部網(wǎng)絡(luò)上的服務(wù)器,并將從服務(wù)器上得到的結(jié)果返回給internet上懇求 連接的客戶端,此時代

30、理服務(wù)器對外就表現(xiàn)為一個服務(wù)器。Google使用的是Squid Cache的軟件方式來實(shí)現(xiàn)反向代理應(yīng)用的,Squid Cache 一個流行的自由軟件(GNU通用公共許可證)的代理服務(wù)器和Web緩存服務(wù)器。Squid有廣泛 的用途,從作為網(wǎng)頁服務(wù)器的前置cache服務(wù)器緩存相關(guān)懇求來提高Web服務(wù)器的速度。在Google web應(yīng)用服務(wù)器需要調(diào)用Google內(nèi)部存儲的信息和資源的時候,在通過一 個防火墻進(jìn)入內(nèi)部的網(wǎng)絡(luò),來訪問其他的基于自身GFS II系統(tǒng)的應(yīng)用服務(wù)和數(shù)據(jù)庫。2、Google內(nèi)部網(wǎng)絡(luò)架構(gòu)介紹Google自己已經(jīng)建設(shè)了跨國的光纖網(wǎng)絡(luò),連接跨地區(qū)、跨我國的高速光纖網(wǎng)絡(luò)。內(nèi)部網(wǎng)絡(luò)已經(jīng)都是

31、Ipv6 的合同在運(yùn)行。網(wǎng)絡(luò)中的路由交換設(shè)施主要還是來自Juniper, Cisco,Foundry, HP這四家公司。內(nèi)部網(wǎng)關(guān)合同(IRP)是基于OSPF(開放式最短路徑優(yōu)先)進(jìn)行修 改Page 5的。在每個服務(wù)器機(jī)架內(nèi)部連接每臺服務(wù)器之間網(wǎng)絡(luò)是100M 以太網(wǎng),在服務(wù)器機(jī)架之間 連接的網(wǎng)絡(luò)是1000M以太網(wǎng)。在每個服務(wù)器機(jī)架內(nèi),通過IP虛擬服務(wù)器(IP Virtual Server)的方式實(shí)現(xiàn)傳輸層負(fù)載 Linux內(nèi)核內(nèi)的平衡,這個就是所謂四層LAN交換。IPVS使一個服務(wù)器機(jī)架中的眾多服務(wù)成為基 于Linux內(nèi)核虛擬服務(wù)器。這就像在一堆服務(wù)器前安裝一個負(fù)載均衡的服務(wù)器一樣。當(dāng)TCP/UD

32、P的懇求過來后,使一服務(wù)器可以使用一個單一的IP地址來對外供應(yīng)相關(guān)的服務(wù) 支撐。3、Google的大規(guī)模IDC部署戰(zhàn)略Google應(yīng)當(dāng)是目前世界上存儲信息最多的企業(yè)了。而且還在始終不斷的致力于將傳統(tǒng) 信息僅可能的數(shù)字化。將這樣海量的信息進(jìn)行存儲、進(jìn)行處理。就需要大量的計(jì)算機(jī)服務(wù)器。 為了滿意不斷增長的計(jì)算需求。Google很早就進(jìn)行了全球的數(shù)據(jù)中心的布局。由于數(shù)據(jù)中 心運(yùn)行后,面臨的幾個關(guān)鍵問題的就是充分電力供應(yīng)、大量服務(wù)器運(yùn)行后的降溫排熱和足夠 的網(wǎng)絡(luò)帶寬支持。所以Google在進(jìn)行數(shù)據(jù)中心布局的時候,就是依據(jù)互聯(lián)網(wǎng)骨干帶寬和電 力網(wǎng)的核心節(jié)點(diǎn)進(jìn)行部署的,盡快考慮在河邊和海邊,想方法通過引入自然水流的方式來降 低降溫排熱的本錢。達(dá)拉斯(Dalles)是美國俄勒岡州北部哥倫比

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論