百度對(duì)象存儲(chǔ)系統(tǒng)的架構(gòu)與演進(jìn)之路
原創(chuàng)本文是WOT2016互聯(lián)網(wǎng)運(yùn)維與開發(fā)者大會(huì)的現(xiàn)場(chǎng)干貨, 新一屆主題為WOT2016企業(yè)安全技術(shù)峰會(huì)將在2016年6月24日-25日于北京珠三角JW萬(wàn)豪酒店隆重召開!
崔燦的演講主要圍繞為什么是對(duì)象存儲(chǔ)系統(tǒng)、百度開放云做了什么事、百度開放云云服務(wù)化的工作及挑戰(zhàn)以及云服務(wù)的未來(lái)等內(nèi)容展開。
什么是對(duì)象存儲(chǔ)系統(tǒng)
什么是對(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)景也是在這類數(shù)據(jù)的存儲(chǔ)和訪問(wèn),比如說(shuō)在線音樂(lè)視頻播放,日志存儲(chǔ)和處理等。
什么是存儲(chǔ)系統(tǒng)?存儲(chǔ)系統(tǒng)有可靠性、可用性、性能和價(jià)格四方面要求。這里崔燦主要介紹了存儲(chǔ)系統(tǒng)可靠性,一般存儲(chǔ)系統(tǒng)可靠性就是指數(shù)據(jù)不丟失。數(shù)據(jù)丟失產(chǎn)生的情況無(wú)非是磁盤壞掉、整個(gè)機(jī)器掛掉或整個(gè)機(jī)房直接掛掉等硬件故障。系統(tǒng)可靠性的決定因素有故障的容忍度和修復(fù)時(shí)間兩方面,對(duì)故障容忍度可以通過(guò)做一些冗余的方式來(lái)實(shí)現(xiàn)。修復(fù)時(shí)間各個(gè)系統(tǒng)實(shí)現(xiàn)不一樣。針對(duì)硬件故障,崔燦表示這么多年來(lái),像交換機(jī)故障,磁盤故障,已經(jīng)趨于穩(wěn)定沒(méi)有太大進(jìn)步的空間,是相對(duì)比較固定值。所以做系統(tǒng)就是怎么樣提高它對(duì)故障的容忍度和減少修復(fù)時(shí)間。
如何減少修復(fù)時(shí)間?一,和最開始這個(gè)數(shù)據(jù)放置是相關(guān)的,如磁盤故障或者是機(jī)器故障,如是兩塊磁盤互為備份,那修復(fù)時(shí)間取決于磁盤IO,就是一個(gè)磁盤量的數(shù)據(jù)全部拷到另一個(gè)磁盤,取決于單盤IO。如把它作一個(gè)分散放到所有的節(jié)點(diǎn)上去,好處在于恢復(fù)時(shí)可以從多個(gè)源到多個(gè)目的的磁盤上拷貝,這可以大大的減少修復(fù)的時(shí)間,相當(dāng)于整個(gè)集群同時(shí)在拷貝一個(gè)磁盤上的數(shù)據(jù)。二,基于百度內(nèi)部多年經(jīng)驗(yàn),磁盤出現(xiàn)故障時(shí)間可根據(jù)大數(shù)據(jù)分析提前預(yù)測(cè)到,這也大大縮短了修復(fù)時(shí)間。
百度開放云做了什么事
把KV存儲(chǔ)開放出去
百度內(nèi)部的KV存儲(chǔ)系統(tǒng),采用3副本,能容忍單機(jī)故障,而且通過(guò)分布式修復(fù)以及磁盤故障預(yù)測(cè),能大幅減少修復(fù)時(shí)間。百度開放云存儲(chǔ)把KV存儲(chǔ)開放出去,做一個(gè)對(duì)象存儲(chǔ),這過(guò)程叫做商業(yè)化。崔燦表示,這個(gè)過(guò)程中遇到了兩大挑戰(zhàn):從用戶角度來(lái)看,一是用戶量增加,導(dǎo)致對(duì)用戶的幫助會(huì)降低,另外一方面直接面對(duì)大眾,可能會(huì)遭到惡意攻擊。從業(yè)務(wù)上來(lái)看,一方面是網(wǎng)絡(luò)環(huán)境發(fā)生變化,從內(nèi)網(wǎng)到公網(wǎng)。另外一方面對(duì)外部業(yè)務(wù)的增長(zhǎng)并不可預(yù)期。
安全性、易用性和性能三角度應(yīng)對(duì)挑戰(zhàn)
安全性。百度開放云存儲(chǔ)把KV存儲(chǔ)開放出去后,從數(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)解決)。
易用性。通過(guò)對(duì)用戶上云(網(wǎng)絡(luò)、硬盤導(dǎo)入),用戶使用(API、SDK、工具、ts支持、多種解決方案)及運(yùn)維(按需使用、自動(dòng)擴(kuò)縮容、報(bào)表、日志、審計(jì)、監(jiān)控……)三個(gè)方面來(lái)提升用戶的使用體驗(yàn)。
性能。主要對(duì)Http的性能作優(yōu)化,通過(guò)多并發(fā)的上傳下載,流量調(diào)度,CDN集成等多個(gè)方面來(lái)提升Http性能。
提供冷存儲(chǔ)、媒體云和數(shù)據(jù)分析三大解決方案
崔燦表示,百度云存儲(chǔ)從2015年四五月份一直到現(xiàn)在提供不同的解決方案,幫助不同的用戶來(lái)使用。第一個(gè)階段是內(nèi)部服務(wù),第二個(gè)階段是一個(gè)可靠存儲(chǔ),第三個(gè)階段整合百度內(nèi)部資源,如圖象處理、機(jī)器學(xué)習(xí)、視頻處理等東西,整合一些解決方案給用戶使用。
冷存儲(chǔ)。為把低成本存儲(chǔ)同時(shí)提供給內(nèi)部業(yè)務(wù)和外部開發(fā)者,百度云存儲(chǔ)做了冷備的解決方案。提供一個(gè)基本可用的,成本比之前低一倍,但可靠性不會(huì)低于之前可靠性的存儲(chǔ)系統(tǒng),就是和友商同等價(jià)格的情況下提供基本的在線服務(wù)。
媒體云。關(guān)于圖片和媒體處理,做視頻直播、點(diǎn)播、轉(zhuǎn)播可直接使用。因?yàn)榘俣葍?nèi)部有成熟的方案,如做像手機(jī)屏幕的匹配、適配直接包裝,用戶只需要把數(shù)據(jù)存儲(chǔ)過(guò)來(lái),再調(diào)到其他地方就可直接播放,來(lái)減少對(duì)媒體用戶使用的門檻。
數(shù)據(jù)分析。崔燦表示,百度是做搜索的,很多策略方面如機(jī)器學(xué)習(xí),Mapreduce等都是非常成熟。所以可以針對(duì)用戶把百度內(nèi)部的機(jī)器學(xué)習(xí),計(jì)算功能給整合進(jìn)來(lái)。如用戶做數(shù)據(jù)處理或策略方面的事,只需要把數(shù)據(jù)上傳上來(lái)直接做數(shù)據(jù)處理。
百度開放云未來(lái)要做的事
崔燦表示,未來(lái)解決方案和存儲(chǔ)相關(guān)有四方面:一,繼續(xù)做冷備或一些歸檔等事。 二,做百度CDN資源結(jié)合,形成類似于存儲(chǔ)分發(fā),供給一些APP下載或者視頻播放的服務(wù)使用。三,百度內(nèi)部有相對(duì)多年媒體方面的資源積累,之后也會(huì)不斷的把百度內(nèi)部的技術(shù)包裝陸續(xù)公開出來(lái)。四,對(duì)于機(jī)器學(xué)習(xí)方面,會(huì)繼續(xù)不斷的把百度內(nèi)部的資源爆發(fā)出來(lái)。
【演講視頻】
http://edu.51cto.com/lesson/id-100746.html
http://edu.51cto.com/lesson/id-101079.html
【講師簡(jiǎn)介】
崔燦,百度開放云資深工程師,主要做百度開放云存儲(chǔ)工作,內(nèi)容有對(duì)象存儲(chǔ)、塊存儲(chǔ)和開放云CDN等。之前主要經(jīng)歷主要是分布式存儲(chǔ)和在線檢索兩部分。