那么我們大家都知道最近在材料和存儲技術(shù)方面,有了天翻地覆的變化,很多新的技術(shù)不斷的涌現(xiàn),F(xiàn)lash、PCM、MRAM、RMAM等等。
新的技術(shù)、新的存儲材料不斷的涌現(xiàn),但是從系統(tǒng)結(jié)構(gòu)來講,我們現(xiàn)在面臨的系統(tǒng)結(jié)構(gòu)還是這個樣子,還是一個啞鈴式的結(jié)構(gòu),也就是說我們有非??焖俚挠嬎銌卧狢PU,然后我們又有非常大容量的存儲在另一端,他們中間用一個bus總線連接起來,PCIe、SATA等等,中間的連接就成了一個系統(tǒng)的瓶頸。
字符顯示終端,我們用簡單的MCU,和PCU結(jié)合起來控制,因為那個時候的顯示比較簡單,所以MCU已經(jīng)可以完全勝任它的控制和管理功能,但是隨著色彩的不斷增加,隨著解析度的不斷增加,這種模式已經(jīng)逐漸的不能滿足控制顯示管理顯示這樣的功能,隨著我們出現(xiàn)了GPU,這個芯片主要工作就是控制顯示。
那么今天我們面臨著存儲系統(tǒng)也是一樣的,我們的存儲是磁盤,控制比較簡單,就可以完全來完成存儲的讀寫,但是隨著數(shù)據(jù)的不斷爆炸增加,應(yīng)用的不斷廣泛,那么存儲的控制變得越來越復(fù)雜,再加上我們不同的存儲的材料,不同的技術(shù),不同的物理特性,對存儲的管理也提出了很多的挑戰(zhàn)。MCU和CPU來控制存儲的結(jié)構(gòu),同樣也不能滿足存儲系統(tǒng)的控制管理要求。
在三年前,我們就提出了一個新的概念叫做DPU。今天也有很多不同的團(tuán)隊,根本是一個,也就是說我們在存儲里面增加智能。我們就提出來一個新的芯片的架構(gòu),叫做DPU。在DPU里面我們做什么?
前面幾個演講者都講到AI的重要性,AI是用來做一些我們生活中常遇到的現(xiàn)象、一些過程的管理和優(yōu)化。我們?yōu)槭裁床荒苡肁I來控制管理存儲系統(tǒng)?
十多年以前,我當(dāng)時在美國做創(chuàng)業(yè)的時候,我們就發(fā)現(xiàn)存儲系統(tǒng)對不同的應(yīng)用場景出現(xiàn)的性能和可靠性、可恢復(fù)性都不一樣。比如說EMC,在那個時候,EMC會派一個團(tuán)隊到現(xiàn)場對存儲進(jìn)行優(yōu)化,那個時候可以這樣做。
為什么?
一個存儲系統(tǒng)可以賣幾千萬。但是今天我們這個SSD,幾千塊錢,你要派一個團(tuán)隊去到現(xiàn)場優(yōu)化,顯然不現(xiàn)實。那我們?yōu)槭裁床荒苡肁I的技術(shù)來進(jìn)行現(xiàn)場優(yōu)化?這就是我們當(dāng)時提出DPU概念的初衷。
在DPU里面用機器學(xué)習(xí)的方法,在現(xiàn)場學(xué)習(xí),對不同的應(yīng)用進(jìn)行優(yōu)化,這是DPU的第一個功能。
第二個功能是進(jìn)行數(shù)據(jù)的分析和計算,數(shù)據(jù)密集型的計算和數(shù)據(jù)密集型的分析。再一個是對數(shù)據(jù)的安全,在DPU里面進(jìn)行控制和管理。
現(xiàn)在看一個介質(zhì)優(yōu)化的案例。
我們大家都知道Flash memory,一個很重要的問題就是寫放大。比如說這是一個Flash block,里面每一個小框框是一個頁面。我們就提出一個機器學(xué)習(xí)的方法,來學(xué)習(xí)這個IO模型進(jìn)行分類,然后把相同、相類似的頁面放在同一個block里面,這樣減少了不必要的寫放大,這就是一個例子。
我們也做了一些測試,我們用的是Reinforcement Learning(強化學(xué)習(xí))。通過學(xué)習(xí),通過Reinforcement,我們Learn IO模型,對這些頁面進(jìn)行分類,根據(jù)類別來組成不同的block,結(jié)果這個效果非常好。這個圖藍(lán)的是沒有機器學(xué)習(xí)、沒有分類來組織block,紅的就是我們通過機器學(xué)習(xí)的方法把寫的頁面分類進(jìn)行組合。這個圖顯示的是擦寫的次數(shù),從這個圖可以看出減少的寫的擦寫的次數(shù)是非??捎^的,平均差不多在10倍左右。反過來講減少擦寫次數(shù),實際上也就是增加了Flash memory的壽命,這是第一個用機器學(xué)習(xí)的方法來對IO進(jìn)行分類,減少寫放大,延長Flash memory的壽命。
我們還在DPU里面實現(xiàn)了很多數(shù)據(jù)密集型的計算和預(yù)處理,大家都知道我們常見的數(shù)據(jù)分析和數(shù)據(jù)處理就是搜索和排序。我們現(xiàn)在在DPU里也實現(xiàn)了用硬件在存儲控制器里面實現(xiàn)數(shù)據(jù)搜索。我們發(fā)現(xiàn)目前大部分應(yīng)用都是非結(jié)構(gòu)化的數(shù)據(jù),我們就用這個硬件來實現(xiàn)對大數(shù)據(jù)、大文件進(jìn)行快速搜索,這個東西我們的名字叫Regular,在大數(shù)據(jù)存儲里面進(jìn)行快速搜索,作為一個快速的、初步的搜索。
我們會發(fā)現(xiàn)有這個預(yù)處理以后,搜索的速度大大地增加,這個圖也是我們測量出來的搜索速度。紅的就是它的吞吐量,來對大數(shù)據(jù)進(jìn)行搜索的吞吐量。藍(lán)的就是沒有Regular,你要用軟件來搜索的吞吐量。
排序是一個非常常用的運算,比如說你在做排序和MST的時候,你首先要把這些圖的點和邊進(jìn)行排序,我們這個也做了硬件的實現(xiàn),用很簡單的硬件方法把數(shù)據(jù)在存儲器里面進(jìn)行排序,CPU把這個已經(jīng)排好的數(shù)據(jù)調(diào)上去,很快的就可以把這個排序和MST運算出來。
這個是我們測量出來的結(jié)果,也就是說用硬件、用在存儲器里面進(jìn)行預(yù)處理,大大提高整個系統(tǒng)的性能。這個是在做MST的時候,就會發(fā)現(xiàn)這個性能提高非常大。
最后一個,在存儲系統(tǒng)里面,存儲設(shè)備里面實現(xiàn)一些系統(tǒng)結(jié)構(gòu)的功能,我們大家都知道我們有不同的存儲設(shè)備,有不同的存儲材料,F(xiàn)lash、PCM、Intel的傲騰等等,這些存儲速度都不一樣,都有不同的速度、不同的價格。同時DPU也實現(xiàn)了East-West Connectivity,這樣可以實現(xiàn)Distributed SAN。
DPU里面還有一個DPU Link,這個DPU Link在一個板子上面可以連接FPGA,可以連接iSCSI,做一些特殊的運算和處理。同時我們這個Support Multiple Protocols,包括iSCSI、FC、NVMe、over the fabric、NAS,在DPU實現(xiàn)了快照、鏡像、數(shù)據(jù)恢復(fù)、數(shù)據(jù)編碼、糾錯和檢錯還有安全等等各種功能。DPU實現(xiàn)了存儲和計算的智能融合,這就是我今天要給大家分享的內(nèi)容。