华为IT产品线高级标准经理 邱鑫:存储架构和协议的变革

2017/8/22 17:18:32 来源:DTDATA 作者: 分类:会议活动

邱鑫:大家好,我是华为公司的邱鑫,今天很高兴能有这个机会跟大家分享。大家如果能理解这些年随着存储介质不断演进导致存储协议和存储交换接口的变化,对我们理解存储系统架构未来的演进和未来如何更好的测试存储系统都会有一些帮助。谈到存储市场,大家第一反应会是这个市场空间有多大,我们花了时间精力人力物力在存储市场领域是不是合理是不是合适,性价比有多高。图中是业界的公认的统计数据,可以给大家也是一个很好的信心,到2025年数据增将增长10倍,有10倍的数据就意味这有10倍数据存储市场的增长。



存储市场有一个非常明显的变化,这种变化是数据的产生源已经从人转向了智能设备。此前的存储市场空间更多来与人产生的数据,例如:我拍摄了视频,我把这个视频存在了系统里,传统存储系统来自于人。未来的数据产生源是机器。最简单的一个例子,智能驾驶、无人驾驶技术,都需要通过无数摄像头探头收集数据,数据在智能设备之间高速交互而且这个变化还有一点意味着数据存储速度要求比以前高很多,传统的的存一张照片不关心延迟是多少,但是智能交通下延迟是非常关键的,如果慢了的话会产生交通事故。


存储有一个很好的未来的前提下,那么存储领域的创新点在哪里?最简单的一个是我们要在架构上做一些优化,能够满足大量数据产生带给我们存储系统的冲击。第一是Scale-Out的Server SAN,我们从传统的架构在向Server SAN演进,要做横向的扩展满足海量数据的存储。同时,要把计算和存储做解耦,要把各种类型的memory做成Pool供上层应用,有一个更智能的Pool可以做灵活配置,系统怎么管理,我们需要更好的更全面的设备管理的调度系统。物理层面,刚才三星的同事介绍了很多,包括新兴的存储介质,这部分对存储系统设计也很关键,会改变存储架构的设计。


我们有了新的存储介质,做成了池化,具体的连接技术上怎么满足?我们要有高性能fabric,100G、200G以太的连接技术,高效和智能的Protocol,有一些高性能的物理层支撑高效的Protocol层,把存储资源真正做到池化和解耦和隔离。有了新的存储介质之后我们需要更好的编程模型,当把我们的存储我们的SSD盘看成存储的时候,我们的访问模型是以块的模式来访问的,未来当我们的SCM介质出现的时候我们需要一个新的Byte-address的编程模型。  


下面看一下存储协议具体有哪些,哪些值得我们真正重视和关注。传统架构下,一个数据包从CPU传到一个盘上经过多层个协议,CPU要通过PCIe协议把数据分到HBA上,HBA再把数据传到SAS,通过扩展接口再送到真正的盘上,这个协议站比较长。当我有高速传输介质的时候是不是还需要这么长的数据流,我们希望减少数据流,把协议站变短一些,第一步大家想到是不是可以把HBA, Expender的协议站做简化.  所以标准组织做NVMe的标准第一步是NVMe PCIe。第一步是利用PCIe高速性能的传输能力和NVMe轻量级的协议栈来实现低延时,。在NVMe over PCIe之后,大家想到了Fabric,把storge和计算拉远,摆脱PCIe的Scale-out的局限性。,    有了NVMe协议,NVMe有这么好的生态链之后,NVMe对存储系统有哪些影响?分两块,一块是NVMe协议对传统存储架构的影响,还有NVMe对新兴的Server-SAN(音)的影响。有一个server跑一些程序,访问存储服务器,大量存储资源存储在后面的部分,传统存储架构下,计算型服务器和存储之间通过一大堆传统协议进行连接,NVMe出现之后对传统架构产生了什么影响?存储前端利用高速的NVMe over fabric连接计算型服务和和传统型服务器,另外把NVMe over fabric用在存储后端,这两个架构都有一个共同的缺陷,最大的缺陷是前后不一致。第一个如果没有后端高速的NOF的JBOD可以做前端的优化。


这张图是NVMe落地的时候有几种形态,我要用NVMe over fabric,架构怎么改,放在一个JBOD里,整框出fabric接口,这是最常见的最省成本的做法,很多企业和公司都买了PCIE,只要把现有的设备放到框里,通过框出NVMe over fabric,就可以做系统的连接,这是比较务实的做法。还有个比较挑战的做法,把每一个物理的盘直接出NVMe over fabric,这意味着我在这个架构下完完全全的没有PCIE的protocol,第一个架构虽然简单可以快速实现。最简单的现实是要有一些SSD盘直接出NVMe的接口,这是NVMe在系统级落地的方向。


这是对新兴的Serve影响,有了NVMe以后可以简单多少,传统是一个CPU挂一个PCIE SW,再到HBA、Expander,要连一个很长的硬件线路出来,还要在各个芯片上做Protocol的转化。它会带给存储系统一个革命性的变化,因为它在硬件软件各个维度都在帮大家省钱,帮大家提升性能。


