鵝廠存儲往事
▉?QZone告急,臨危受命
2005年,是中國第二次互聯(lián)網(wǎng)浪潮的發(fā)始之年。剛剛從破碎泡沫中走出的互聯(lián)網(wǎng)產(chǎn)業(yè),逐漸迎來了“web 2.0”時(shí)代。
這個(gè)時(shí)代的特征,就是去中心化、開放和共享。
越來越多的互聯(lián)網(wǎng)用戶,開始以興趣為聚合點(diǎn),組成社群,分享生活,發(fā)表觀點(diǎn)。他們積極參與話題討論,渴望獲得關(guān)注和認(rèn)同。
在這樣的背景下,社交網(wǎng)絡(luò)應(yīng)用開始迅速崛起。最具代表性的,就是騰訊推出的QQ空間(QZone)。
QQ空間,作為“展示自我和與他人互動的平臺”,推出之后獲得了極好的反饋,用戶數(shù)量快速增長,平臺活躍度不斷攀升。
根據(jù)當(dāng)時(shí)的數(shù)據(jù)統(tǒng)計(jì),QQ空間上線的3個(gè)季度,注冊用戶數(shù)就突破了5000萬,月活躍用戶數(shù)約2300萬,日訪問人數(shù)超過1300萬。
用戶數(shù)量的增長,意味著內(nèi)容的增長。當(dāng)時(shí),用戶在QQ空間上傳的海量圖片、文件、頭像等UGC數(shù)據(jù),對騰訊的存儲能力提出了巨大的考驗(yàn)。
當(dāng)時(shí)的騰訊,并沒有統(tǒng)一的存儲產(chǎn)品和技術(shù)平臺,各個(gè)業(yè)務(wù)部門都是自建存儲系統(tǒng),自給自足。
這種方式,對于QQ空間這種爆款產(chǎn)品來說,顯然是無法滿足要求。它帶來的直接后果就是,空間開啟速度越來越慢,用戶體驗(yàn)越來越差,投訴也越來越多。
當(dāng)時(shí),業(yè)務(wù)團(tuán)隊(duì)購買存儲服務(wù)器的速度,根本趕不上用戶增長的速度。
最典型的例子,就是那時(shí)候QQ空間只允許所有用戶每天上傳800萬張圖片,只有黃鉆用戶才可以無限上傳。
與此同時(shí),競爭對手窺覷QQ空間的業(yè)務(wù)增長,很快推出了相應(yīng)的競品,意圖趁機(jī)搶奪用戶。
內(nèi)憂外患之下,一支新成立的年輕團(tuán)隊(duì)站了出來,勇挑重?fù)?dān)。
這個(gè)團(tuán)隊(duì),就是后來被譽(yù)為騰訊公司內(nèi)部“黃埔軍?!?/strong>的存儲技術(shù)團(tuán)隊(duì)。團(tuán)隊(duì)的首任組長,就是現(xiàn)在的集團(tuán)副總裁姚星。
團(tuán)隊(duì)成立之后的首要任務(wù),就是解決QQ空間發(fā)展所帶來的存儲瓶頸問題。
當(dāng)時(shí),面對海量數(shù)據(jù)存儲的難題,不僅是國內(nèi),就連海外也沒有什么可供參考的成熟經(jīng)驗(yàn)。唯一可供存儲技術(shù)團(tuán)隊(duì)借鑒的,就是此前谷歌公司發(fā)表的那幾篇關(guān)于BigTable、GFS和MapReduce的論文。
如果稍微了解一點(diǎn)大數(shù)據(jù)知識,就會知道,這幾篇論文是海量數(shù)據(jù)存儲技術(shù)的經(jīng)典之作。谷歌作為一家搜索引擎公司,當(dāng)時(shí)的主要目的,是從昂貴的企業(yè)級存儲轉(zhuǎn)向大規(guī)模廉價(jià)分布式存儲,以更低的成本,滿足搜索引擎業(yè)務(wù)的需求。
這個(gè)目的,顯然和騰訊存儲技術(shù)團(tuán)隊(duì)是一致的。
借鑒經(jīng)驗(yàn)之后,也是團(tuán)隊(duì)成立的第二年,他們就上線了自主研發(fā)的TFS存儲系統(tǒng),全面接管了QQ空間的相冊業(yè)務(wù)。
TFS系統(tǒng)上線之后,雖然緩解了業(yè)務(wù)部門的存儲壓力,但并沒有徹底解決問題。當(dāng)時(shí),系統(tǒng)仍然會出現(xiàn)比較高的延遲,影響用戶的體驗(yàn)。
高延時(shí)的原因,主要是因?yàn)橄鄡詷I(yè)務(wù)和搜索引擎業(yè)務(wù)之間存在區(qū)別。相冊業(yè)務(wù)中,圖片的數(shù)據(jù)體量更小,索引密集度更高,所以難度更大,完全照搬搜索引擎模式并不可行。
于是,存儲技術(shù)團(tuán)隊(duì)在TFS系統(tǒng)基礎(chǔ)上進(jìn)行持續(xù)改進(jìn),推出了適合不同圖片存儲場景的系統(tǒng)。其中包括支持實(shí)時(shí)回收的CTFS系統(tǒng)、基于HDD的鍵值對TDB存儲平臺等。
終于,在持續(xù)的改進(jìn)下,存儲技術(shù)團(tuán)隊(duì)徹底解決了QQ空間的存儲瓶頸問題。
2009年,QQ空間成為排在網(wǎng)絡(luò)游戲之后的騰訊第二大收入貢獻(xiàn)部門,并且獲得了該年度的騰訊合作文化獎。
這個(gè)成績的背后,存儲技術(shù)團(tuán)隊(duì)功不可沒。

