SyntaxHighlighter

2008-06-03

一窺Google資料中心的內部作業(下)

ZDNet新聞專區:Stephen Shankland 2008/06/03 14:12:03

Google用BigTable為所有資料提供若干結構。Dean表示,如甲骨文和IBM等商業資料庫在這裡發揮不了多少作用,例如,它們無法以Google所需的規模運作,就算可以,費用也會太高昂。

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

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

利用MapReduce,Google能用相對迅速的時間,建立一個包含"new"、"york"和"restaurants"(紐約餐廳)三個字的所有網頁索引。"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的規模,這些都是困難的挑戰。毫無疑問地,他們將是許多小公司羨慕又景仰的對象。(全文完;陳智文譯)

0 件のコメント:

人気の投稿