王栩东:戴尔面向业务的高性能架构

2014年7月31日,由DOIT传媒、存储在线主办的“2014中国闪存峰会”在北京亮马河饭店隆重举行,来自第三方调研机构、专家学者、行业用户、厂商代表和意见领袖等多方人士齐聚一堂,以“闪耀IT 存取未来”为主题,从不同角度深刻探讨闪存技术如何促进政企组织的业务创新。
来自戴尔中国资深存储解决方案高级顾问经理王珝东做了主题演讲,围绕“为面向业务的高性能架构”展开。
演讲实录如下:
    今天上午包括下午之前听到很多关于闪存的技术,它的好处、优势,高I/O,低延迟,不同的各个厂商有不同的产品,大家看到外面有很多展示。我也看到有卡的放到主机里面,包括SSD硬盘,还有存储,各个厂商都有不同的自己的解决方案。有些客户买了SSD硬盘,结果发现上去的性能跟他多买几块SAS差不多。我们如何利用好闪存技术的解决方案,解决客户的问题才是最重要的,并不是说我今天买了闪存都可以解决客户的所有问题。有没有一个解决方案不同于其他的厂商这种插卡式、硬盘、存储,能不能把他利用起来,一个比较好的解决方案来解决客户的应用的问题,解决客户的高I/O需求,低延迟的需求,这是我今天跟大家讲。
    讲到整个解决方案之前先给大家举个例子,先看一个场景,常常会上网购物,淘宝或者是京东都会上网购物。你在上网购物的时候对于我们的网站来讲他的访问的频率和访问的模式包括他的高峰期和持续度是没有办法猜测。经常会说比如我们光棍节的时候一天都是高峰,他有促销,6.18有促销,这些东西他的持续的时间可能是一小时、两小时、八小时或者是峰值都是在夜里,这是很难去评估。第二需要一个极快的速度去访问,淘宝大概每秒到1.4万个并发用户,1.3万个并发I/O。一般人的忍耐度经常我们会打开一个网页的时候三秒钟打不开我基本上关了去另外一个网站。三秒天堂,三秒低于定律。另外数据对业务极具价值,确保送货,地址的准确性,你的行为习惯,以前买过什么东西,很多网站推出以前买过什么东西,别的人以前买过什么东西实时推送。以前通过7到14天出来给你推送,现在很多网站都可以实时推送,这是数据对业务的价值。
    另外还有来源于移动互联网,包括我们的手机、Pad这种,很多朋友像我有时候吃饭够,去的路上提前30分钟团购,这种数据量越来越大,越来越多,客户体验越来越好。所以这就是对业务负载的挑战。我们所搭建这个系统是不是可以持续支撑不但变化和上升的业务。以前一刀切的方式买一个存储解决所有问题,基本上不够高效,效率不高。不同类型数据都需要分别对待,以确保存储容量和成本与应用性能更好的匹配。用户良好体验特别重要。
    性能问题影响客户体验,一是程序开发的因素,代码没有优化,设置参数的优化,数据索引的建立的时候,搜索方法。另外还有就是基础架构和部署的因素,计算、内存资源不足,网络带宽、存储I/O,两个相互之间有可能有时候可以互补。当程序开发的时候有这些问题可以用基础架构更快的解决这些问题,我的程序开发是更多,我有1000多个人或者是1万多个人可以投入很大的资源做程序的优化也可以。因为有这两个因素,所以我们会发现我们可以看到数据库会慢,关键业务慢,线上的业务慢,甚至分析报表也慢,备份恢复慢,可以看到所有客户体现的慢基本上在这几个方面,性能影响客户的几个方面。
    在我们经常搭建系统的时候,大家讲性能,经常说我要高带宽,高I/O,这个像我们过收费站一样,一到礼拜六礼拜天京藏高速,进京方向,回来的时候基本停在那,延迟等,我们经常考虑的都是在带宽,我的收费站再多,可能收费的人每人就交十块钱,每个人都递100块钱,每次都要找90块钱,延迟很大。考虑一个性能,另外还有一个因素就是延迟。但是延迟和可靠性又是相互冲突的地方。如何保证延迟越小,可靠性越高。I/O一些延迟的关键因素造成延迟在I/O上面,一个是盘速,转速,从以前7200转、1万转和1.5万转,以前硬盘到1.5万转再也没有上去了,包括散热和转速的问题等等。还有存储的连接能力,我们控制器到重复速率,这是带宽问题。还有存储区域网络本身的延迟的瓶颈,我们可以看到这个造成延迟非常大。这个延迟数据产生基本上都是计算节点到存储节点数据传输的时候,I/O越多,他响应的时间越慢,最后结果就是应用性能受到影响。
    我们可以看到我们需要面对技术的现实,我们知道CPU内存符合摩尔定律,存储这么多年都是这样发展,本身从纳秒一级的CPU处理速度到毫秒一级硬盘树立速度相差非常大,造成延迟大的原因,性能不好的原因。怎么解决这个问题?到底花费多少钱才可以把这个花费缩短。传统的方式有几种可以缩短从I/O到CPU的毫秒到纳秒的提高性能。第一种方式就是快道技术,传统硬盘上面速率最快是外圈,能不能把这些活跃数据全部放到外圈,不是过去数据散列放到硬盘上,快道技术把数据放到外圈。戴尔本身提供类似的解决方法,流动的数据架构。第二种方式就是提高存储带宽,光纤的网络,8G,16G甚至更高。把网络带宽加大,但是并不代表低延迟。收费站有四个口收费,扩到40个收费口,每处理速度那么慢,也是很慢。网络带宽加快并不一定缩小你的延迟,这也是另外一种方式,加大网络带宽可以解决一些问题,不是全部。第三种就是在后端部署闪存盘,可以看到在过去如果用机械硬盘的话,今天可以用11块×SAS SSD,可以跑到88000I/OPs。在闪存盘非常快,你是写密集型还是读密集型,这跟应用很大关系,他的成本是多少,目标是多少。放在机柜里不知道是349块盘在机房耗电都是花钱的,相对SSD来讲便宜很多。第三种方式后端存储部署快速的闪存盘。我们实现读写分离,能够感受到SSD硬盘的性能,可以提高一些性能。用这种方式可以解决是什么问题?这是我们举的现实的例子,这是戴尔公司和SAP在上面做的解决方案,包括六个纬度数据表和两个事实百数据,主表包含180亿条记录,总量超过60TB,两个小时才可以计算出结果。现在采用这种后端在存储加闪存的解决方案,可以提高查询速度从两小时变成20秒,可以同时做400个并发查询时间缩短到10分钟。闪存的数据中心可以解决一些延迟问题,所但言日,提高I/OPS,提高客户的访问度。提高客户体验,降功耗。
    这三种方式可以解决从I/O、存储到CPU这么大鸿沟之间60%的问题,剩下40%怎么办?今天所有插卡式,SSD硬盘还有后端存储都只能解决这个,跟CPU还有差距,怎么让他更贴近CPU,更快的速度满足客户的应用。
    解决I/O延迟的突破,所有I/O来了要通过CPU到存储前端的HBA,还有控制器,还有后端的HBA,还有磁盘还有到硬盘,经过这么多步骤。更多厂商要么做前端,要么做后端,每经过一步全部都有延迟,延迟非常大。通过什么样的技术应用,来解决这个问题。我们就更贴近CPU,怎么做?用现在的PCIe的SSD闪存加速放到服务器上面。跟你插卡和硬盘有什么区别?第一要考虑这个很贵,是不是多个应用同时使用,能不能同时都可以共享,现在很多插卡和硬盘的SSD都是单机使用,其他机器怎么用。老的机器无法支持PCIe的SSD方式插不上去,怎么提高他的性能,第一个要考虑这个问题。放到主机里的SSD卡,同时多机多应用共享。如果可以多应用共享,就类似一个Cache值,这个是否可靠。主机内存一样,一关机数据就没了,虽然SSD掉链之后数据还有。但是属于坏掉了,这个数据怎么保存。硬件发生问题,能不能做自我保护,目前在很多厂商他们的解决方案我认为不是特别的完善,因为做硬件的复制,价格非常贵。看一下戴尔怎么解决的?第三我们用SSD到底是不是用读取加速还是写入加速还是两者都可以。第四考虑的问题是不是我加了这个高速缓存以后,我的应用要改,或者未来当你在扩展的时候,你在在线扩容或者是即时生效或者是前端部署的时候会不会有停机。这就是我们要考虑的五个问题。有没有一种解决方案把他全部解决。这是我们解决I/O延迟的最终办法,我们要创建一个高速的共享闪存池,这个闪存池是放在主机里的,可能是一排两排三排,只要插上有PCIeSSD硬盘就变成共享的闪存池。就可以把最活跃的数据,读写数据,最靠近服务器和应用的方式去部署。同时我们对写数据做额外的数据保护,刚刚我说的你的Cache怎么做,我们利用高速网络高速复制解决HA的问题,大量减少后端存储。
    这个就是戴尔的端到端解决方案,叫Fluid Cache  forSAN。加快响应时间,第二对数据库性能提高,并且对虚拟化环境也能提高整个环境的性能。第三确保数据的安全和一致性。这是我们老板在6月份美国戴尔客户大会上当时现场演示,我们用了8台服务器,后端用的是我们的存储跑到了500万的I/OPS,我们只需要8台服务器。
    我后面详细给大家介绍一下Fluid Cache  forSAN,讲这个解决方案之前是什么样的技术架构催生了我们可以做到Fluid Cache  forSAN。第一就是接口协议,有PCIeSSD,有SAS的SSD,本身跑的协议不太一样。因为NVMe协议,多核处理,可以快速发挥SSD的硬盘的性能和好处。可以看到这是他三个对比,整体运营成本降低很多,性能不差。现在戴尔都是基于PCIe3.0开发的标准协议。
    这个是我们在R920的PCIe9个闪存盘,720最多是四个。刚才说的是第一个技术的突破,我们搭建Fluid Cache  forSAN架构。必要的突破是网络延迟带宽的降低。以前有RDMA协议,降低CPU,提升他整个响应时间的速度。在协议基础上做了了RoCE协议,基于万兆或者四万兆的以太网使用RDMA来创建低延迟的网络。比传统的iWARP提供更低延迟的效果。IT四大技术新交汇和融合,软硬共生。I/O的NVMe协议,网络还有村ROCE协议,计算的集群,搭建协议空间是FluidCache软件。
    看一下这个架构。你们的Fluid Cache到底什么样的架构?首先Fluid Cache架构我们有服务器,先搭建一个存储网络,后面可以用我们这个系统,可以用SSD硬盘可以不用SSD硬盘,他有一个问题就是整个的延迟,后面如果用SSD,可以解决这60%的I/O到CPU的性能问题。我们在主机里面要安装Fluid Cache  forSAN软件,添加PCle的硬盘。我有三台,我在三台每一个插SSD硬盘就可以了。剩下是旧的机器和系统,没有SSD,没关系,第一步装了这个Fluid Cache  forSAN软件,跟存储连起来就好了。我们把这些具有PCIe和SSD硬盘这些服务器叫做贡献者,他会组织一个Cache池。剩下服务器就是共同的Server,就叫客户端。第三步就是要把这些服务器透过高速的RoCE网络连起来,这是10G或者是40G的高速网络,不同于我们传统的以太网。这个集群从三个节点开始接入高速缓存。Cache最高可以达到12.8TB,网络之间传输是低延迟的网络,高速的网络。所有节点通过Cache提升他对I/O的处理。第四步就是建立高速缓存池,他的I/O是通过缓存池去访问本土的。
    给大家举个案例,这是我们保险的客户,他有一些移动的业务终端,他的需求是有一些BYOD的pad,开始用户预估是3万,年底会达到5万pad,它的规模是慢慢会到10万台。现在遇到一个挑战,每秒超过1500个并发用户的时候他的性能下降非常快,超过2000用户,系统就已经访问不了,这是无法忍受。尤其是早晨9点到10点的时候,基本上负载支撑不住的。
    可以看他当前的架构,非常标准的一个架构,防火墙,负载均衡服务器,应用服务器,还有OracleRAC-1。原有系统用的是小机,我们的人进去之后经过分析发现所有评定是发生在数据库上面。数据库上面以前我们正常设计的时候都是70的读,30写的比例,真正上了系统之后,经过我们分析会发现每38个读带一个写。现在的做法,我要扩容,再多买存储来提高性能,这个花费很贵的。我要把现有的Unix系统迁移到Liunx系统上去,没有那么多的人力。当时评估了小机的升级硬件方案不可行,增加Web节点数不可行。评估迁移到更高端的新购小型机,不可行。升级存储硬件不可行。我们怎么解决?可以借用互联网思路,在大部分的互联网公司,他的读写数据库是分离的,读库比写库更重要,有些我们的发布系统写上去,他发布出来,一定要展示给大家,新的产品。所以所有这些全球的数据中心的运营,只要数据库的应用,大部分都要做读写分离。我们应用互联网的云的架构思维,前面有一些负载均衡,Web服务器还有应用缓存。最容易出问题就是数据库,我们要用读写分离的数据库。
    这个像宾馆的前台,我去住的时候排队,前面根本不是在住,前面有人问可以不可以借伞,附近有什么好餐厅,有没有旅游介绍手册,没有读写分离。但是他有读写分离,只有一个人,这边跑,那边跑,整个处理能力跟不上,不可能解决问题,读写分离,但是能力不足。我们怎么为客户做,保留他现有的小型机系统,SharePlex在Oracle上面功能非常强大。我们用SharePlex同时做了四个,把他迁到X86上,可以做异构。小型是Unix,迁移到X86上,成本降低非常多,同时拷贝四份,SharePlex可以做一对四的同时拷贝。把读写数据库分离,把所有写库放到小机的系统上,把读的放到X86,最后架构变成这样。SharePlex的资源占用极小,对元数据库性嫩和网络带宽的影响也保持在最低限度。当前可以支持3万个移动用户,每秒并发用户数大概9000个。移动客户端提交业务后5秒可以返回结果。小型机的CPU峰值基本不超过50%,读压力减少70%。这台小型机基本上还去做了读写分离之后,他把报表和业务挪大小型机上来了。我们Fluid Cache最高峰值不超过30%,主数据库复制延迟小于1秒。目前这种架构彻底解决了他业务性能的问题,为他未来的扩展打下了基础。
    这个上午看到了,我们有一个对比,只是把数据调出来做对比,应用不太一样。Fluid Cache  forSAN,8台服务器,可以做到每秒1.4万的并发用户。双11促销并发值每秒1.3万个,平均响应延时6毫秒。Fluid Cache事务处理能力是1.26万秒,双11促销是1.187万秒。我们在Liunx和VMware可以支持,之后Windows也会推出。
    我到底什么样的架构,什么样的应用适合采用这个Fluid Cache  forSAN,大家听得更多就是我要高I/O,一跑到50万个I/O,其实大家知道当I/O到百万极以上,那都不是事,不会再关心I/O的处理能力,大家更关心是延迟。如果要求的对低延迟的要求非常高的话,那是符合Fluid Cache  forSAN这架构。用这种架构去弥补从存储到CPU剩下40%的性能差距。尤其还有一些应用在高峰的时候每秒的并发处理能力需要非常高,也可以用Fluid Cache  forSAN这种技术来解决。
    今天大家听了很多都是关于单独产品的一些他的优势、特点用SSD之后有什么好处。今天我给大家讲是利用好闪存所做的整体的解决方案能帮客户解决什么问题。他也可以做Linux的Fluid Cache  forSAN集群和VMware Fluid Cache  forSAN集群。我是老机器要做虚拟化,能不能用Liunx的Fluid Cache  forSAN,是可以跨平台,共用Fluid Cache  forSAN共享的流动缓存,可以用我们这个技术,可以共享。当你有这种需求的时候或者Fluid Cache  forSAN的数据中心解决方案,帮助大家解决这些问题。
    今天我就给大家介绍这么多戴尔公司跟其他厂商不太一样我们的SSD的解决方案,请大家记住我们叫做Fluid Cache  forSAN,谢谢大家。