2009年騰訊存儲技術(shù)團(tuán)隊(duì)合影
2009年,SNS游戲QQ農(nóng)場正式推出,掀起了全民偷菜的熱潮。當(dāng)時(shí),農(nóng)場的訪問量巨大,在每秒數(shù)萬的并發(fā)訪問下,騰訊的底層存儲系統(tǒng)的延時(shí)和請求吞吐壓力非常大,服務(wù)器數(shù)度崩潰。
當(dāng)時(shí)的騰訊,基本上把公司所有閑置服務(wù)器都用在QQ農(nóng)場上,但仍遠(yuǎn)遠(yuǎn)不夠,需要大量采購服務(wù)器。
存儲技術(shù)團(tuán)隊(duì)一方面瘋狂擴(kuò)容設(shè)備,另一方面基于數(shù)據(jù)規(guī)模不太大但是訪問量極高的業(yè)務(wù)特點(diǎn),快速研發(fā)了全內(nèi)存的分布式存儲系統(tǒng)。在保障數(shù)據(jù)安全可靠的前提下,系統(tǒng)的并發(fā)訪問性能得到極大提升。
快速上線、快速驗(yàn)證、完全自研,存儲技術(shù)團(tuán)隊(duì)“hold”住了局面,再立大功。
第一階段使命的完成,使得存儲技術(shù)團(tuán)隊(duì)積累了豐富的經(jīng)驗(yàn)。團(tuán)隊(duì)成員的架構(gòu)設(shè)計(jì)能力和開發(fā)能力也得到了充分的鍛煉。
很快,他們又迎來了一項(xiàng)新的挑戰(zhàn)。這次遇到的,是帶寬問題。
2011年,在QQ相冊等大體量業(yè)務(wù)快速增長的刺激下,騰訊的數(shù)據(jù)存儲量達(dá)到了50PB。
這是一個(gè)標(biāo)志性的事件。
當(dāng)時(shí),騰訊所有的數(shù)據(jù)中心都在深圳。那時(shí)候骨干網(wǎng)絡(luò)的帶寬很小,QQ相冊高峰時(shí)占用40-50Gbps,而1G的流量對公司的網(wǎng)絡(luò)就已經(jīng)是很大的負(fù)擔(dān)了。
于是,騰訊必須將海量的業(yè)務(wù)數(shù)據(jù)分散到全國各地,緩解訪問帶寬的壓力,同時(shí)降低成本。
存儲平臺當(dāng)時(shí)啟動了相冊一通點(diǎn)等項(xiàng)目,海量業(yè)務(wù)數(shù)據(jù)開始從深圳向西安、杭州、廣州、上海等地?cái)?shù)據(jù)遷移,訪問帶寬也同時(shí)調(diào)度到天津、南京、東莞等成本更低的一通機(jī)房。
當(dāng)時(shí)存儲技術(shù)團(tuán)隊(duì)搬遷的第一臺設(shè)備,數(shù)據(jù)量是100TB。在現(xiàn)在看來,100TB并不是很大,但是當(dāng)時(shí)已經(jīng)是騰訊有史以來最大的一次數(shù)據(jù)搬遷了。
更讓人意料之外的是,存儲團(tuán)隊(duì)搬遷這些數(shù)據(jù)的方法,并不是通過專線(因?yàn)榕掠绊懝菊I(yè)務(wù)),而是通過后半夜閑時(shí)的公網(wǎng)出口。他們采用螞蟻搬家式的數(shù)據(jù)遷移方法,一點(diǎn)一點(diǎn)把數(shù)據(jù)拷貝到異地?cái)?shù)據(jù)中心。
后來,隨著數(shù)據(jù)遷移工作的逐步完成,騰訊存儲網(wǎng)絡(luò)的帶寬壓力明顯緩解,成本也得到了有效控制。
到了2015年左右,騰訊存儲技術(shù)團(tuán)隊(duì)又迎來了一個(gè)新的問題——數(shù)據(jù)太多了。
那時(shí)候,騰訊的數(shù)據(jù)總量逐漸到了500PB的量級。隨著時(shí)間的推移,此前用戶上傳的大量數(shù)據(jù),都成了冷數(shù)據(jù)。所謂冷數(shù)據(jù),就是很少去讀取的數(shù)據(jù)。
這些冷數(shù)據(jù)占用了大量的存儲空間,為了容災(zāi),還進(jìn)行多重備份,更加消耗資源。
于是,存儲技術(shù)團(tuán)隊(duì)就開始做分級存儲。他們優(yōu)化了系統(tǒng)的分布式存儲架構(gòu),研發(fā)BTFS平臺,把數(shù)據(jù)從三副本降到1.33份的糾刪存儲。他們將QQ相冊、微云,郵件附件等產(chǎn)品中的歷史數(shù)據(jù)放到BTFS里面去,以此來降低存儲成本。
除此之外,他們還在數(shù)據(jù)訪問量不大的存儲服務(wù)器上做虛擬化,利用空閑的CPU資源跑計(jì)算負(fù)載,例如圖片的編解碼等,充分提升資源的利用率。
在QQ空間之后,騰訊TFS系統(tǒng)逐漸開始為QQ、郵箱、微云等提供存儲服務(wù),成為整個(gè)騰訊的基礎(chǔ)數(shù)據(jù)存儲平臺。
2013年,騰訊正式發(fā)布了微信,開啟了新一輪的移動社交網(wǎng)絡(luò)大戰(zhàn)。微信的數(shù)據(jù)存儲需求,同樣依賴于TFS系統(tǒng)。

