2008年6月25日星期三

Google資料中心的秘密



Google提供全球大量的服務,幾乎已經快橫跨整個資訊科技的服務,但是Google資料中心的內部運作一直都是秘而不宣,許多人可能都碰過Google的服務出狀況,但是這些狀況總能在可容忍的範圍內解決,你可能發現你的Gmail的容量一直在改變,是什麼架構讓空間像捏橡皮糖一樣越捏越大?前陣子Google伙伴Jeff Dean在Google I/O會議中稍微揭開了公司基礎設施的神秘面紗。

Google的神秘面紗包括了: (1)軟體 (2)硬體 (3)叢集平行處理機置

Google軟體的三個核心要素:GFS(Google檔案系統)、BigTable和MapReduce演算法。而硬體卻是一般的伺服器、處理器、硬碟、記憶體等等。另一方面伺服器的叢集能在半秒之內回應700至1,000台伺服器的搜尋請求。

根據Google的說法,GFS是"a scalable distributed file system for large distributed data-intensive applications. It provides fault tolerance while running on inexpensive commodity hardware, and it delivers high aggregate performance to a large number of clients". 就是這個GFS的分散式檔案系統,讓Google服務可以隨時長出空間或是切去毀損的部分,而管理這個GFS的機置就是BigTable。目前有超過200個叢集在執行GFS,其中許多都包含數千台主機。

GFS把一塊儲存的資料(通常是64MB),至少放在三台稱為chunkserver的主機內。

如果chunkserver發生故障,Master Server(主伺服器)便負責把資料備份到一個新的地方。至少在儲存層級,主機故障完全由GFS系統處理。

Google到底擁有多少台伺服器?據Dean表示,每個機櫃存放40台伺服器。而根據某項估計,Google目前在全球有36個資料中心,以每個中心有150個機櫃計算,Google的伺服器至少超過20萬台,並且每天都在增加中...下圖就是Google最早期的server rack,當然目前的硬體比這個肯定更驚人了。



Google之所以成為Google,部分原因是他們推翻了電腦界的傳統作法。當所有的超大型資料中心都使用主流伺服器和軟體,Google的資料中心絕大部分是靠本身的技術構建而成。Google把命運操縱在自己手中,共同創辦人Larry Page鼓勵員工"別太相信有什麼不可能的事情"。

要維持如此大規模的運作,也許可以說全世界是卯起來操Google的架構,Google必須對每一台機器抱有一種隨時可犧牲的態度。伺服器製造商喜歡主打他們的高階主機承受故障或當機的能力,但Google寧願把錢投資在容錯軟體上。他們認為擁有兩倍數量但較不可靠的硬體,勝過一半數量但較可靠的硬體。你必須在軟體的層級提供可靠度,如果你有1萬台主機在運作,每天一定會有一些東西掛掉。這個跟我們一般的認知確實有蠻大的差異,我們通常都希望有數量雖少,但功能穩定的機器,而不願意有一大籮筐兩光的機器。

每個新叢集上線的第一年,通常會發生1,000次個別主機的故障,數千次硬碟故障...

一次電力輸送問題,導致500至1,000台主機失效約6小時...

20次機櫃損壞,每次造成40至80台主機下線...

5次機櫃搖晃,導致半數的網路封包在傳送過程中遺失...

整個叢集至少一次重新上線,在兩天之內的任何時間,影響5%的主機...

整個叢集還有一半的機率會過熱,在5分鐘之內讓幾乎所有伺服器當機,並且花上1到2天的時間恢復...

雖然Google用一般硬體組件來組裝其伺服器,但卻不用傳統的封裝,他們要求Intel提供特製的主機板。Google目前在每40台伺服器的機櫃外,包覆一層外殼,而不是每台伺服器有個別的外殼。

Google在2004年開始設計的BigTable,用BigTable為所有資料提供若干結構,目前用在超過70個Google計畫,包括Google Maps、Google Earth、Blogger、Google Print、Orkut和核心搜尋索引。最大的BigTable實用範例管理橫跨數千台主機、約6 PT(petabytes)的資料。

Google在2003寫出第一版的MapReduce,讓該公司有辦法實際發揮那些資料的用處。舉例來說,MapReduce能找出某個特定字彙在Google的搜尋索引中出現的次數、列出所有特定字彙出現的網頁,和連結到某個特定網站的所有網站。

利用MapReduce,Google能用相對迅速的時間,建立一個包含"digital"、"network"和"society"三個字的所有網頁索引。"Dean說:「你必須能夠依序地橫跨數千台主機作業,才能在一個合理的時間內完成這項工作。」

MapReduce軟體在Google內部的應用日漸增加,2004年8月,該軟體執行2.9萬項工作,到2007年9月,已經暴增到220萬項。在這段期間,完成一項工作的平均時間也從634秒降至395秒,而MapReduce的工作產出則從193 terabytes上升到約1.4萬terabytes。Dean說,Google在任何一天都要執行約10萬項MapReduce工作,每一項工作佔用400台伺服器,且需要5到10分鐘完成。

MapReduce就像GFS,是特別設計用來迴避伺服器問題的。Dean表示:「當某台主機故障,主伺服器知道那台機器正在執行什麼工作,將命令其他主機接手那項map工作。你可能影響到100個map工作,但會有100台主機接手那些工作。」

