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