我们今天面临的是大数据、云计算时代,数据是每天都在暴涨的,对数据的存储也提出了空前未有的挑战,这个图显示的是对SSD市场需求的趋势,增长是以指数的曲线在增长。
那么我们大家都知道最近在材料和存储技术方面,有了天翻地覆的变化,很多新的技术不断的涌现,Flash、PCM、MRAM、RMAM等等。
新的技术、新的存储材料不断的涌现,但是从系统结构来讲,我们现在面临的系统结构还是这个样子,还是一个哑铃式的结构,也就是说我们有非常快速的计算单元CPU,然后我们又有非常大容量的存储在另一端,他们中间用一个bus总线连接起来,PCIe、SATA等等,中间的连接就成了一个系统的瓶颈。
字符显示终端,我们用简单的MCU,和PCU结合起来控制,因为那个时候的显示比较简单,所以MCU已经可以完全胜任它的控制和管理功能,但是随着色彩的不断增加,随着解析度的不断增加,这种模式已经逐渐的不能满足控制显示管理显示这样的功能,随着我们出现了GPU,这个芯片主要工作就是控制显示。
那么今天我们面临着存储系统也是一样的,我们的存储是磁盘,控制比较简单,就可以完全来完成存储的读写,但是随着数据的不断爆炸增加,应用的不断广泛,那么存储的控制变得越来越复杂,再加上我们不同的存储的材料,不同的技术,不同的物理特性,对存储的管理也提出了很多的挑战。MCU和CPU来控制存储的结构,同样也不能满足存储系统的控制管理要求。
在三年前,我们就提出了一个新的概念叫做DPU。今天也有很多不同的团队,根本是一个,也就是说我们在存储里面增加智能。我们就提出来一个新的芯片的架构,叫做DPU。在DPU里面我们做什么?
前面几个演讲者都讲到AI的重要性,AI是用来做一些我们生活中常遇到的现象、一些过程的管理和优化。我们为什么不能用AI来控制管理存储系统?
十多年以前,我当时在美国做创业的时候,我们就发现存储系统对不同的应用场景出现的性能和可靠性、可恢复性都不一样。比如说EMC,在那个时候,EMC会派一个团队到现场对存储进行优化,那个时候可以这样做。
为什么?
一个存储系统可以卖几千万。但是今天我们这个SSD,几千块钱,你要派一个团队去到现场优化,显然不现实。那我们为什么不能用AI的技术来进行现场优化?这就是我们当时提出DPU概念的初衷。
在DPU里面用机器学习的方法,在现场学习,对不同的应用进行优化,这是DPU的第一个功能。
第二个功能是进行数据的分析和计算,数据密集型的计算和数据密集型的分析。再一个是对数据的安全,在DPU里面进行控制和管理。
现在看一个介质优化的案例。
我们大家都知道Flash memory,一个很重要的问题就是写放大。比如说这是一个Flash block,里面每一个小框框是一个页面。我们就提出一个机器学习的方法,来学习这个IO模型进行分类,然后把相同、相类似的页面放在同一个block里面,这样减少了不必要的写放大,这就是一个例子。
我们也做了一些测试,我们用的是Reinforcement Learning(强化学习)。通过学习,通过Reinforcement,我们Learn IO模型,对这些页面进行分类,根据类别来组成不同的block,结果这个效果非常好。这个图蓝的是没有机器学习、没有分类来组织block,红的就是我们通过机器学习的方法把写的页面分类进行组合。这个图显示的是擦写的次数,从这个图可以看出减少的写的擦写的次数是非常可观的,平均差不多在10倍左右。反过来讲减少擦写次数,实际上也就是增加了Flash memory的寿命,这是第一个用机器学习的方法来对IO进行分类,减少写放大,延长Flash memory的寿命。
我们还在DPU里面实现了很多数据密集型的计算和预处理,大家都知道我们常见的数据分析和数据处理就是搜索和排序。我们现在在DPU里也实现了用硬件在存储控制器里面实现数据搜索。我们发现目前大部分应用都是非结构化的数据,我们就用这个硬件来实现对大数据、大文件进行快速搜索,这个东西我们的名字叫Regular,在大数据存储里面进行快速搜索,作为一个快速的、初步的搜索。
我们会发现有这个预处理以后,搜索的速度大大地增加,这个图也是我们测量出来的搜索速度。红的就是它的吞吐量,来对大数据进行搜索的吞吐量。蓝的就是没有Regular,你要用软件来搜索的吞吐量。
排序是一个非常常用的运算,比如说你在做排序和MST的时候,你首先要把这些图的点和边进行排序,我们这个也做了硬件的实现,用很简单的硬件方法把数据在存储器里面进行排序,CPU把这个已经排好的数据调上去,很快的就可以把这个排序和MST运算出来。
这个是我们测量出来的结果,也就是说用硬件、用在存储器里面进行预处理,大大提高整个系统的性能。这个是在做MST的时候,就会发现这个性能提高非常大。
最后一个,在存储系统里面,存储设备里面实现一些系统结构的功能,我们大家都知道我们有不同的存储设备,有不同的存储材料,Flash、PCM、Intel的傲腾等等,这些存储速度都不一样,都有不同的速度、不同的价格。同时DPU也实现了East-West Connectivity,这样可以实现Distributed SAN。
DPU里面还有一个DPU Link,这个DPU Link在一个板子上面可以连接FPGA,可以连接iSCSI,做一些特殊的运算和处理。同时我们这个Support Multiple Protocols,包括iSCSI、FC、NVMe、over the fabric、NAS,在DPU实现了快照、镜像、数据恢复、数据编码、纠错和检错还有安全等等各种功能。DPU实现了存储和计算的智能融合,这就是我今天要给大家分享的内容。