大家下午好,今天非常有幸和大家分享面向數(shù)據(jù)中心的分布式存儲(chǔ)系統(tǒng)相關(guān)的一些進(jìn)展,這次我的題目是與性能相關(guān),圍繞數(shù)據(jù)中心的存儲(chǔ),今天就講一個(gè)話題,就是性能。
講這個(gè)話題之前,首先講一個(gè)背景,我們阿里云整個(gè)系統(tǒng)有一個(gè)天基的操作系統(tǒng),這樣一個(gè)操作系統(tǒng)里面有很多模塊,做云計(jì)算設(shè)計(jì)的時(shí)候,不是針對(duì)每個(gè)業(yè)務(wù)場(chǎng)景做系統(tǒng)設(shè)計(jì),而是面向很多業(yè)務(wù),整個(gè)計(jì)算平臺(tái)是層次化、結(jié)構(gòu)非常清晰的。盤古(Pangu),我們叫做分布式的存儲(chǔ)系統(tǒng),盤古之上還有很多的存儲(chǔ)業(yè)務(wù),這種存儲(chǔ)業(yè)務(wù)可以在阿里云的官網(wǎng)上看到,比如很多人談到的塊存儲(chǔ),文件存儲(chǔ)和對(duì)象存儲(chǔ),還有我們今年剛剛推出的面向大數(shù)據(jù)計(jì)算的一個(gè)接口,就是技術(shù)兼容的接口,但是這些系統(tǒng)都離不開盤古,都在盤古里面。
盤古這個(gè)系統(tǒng)經(jīng)過了超過十年,今年是第十一年的技術(shù)演進(jìn),2008年開始,阿里云剛剛成立的那一刻,第一行代碼就是盤古代碼。2008年盤古開始寫下第一行代碼,到2009年的時(shí)候發(fā)布了盤古1.0,那個(gè)時(shí)候存儲(chǔ)主要介質(zhì)是磁盤,這個(gè)磁盤存儲(chǔ)基礎(chǔ)上,如何去構(gòu)建分布式存儲(chǔ),是那個(gè)時(shí)候非常重要的一個(gè)話題。所以在2009年盤古1.0推出之后,實(shí)際那個(gè)時(shí)候云計(jì)算沒有什么,應(yīng)用非常少,那個(gè)時(shí)候應(yīng)用主要是郵件系統(tǒng),搜索為主,當(dāng)時(shí)出現(xiàn)盤古1.0就是郵件系統(tǒng)和搜索相關(guān)的應(yīng)用。
螞蟻金服剛剛創(chuàng)建的時(shí)候也是采用盤古1.0。到2013年的時(shí)候有非常重要的時(shí)間點(diǎn),我們叫做5K,就是我們單臺(tái)支持的推廣達(dá)到了五千臺(tái),這個(gè)規(guī)模很大。
如果采用開源的系統(tǒng)你達(dá)不到五千臺(tái)這樣的規(guī)模量產(chǎn),盤古當(dāng)時(shí)規(guī)模達(dá)到了五千臺(tái),當(dāng)時(shí)參加了國際上的一些測(cè)試,性能非常不錯(cuò),排名靠前。2015年單臺(tái)技術(shù)規(guī)模達(dá)到一萬臺(tái),阿里云飛天園區(qū),飛天也是從這個(gè)地方來的。
飛天園區(qū)里面有一個(gè)雕像,就是為了紀(jì)念2013年這個(gè)關(guān)鍵時(shí)間點(diǎn)。還有一個(gè)關(guān)鍵時(shí)間點(diǎn)就是2018年,發(fā)布了第二代系統(tǒng),就是飛天系統(tǒng)2.0,其中有一個(gè)重要的子系統(tǒng)就是盤古2.0。因?yàn)?018年的時(shí)候,數(shù)據(jù)中心閃存是重要的方向,如果這個(gè)時(shí)代用盤古1.0支撐業(yè)務(wù)系統(tǒng)基本不可能,那個(gè)時(shí)候做盤古2.0,是2016、2017年開始,真正發(fā)布是2018年。為什么去年雙十一達(dá)到兩千多億的數(shù)字,實(shí)際背后就是盤古2.0。
我們看一下整個(gè)行業(yè),整個(gè)存儲(chǔ)系統(tǒng),這個(gè)實(shí)際上這幾個(gè)階段,我做存儲(chǔ)到今天有13年了,整個(gè)階段除了存儲(chǔ)大型機(jī)接觸比較少,其它幾個(gè)階段我都是經(jīng)歷過的,從最小系統(tǒng),實(shí)際反映出來我們存儲(chǔ)的系統(tǒng),第一是硬件向軟件引進(jìn),第二是整個(gè)存儲(chǔ)系統(tǒng)慢慢變成云化,通用的硬件支撐存儲(chǔ),下一步存儲(chǔ)系統(tǒng)如何發(fā)展呢?今天想跟大家重點(diǎn)分享的就是上面標(biāo)出來的,云化之后到底面臨那些挑戰(zhàn),我們具體要做那些事情呢?
我們看一下,數(shù)據(jù)中心,我們今天云計(jì)算的數(shù)據(jù)中心,云計(jì)算一共分成三大塊,計(jì)算、存儲(chǔ)、網(wǎng)絡(luò),這三大塊都是采用虛擬化的方式,給用戶提供資源,講一講容易,但是實(shí)際上構(gòu)建這樣的一個(gè)云計(jì)算平臺(tái)所遇到的挑戰(zhàn),計(jì)算這一塊不僅僅是我們通用的X86、CPU在計(jì)算,還有很多平臺(tái),并且計(jì)算虛擬化,今天不是傳統(tǒng)的軟件上提供這種計(jì)算資源的虛擬化,還有其它的很多硬件虛擬化相關(guān)的技術(shù)在這個(gè)里面做的,所以這一塊也是阿里云非常重要的,也是中間往前演進(jìn)。
網(wǎng)絡(luò)虛擬化更不用提了,整個(gè)云計(jì)算離不開網(wǎng)絡(luò),如何構(gòu)建一張?zhí)摂M的網(wǎng)絡(luò),并且相互之間是獨(dú)立的虛擬的網(wǎng)絡(luò),采用資源的方式對(duì)外提供服務(wù),所有離不開網(wǎng)絡(luò)。
還有存儲(chǔ),存儲(chǔ)肯定是軟件定義,我想強(qiáng)調(diào)軟件定義不是一定要在我們現(xiàn)有的硬件基礎(chǔ)上,去做這種存儲(chǔ)系統(tǒng)就是軟件定義,就是規(guī)定非得在今天X86的平臺(tái)上做存儲(chǔ)軟件,我們面對(duì)數(shù)據(jù)中心存儲(chǔ)的時(shí)候,需要思考一個(gè)問題,因?yàn)閼?yīng)用場(chǎng)景發(fā)生變化,我們面對(duì)社群也發(fā)生變化,軟件和硬件的邊界發(fā)生了變化,我們未來通用硬件到底是什么?這個(gè)問題是需要回答的。我們要做的是在通用硬件的基礎(chǔ)上,去做我們的軟件定義存儲(chǔ),這樣才能把整體的效能發(fā)揮到最大。
我們從整個(gè)系統(tǒng),云計(jì)算系統(tǒng)或云存儲(chǔ)系統(tǒng)的角度分解一下,我們今天看到的幾個(gè)性能的平行點(diǎn),第一個(gè)從虛擬機(jī)出來以后,我們今天在云計(jì)算里面看到的云上的計(jì)算結(jié)果,云上的計(jì)算,從第一個(gè)虛擬器出來之后,往往需要有一個(gè)前端的網(wǎng)絡(luò),通過前端的網(wǎng)絡(luò)接入后端的存儲(chǔ),后端的存儲(chǔ)有一個(gè)后端的網(wǎng)絡(luò)進(jìn)行互聯(lián)。
這整個(gè)環(huán)節(jié)里面是比較抽象的,整個(gè)環(huán)節(jié)里面,有幾個(gè)重要的點(diǎn),第一個(gè)就是我們前端的網(wǎng)絡(luò),如果前端的網(wǎng)絡(luò)性能不行,我們整個(gè)計(jì)算到后端的時(shí)候,也就是說計(jì)算那個(gè)系統(tǒng)盤,或者計(jì)算資源里面那個(gè)數(shù)據(jù)盤,性能是沒有辦法得到突破的,因?yàn)闆]有辦法突破,實(shí)際上在現(xiàn)在用戶使用的時(shí)候,甚至還會(huì)用本地的盤,就是我在虛擬器里面插幾個(gè)盤,做客戶端的存儲(chǔ)服務(wù),這個(gè)是一個(gè)過渡的階段,為什么呢?就是因?yàn)槲覀兒蠖说拇鎯?chǔ)能力,今天還不夠,沒有辦法滿足很多在極端場(chǎng)景下的性能需求,所以才會(huì)直接在虛擬器里面用物理盤的方式提供服務(wù),這是一個(gè)過渡。很重要的原因我們前端網(wǎng)絡(luò)有很多平行點(diǎn)。
第二個(gè)是后端的SSD,實(shí)際也是我們今天遇到的一個(gè)非常重要的一個(gè)平行點(diǎn),我這有一些數(shù)據(jù)可以跟大家分享的,今天我們數(shù)據(jù)中心的網(wǎng)絡(luò),普遍的不大,最差的就是25G,我們實(shí)際上很多的網(wǎng)絡(luò)環(huán)境就是單機(jī)是100G,出口的網(wǎng)絡(luò)帶寬是100G,單機(jī)100G誰是我們的性能平行點(diǎn),CPU不是,網(wǎng)絡(luò)也不是,而是SSD,是一個(gè)性能平衡點(diǎn),為什么SSD做到百萬級(jí)的IOPS,為什么還不是平行點(diǎn)呢。這個(gè)后面會(huì)講。
我們回過頭看,基于NAND比以前的子卡性能高很多,但是這個(gè)有條件,單純從性能來講,性能確實(shí)高不少,這些性能對(duì)比來講,但是這些性能的對(duì)比,不是我們實(shí)際的應(yīng)用場(chǎng)景,尤其不是我們?cè)粕系膶?shí)際的運(yùn)用場(chǎng)景,而是單純的物理硬件的測(cè)試結(jié)果,這個(gè)測(cè)試結(jié)果,實(shí)際對(duì)我們實(shí)際的云上的系統(tǒng)設(shè)置沒有參考價(jià)值的。唯一有參照價(jià)值就是隨機(jī)的東西,這個(gè)東西有一些參照價(jià)值,其它的參照價(jià)值基本沒有的。因?yàn)樵粕系哪莻€(gè)特別是公共云上面的業(yè)務(wù),你不知道它的開口是什么。
所以今天上午很多報(bào)告提到雙十一的事件,雙十一的流量,但是我今天跟大家說,雙十一對(duì)阿里巴巴來講這個(gè)流量不大,特別對(duì)于我們盤古來講,這個(gè)流量太小,今天真正的壓力在公共云上面,公共云上面那些流量壓力,才是我們?cè)斐珊芏喙收系闹饕脑颉?/p>
所以我們壓力不是來自雙十一,雙十一是狂歡節(jié)。所以它的很多流量,電商的流量相對(duì)公共云還是非常小的。我想通過這個(gè)對(duì)比說,公共云的流量和業(yè)務(wù)的匹配性才是我們存儲(chǔ)系統(tǒng)設(shè)置的最重要的挑戰(zhàn)。
剛才講到那個(gè)SSD的性能,看起來很好,但是它也是有很多問題的,這里面實(shí)際講了一個(gè)問題,首先CPU上的問題,如果單純用我們傳統(tǒng)意義上的X86 CPU跑那個(gè)SSD性能,看怎么跑,如果采用內(nèi)核的方式做,肯定是不夠的,作用發(fā)揮不出來,無論怎么優(yōu)化,無論采用傳統(tǒng)的任何手段,都已經(jīng)不行了。
所以這個(gè)地方,實(shí)際上就是一個(gè)很重要的趨勢(shì)就是用盤古上,今天分布式存儲(chǔ)系統(tǒng),線上所有的都是用盤古的軟件,一下把SSD的性能發(fā)揮出來,這兩張圖不一樣,大家可以看一下。為什么會(huì)是這樣呢?我們SSD下一步如何演進(jìn)呢,如果單純這個(gè)性能來講,我們SSD演進(jìn)方向是性能越來越差。
這個(gè)實(shí)際是我們整個(gè)盤古2.0里面我們實(shí)際上前兩年做的非常重要的工作,把整個(gè)分布式存儲(chǔ),特別單機(jī)運(yùn)行,針對(duì)高性能存儲(chǔ)的引擎,全部替換。功能很強(qiáng),盤古1.0都是基于內(nèi)核構(gòu)建,今天整個(gè)軟件都是基于用戶端做的,這個(gè)地方不僅僅是驅(qū)動(dòng),而是一套系統(tǒng)。當(dāng)你把CPU管理起來,內(nèi)存管理起來,文件系統(tǒng)管理起來,驅(qū)動(dòng)硬件管理起來,自然而然,就是一個(gè)用戶的操作系統(tǒng)。用了這個(gè)我們整體的效果還是非常不錯(cuò),這是我們今天在線上進(jìn)行大規(guī)模部署的原因。
下一步要進(jìn)一步思考一個(gè)問題,我們SSD的性能,可以把CPU解放出來,可以把SSD的性能,從一定程度提高到一定程度,這個(gè)一定程度是什么,如何我們要評(píng)價(jià)一個(gè)SSD性能就是看隨機(jī)性帶寬,對(duì)于我們今天最好的SSD來講,帶寬在400到500兆B這樣一個(gè)量級(jí)。通過用戶帶寬也是在這個(gè)級(jí)別,我們要將這個(gè)性能提升到1個(gè)G到2個(gè)G的性能,這是我們下一步要重點(diǎn)考慮的。
具體看一下SSD內(nèi)部的結(jié)構(gòu),這個(gè)實(shí)際是一個(gè)普適的SSD內(nèi)部的結(jié)構(gòu)圖,上面是軟件,下面是硬件,軟件的角度來講,分成兩大部分。一個(gè)是DATA LAYOUT,這個(gè)也是我們正在做的工作,并且有了很多成果出來。下面是NAND FLASH,這個(gè)有不同場(chǎng)合,本身介質(zhì)發(fā)展非???。這里面有一個(gè)標(biāo)準(zhǔn)ZNS,這個(gè)標(biāo)準(zhǔn)也是我們參與的標(biāo)準(zhǔn),這個(gè)標(biāo)準(zhǔn)也是英特爾等廠商,包括阿里巴巴在內(nèi)一塊聯(lián)合推的標(biāo)準(zhǔn),這個(gè)標(biāo)準(zhǔn)實(shí)際上是說就是我們下一步存儲(chǔ)軟件棧和SSD如何深層次融合。
這個(gè)標(biāo)準(zhǔn)它的答案是什么呢,就是我們要打破原有的接口,需要提供類似于KV,但是不是KV的。這里面有幾個(gè)概念,F(xiàn)ULL有一定的生命周期,這個(gè)標(biāo)準(zhǔn)現(xiàn)在正在制訂中。
如果采用這個(gè)ZNS對(duì)我們存儲(chǔ)系統(tǒng)來講,最大的價(jià)值是什么,這里面對(duì)打的價(jià)值就是QOS,提升SSD盤的能力,只有把SSD的盤的能力提上去之后才有空間更好的做QOS,如果我做QOS實(shí)際我會(huì)投入更多錢。要把QOS做好,首先第一步需要把SSD的能力或者說我們需要把硬件的能力進(jìn)一步發(fā)揮出來。
接下來看一下網(wǎng)絡(luò),分布式存儲(chǔ)的場(chǎng)景,尤其面向數(shù)據(jù)中心的存儲(chǔ)場(chǎng)景,這個(gè)網(wǎng)絡(luò)是非常重要的話題,今天的網(wǎng)絡(luò)我們可以看到實(shí)際在100G,但是受限,正常的硬件可以達(dá)到200G。這個(gè)網(wǎng)絡(luò)要分成兩方面看,第一個(gè)就是物理網(wǎng)絡(luò)的速度,第二個(gè)是上面該運(yùn)行什么樣的協(xié)議,這個(gè)是非常重要的事情。通常來講,我們?cè)谡麄€(gè)行業(yè)里面,我們今天已經(jīng)在線上或者說在業(yè)務(wù)里面,已經(jīng)部署了。這些協(xié)議是我們今天已經(jīng)得到規(guī)?;牟渴鸬?。
這個(gè)是簡(jiǎn)單的RDMA系統(tǒng),大家可以看一下。這里要講一下,我們那個(gè)RoCE RDMA,系統(tǒng)達(dá)到一定程度以后,鏈路不允許通行了。這個(gè)也是規(guī)?;\(yùn)用非常重要的障礙。
這張圖就是我們RoCE RDMA的技術(shù)站,我們今年實(shí)際上阿里巴巴的網(wǎng)絡(luò)團(tuán)隊(duì)在一個(gè)業(yè)界的學(xué)術(shù)會(huì)議發(fā)表了兩篇論文,是阿里巴巴網(wǎng)絡(luò)團(tuán)隊(duì)做的,這個(gè)應(yīng)該說也是阿里巴巴的首次,第一次在這樣一個(gè)平臺(tái)上做了兩篇,這個(gè)峰會(huì)今年8月份在北京召開,這個(gè)會(huì)議上去講下一代高性能的網(wǎng)絡(luò)協(xié)議,這個(gè)協(xié)議對(duì)外叫HPCC,就是這個(gè)東西,通過這個(gè)協(xié)議站點(diǎn)的優(yōu)化,我們整體數(shù)據(jù)中心這個(gè)高性能網(wǎng)絡(luò)站就可以服務(wù)今天云存儲(chǔ)、云計(jì)算相關(guān)的應(yīng)用場(chǎng)景。
講了這么多,我做一個(gè)總結(jié),性能是云存儲(chǔ)里面臨的非常重要的問題,針對(duì)這樣的問題,我們需要思考幾個(gè)點(diǎn),第一個(gè)是怎么樣把硬件的潛能充分發(fā)揮出來,不是硬件今天做這樣就是這樣,需要改變。需要面對(duì)特殊的應(yīng)用場(chǎng)景重新定義,重新定義以后再次變成一個(gè)面向數(shù)據(jù)中心的通用的。
第二個(gè)云存儲(chǔ)云計(jì)算的場(chǎng)景里面,如何做更好的隔離等很多問題。第三點(diǎn)怎么保證做很好的IOPS,從QoS的角度考慮。這幾個(gè)點(diǎn)都需要考慮,思考這三個(gè)問題。
第二個(gè)點(diǎn)從SSD的角度,下一步如何去引進(jìn)。這里面有一個(gè)標(biāo)準(zhǔn),不一定是未來數(shù)據(jù)中心的標(biāo)準(zhǔn)。第三點(diǎn)就是我們的網(wǎng)絡(luò)如何發(fā)展,物理網(wǎng)絡(luò)、網(wǎng)絡(luò)的協(xié)議站如何發(fā)展。這樣才能把問題解決掉以后打造一個(gè)高性能,面向數(shù)據(jù)中心場(chǎng)景的完美的系統(tǒng)。
這是我今天的報(bào)告,謝謝大家。