Facebook是如何存儲(chǔ)每天20億張照片的?
臉書(shū)龐大的帝國(guó)需要存儲(chǔ)的數(shù)據(jù)不斷爆炸 。比如現(xiàn)在每天要分享20億張照片,而且需求還在增加,只有不斷建設(shè)和擴(kuò)大存儲(chǔ)和數(shù)據(jù)中心才能滿足 。
我們之前多次介紹過(guò)臉書(shū)的數(shù)據(jù)中心(見(jiàn)揭秘臉書(shū)新數(shù)據(jù)中心,再探臉書(shū)數(shù)據(jù)中心),包括俄勒岡州的普林維爾、北卡羅來(lái)納州的森林、瑞典的盧萊歐、愛(ài)荷華州的阿爾圖納等 。不僅如此,臉書(shū)還用自己的技術(shù)建造了它,并開(kāi)放這一經(jīng)驗(yàn)與大家分享 。最先進(jìn)的是最新的Altuna數(shù)據(jù)中心,它使用由廉價(jià)交換機(jī)組成的網(wǎng)狀連接交換架構(gòu)來(lái)提高性能 。臉書(shū)稱(chēng)之為下一代數(shù)據(jù)中心-數(shù)據(jù)中心結(jié)構(gòu) 。
上述解決方案在提高網(wǎng)絡(luò)性能、降低成本和提高數(shù)據(jù)中心能效方面發(fā)揮了關(guān)鍵作用 。然而,不斷增長(zhǎng)的存儲(chǔ)需求是沒(méi)有辦法的,臉書(shū)需要研究其他對(duì)策 。最近,臉書(shū)披露了其冷藏系統(tǒng)如何解決這個(gè)問(wèn)題 。
顧名思義,冷庫(kù)存儲(chǔ)不常用的數(shù)據(jù),比如幾年前的歷史數(shù)據(jù) 。對(duì)于歷史數(shù)據(jù),傳統(tǒng)的解決方案是使用磁帶庫(kù)、光盤(pán)等廉價(jià)介質(zhì)來(lái)存儲(chǔ),但這種介質(zhì)的缺點(diǎn)是訪問(wèn)速度太慢 。谷歌不久前推出的云存儲(chǔ)服務(wù)GoogleCloudStorageNearline很好地解決了這個(gè)問(wèn)題 。
設(shè)計(jì)原則
然而,臉書(shū)團(tuán)隊(duì)決定從一個(gè)新的角度來(lái)看待這個(gè)問(wèn)題 。他們從頭開(kāi)始,以端到端的方式重新設(shè)計(jì)了軟件和硬件 。
1)節(jié)能降耗
在這個(gè)以存儲(chǔ)為核心的冷庫(kù)系統(tǒng)中,存儲(chǔ)資源按需啟動(dòng),并放棄冗余的發(fā)電機(jī)或備用電池來(lái)提高能效 。因?yàn)槔鋷?kù)使用的是低端商用硬盤(pán),硬件限制要求命令批處理要非常小心,犧牲時(shí)間延遲換取效率 。它對(duì)物理磁盤(pán)的訪問(wèn)是基于未能控制硬盤(pán)占空比之間的平均時(shí)間 。
2)智能管理
因?yàn)闉榱耸‰姾徒档统杀痉艞壛舜龣C(jī)電源,所以要求軟件能夠隨時(shí)應(yīng)對(duì)哪怕是最小的電源中斷,避免數(shù)據(jù)丟失 。
此外,數(shù)據(jù)應(yīng)該是持久的,并確保其完整性 。為了保證耐久性,系統(tǒng)設(shè)計(jì)的各個(gè)方面都要考慮耐久性,消除單點(diǎn)故障,用盡可能少的步驟恢復(fù)整個(gè)系統(tǒng) 。冷存儲(chǔ)即使是多帶帶管理元數(shù)據(jù)的系統(tǒng)也是可選的 。也就是說(shuō),數(shù)據(jù)本身是可以自我描述的,不需要外部協(xié)助就可以輔助恢復(fù) 。這樣做的原因是,在其他系統(tǒng)出現(xiàn)數(shù)據(jù)丟失的情況下,冷庫(kù)是最后一道防線 。
3)面向未來(lái)
考慮到臉書(shū)的數(shù)據(jù)設(shè)計(jì),我們也需要考慮未來(lái) 。當(dāng)許多系統(tǒng)的規(guī)模擴(kuò)大或利用率提高時(shí),許多系統(tǒng)的性能往往會(huì)下降或出錯(cuò),因此在一開(kāi)始設(shè)計(jì)這個(gè)臉書(shū)系統(tǒng)時(shí),應(yīng)該考慮如何避免這個(gè)問(wèn)題 。
普林維爾臉書(shū)的冷藏設(shè)施 。
基于上述考慮,臉書(shū)在普林維爾和森林建立了兩個(gè)冷藏系統(tǒng),存儲(chǔ)了數(shù)百千兆字節(jié)(100萬(wàn))的數(shù)據(jù) 。然而,如此高的容量,其能耗僅為傳統(tǒng)存儲(chǔ)解決方案的1/4 。而且,與一般系統(tǒng)不同,這種系統(tǒng)的性能不會(huì)隨著規(guī)模的擴(kuò)大而下降 。相反,系統(tǒng)越大,性能越好 。最后值得注意的是,臉書(shū)的存儲(chǔ)系統(tǒng)采用了非常經(jīng)濟(jì)高效的冗余備份方式,可以實(shí)現(xiàn)系數(shù)低于2的數(shù)據(jù)冗余 。從以上幾點(diǎn)來(lái)看,作為一個(gè)半在線半離線的倉(cāng)儲(chǔ)系統(tǒng),冷庫(kù)表現(xiàn)出非常理想的特點(diǎn) 。當(dāng)然,如果你想充分利用這個(gè)系統(tǒng),你需要臉書(shū)開(kāi)放計(jì)算系統(tǒng)的其他組件的配合,比如開(kāi)放機(jī)架、網(wǎng)絡(luò)、數(shù)據(jù)中心等 。對(duì)于普通人來(lái)說(shuō),學(xué)習(xí)并不容易 。
冷庫(kù)系統(tǒng)是基于OpenVault存儲(chǔ)的 。這是專(zhuān)為開(kāi)放式機(jī)架(開(kāi)放式計(jì)算機(jī)架標(biāo)準(zhǔn))設(shè)計(jì)的簡(jiǎn)單高效的存儲(chǔ)解決方案 。它采用模塊化的輸入輸出拓?fù)?。2U機(jī)架可以容納30個(gè)硬盤(pán)(每個(gè)托盤(pán)15個(gè)硬盤(pán),水平放置而不是垂直放置),并且?guī)缀蹩梢耘c任何服務(wù)器互操作 。冷庫(kù)是在這樣一套高密度JBOD(只是一堆磁盤(pán),只是一堆磁盤(pán))存儲(chǔ)的基礎(chǔ)上進(jìn)行改造的 。
冷藏架
硬盤(pán)按需啟動(dòng),電耗降到1/4
降低功耗是系統(tǒng)最初的設(shè)計(jì)目標(biāo)之一 。據(jù)介紹,該系統(tǒng)功耗極低,降低到傳統(tǒng)數(shù)據(jù)中心的1/6 。手段之一就是用空間換取消費(fèi)減少 。數(shù)據(jù)中心占地面積非常大,每個(gè)數(shù)據(jù)大廳滿負(fù)荷可支持1000PB的存儲(chǔ)容量 。未來(lái)隨著單盤(pán)容量的增加,其存儲(chǔ)規(guī)模可以進(jìn)一步擴(kuò)大 。
同時(shí),由于冷庫(kù)系統(tǒng)存儲(chǔ)的是歷史數(shù)據(jù),而不是活躍的生產(chǎn)數(shù)據(jù),因此臉書(shū)還取消了冗余電力系統(tǒng)(不間斷電源、發(fā)電機(jī)、備用電池等) 。),從而進(jìn)一步提高能效 。
在機(jī)架內(nèi)部,每2U放置30個(gè)硬盤(pán),電源插頭盒放置在中間位置 。
為了盡可能降低能耗,ColdStorage允許服務(wù)器在沒(méi)有硬盤(pán)的情況下啟動(dòng),然后軟件控制繁忙 。
閑度 。不過(guò)這樣就要求對(duì)Open Vault存儲(chǔ)規(guī)范進(jìn)行修改 。其最大的改動(dòng)是每次只允許每托盤(pán)有一塊硬盤(pán)上電 。為了避免軟件bug錯(cuò)將所有硬盤(pán)上電導(dǎo)致數(shù)據(jù)中心保險(xiǎn)燒壞,F(xiàn)acebook甚至還專(zhuān)門(mén)修改了硬盤(pán)驅(qū)動(dòng)器的固件 。此外,由于不必每次都要給所有硬盤(pán)供電,每個(gè)存儲(chǔ)節(jié)點(diǎn)散熱風(fēng)扇的數(shù)量也從6個(gè)降到了4個(gè),供電機(jī)框數(shù)從3個(gè)降到了1個(gè),供電單元數(shù)從7個(gè)降到了5個(gè),Open Rack機(jī)架母線數(shù)特從3條降到了1條 。這樣的調(diào)優(yōu)令機(jī)架的存儲(chǔ)密度大大增加,每機(jī)架可容納2PB的存儲(chǔ)容量(4TB硬盤(pán)),與傳統(tǒng)存儲(chǔ)服務(wù)器相比,其耗電只有后者的1/4 。
推薦閱讀
- 善璉湖筆是哪兒的特產(chǎn)嗎?善璉湖筆介紹
- 羊毛筍燉咸肉是哪兒的特產(chǎn)嗎?羊毛筍燉咸肉介紹
- 梅鱭是哪兒的特產(chǎn)嗎?梅鱭介紹
- 鹽鹵豆腐是哪兒的特產(chǎn)嗎?鹽鹵豆腐介紹
- 震遠(yuǎn)同牛皮糖是哪兒的特產(chǎn)嗎?震遠(yuǎn)同牛皮糖介紹
- 德清毛竹是哪兒的特產(chǎn)嗎?德清毛竹介紹
- 芽麥塌餅是哪兒的特產(chǎn)嗎?芽麥塌餅介紹
- 死皮怎么越剪越多怎么去
- 玫瑰酥糖是哪兒的特產(chǎn)嗎?玫瑰酥糖介紹
- 湖羊肉是哪兒的特產(chǎn)嗎?湖羊肉介紹
