百度開放云資深工程師崔燦:百度對(duì)象存儲(chǔ)系統(tǒng)的架構(gòu)與演進(jìn)
原創(chuàng)2016年4月14-15日,由51CTO傳媒主辦的WOT2016互聯(lián)網(wǎng)運(yùn)維與開發(fā)者大會(huì)在北京珠三角JW萬豪酒店召開。秉承專注技術(shù)、服務(wù)技術(shù) 人員的理念,自2012年以來,WOT品牌大會(huì)已經(jīng)成功舉辦了八屆,積累了大量的技術(shù)專家資源,獲得了廣大IT從業(yè)者和技術(shù)愛好者的一致認(rèn)可,成為了業(yè)界重要 的技術(shù)分享交流平臺(tái)以及人脈拓展平臺(tái)。
本次會(huì)議分為11個(gè)技術(shù)主題,分別是:數(shù)據(jù)庫技術(shù)與應(yīng)用,大數(shù)據(jù)與運(yùn)維,云計(jì)算與運(yùn)維,運(yùn)維安全,移動(dòng)運(yùn)維,容器體系構(gòu)建與實(shí)踐,運(yùn)維自動(dòng)化,行業(yè)運(yùn)維、監(jiān)控與性能優(yōu)化、高可用架構(gòu)和分布式存儲(chǔ)技術(shù)。51CTO作為本次大會(huì)的主辦方,將以快速報(bào)道、現(xiàn)場(chǎng)專訪與后期視頻等形式展示這場(chǎng)盛宴。
下面是來自百度開放云資深工程師崔燦先生給大家?guī)淼氖侵黝}為《百度對(duì)象存儲(chǔ)系統(tǒng)的架構(gòu)與演進(jìn)》的精彩演講。
百度開放云資深工程師 崔燦
對(duì)象是什么
對(duì)象是現(xiàn)實(shí)中實(shí)際存在的實(shí)體,有名字、數(shù)據(jù)和屬性,一般來說,一個(gè)對(duì)象生成之后就會(huì)永遠(yuǎn)存在,不再作修改。在實(shí)際的系統(tǒng)中,一個(gè)MP3,一個(gè)視頻文件,一個(gè)日志文件一般都可以認(rèn)為是對(duì)象,而對(duì)象存儲(chǔ)系統(tǒng)的重要使用場(chǎng)景也是在這類數(shù)據(jù)的存儲(chǔ)和訪問,比如說在線音樂視頻播放,日志存儲(chǔ)和處理等。
一般來說,一個(gè)對(duì)象可以通過對(duì)象的名字獲取,是一個(gè)扁平的名字空間。
對(duì)象存儲(chǔ)系統(tǒng)關(guān)注的點(diǎn):可靠性、可用性、性能和價(jià)格。
可靠性是對(duì)象存儲(chǔ)系統(tǒng)的最基本要求,簡單的說是保證用戶的數(shù)據(jù)不丟失。
影響可靠性的基本原因在于硬件故障,主要包括磁盤故障、單機(jī)故障、交換機(jī)故障和機(jī)房故障,目前看來,這些故障的概率大概趨于穩(wěn)定。
存儲(chǔ)系統(tǒng)架構(gòu)于基本硬件之上,需要部分的容忍硬件故障,一般來說可以通過對(duì)硬件的冗余來提升系統(tǒng)的可靠性,但是對(duì)硬件的冗余會(huì)提升成本。
對(duì)存儲(chǔ)系統(tǒng)可靠性的另外一個(gè)影響是硬件故障的修復(fù)時(shí)間,修復(fù)時(shí)間越短,系統(tǒng)的可靠性就越高。修復(fù)時(shí)間取決于磁盤容量 / min(磁盤帶寬,網(wǎng)絡(luò)帶寬),其中磁盤帶寬和網(wǎng)絡(luò)帶寬是參與修復(fù)的總量。
系統(tǒng)可靠性 = f(故障容忍度,故障修復(fù)時(shí)間)
百度內(nèi)部的KV存儲(chǔ)系統(tǒng),采用3副本,能容忍單機(jī)故障,而且通過分布式修復(fù)以及磁盤故障預(yù)測(cè),能大幅減少修復(fù)時(shí)間。
百度開放內(nèi)部kv存儲(chǔ)系統(tǒng),對(duì)外發(fā)布對(duì)象存儲(chǔ)系統(tǒng),主要遇到兩個(gè)方面的挑戰(zhàn):
1. 從用戶角度來看,一是用戶量增加,導(dǎo)致對(duì)用戶的幫助會(huì)降低,另外一方面直接面對(duì)大眾,可能會(huì)遭到惡意攻擊。
2. 從業(yè)務(wù)上來看,一方面是網(wǎng)絡(luò)環(huán)境發(fā)生變化,從內(nèi)網(wǎng)到公網(wǎng)。另外一方面對(duì)外部業(yè)務(wù)的增長并不可預(yù)期。
基于以上的一些問題,百度開放云商業(yè)化的時(shí)候作了以下幾個(gè)方面的工作:
1. 安全性:開放云對(duì)象存儲(chǔ)對(duì)數(shù)據(jù)安全和服務(wù)安全兩個(gè)方面都作了一些改進(jìn)。
數(shù)據(jù)安全有三個(gè)層次,數(shù)據(jù)不丟(基于可靠存儲(chǔ),多region, 多az來實(shí)現(xiàn)),數(shù)據(jù)不被非法訪問(基于ak, sk的用戶認(rèn)證以及基于policy的權(quán)限認(rèn)證),高級(jí)安全特性(https,服務(wù)端加密等)。
服務(wù)安全包括三個(gè)方面,用戶間互相影響(通過頻度 & quota服務(wù)),惡意攻擊(通過百度私有防攻擊系統(tǒng)以及運(yùn)營商黑洞清洗來解決),機(jī)房地域故障(多region, 多az來解決)。
2. 易用性方面:通過對(duì)用戶上云(網(wǎng)絡(luò)、硬盤導(dǎo)入),用戶使用,以及運(yùn)維三個(gè)方面來提升用戶的使用體驗(yàn)。
3. 性能的方面:主要對(duì)Http的性能作優(yōu)化,通過多并發(fā)的上傳下載,流量調(diào)度,CDN集成等多個(gè)方面來提升http性能。
依托于百度內(nèi)部大數(shù)據(jù)存儲(chǔ)的經(jīng)驗(yàn),特別是網(wǎng)盤數(shù)據(jù)的存儲(chǔ)經(jīng)驗(yàn),百度開放云提供了冷備服務(wù),在不降低系統(tǒng)可靠性的前提下,降低存儲(chǔ)成本,降低用戶的使用成本。
開放云對(duì)象存儲(chǔ)的一個(gè)策略是為用戶提供完整的解決方案,把百度內(nèi)部優(yōu)質(zhì)服務(wù)共享給開發(fā)者,目前成熟的解決方案包括冷存儲(chǔ),多媒體(直播、點(diǎn)播、轉(zhuǎn)碼、圖像處理等),數(shù)據(jù)處理(bmr, 機(jī)器學(xué)習(xí)等),在未來百度開放云會(huì)更進(jìn)一步的包裝百度內(nèi)部優(yōu)質(zhì)服務(wù),開放給開發(fā)者。
另外,崔燦也跟大家分享了百度開放云在面對(duì)超大數(shù)據(jù)存儲(chǔ)方面所采取的方法是將數(shù)據(jù)多級(jí)索引存儲(chǔ),避免了索引量的暴漲。
同時(shí)也介紹了百度CDN的優(yōu)勢(shì)所在,一方面是和開放云的其它服務(wù)結(jié)合,形成完整的一套解決方案。其次百度CDN依賴百度多年的CDN經(jīng)驗(yàn),形成靠譜的IP庫,保證流量調(diào)度合理,同時(shí)通過多級(jí)回源,BGP回源等策略,保證在源站服務(wù)能力有限的情況下保證客戶的速度。CDN在應(yīng)對(duì)攻擊方面,若有超大流量攻擊時(shí),百度有和運(yùn)營商有應(yīng)對(duì)黑洞的策略方案。對(duì)于小流量的竊取流量的問題,可以采取將用戶的請(qǐng)求回源站等方法來處理。
未來
崔燦介紹到,未來,百度將繼續(xù)對(duì)存儲(chǔ)的核心技術(shù)方面進(jìn)行不斷的研究,其次會(huì)不斷提高產(chǎn)品的性價(jià)比,降低用戶的存儲(chǔ)成本,降低副本。第三是會(huì)繼續(xù)提供解決方案。將百度內(nèi)部的資源包裝出來,使用戶享受到更好的服務(wù)。