下面说一下NVMe标准组织的进展,Technical WG和Management Interface全心全意的做工作,IC做兼容性的测试,Driver基于工作组产生的技术干货做代码的实现。


NVMe版本的演进,2010左右年就有了,最开始只是工作组几个成员的交流,最后变成今天成为一个真正的产业。通过一个很长的历史过程,每个版本上不断加新的feature,完成这样一个标准。


这是NVMe over fabric带给整个产业的价值。为什么要做NVMe over fabric,如果想在单层PCIE想过256个节点是过不去的,没有动态灵活的配置,都绑在一个硬件服务器内有问题,基于这些原因大家想能不能把它拉远做成fabric,所以变成了NVMe over fabric的协议。标准阻止做NVMe over fabric协议的时候,NVMe1.3的标准中没有涵盖NVMe over fabric的内容,要真正了解NVMe over fabric怎么做,要去看NVMe over fabric1.0,它是两个独立的协议。大家都明白fabric好像是很时髦的东西,它包含了很多,包括FC、IB、ROCE,这些都可以在NVMe over fabric中找到一些支撑,要实现具体每个协议的时候要看NVMe如何承载在FC、IB上。新兴的未来技术方向,产业界说得比较热,如果现在有个数据中心的网络没有支持DCB的swage,就要改造你的设备,要花更多钱,业界有个声音,是不是可以把NVMe跑在TCP上,美国公司都在要求这个方向,特别是互联网公司在做Scale-out的架构。Major Feature-Virtualization这个最大的价值是可以删除Hypervisor。


这是现在标准组织重点做的一件事情,我跟三星美国的同事和很多公司在谈的一件事情,我们为什么要做KV,现在上层很多非结构化的数据、log的数据怎么存下来的,有两种方式,一种方式是我就是一个一个key写起来的,第一种做法是用文件系统来做,把文件名作为key,把食品内容作为V写下来,调用存储的文件系统的内容把它存下来,意味着你用文件系统来实现KV到block的转换,这个性能会非常差,不但性能差,还大量消耗了CPU占有率,CPU意味着钱。如果你买了一台X86服务器,你可以跑这个协议站,可以分析这个部分对你的CPU的消耗有多大。我举个不恰当的例子,这个数据不一定真实,你用这个东西,比如一个X86CPU是1千美元,这个部分就能花掉3百美元。你可以不用这个文件系统来做,你自己写一个(英文),这个地方要有大量开发的工作量,很多工程师去维护,能不能保证KV到Block的转化是最高效的。我可以把内核里最复杂的block接口全部去掉,代码量会节省非常多。传统的drive要收到Table Based LBA转成PBA。KV Drive是Table Based KV转成PBA,通过架构最基本的变化可以减少CPU的消耗,你可以省钱,你可以买更便宜的CPU,除了钱的成本之外很多维护的成本、代码维护量的成本都可以减少,革命性的变革。性能会上升,延时会降低,这是未来NVMe最大的革新点。最难的是如果把NVMe的block的protocol换成KV的protocol。未来在storage server,未来是不是会把更好的特性放上去,是不是有可能减少server数量,是不是有更激进的想法,这个架构会有很多演进的方式和变种。


这是已经在NVMe讨论的大家比较关心的话题,多路径,NVMe可以做(英文)意味着可能出现多个(英文),如何做到智能的选路,如何做到性能最好,NVMe标准组织都在讨论。


大家比较关心的是IO Determinism,为什么要做IO Determinism,但是想要高速的可靠的稳定的性能,可以做到99.9999%。出现了很多客户在刷APP的时候发现延时会出现一些跳动,有时候很好有时候很不好,真正落实到标准落实到产品中如何解决这个问题,大家想到的一点是如何做并行化。不要把一个SSD盘想成一个物理实体,它内部有很多channl,真正想要的效果是把盘内部的物理之间可以隔离的特性都做成逻辑单元,让你在上层软件的时候可以基于这些逻辑单元做并行的读和写,做并行的操作,减少串行的工作避免时延的出现,达到你的目标99.9999%。具体实验还有更复杂的,把时间窗设置成稳定时延,这个很好理解,可以想象汽车,当你的汽车在5千公里行驶以内的时候,你这个时延是稳定的,性能跟说明书上一样,当汽车开到4S店做保养换机油的时候,它没有稳定的时延,它的性能指标和说明书上说的完全没有关系。NVMe在(英文)完全借鉴了汽车保养的特性,在SSD盘或者SSD板里面设置了一个时间窗,这个时间窗是稳定时延的模式,汽车在5千公里正常行驶过程中,这个阶段的时延是非常稳定的,跟99.9999%要求是一样的。当SSD盘需要做老化回收的时候会切换到非稳定模式,可以理解为汽车在4S店保养,这个阶段性能是不稳定的,在并发操作内有一些物理资源处在稳定时延有些处在非稳定时延,通过这样做到IO Determinism。


我的演讲完了,谢谢大家。

相关资讯

    暂无相关的资讯...

共有访客发表了评论 网友评论

验证码: 看不清楚?