Google成功秘密:構(gòu)筑基于PC機(jī)的IT基礎(chǔ)設(shè)施 Google在搜索領(lǐng)域的成功無疑離不開其先進(jìn)的搜索算法,然而在背后卻存在著一些鮮為人知的秘密:其實(shí)Google在運(yùn)行數(shù)據(jù)中心方面的經(jīng)驗(yàn)比其搜索算法更寶貴。 Google并沒有耗資能夠數(shù)千萬甚至上億美元的資金來購買昂貴的設(shè)備,而是僅有數(shù)百萬美元購置的廉價(jià)計(jì)算機(jī)來構(gòu)筑其基礎(chǔ)設(shè)施。通過研究硬件成本,Google的技術(shù)人員發(fā)現(xiàn),購買一些高端服務(wù)器的成本要遠(yuǎn)高于數(shù)十臺更簡單的"大眾化"服務(wù)器。 但是購買廉價(jià)服務(wù)器后,難題就在于如何協(xié)調(diào)這些硬件的運(yùn)行,確保一臺計(jì)算機(jī)的故障不會影響到整個系統(tǒng),能正常完成任務(wù)如返回搜索結(jié)果或顯示廣告。 為此Google考慮采用家用PC機(jī),畢竟家用PC因軟件和硬件缺陷而造成的崩潰每3年才會發(fā)生一次。以Google的規(guī)模,如果擁有數(shù)千臺PC,每天有一臺PC崩潰是很正常的。因此,最好是能夠以自動的方式解決這一問題,否則服務(wù)肯定會出現(xiàn)問題。 為此,吸引全球最優(yōu)秀計(jì)算機(jī)頭腦的Google公司已經(jīng)開發(fā)了大量的軟件工具,來完成計(jì)算設(shè)備的安裝。 Google擁有自己的文件系統(tǒng),稱為"Google文件系統(tǒng)",這一系統(tǒng)專門針對處理大型數(shù)據(jù)進(jìn)行了優(yōu)化,它能夠處理64MB大小的數(shù)據(jù)塊。更為重要的是,它能夠應(yīng)付隨時可能發(fā)生的磁盤或網(wǎng)絡(luò)故障。外Google的數(shù)據(jù)被復(fù)制三份,并存放在不同地方,這樣確保萬無一失。憑借這些應(yīng)付故障的措施,PC就完全可以擔(dān)負(fù)互聯(lián)網(wǎng)搜索服務(wù)的重任。 Google數(shù)以千計(jì)的PC服務(wù)器運(yùn)行一種基于Red Hat版本的簡化版Linux,該系統(tǒng)內(nèi)核已經(jīng)針對Google的特殊應(yīng)用進(jìn)行了修改。 Google還設(shè)計(jì)了一種能夠處理大量數(shù)據(jù)而迅速響應(yīng)查詢的系統(tǒng)。Google將整個Web劃分為數(shù)以百萬計(jì)的碎片,以Google的技術(shù)術(shù)語這些碎片被稱為shard,它能在系統(tǒng)出錯的時候被復(fù)制。 Google創(chuàng)建了一個出現(xiàn)在Web上的詞匯索引,而且它還有文檔服務(wù)器存儲著Google現(xiàn)在的頁面。 Google在數(shù)據(jù)中心管理方面另一個重要的技術(shù)創(chuàng)新是編寫出能夠在數(shù)以千計(jì)的服務(wù)器上平滑運(yùn)行的軟件系統(tǒng)。通常情況下,開發(fā)在多個服務(wù)器上并行運(yùn)行的軟件系統(tǒng)需要專門的編程工具和機(jī)巧。 Google的編程工具稱為MapReduce,在系統(tǒng)出錯的情況下,它能自動恢復(fù)整個程序,而這對削減成本至關(guān)重要。從去年開始,Google已經(jīng)開始大規(guī)模使用MapReduce編程工具。 此外,Google還開發(fā)了批量任務(wù)調(diào)度軟件Global Work Queue,能對上百萬的操作進(jìn)行調(diào)度安排。該軟件系統(tǒng)能夠?qū)⑷蝿?wù)分解成許多更小的計(jì)算操作,并將它們分配給各臺計(jì)算機(jī)完成。 為了解決緊急災(zāi)難性問題,Google還準(zhǔn)備了6輛救火車,以應(yīng)對Google數(shù)據(jù)中心發(fā)生的緊急事件。此外,電力成本是Google數(shù)據(jù)中心設(shè)計(jì)中的另一個重要因素。由于采購了更多廉價(jià)計(jì)算設(shè)備,整體功耗就會增加,為此控制電力開支也是Google設(shè)計(jì)數(shù)據(jù)中心必須考慮的一個主要問題。 |
|