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