6月21日,由DOIT传媒、存储在线、中国计算机学会存储专业委员会、武汉光电国家实验室联合主办的2017中国闪存峰会在北京盛大开幕。本届峰会以“把握闪存绽放 追逐梦想”为主题,聚焦闪存产业链全生态发展,吸引了来自政府、企业用户、产业供应商、学术研究机构,以及主流媒体各方的共同关注。同时,有超过6000人通过线上参与了本次会议。
先智数据中国区总经理董唯元分享了“人工智能激活存储技术变革”主题演讲。内容如下:
大家中午好,我知道一上午的会内容也比较多,前面各位嘉宾已经分享了很多内容。我今天要跟大家分享的一些内容,可能相对来说新的一点,因为传统存储里面我们知道有很多跟可靠性、跟性能相关的话题。随着存储这行业20年来的发展,我们可以看到越来越多的这种厂商在这上面去围绕着这两个存储的支柱做很多的创新。但是我今天要分享的是在最近整个领域里面做的一些新的探索,核心是跟人工智能所相关的一些内容。我们知道阿尔法狗赢了李世石之后,赢了柯洁之后,大家对人工智能突然关注起来了。但是其实人工智能除了能下棋还能干其它很多的事。有一些公司拿它做医生、做什么其他的系统的替代。我们就想到人工智能在我们存储系统里面能做什么,首先能想到人工智能去帮助用户处理一些更复杂的使用过程,我们知道存储在最终用户是比较神秘,甚至神秘比较可怕的东西,我们知道最终用户拿到我们的存储设备,尤其是高端存储设备,他基本上不敢太碰,因为上面是重要的数据,一旦停了和宕整个的业务都会受影响,所以这是一个非常严肃的,甚至严肃到可怕的系统。大家轻易不动,而存储这么多年发展有快照、各种参数、各种配置。其实一般人也很难去真正的明白到底是什么,每一个参数跟什么东西有什么关系很复杂的一个系统又很专业的系统,这一些东西实际上是更容易想到,用人工智能实现更简单的界面和更基础的逻辑,能够去抽象化整个功能过程,让整个运维流程能统一起来这是容易想到的一点。
更深入的一点,我们觉得说出了人工智能能帮助到人跟机器之间的交互之外。人工智能是不是能帮助到机器存储系统自身的一些类比的问题。因为存储系统经过二十多年的发展,但是后面我们会介绍,今天还有很多互斥的问题从原理上很难根除。通过人工智能打开了一个新的纬度和方向之后,很多传统问题在我们看来就有了新的解决视角,我们是在不同的领域有相应的一些产品,当然我今天其实主要不是介绍产品,因为这概念比较新,我只是提一下,我们在利用人工智能辅助整个存储系统管理,人跟机器之间的界面上面,我们有一个叫Federator,尤其是加强转间存储系统自身方面,我们有一个叫Disk Prophet产品,当然后面有更多的产品出来。
我今天介绍的是它到底解决了什么问题?我刚才介绍很多互斥的问题,这可能有一些厂商或者用户是有直接体会,有一些因为太长时间的存在,这已经习惯它了。但是它最终的表现,大家能感受到。比如说五年前兴起来的软件定义存储,基本上新的系统都看到传统架构在慢慢的下降,更多的新的系统要采用软件定义的方式分布式的方式,不管是开源还是商业的产品,我们看到有很多特性,很多这种机制出来。但是有一点遗憾看到说,很多用户比如说运营商用户经过了这么几年的对分布式存储、开源的商业所有的考察之后,基本得出来的一个报告,中低端存储在替代,这中低端这个定位其实很多做软件分布存储是不准。
其实运营商有很强的经验和认知,他们经过了很严肃的推导之后得出这样一个定位,其实就是这里面我们看到有很多系统类比的问题,尤其是一些从原理上就很难解决的一些互斥的问题,这个是一个嵌在系统里面。意味着你的硬件没有控制的情况下,实际上你的可靠性就是天生难以去保证的,包括空间利用率和可靠性的问题一样,就是我属于要用三副本利用率就会下来吗?浪费的磁盘空间就多了这是很显而易见的。可管理性和性能的互斥,可能相对来讲不那么容易,不那么日常可见,但是它其实蛮好理解,我们说存储网络是网络的时候,我们也经常拿数据网络跟它比较,我们说数据网络这么多年的发展,它已经有了那么多QS相关的机制,能够跟应用贴合,今天的数据网络已经可以很好的去区分说,你这数据包是邮件的还是数据库,关键业务非关键的业务已经做的非常好了。存储就非常难。
存储里面要加一个安全机制、认证机制基本加不上去,如果想做QoS,很多厂商也宣传QoS,但是那个QS是很简化、固定优先级的问题。我截一个(英文)是服务数据库还是邮件用,这个事总机制上就不可区分。我跟他存储这么多年就是可靠性一个是性能。任何的附加是不能影响这两个事为前提。网络强调的是链接,也就是说这是链着的,它对超时强调比链接更重要。但是从本质上来讲,我以前就曾经探讨过跟相关的厂商也好,研发机构也好探讨过在存储网络上面,去附加相应的QS能力,相应的安全能力,出现最大最大的问题,一旦加这一些东西,一个(英文)指令被你拉到旁边的时候这延迟就根本让用户没法使用这系统了。所以这东西也是一个类比的天生矛盾。我刚才讲可靠性性能是两个支柱,但是这两个支柱之间会有互斥。比如说举一个例子一个radio也好,可靠性来讲我一旦发生一定尽快的修复。这样把资源都用来修复。如果我正在应用高峰全去修复对应用有很大的影响,所以可靠性性能自身会有一些矛盾,这种时候基本上就是靠人为的根据经验,或者根据一些什么人的手段,专家的知识去根据实际情况去设恢复占用资源的优先级,占用资源的比例等等,但是不管怎么说本质上来讲这里面是有矛盾的。所有这一些东西在传统的存储范围机制之内都很难解决。
我们说好像不是这样,软件定义存储是新出来,以前的高端磁盘阵列已经有很多年,稳定的系统已经二十多年了,我今天说的这一些事只是软件定义存储才有的事,跟传统存储没有什么关系,其实不是的,传统存储它是有传统高端的稳定性在有现实基础,但是它的手段不灵,传统的高端存储是想维持一个系统的可靠性,它靠的就是两个办法,第一拼命的去做限制,每一个配置方式、接口所有的东西是严格的限制,它叫封闭系统。封闭系统是严格的限制每一个东西,它不光限制它自己的东西,也还跟外面的东西,我们见过传统磁盘阵列高端的厂商,它给出来的兼容性报告非常之厚,非常之全面,他不光测操作系统、板卡、交换机甚至数据库层面、驱动层面等等很多的东西,所有的这一些东西本质来讲都是限制,你超出我这范围就不支持你。虽然说理论上可很但是我不知道你,但是今天软件定义环境上面,没了。今天还有虚拟机还有容器,还有新的微服务的框架,所有这一些东西使得我们架构本身就极其复杂,你想穷尽一个软件的组合来验证你的兼容性是不可能。所以今天互联网话的建设是就是我们要准备一堆研发人员,准备一堆自己能动手代码级自解决人员,因为我们拿到这产品就没做过兼容性,他只是理论上告诉你这事应该行,大家都是走的标准型测验。所以今天软件定义存储,因为你用到谁家的服务器,谁家的板卡谁家的磁盘什么样子你完全不可考,你也完全不能控,必定会下品牌,不同的配置在上面做协调,这必然对你的可靠性出现不可知的前瞻性。所以传统的时候这是不灵。
传统我们做一个一个盘修复一个两个小时,后来单盘TB级更大的时候,修复一个单盘好几天甚至一个礼拜的时间,更重要的是我们今天用副本,你面对上千块盘,你的副本是受这种可靠性的要求。如果我们把每一个磁盘的可靠性,作为一个输入,然后整个的系统要达到的可靠性比如说5个9作为一个输入,计算出来说,那我需要用几副本多少个盘,才能达到可靠性目标的合,我会发现超过96个盘之后两副本无论如何达不到标准。当磁盘超过500的数三副本已经保护不了你了,所以大家感受一下这规模,几百硬盘的时候今天你已经认为很奢侈的三副本已经保护不了。所以我们用户真实的案例可以发现,我们号称海量的系统,号称大规模的数据中心,真正去做副本,要做很多的限制。作为一个池,这个池不能超过500块盘那个不能600块,从数学原理上来讲从本质上来讲,保护不了你。完全依靠冗余能够保护你的边界是非常有限的。
我们的这种出发点是说,我用AI我能做的是预测,我能做的是提前知道。就是前面所有说的这一切一个根本的原因再说,所有的容错机制、保护机制都是被动,当故障发生了,下面是传统的方式。传统的方式最大的问题就是故障发生了,我再开始做所有的动作,一个盘已经坏了我再开始做修复,一个设备开始断了我再开始重复修复,这种修复的本身造成了一系列的问题。如果我在故障发生发生之前而且提前做预设一切都变的很平滑。如果有时间经验的售后工程师都很清楚的。一个磁盘在坏之前有相当一段时间是在特别的戏弄人的耐心,它是等待的状态,有两个能正常执行,有三个执行的慢一点,又有几永远几个不给你执行的。这样的状态你到底算它出问题还是不出问题,就看你软件相关自身对这故障的评判,而这一点真是很多可靠性隐患真正存在的地方,其实我说真正完全基于被动的机制里面,软件的可靠性考验点在这,这过程之间设备时好时好你的软件怎么处理这一件事,因为你测不可能测量很完美,你只能去测。但是这里无穷多种情况,所以这一些东西如果你用开源产品,为什么我们说用开源产品都是莫名其妙,都是在这地方最容易出现这种问题的。
因为写软件是基于01逻辑来写,很少会考虑这种中间状态的情况。它会时好时坏,比如说路径切换之间的乒乓,比如说多层迁移的乒乓,各种各样的抖动状况都是严重的问题。
我们的这种主动式的防范机制就是说我把所有的事情都做在最前面,我通过AI训练过的识别引擎,能够识别出来你这系统里面所有的硬盘,它们在多长时间之后会有故障,如果临近故障点,比如说3000会有鼓掌,我会预测可靠性。当我设备知道多长时间的设备之后,我又知道这系统的负载波动情况。而你在最近一个礼拜大概只有一天的时间是负载比较空闲的,我就在提前一个礼拜的时候,找到哪一天的时间,在那个系统负载比较空闲的时候,把这磁盘提前的修复好了。当故障真的发生时候,一切都是平稳的过渡。大家用VDI这种场景见的比较多,早晨一来开机,而往往那种磁盘坏都是坏在那个地方,系统最是忙的时候永容易坏盘,尤其是大领导自己的邮件打不开报表打不开系统怎么回事,把采购叫过来骂一顿。
如果说出了故障九点不舒服这更吓人,所以我们的这种机制就可以提前,这一件事一个礼拜以前就修复好了,真的那天早上修复好的话,在中午所有人睡午觉没有人去访问的时候这个盘就修好了。
当然其实AI能做的还不止就这么一点事,AI能做的事情有很多,就我们现在能实现的软件定义整个的提升,首先准确率是很高的,传统我们说磁盘故障的预警,这一件事业界有一个技术叫SMART的技术,但是不知道为什么厂商都喜欢把SMART的关掉。其实对磁盘的寿命原理很简单,就是我一共攒了多少缓冲区域,我这儿还剩多少,你大概还能再用多长时间,我这系统可能前半年很忙,后半年很闲啊,可能就是之前很闲,突然最近很忙,这种向外部的信息SMART是不知道也不准确。我们为什么考虑准,我们把除了磁盘和SMART的系列相关的CPU占有率随着时间的变化我们都抓过来,通过训练用深度学习机制训练出来AI引擎去识别整个这一套系统,在这样大的背景之下,你这盘它的寿命是什么,这样我们的准确率就很高了。你预测的一定要准,预测不准后面看上去很漂亮后面都是假。
我们应该是至少比SMART准得多,另外就是我们这种主动的预测方式实际上我们可以不用太高的冗余度。如果传统的副本方式的话,你一百克盘以内两副本两轮上还蒙行,超过一百副本三副本都不行。但是之所以那么多副本的要求,是因为要考虑多磁盘同时故障的概率,多磁盘同时故障的概率会随着数量增加、指数级增加,但是我能如果提前知道每一个硬盘寿命的话,多磁盘故障就不那么可怕,因为我能提前知道这个系统里面有哪一些盘,3天之后会坏,70天之后会坏等等。如果有盘寿命比较接近,相邻一个盘坏了另一个盘也会坏,双方故障会出现的时候,我提前就指导,我就能提前处理这一件事,所以在我有提前预见未来得系统里面,我用两副本可以支撑上千克之盘的系统。因为我能从另外一个角度防范多盘故障的问题。还有就是在修复的过程中,传统的方式。因为它是故障坏了之后你再去修复,所以修复的过程是很谨慎,如果磁盘这时候已经出现了故障,两副本剩一个,这系统为了保障安全,不会允许说再去做一个快照,再去做一个备份的机制,这一些机制都不允许上,都是串行来的。有的丢数据,其实可以恢复,由于操作不当这顺序搞错了,某一点操作失误把一个什么重要配置成功了。
前两天做代码托管的互联网大网站把人家的用户数据搞丢了就是这样,数据恢复过程中人为的错误带进来。这种串行的机制本身风险就很大。我可以勇夺种手段并行地上,我好像知道这系统马上就面临一个高峰期,我可以启动多种方式五,除了把这盘副本多一份之外,我还可以多做一些悲愤,其他的手段。因为正常业务还在正常的状态在跑,所有的这一些机制的前提我能提前预见未来,我就能做更多的防范。
当然我还能解决硬件不可控稳定性就一定不高的矛盾。基于被动的方式硬件不可控,我们其实可以不对硬件有什么要求,我们仍然可以保持传统的方式,但是就能够很可靠的运行我整个的软件定义系统,也就是说我能在保证开放性的同时,提升软件定义存储的整体能力。当然后面QoS的方式是因为我AI代入了应用的应用,我可以识别更多的应用。所以我可以不经过(英文)呆盘的配合系统就配合应用,做很多的管理。
我刚才说一切都要基于准确,我预测到底有多是CISCO2016年度第一季跟实际报告进行对比,整个的可靠性大家看到最低的线是95%,我在三个月90天里面,每一天都是95%上,所以说将来AI不停的再训练,还会有准确率的提升,我们下一代的AI引擎准确率比这再高。我们现在跟产品级的合作,开始使用预判的方式,这是界面的大概的展示。
因为今天时间的关系,更多的产品介绍欢迎大家去访问我们的官方微信和网站了解相关的情况。也欢迎大家一会下来跟我交流,谢谢。