日本雅虎用 OpenStack 打造5萬臺VM管理術(shù)
全日本網(wǎng)站流量***的日本雅虎而言,滿足每月650億次的網(wǎng)頁瀏覽量不是太大的問題,更大的困難是瞬間3倍爆量的考驗。日本雅虎網(wǎng)絡(luò)營運總部基礎(chǔ)建設(shè)技術(shù)分部部長伊藤拓矢說,曾觀察到日本發(fā)生地震后,在數(shù)十秒內(nèi),日本雅虎資料中心的網(wǎng)絡(luò)流量瞬間暴增為平時尖峰的3倍,如何事先打造出一套可以應(yīng)付這種瞬間爆量的基礎(chǔ)架構(gòu),正是伊藤拓矢的任務(wù)。
通過資料中心抽象化,提供內(nèi)部穩(wěn)定服務(wù)
因為日本雅虎除了網(wǎng)站服務(wù)外,也提供了不少天氣預(yù)報或防災(zāi)情報的行動App,每當(dāng)遇到地震,許多民眾會透過這類App來查詢***的地震、海嘯等資訊而導(dǎo)致網(wǎng)站流量暴增。而這些都是攸關(guān)人身安全的服務(wù),即使系統(tǒng)處于高負(fù)荷的狀態(tài)下,仍然要確保穩(wěn)定提供服務(wù),伊藤拓矢表示,關(guān)鍵作法就是必須將整座資料中心的資源抽象化。
日本雅虎起初自行開發(fā)了一套IaaS平臺來調(diào)度內(nèi)部服務(wù)所需的運算資源,可提供超過1萬臺虛擬機器的規(guī)模。但因采用了自行開發(fā)的專屬API,很難結(jié)合開源軟體社群的資源。
因此,在2013年時,日本雅虎決定改導(dǎo)入OpenStack來打造內(nèi)部IaaS平臺。過去一年來,日本雅虎OpenStack叢集的規(guī)模也成長了 1倍,部署用的實體機器從2,000臺增加到4,000臺,可提供的虛擬機器數(shù)量也從2.5萬個增加到了5萬個。由于OpenStack軟體上的效能改進(jìn),單柜伺服器所能執(zhí)行的虛擬機器,也從400個提高到單柜2,000個。伊藤拓矢表示,目前1柜OpenStack叢集,抵得上過去6柜采裸機部署的機柜。
日本雅虎目前部署了超過20個OpenStack叢集,總儲存容量達(dá)20PB,可用性能達(dá)到99.996%。日本雅虎還建立了一個10人規(guī)模的 OpenStack維運團(tuán)隊,其中6名開發(fā)者和4名維運人員。為了管理大量OpenStack叢集,甚至還自制了一套小型整合管理平臺。
伊藤拓矢表示,透過OpenStack建立了一個自助式的資料中心資源使用平臺,來提供2千名雅虎員工使用,讓OpenStack團(tuán)隊專注于處理突發(fā)事件。開發(fā)者隨時都可以取得自行申請?zhí)摂M機器,最近甚至連非開發(fā)人員,如分析人員和營業(yè)人員都會用。
不需要透過工程師協(xié)助,這套系統(tǒng)平均每天會自動建立500個新的虛擬機器,不過,其中半數(shù)虛擬機器用不滿一個月就會移除。
他說,這套日本雅虎5萬個虛擬機器的新IaaS平臺,直接使用了龐大社群所開發(fā)的OpenStack來提供基礎(chǔ)功能,不用像過去得自行開發(fā)介接各種虛擬化技術(shù)的特殊API。而Appliance層級的功能則與第三方廠商共同開發(fā),只有內(nèi)部特殊需求的專屬功能才由雅虎開發(fā)人員自制,如內(nèi)部簽核流程或是公司法的特殊需求。
伊藤拓矢表示,使用OpenStack的好處是,可以使用一套統(tǒng)一的API,來管理多種虛擬化平臺,甚至能管理Container。更重要的是能將資料中心的硬體抽象化,使用者不再需要為了效能調(diào)校而費心研究所用的硬體設(shè)備,而是可以專注于開發(fā)服務(wù)。
不過,他提醒,使用OpenStack建立虛擬機器要有用完即丟的概念。以日本雅虎為例,導(dǎo)入OpenStack時要克服的***問題,反而是要求開發(fā)人員拋掉過去執(zhí)行程式的習(xí)慣,不是要想辦法調(diào)校出一個能夠***使用的系統(tǒng)環(huán)境,而是要懂得善用替換成本很低的虛擬機器。 「每次建立新的虛擬機器就是一個全新的執(zhí)行環(huán)境,使用完畢后就刪除,需要的時候再重新建立?!顾f。
這個用完即丟的思維也有助于降低成本。伊藤拓矢表示,以現(xiàn)在日本雅虎使用的運算資源來說,用OpenStack自建私有云,比起使用公有云服務(wù)減少了97%的成本。但是服務(wù)取得越方便,也越容易造成浪費,因此,雅虎會透過OpenStack的帳務(wù)機制來計算使用者所使用虛擬機器的時數(shù),來教育使用者要具備成本意識, 養(yǎng)成虛擬機器不用時就釋出的習(xí)慣。
叢集版本不用更新,直接砍掉重練
OpenStack更新頻繁,1年中改版2次的快節(jié)奏,讓不少采用的企業(yè)直呼吃不消,甚至干脆選擇不更新,而日本雅虎以資料中心生命周期管理版本,也同樣借鏡用完即丟的思維,來解決這個困擾許多企業(yè)的問題。
日本雅虎在資料中心內(nèi),同時部署了4種版本的OpenStack叢集,每一個版本各所提供的虛擬機器數(shù)量約各占總量的四分之一。當(dāng) OpenStack要推出新版時,他們會有計畫地全部移除最舊版本叢集上的虛擬機器,再重新安裝***版本,因此一個OpenStack版本在日本雅虎資料中心的壽命大約是兩年。
伊藤拓矢解釋,例如他們原先在資料中心部署了Havana、Icehouse、Kilo以及Juno等4種版本的叢集,等到Havana版叢集上的虛擬機器都關(guān)閉后,再將該叢集的軟體重新安裝為還未發(fā)表正式版的Liberty版本。
不僅不擔(dān)心OpenStack快速改版的步調(diào),伊藤拓矢甚至非??隙∣penStack的改版作法,「有新版本,才有新功能可用?!顾f。透過資料中心分區(qū)升級的策略,日本雅虎也能積極采用新版,甚至在正式版釋出前,從Beta 2版本就會開始導(dǎo)入,先用于維運團(tuán)隊的內(nèi)部測試。例如,伊藤拓矢已經(jīng)開始試用今年10月才會正式發(fā)布的Liberty版本,他個人最推薦的新功能是共享檔案系統(tǒng)服務(wù)Manila,由于日本雅虎近期有類似儲存服務(wù)的計畫,這個套件則符合日本雅虎的需求。
日本雅虎采資料中心生命周期管理策略,采分區(qū)分版安裝的作法,來進(jìn)行OpenStack叢集的版本控管,資料中心伺服器分成4區(qū),各安裝不同版本的OpenStack,要導(dǎo)入新版時,直接將最舊版本叢集內(nèi)所有伺服器整批直接改裝新版本。
原文鏈接:http://www.yseeker.com/archives/12699.html?utm_source=tuicool