2014年12月2日,由中国软件行业协会、中国计算机学会、武汉国家光电实验室和国防科技大学大力支持,DOIT传媒和存储在线联合主办的中国数据存储年度盛会—— 2014(第十届)中国存储峰会今天在北京盛大开幕。作为中国存储产业的十年盛会,峰会以“掌控数据经济·重塑商业价值”为主题,邀请超过1500位学术界顶级学者、产业精英和企业用户出席,围绕数据经济和商业价值两大话题,从云计算、大数据、软件定义和闪存等四个技术方面举行一系列主题演讲和圆桌会议。
在下午的闪存分论坛上,赛门铁克存储及高可用解决方案资深首席架构师 黄昆发表了题目为《如何将Flash闪存技术运用在高性能、高可靠的企业核心系统》的演讲。以下是文字实录:
黄昆:我相信坐在闪存会场的应该是对闪存技术有一定了解的,希望运用闪存技术的客户。但是闪存技术去年的市场不管是出国量,还是容量的比例来说,目前占整个存储在全世界存储的突破量,大概是在万分之三左右,这个数字可能低于大家的想象。
但是大家又不可否认闪存技术是未来的一个趋势,否则我们今天不会坐在这里。今天我想跟大家分享的就是如何将闪存技术运用到企业的核心系统里面。我们看一下前年的数据,ECT做的调查。企业调查基本上是有30%的五百强企业的IT,他们调查的大企业。在核心系统,核心系统跟企业业务是直接相关的系统,对于这些系统怎么应用,想怎么应用闪存技术,结果很有意思。我们可以看到有一半的企业,一半以上的企业想把闪存用在哪里?数据库。也就是说有一半的企业会想把闪存用在数据库,接下来还有什么?ERP,或者SAP的东西,还有什么?分析系统。还有一点很有意思,我想跟大家分享,提高效应速度,或者说像12306,他们为了响应海量的并发的请求,还有一些电子商务。大家看到很有意思,还有一些是什么?邮件,25%之前的基本上都是这样一些传统的业务。
但是是什么阻碍了?其实现在闪存作为不管从性能,比如说有各种算法,IOPS高了什么的,闪存其实并不贵,大家今天上午听了很多了。
那么目前市场上我们假设,我们抛开互联网企业,因为互联企业有一个特点,他们自己做应用。我们平时做的客户没有做应用的定制化,比如百度用Flash技术,三年前就开始在用,在搜索引擎里用。比如脸书网用闪存技术,这些企业怎么用闪存技术,坦率说对我们的传统的企业可以说没有竞争价值。从技术角度上没有竞争价值,我们可以从竞争趋势上,我们觉得它是有一定的道理的,但是从技术的应用上没有任何价值。那么企业怎么用闪存?很简单。第一种用集成的软硬件一体机,比如(英文),然后或者是SAP的,性能巨快,软硬件一体。你不是要快嘛,可以。但是对不起,你不能自己去买。你得全部买我的打包的东西。第二个做法是什么呢?全闪存阵列,当然现在还有很多其他的。包括像EMC也好,像传统厂商也好,他们都在做闪存阵列,他们会用到闪存优化的,存储量很高,但是这个闪存阵列一个是贵,非常非常贵。而且全闪存阵列现在还有一个问题一直没有得到很好的解决,就是全闪存阵列控制器双核的问题一直没有解决很好。还有传统的,比如传统阵列里插一个小存盘,这就是传统的阵列厂商,这个在两三年前就一直在推,但是推的不温不火。还有就是融合架构,我其实是跟很多的比如说土豪一的企业客户,比如中石油,国家电网、工商银行和中国移动,这种土豪级的客户,不差钱的客户交流过,怎么考虑应用闪存。说闪存要不要用,好,这个东西的确好,企业需不需要,需要。为什么现在不考虑?一个字,贵。土豪级的客户居然会觉得你的东西贵,贵到什么程度?
那我们现在看一下其实闪存贵不贵呢?从设备厂商角度来说,会说闪存一点都不贵,比如最贵的闪存卡3个TB十万块钱,贵吗?不贵。一台4C的X86服务器也接近20多万,10万的闪存卡贵吗?不贵,对不对?那么我们再看一看,比如中国移动,所有的土豪里最土豪的一家,一个省里中等省份,不谈大省,中等省份光一套系统的一年的维护费大概是2000万。10万块钱买个卡算什么?但是为什么他们会觉得它贵?很简单。不是说按照这个TB来算的。比如说一个成熟的CRM,大一点的,比如我说一个银行的例子,工商的审计库,最大的数据库,除了后台的不谈,这是另外一个领域,前台的开放系统最大的是14个TB,这就是最大的了。我们想我们用闪存去做,3TB换到闪存,5个闪存足够了,加上保护6个闪存足够了吧?真实情况是这样吗?其实不是,如果仔细一算存在几个问题,的确现在的存储是够了,但是要为未来想。我的企业我要做这个宝,那个东西,各种各样的业务,他们预计可能我的企业下一年,我的存储容量就要翻番了,这个时候你能不能跟着我翻番?我一个PC里面就有8个TCIE的槽,一次性插满了我以后怎么办?东西是不贵,但是扩展性不行。
第二个问题是用了闪存之后,闪存的管理的方式以及闪存的生命周期等等,这样都跟传统的盘不一样,闪存是一个块设备,其他的是别的设备,管理什么都不一样,增加了复杂性。再接下来还有第三个问题,管理的复杂性之后FA怎么去做?然后我现在我的数据都是有快照做保护的,用了闪存之后快照怎么做?然后接下来用了闪存之后,那么你的风险怎么做?你只是插进一个点的时候,用户的第一个要求是你插的这个点可以适应现在的体系。如果不行就全得用,那意味着什么?意味着如果你不能融入用户的系统,闪存的实际利用率是很低的,现在标准的企业快照5份,每两小时一次,这个就有点难以接受了对不对?然后继续往下走,同样的再一双倍就乘10了,还有你在内部使用如何把这个资源给大家共享,这个是一个问题。一下插了6个卡进去了,怎么用?这都是闪存所面临的一些问题。它的真正用户觉得贵的原因是说你对IO的提升值不了那个价,简单说就是这个问题。
那么现在我们再回头看我们目前企业客户能用闪存的技术的4种方式。我把它形容很简单,闪存是10块钱的东西,你把它放在传统阵列做混合存储的确跟现有系统融合了,但是你只能是买到两块钱的(英文),你把它插到机器内部,的确你买到了8分钱的(英文),但是你要付出的是什么呢?是10倍的风险。你为了提高这个(英文)你铤而走险用户是不答应的。那全闪存阵列会怎么呢?我花了10块钱,买了5块钱的(英文)。它太贵了。所以种种因素阻碍了用户在企业内部大规模的用全闪存技术,就像趋势看到的,我们想到的趋势从技术角度上,我们想到的是什么?未来的世界是闪存做在线的热数据的一线的存储,然后7200万的大盘,足够便宜的大盘去放数据,这世界多美好,但是事实是企业和我的要求不是这样的。我需要快照,我需要容量,我的容量跟生产数据,我的真实的容量和业务数据的比率的关系不是像大家想象的,然后还要考虑风险等等。所以现在困扰企业大规模使用的我觉得就是这个原因,他找不到一个合适的模型或者架构来让它放心的去在企业内部数据中心全面应用闪存技术。
所以总结起来在企业的核心系统中使用闪存技术需要解决几个问题。如果你是用传统的阵列的方式,然后在里面插闪存盘,你要真实的解决的问题其实是什么呢?其实是你要解决的问题是说解决问题的目标是解决数据热点的问题,这个闪存盘不一定能提高太多的性能,可能提高一倍的性能,但是它可以做什么?可以消除数据热点的问题,减少IO征用,所以我们真正如果在企业的数据中心里面用它,也要把它用对。当我们把它用对了的时候,我们在某一个核心系统里面,我们的闪存盘把热点数据放在闪存盘,然后周期性的进行迁移,这个经济效益就会很显著,用户觉得很值。如果说想让他把闪存盘插进去就起到提升性能的作用,这个就跟他的期望值有点过高,放在不合适的位置上了。真正是如果企业有闪存,想把闪存放在阵列里面,想在阵列里运用闪存,我的想法就是优化SSD,就是跟应用配合起来,周期性的做成自动脚本也好,或者工具也好,就是要定位解决IO热点,很简单。
如果你是用全闪存阵列,非常高性能,然后也是可以在SAN里面扩展,扩展能力也很好,这个性能是非常好的。那么我们定位是什么呢?其实我们要解决的是瓶颈的一些问题,主要要解决一些什么问题呢?就是尽量不要占用传统的,比如说(英文)或者起来的一些低延时的网络传输系统,当然像现在更流行的特别是现在更流行的比如说英特尔的DPDK,就是高存储的一些协议,我觉得这个是很重要的事情。
当然总的来说全闪存在做成阵列还是价格过于昂贵。还有一种是什么呢?是说把闪存放在(英文)里面做闪存,减少IO延迟,它的作用就是减少IO的延迟。这样就像前面演讲的人说的把闪存技术和传统的SAN技术打通在一起,那么在这个运用模式下,我觉得关键技术是什么呢?关键技术其实就在于说你要支持读写Flash,真正影响企业最终核心系统里的真正影响交易完成的是写那一下,你不(英文)是完全不了的。如果写做不出(英文)来,你的(英文)的速度提不上去,速度提不上去你再多的(英文),多少的并发应用,你最后(英文)运行不了,交易完成不了。但是现在的问题就在于说读很简单,最后的数据都在后台的共享上面,保证数据一致性或者什么,很容易的一件事情。但是企业(英文)就不一样了,把这个(英文)写上去就要有足够的把握,如果坏了,或者主机档了,那交易怎么继续进行?这就是一个问题。现在我们想了叫(英文)技术或者(英文)。
第三点就是什么呢?还有一种是目前比较接近的,或者比较新锐的,像我们公司,包括现在还出来一些(英文)的公司,像(英文)公司。他们强调的是,包括英特尔也是在强调说未来数据中心的架构是什么样的呢?可以不要存储了,全部用SSD,中间用(英文)。原理很简单,数据离CPU是最近的,而且它的性能是最高的。高在哪一点?不一定是比前两种方式的吞吐提高多少,但是IO的相应时间延迟是大大的提升了。
举一个例子在SAN上面用全闪存的阵列来做的话,虽然是可以稳定在一毫秒到两毫秒之间,如果在(英文)的情况下,全部在(英文)里面,这个通常也是监控不到的,如果进入系统内部跟踪,大概是在50微妙左右,就是这个速度。所以它的响应速度基本上已经很接近内存的响应速度了,就是内存的(英文)响应速度,也就是对于计算机来说或者纯粹对于计算来说这个区别已经不是太大了。
当我们把数据放在每一个节点上面,这种分布的一致性,非对称的一致性的问题怎么解决?在科学计算或者设计领域,互联网领域有一些分布式的技术,或者若一致性,通过弱一致性保证。数据仓库ERT等等,邮件系统,这些不全是用弱一致性来保证的。当然了,哪怕强大的像阿里巴巴,双十一创造如此的价值,但是他们的后台架构还是强一致性,不是弱一致性,还是基于(英文),对于这个事情就有强一致性的问题。所以这个就需要我们底层技术做更多的突破。
前面谈了各种闪存放在企业里面的拓扑,我们再看一下从纵向来看,我们看LNX的Stach怎么优化,那么闪存放在哪呢?我们应该在这里,这是闪存可以放在这个层面。但是这个层面是什么?是系统的(英文),它不是盘,要走到盘需要走很长的一段路。要首先经过(英文)的队列,然后到设备的上层,然后你要到每一个设备的底层。举一个简单例子,如果你把一个闪存通过一个盘进来了,你走的IO通道是怎样的?是这条路。你走的(英文)协议,一层层的影射上来,通过队列再走,这个队列为什么需要?因为以前有磁盘存在的时候需要有队列,协调IO。闪存其实是一个层面的,不需要这样,不是串性的东西。更高效率的办法是不通过系统的队列,直接走到设备上面,直接访问闪存。闪存卡是这样的IO通道,走盘是另外一条通道,如果把盘传到(英文)里面再影射出去,相当于同样的通道走了两遍。所以尽管有不同的应用闪存盘的技术,但是这个闪存离你生产系统越近,性能越好,一定是这样的。你想用闪存来提升性能其实有几种区别。一种是闪存设备,这样你可以达到多少的性能?基本上性能极限在600到800。如果单通道的,单块卡单通道的,大概是1.2G,还有一种是当成LNX的(英文),这个在于什么呢?经过(英文)队列稍微要降一点性能,这个性能降低不大,吞吐量是1.1G,但是这两种技术之间还有一个差别是什么呢?是IO,这个是50微妙,这个的大概是在0.5毫秒左右,差不多多了七八倍。对于这个差别并不是特别大,对于设备厂商来制造设备来说,这两种方式区别非常大。
所以综合前面的,企业应用我们谈纯粹的企业应用,它的PCI8的闪存设备实际技术需求有几个,第一是要实现闪存卡之间的数据共享,不然根本没法用。那解决问题的办法现在主流是用(英文)RDMA的方式,高速低延迟。第二个企业需要做读写的Flash,这是跟互联网企业最大的不一样。如果做企业Flash要做(英文),这个是必须要保证的。现在市面上有很多这种用Flash做(英文)的技术,但是如果大家看(英文),第一句话就告诉你,对不起我不支持(英文)。所以你的数据库一跑上去(英文),常出错,各种古怪的问题都碰到过。前一段时间帮用户做了不少这样的系统。还有一个就是跟现有的SAN环境以及高可用保障系统结合起来。也要有快照,这个意味着什么?在迁移的过程中做到(英文),这个是非常难的事情,一致性的数据拷贝,而且是分布式的。
这是对性能优化的,这个图今天时间不够。简单介绍一下RDMA,它是把计算和通讯整合在一起。所以数据传输效率很高,最好的地方是无需OS介入,所以在做IO是不需要开销的,或者传递数据的时候,这个是很快的,快速过一下。这是没有RDMA的方式,要放到记忆卡里封装,传到不同的协议层,每一步都要传递,通过物理电路打包成真传过来,一层层的,时间非常长。然后有RDMA的方式很简单,你这里有一个数据,然后你们形成了传输机制,封装,到这边不用解装,直接进内存。所以它的效率是非常高的。
我举一个例子,像(英文),它在两种方法之间都用了RDMA,第一是数据库节点,用的是传递同步,直接使用了RDMA协议。第二个是数据库和(英文)单元之间,用的IDB协议,其实还是(英文)。总之通过这个,即使使用大量数据传递,一来有足够的CPU和足够内存,进行正常的数据处理。
(英文)也有自己的,Flash混合存储解决方案。我们通过并行文件系统在两个节点之间做了一个打通,两个节点里面的Flash卡形成一个镜像的关系,保证这两个Flash卡之间是(英文)的关系。我们后台的往下刷数据,但是这个异步刷数据的过程可以保证(英文),因为我们会对IO系统做一个标签,有一个(英文)机制保证,而且多个快道之间去刷。最后给用户呈现出的是一个统一的存储,但是是比正常的读写的(英文)要高很多。这个特别在用在(英文)数据库上面反应效果是非常不错的。
第二个还有一个就是我们的PCIE的闪存卡共享解决方案,最大可以支持多少?支持8G,任意一个节点都可以访问整个8个节点上的闪存的任何一个区域,这8个既是计算节点又是存储节点。中间是用什么?是用(英文)进行互联,我们经过测试在(英文)数据库的情况下,随即读写本地和远程,比如数据在这一块上,这一块计算节点要进行读写的话,那么本地的速度跟远程的速度是多少呢?是10:9,本地可以到2.4G,远程差不多可以达到2G以上,这是非常接近的一个速度。
当然最大的好处就是我们所说的,我们支持用户来定义融合性的灵活存储解决方案,是什么呢?我们可以在主机内部,如果槽位多可以插全闪存,如果不够可以混插。这两个机器还可以外接做FC存储,所有的数据都可以跟FC存储发生,这个节点可以变成什么呢?辈分节点,存储节点,可以跟上网点结合,甚至可以不插结合存储,直接做结算节点,去访问远程的数据。整个都是在同一个管理体系下的。你可以把这边的数据快照刷到外存储上面,可以做镜像到外存储,镜像一般不推荐,因为性能上不去了,快照比较有方法,还有连续拷贝,各种方面,甚至用备份方式到外路存储上面。你快照用什么体系等等,还是用原来的体系,只不过环节变成两步骤。所以整个对企业来说它的选择是很灵活的,而且我们支持在线扩展和即插即用。比如原来是4个节点,或者最少一两个节点,一个一个加上去,加上去的节点可以插盘可以不插盘,只要加进来了,整个存储空间就是被共享了。这是赛门铁克针对优化的灵活的解决方案。
我们公司最近正在招募大量的合作伙伴,因为闪存技术最重要落地要给用户是一个解决方案,我们公司只能提供软件,但是我们需要有闪存的盘,我们需要有主机,我们需要有应用,一系列的。整个给用户提交的是一个完整解决方案,才是用户真正感兴趣的方案。所以如果有感兴趣的合作伙伴可以跟我们联系,我们可以一起推出符合中国特色的一体机或者融合系统。