MapReduce的可靠度一度遭到嚴厲的試煉,當時一個1,800台伺服器的叢集正進行維護作業,工作人員一次拔下80台主機的插頭,同時另外1,720台主機必須接下停頓的工作。Dean說:「速度變得有點慢,但工作全部完成。」而在一次2004年的簡報中,一個1,800台叢集的系統,承受了1,600台伺服器同時故障。

所以,Google資料中心的運作似乎如魚得水,一切順利。但該公司還不滿足,列出了一長串待改進的事項。大多數公司都試圖找出如何平順地將工作在伺服器之間轉移,但Google已經超越了那項挑戰,他們要能夠自由、平順,且自動地,將工作在各個資料中心間轉移。

Dean說:「我們下一代的基礎設施要是一個能夠橫跨大區塊主機轉移,而非單一機器的系統。」目前,某些大型的檔案系統具有不同的名稱,如GFS/Oregon和GFS/Atlanta,但他們都是彼此的拷貝。他表示:「我們要一個單一的名稱集。」

Google種種獨創的系統替他們開創了天下,也建立了其他競爭者很難跨過的門檻,但是隨著越來越複雜的環境,Google自己需要解決的問題,肯定挑戰會越來越大。

標籤: , , , , , ,

繼續閱讀:台灣搜尋引擎優化與行銷研究院

2008年6月16日星期一

網路騙術何其多


(可點圖放大, 圖一: 網站看起來很正常, 但其實就是要騙你加入付費)

近日在網路上搜尋一些檔案, 真是被垃圾網站搞得啼笑皆非, 這些垃圾網站提供你任何你搜尋的內容, 你需要建置SOA的Web Services List? 他們有! 你需要Java建立on-the-fly的統計圖表? 他們有! 你需要衣索匹亞的GPS地圖? 他們有!


當然點進去之後, 只有兩種結果: 讓你誤點他們的廣告, 或是誘導你付出幾塊錢美金加入會員, 但這兩種結果都只能算是一種, 就是讓你被騙!

起初還真佩服這些網站, 哇! 什麼東東都有! 但是點進去...先付$4.95, 而且只優惠到月底, 讓你整年無限下載...但是仔細用各種方式評估, 才發現真的好笑到不行!

我們現在來看看這些好笑的網站, 特別打入非常特殊的關鍵字: 老狗與小烏龜
哈哈哈....看看下圖, 還有最新2008版本呢!


(可點圖放大, 圖二: 打入老狗與小烏龜, 哈...還有檔案讓你下載!)

再打入更特殊的關鍵字, 試看看

(可點圖放大, 圖三: 哈...也有檔案讓你下載!)


(可點圖放大, 圖四: 還有德文版的喔!)


(可點圖放大, 圖五: fuck my chair on the street檔案還真多喔, 而且有很多回覆感謝呢!)


(可點圖放大, 圖六: 老狗與小烏龜還有破解版的喔!)

這些網站只要騙你$4.95, 當被騙的人數多時, 真是一筆不小的收入 ...

真是網路騙術何其多, 真的不要太相信網路上的內容, 多培養專業知識, 以防止被騙失金!

標籤: , ,

繼續閱讀:台灣搜尋引擎優化與行銷研究院

2008年6月4日星期三

一群訓練有素的猴子


在之前有一篇文章提到勞力密集的網路科技產業, 這幾天真的很巧, 看到YouTube的網站出現問題, 秀出了這麼一段訊息 ...

500 Internal Server Error
抱歉,發生了錯誤。
我們已調派一群訓練有素的猴子來處理狀況。請將此事件 回報至客戶服務。


YouTube真的太幽默啦, 一群訓練有素的猴子, 不知道被派來處理的工程師做何感想...

說老實話, 搞技術已經20多年, 還真的有種耍猴戲的感覺, 大多時間在處理的事情都是很低層次的問題, 但是這些低層次的問題又都是系統是否能夠正常運作的關鍵

什麼時候才能真正用"訓練有素的猴子"來處理這些雜七雜八的問題? 或什麼時候才能讓這些雜七雜八的問題讓Robot來做?

系統越搞越複雜, 越搞越分散, 常常一個小小的錯誤可以讓一個龐大的系統垮下來 ...

就有這麼一個笑話 ...

在一個龐大的資訊中心, 裡面只有一個人跟一隻狗, 裡面所有運作都已經全部自動化, 這個人的作用就是當自動化出狀況, 需要手動去開關機時, 這個人就去把開關ON或OFF, 而這隻狗幹啥呢?

有人說: 陪這個人吧!

有人說: 當警衛狗吧!

都不是! 這隻狗的作用就是 ....... 看好這個人, 不要讓他隨便去動開關

人的作用如果最後只是用來ON/OFF, 還真悲哀

在還沒變成那麼慘的狀況, 至少還能當隻猴子來用

所以那篇"勞力密集的網路科技產業", 絕對不是蓋你的, 因為我也是這個產業鍊下的一個猴子 ...

標籤: , ,

繼續閱讀:台灣搜尋引擎優化與行銷研究院