用戶使用微信,除了文字之外,還會發(fā)送海量的圖片、音頻、視頻,甚至紅包。這些操作全部離不開對存儲系統(tǒng)的讀寫。發(fā)朋友圈也是一樣,背后離不開存儲系統(tǒng)的支持。
2014年的春節(jié),用戶數(shù)快速增長的微信,以及它背后的TFS,迎來了一場載入中國互聯(lián)網(wǎng)發(fā)展史冊的大考——有史以來第一次的紅包大戰(zhàn)。這場大戰(zhàn)當(dāng)時(shí)有800萬用戶參與,業(yè)務(wù)團(tuán)隊(duì)和存儲技術(shù)團(tuán)隊(duì)感受到了前所未有的壓力。
壓力最大的時(shí)刻,就是大年三十晚上12點(diǎn)那個(gè)時(shí)間段,數(shù)以億計(jì)的用戶會發(fā)送祝福,造成井噴級的高并發(fā)數(shù)據(jù)讀寫需求。如果系統(tǒng)能力不足以應(yīng)對,就會全面崩潰,影響用戶體驗(yàn),損害騰訊和微信在用戶心中的形象,失去用戶的信賴。
為了應(yīng)對這種情況,存儲技術(shù)團(tuán)隊(duì)對系統(tǒng)進(jìn)行了能力深度挖潛,竭盡全力將磁盤的讀寫能力開發(fā)到極致。與此同時(shí),他們聯(lián)合微信團(tuán)隊(duì)制定了各種柔性策略,開發(fā)了很多定制化的服務(wù),也專門開發(fā)了服務(wù)于微信業(yè)務(wù)的系統(tǒng)。最終,他們承受住了考驗(yàn),涉險(xiǎn)過關(guān)。
后來,到了2015年春節(jié),微信月活躍用戶達(dá)到5億,激烈的紅包大戰(zhàn)再次打響。這次,積累了豐富經(jīng)驗(yàn)的存儲技術(shù)團(tuán)隊(duì)胸有成竹,交上了更完美的答卷。
▉ 業(yè)務(wù)開放,發(fā)力B端
隨著騰訊存儲系統(tǒng)的不斷成熟,加之2012年之后逐漸開始的云計(jì)算趨勢,騰訊開始考慮將TFS存儲業(yè)務(wù)面向外部開放,服務(wù)第三方業(yè)務(wù),爭奪B端企業(yè)用戶市場。
初期騰訊云基于已有的存儲訪問接口和平臺架構(gòu)對外提供服務(wù)。經(jīng)過一段時(shí)間的運(yùn)營,騰訊云發(fā)現(xiàn)外部第三方業(yè)務(wù)在體驗(yàn)、可用性、成本等諸多運(yùn)營方面有極高的要求。
因此,為支撐云的需求場景,騰訊云對存儲的接入層和索引層架構(gòu)進(jìn)行重構(gòu),架構(gòu)扁平,模塊精簡。同時(shí),騰訊云存儲開始舍棄私有接口,轉(zhuǎn)為兼容AWS S3接口與功能。
重構(gòu)后,存儲架構(gòu)的開放能力得到了進(jìn)一步提升,支撐了騰訊云COS(Cloud Object Storage)業(yè)務(wù)近幾年的發(fā)展。
在騰訊看來,對云的理解是不斷加深的過程。他們認(rèn)識到,僅有不錯(cuò)的存儲平臺并不夠,必須深入研究各個(gè)行業(yè)的需求場景,提供功能、性能、質(zhì)量和價(jià)格要求不同的服務(wù),才能夠獲得用戶的認(rèn)可。
2017年,騰訊云的數(shù)據(jù)量突破一個(gè)EB,成為騰訊存儲歷史上的一個(gè)標(biāo)志性節(jié)點(diǎn)。
為了應(yīng)對未來云計(jì)算業(yè)務(wù)的挑戰(zhàn),騰訊存儲團(tuán)隊(duì)開始了一個(gè)宏大的計(jì)劃——啟動全新的存儲架構(gòu)平臺YottaStore的開發(fā)。
最開始的時(shí)候,存儲團(tuán)隊(duì)內(nèi)部打算給新平臺取名為BlobStorage。Blob的意思是一大塊連續(xù)的二進(jìn)制數(shù)據(jù),像一個(gè)視頻文件就是一個(gè)Blob數(shù)據(jù)。
顯然,這是大家印象中程序員的”正常操作”,但最終這個(gè)名字被確定為YottaStore。
對于做存儲的同學(xué)來說,經(jīng)常會跟GB、TB、PB、EB這些概念打交道?,F(xiàn)在全球互聯(lián)網(wǎng)巨頭公司的數(shù)據(jù)量基本都是在EB這個(gè)量級。EB上面是ZB,全球互聯(lián)網(wǎng)巨頭數(shù)據(jù)加起來也就幾個(gè)ZB。ZB再往上,就是YB,也就是YottaByte。目前全世界所有的數(shù)據(jù)加起來,也不超過一個(gè)YottaByte。
毫無疑問,這個(gè)名字體現(xiàn)了騰訊對這個(gè)系統(tǒng)的期待,寄予了厚望。
除了足夠大之外,Yotta的中文譯名是“有他”,可以給人安全可靠放心的感覺。在騰訊內(nèi)部,就有“存儲有他,能力無限”的說法。
YottaStore從2018年開始啟動研發(fā),2019年正式上線,完全由騰訊自主研發(fā)完成。上線同年,就獲得了公司級的業(yè)務(wù)突破獎。
作為一個(gè)云存儲系統(tǒng),YottaStore的能力可以說是非常強(qiáng)悍:
集群規(guī)模
YottaStore是一個(gè)云原生的數(shù)據(jù)存儲系統(tǒng),這個(gè)系統(tǒng)的理論極限是一個(gè)集群可以管理超上千萬臺服務(wù)器。而要管理這上千萬臺的機(jī)器,元數(shù)據(jù)管理只需要用600G左右的空間,僅用一臺機(jī)器就能存下索引結(jié)構(gòu),這在業(yè)界絕無僅有。
資源利用率
當(dāng)集群規(guī)模非常大的時(shí)候,1%的剩余空間量都非常大。所以,YottaStore將硬盤利用率提升到很高的水平,配合實(shí)時(shí)回收機(jī)制,有效數(shù)據(jù)占比達(dá)90%以上。這在業(yè)界非常少見。
另外,由于大集群的全集群均衡能力,服務(wù)器資源使用均衡,所以資源使用率也可以做得很高。服務(wù)器硬件可以最低位配置,所有尖峰流量在這個(gè)超大的池子里,波瀾不驚。
所以,無論是成本,還是服務(wù)能力,都很大程度受益于超大規(guī)模集群帶來的紅利。
靈活性
YottaStore單集群可以零研發(fā)成本同時(shí)支持各種不同的冗余模式,像兩副本、三副本、四副本、五副本,任意的EC編碼,任意的M、加任意的N、任意的算法;單AZ、雙AZ、多AZ,也都可以靈活支持。
另外,整個(gè)集群可以自適應(yīng)各種各樣不同的機(jī)型,包括JBOD;各種硬盤介質(zhì),如磁帶、HDD、SSD等,存儲的拓?fù)浣Y(jié)構(gòu)、混合部署也都可以任意指定。
這樣的靈活性在業(yè)界首屈一指。
運(yùn)營能力
以存儲節(jié)點(diǎn)迭代升級為例,十萬百萬規(guī)模的一個(gè)集群,上線升級速度都是一樣的。如果是同構(gòu)的數(shù)據(jù)格式,分鐘級就可以完成整個(gè)升級過程。如果是異構(gòu)的數(shù)據(jù)格式,集群可以在短時(shí)間內(nèi)自動將數(shù)據(jù)格式透明收斂到最新版。
可用性
可用性達(dá)到“數(shù)個(gè)9”很容易,但是達(dá)到100%非常難。例如機(jī)房網(wǎng)絡(luò)抖動,如果容錯(cuò)做的不夠好,就很容易出現(xiàn)失敗。
YottaStore開始上線大規(guī)模支撐業(yè)務(wù)的前三個(gè)月,一直維持100%的可用性。到現(xiàn)在一年半了,系統(tǒng)一直單人值周零故障運(yùn)行,在業(yè)界是極少見的。
成本控制
基于前文所述的在超大規(guī)模集群和超高資源利用率上的技術(shù)突破,隨著資源利用率的增高,YottaStore的單位存儲成本不斷降低。
磁盤容量擴(kuò)大,單機(jī)磁盤數(shù)變多,密度增高,成本也隨之降低。此外,CPU、網(wǎng)卡等新硬件的變化都會導(dǎo)致成本降低。
針對海量小文件的用戶場景,YottaStore采用多種冗余和數(shù)據(jù)組織策略持續(xù)優(yōu)化成本。
基于YottaStore存儲系統(tǒng)的騰訊云對象存儲COS平臺,正在為快手、OPPO、小紅書、??怠C豹、58同城等幾十多萬個(gè)企業(yè)客戶提供可靠的存儲服務(wù),整體數(shù)據(jù)量高達(dá)EB級別。
▉ 結(jié)語
回顧騰訊存儲技術(shù)的整個(gè)發(fā)展歷程,不由令人心生感慨。
15年前,騰訊存儲團(tuán)隊(duì)成立的時(shí)候,一定不曾想到,自己會走過這么蜿蜒曲折的發(fā)展之路。
他們不會想到,自己所在的公司會推出比QQ空間更爆款的產(chǎn)品,自己會面對更嚴(yán)峻的考驗(yàn)。
他們不會想到,自己的使命,從服務(wù)內(nèi)部,到服務(wù)外部,從服務(wù)C端,到服務(wù)B端,不斷轉(zhuǎn)變。
他們不會想到,自己開發(fā)的存儲系統(tǒng),數(shù)據(jù)體量規(guī)模竟然會從PB到EB,覆蓋全球范圍內(nèi)30多個(gè)region,擁有上萬臺服務(wù)器。
他們不會想到,自己所在的團(tuán)隊(duì),會成為整個(gè)公司的“黃埔”軍校,走出了無數(shù)的技術(shù)專家和管理干部。
時(shí)代就是這樣,前進(jìn)的步伐太快,永遠(yuǎn)超出常人的想象。
能夠擁有這樣的成績并非偶然。成績的背后,既離不開他們對用戶需求的精準(zhǔn)把握,也離不開對產(chǎn)品性能的極致挖潛,更離不開對技術(shù)夢想的執(zhí)著追求。
存儲的戰(zhàn)爭還沒有結(jié)束,只是進(jìn)入了一個(gè)新的階段。
未來,有新的挑戰(zhàn)在等待著他們。也有新的機(jī)遇,在召喚著他們。再過15年,又會發(fā)生什么樣的故事?不如讓時(shí)間來告訴我們答案吧。
—— 全文完 ——

免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!