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