TGO 硅谷会长钟浩:计算存储子系统
人类历史上 90% 的数据是过去 3 、5 年产生的,发展非常快,但是硬件发展没有那么快,所以我们要存储这么多数据,要处理这么多数据,在技术上一定要有更加高效的办法。
回顾一下历史,经历了从卡带到硬盘到 SSD 再到闪存阵列,当固态硬盘出现之后,革新就自然而然会延伸到上一级。因为之前的文件系统、数据库都是针对机械硬盘做的,所以它的读写性能、时延,或者数据的管理方式都是按照硬盘来设计的,所以底层速度增加之后,上面的这些文件系统和存储系统都会得到相应的改变,这就是为什么我们看到全闪存阵列或者超融合的系统出现了一波创新公司。
我们现在作为创业公司,肯定不能看着大公司做什么而做什么,而是要在他们做之前,用最敏捷的方式觉察到趋势,然后把产品先于这些大公司带到市场上,今后的 5 到 10 年,是计算存储的一个好时机。为什么这么说?我们知道数据一般来说都是构建在数据库、大数据或者 CDN 以及 AI 平台上的,他们的共同特点就是数据量非常大,要求存储密度越来越高,所以现在大家用 3D 高密度的闪存以及 PCIe 接口的 SSD 来在存储上解决这个问题,同时因为数据量增加的速度非常快,要处理和管理的数据越来越多,所以对响应时间、处理能力要极大增强。
我们看过去的十年,数据中心发生了很大的变化。首先固态硬盘出现之后,随机速度提高上千倍,顺序速度有十倍的提升。再看网络,从 1G 的网络到 10G 的网络再到现在 100G 的网络,十年提长了一百倍。再看 CPU,过去十年 CPU 的主频没变,多核到了 16 核、32 核,之后再提升的效率也大幅放缓。 随着摩尔定律日渐式微,英特尔 CPU 每一代增长的性能已经非常有限。而数据量增加的速度比以往任何时期都要多,网络和存储的带宽被打开之后,计算就是会形成越来越多的瓶颈,这个需求现在非常大,如果提升成了一个很大的挑战。
我们认为,计算的加速和并行其实在存储这方面更加有优势。因为数据在那里,如果解决一些跟存储相关的计算,效率会明显提升,所以可计算存储是未来 5 到 10 年的一个必然趋势。异构计算时需要分流,存储自然而然又是最适合来定型化整合加速这些计算的地方。
这个思想很简单,我们知道数据处理的过程是从存储加载内存,然后 CPU 进行计算,然后再把它放回到存储,或者发到网络上。如果资源不够,我们最简单的办法就是加服务器,但现在大家都拼命扩容服务器,可还是架不住数据呈指数增长,硬件没办法这么快地增长。那就要让合适的资源做合适的事情,让它分流。我们的想法就是把快速的存储介质( 也就是闪存和 CPU )不擅长的而又特别适合固定电路的计算,让它更加贴近存储。
这样做的好处:
首先,可以减少大部分的数据移动,直接在存储端完成计算,不必经过内存、CPU ;
第二,就是处理的速度,用 FPGA 或者 ASIC 的固定电路来进行一些计算的效率要比 CPU 高很多。
第三,像 FPGA 这种资源有很好的重构能力,它能很好地适配新的应用。一台服务器里面存储的插槽是最丰富的,由它来做计算,并行度能够增加很大。
我们与英特尔、三星的区别主要是两个地方:
第一个就是计算的加速,把一些非常高频的和存储非常相关的计算 off load 到盘或者卡上面,这样处理速度会很高,同时大幅度的给 cpu 减压;
第二点区别就是应用的优化,针对大数据数据库之类的应用进行针对性的优化,在系统层面得到更大的收益。
既要时延好,又要节约成本,就得找到一个很好的软硬件结合的解决方案,针对应用优化再加上计算的加速,结合起来从性能、利用率、成本上都会有很大的优势。从寿命上也能提升,因为固态硬盘的擦写次数是有限的。
你们的优化是针对于原生产品和框架吗,会不会动它们原有的代码?
回答我们做了两层优化,一层是不动任何一行代码,在了解它的特性之后,在存储端做优化,我们能得到大概 2.7 倍的提升。其实基础软件硬件有这样的性能提升已经是非常大了。还有一种是要做一定的修改,但不会去改变它原来数据库的基本架构,这会得到一些额外的收益。
如果我基于的是 Aerospike ,是不是还需要针对它进行专门优化?
回答首先这个产品有它的通用性,用它取代普通的 SSD ,所有的业务都能跑,性能也会非常好。如果有一些特定的应用,有两种优化方式,一种是不动代码,通过配置进行优化。还有一种是知道某个地方有瓶颈,把它的 API 替换掉。所以要看这个应用是什么情况,当然,我们也会帮助客户来调优。