大家好,我叫周平,來自阿里巴巴服務(wù)器研發(fā)事業(yè)部,現(xiàn)在主要負(fù)責(zé)自研存儲設(shè)備的開發(fā)。很高興和大家分享阿里在自研存儲產(chǎn)品和應(yīng)用優(yōu)化方面的一些實踐。

存儲對數(shù)據(jù)中心來說是核心的功能之一,隨著現(xiàn)在新的應(yīng)用的興起,像人工智能、大數(shù)據(jù)、云計算、公有云等,使得數(shù)據(jù)中心對存儲設(shè)備的需求也日趨多樣化。傳統(tǒng)說幾個簡單的指標(biāo)已經(jīng)不足以描述設(shè)備的需求。這些新的應(yīng)用對于我們的存儲設(shè)備提出了新的挑戰(zhàn),這邊有幾個例子,一個是靈活性和可定制性。我們現(xiàn)在應(yīng)用的場景非常多元化,單一的標(biāo)???????存儲設(shè)備越來越難以滿足適配不同應(yīng)用場景的需求。第二個是應(yīng)用現(xiàn)在越來越追求挖掘存儲設(shè)備的性能潛力,對于應(yīng)用來說,往往希望能夠最大限度的把設(shè)備的性能發(fā)揮出來。第三個是在服務(wù)方面的需求,我們的業(yè)務(wù)希望我們能夠及時響應(yīng)線上的問題以及對新功能的需求。另一方面來說,這些新的應(yīng)用對存儲設(shè)備也提供了很多的機(jī)遇,尤其是對自研存儲設(shè)備,對阿里的數(shù)據(jù)??模??說??往往一個應(yīng)用場景會有幾萬片甚至幾十萬片的規(guī)模,這樣的應(yīng)用規(guī)模才使自研存儲產(chǎn)品成為一種可能。另外由于我們數(shù)據(jù)中心自己有業(yè)務(wù),同時又掌握硬件,同時可以實現(xiàn)軟硬件聯(lián)合優(yōu)化。
回到傳統(tǒng)的存儲設(shè)備,基本上都是標(biāo)準(zhǔn)的通用產(chǎn)品,它的特點,一個是它試圖為所有場景或者很多場景來做優(yōu)化,最后的結(jié)果是所有的場景都不是最優(yōu)的性能,它是嚴(yán)格按照標(biāo)準(zhǔn)來實現(xiàn)的,難以針對某些應(yīng)用來做定制,可以定制的空間非常小。包括像很多場景用的功能,因為標(biāo)準(zhǔn)的產(chǎn)品都是要follow某個標(biāo)準(zhǔn),這些功能對它來說就是冗余的。另外還有很???????的問題,對于我們來說,標(biāo)準(zhǔn)的設(shè)備都是黑盒產(chǎn)品,性能難以綠色,到底內(nèi)部有哪些問題,技術(shù)上也不可控地還有在服務(wù)方面,客戶支持響應(yīng)慢,新功能開發(fā)周期長。
我們從2016年開始投入自研設(shè)備,主要是SSD,我們采用的是從業(yè)務(wù)驅(qū)動的方法,從業(yè)務(wù)的應(yīng)用出發(fā),分析應(yīng)用場景,把需求提煉出來。在產(chǎn)品的設(shè)計階段一直到后期的測試調(diào)優(yōu)階段,形成這樣一個迭代的過程。
自研SSD主要的技術(shù)路線有三種,一種是Device-based,對主機(jī)端呈現(xiàn)成標(biāo)準(zhǔn)的NMVe設(shè)備,好處是通用性比較強(qiáng)。第二種是Host-based,把大部分的功能都移到主機(jī)那邊實現(xiàn),設(shè)備那邊變得非常輕,好處第一是可以把主機(jī)端的CPU資源和C-RAN資源利用起來,可以用相對較少的設(shè)備上的應(yīng)用來實現(xiàn)更強(qiáng)的功能,支持更大的容量。另外是主機(jī)端的軟件相比設(shè)備上的要容易調(diào)試得多,開發(fā)新功能也更加容易,它和應(yīng)用的結(jié)合也比較容易。Host-based有一個局限性,沒有一個共用的標(biāo)準(zhǔn),對于業(yè)務(wù)來說,它需要用一個非標(biāo)準(zhǔn)的驅(qū)動或者一套非標(biāo)準(zhǔn)的用戶態(tài)的API來適用。另外它把很多細(xì)節(jié)呈現(xiàn)給主機(jī)端軟件,所以當(dāng)我們替換顆?;蛘邠Q設(shè)備,主機(jī)端的軟件要相應(yīng)的做修改,這是它的一些局限性。第三種路線是OpenChannel,我們稱它為開放接口SSD。它跟Host-based比較接近,區(qū)別是它在主機(jī)端和設(shè)備之間定義了一套標(biāo)準(zhǔn)的通信接口,它把兩邊的職責(zé)定義清楚,定義了一個通用標(biāo)準(zhǔn)的命令接口,這樣就有了更好的通用性,我換一個設(shè)備或者換一個顆粒,主機(jī)端那邊的軟件可以不動。思路基本上還是Host-based,大部分工作還是放在主機(jī)端實現(xiàn)。這三種技術(shù)路線我們都在關(guān)注。
自研SSD設(shè)備在阿里,我們現(xiàn)在第一代自研SSD,就是現(xiàn)在我們在展出的這款產(chǎn)品,已經(jīng)于2016年批量上線,經(jīng)過了2016年雙十一的考驗,我們下一代自研SSD也正在開發(fā)中??偟乃悸肥?,我們通過原料直采,主要是顆粒直采,實現(xiàn)軟硬件自主可控,針對業(yè)務(wù)做定制優(yōu)化,來解決線上響應(yīng)的問題,同時可以降低成本。
從我們這一年多開發(fā)自研SSD產(chǎn)品的實踐來看,我們總結(jié)出這樣幾個經(jīng)驗,首先是整個產(chǎn)品的設(shè)計是應(yīng)用驅(qū)動的,根據(jù)應(yīng)用場景來設(shè)計產(chǎn)品,而不是根據(jù)某個標(biāo)準(zhǔn)或者根據(jù)某幾個指標(biāo)來設(shè)計產(chǎn)品。第二,從產(chǎn)品的規(guī)劃一直到最后的開發(fā)測試,把業(yè)務(wù)全程都參與進(jìn)來,及時得到業(yè)務(wù)的反饋,這樣可以讓這個產(chǎn)品在設(shè)計階段就能和業(yè)務(wù)貼近。第三、第四點一???????,設(shè)計與應(yīng)用場景結(jié)合,把軟件硬件整個棧作為整體來優(yōu)化。第五,全鏈路白盒化,做到自主可控。第六,我們要根據(jù)業(yè)務(wù)需求自主開發(fā)運(yùn)維工具,而不是只用廠商提供的或者一些開源的工具。因為我們掌握了整個軟硬件,整個鏈條都自主掌控在我們這邊,所以我們可以針對業(yè)務(wù)應(yīng)用做一些優(yōu)化和開發(fā)一些新的功能,比如通過調(diào)整OP降低成本,有些業(yè)務(wù)可能對性能要求不太高,可以把OP降低來降低成本,比如優(yōu)化讀寫路徑,還有I/O優(yōu)先級,不同的分區(qū)有不同的I/O有線級,還有原子寫操作優(yōu)化,等等。
最后分享一下我們對數(shù)據(jù)中心存儲設(shè)備的發(fā)展趨勢的想法。我們看來主要有三個趨勢,一個是應(yīng)用驅(qū)動,從應(yīng)用的需求出發(fā)來設(shè)計產(chǎn)品,另外是自研和定制化,第三點是軟硬件上下打通,一起做聯(lián)合優(yōu)化。最終目的是達(dá)到性能成本服務(wù)最佳的平衡。
謝謝大家!

