西安三星电子研究所研发经理何兴:新基建下的存储创新

  • 作者:zccc
  • 来源:网络
  • 2020-09-16 15:05:46

中国IDC圈讯,开放数据中心峰会(ODCC2020)在北京召开,峰会围绕数据中心新基建为主题,有数据中心领域及相关行业的众多专家与会。在9月16日新技术与测试分论坛上,西安三星电子研究所...

中国IDC圈讯,开放数据中心峰会(ODCC2020)在北京召开,峰会围绕数据中心新基建为主题,有数据中心领域及相关行业的众多专家与会。在9月16日新技术与测试分论坛上,西安三星电子研究所研发经理何兴发表了“新基建下的存储创新”主题演讲。

西安三星电子研究所研发经理何兴

我是来自三星的何兴,今天跟大家分享《新基建下的存储创新》。

三星其实是做SSD的公司,大家其实也知道,SSD这个东西每一年都会有新的产品推出,因为现在技术每一年都会在演进,每一年、每一家公司根据最新的技术,会推出新的控制器。基于最新的控制器、最新的一些软件,每家公司其实都有一些新的硬件产品,所以每一年其实我们的客户都会收到我们最新的SSD产品然后进行测试,这是硬件方面的演进。

在软件方面,其实现在也有很多新的创新点,我今天分享的更多是软件方面的创新。

Telemetry

我今天分享分为四个部分,首先分享一下Telemetry,Telemetry翻译过来是遥测的技术,我理解在SSD端可以提供更多的一些参考信息,给主机端、给客户,让他知道SSD实际运行的状况,还有健康的状态。

如果没有类似的Telemetry这个功能,系统里面有几个SSD坏掉了,有一些应用正在使用这些存储设备,中间会有一个恢复的过程,这个过程可能需要这边切到另一个节点,需要一定的时间,业务可能会产生一定时间的中断。但是如果你有Telemetry这个系统的话,中断时间会非常少,因为我们通过这个系统可以提前获得很多SSD内部的信息。也可以用它做一些非常有用的东西,比如说我可以对现在SSD的运行状态做分析,对它的失效做预测,这样的话你的SSD整个系统的恢复时间就会大大缩短。

Telemetry在NVMe协议里规定有有三个部分,如果你把所有的东西全部填满大概32MB,有一个非常灵活的解决方案,各个厂商可以根据他们的需求,也许你只有一部分的数据需要,可以用Data Area1,或者1+2+3等等不同组合。从SSD端可以提供更多的信息给主机端,让主机判断SSD具体的情况,还有SSD失效是具体什么原因造成失效。

这是做的一个对比,我们也在跟一些客户合作做Telemetry的系统,做这个系统的初衷就是有很多的客户反馈,说现在有很多像一些大的数据中心几万块或者几十万块的SSD,如果有一些SSD出错的话,客户不太清楚SSD究竟是因为什么原因来造成出错,一般的办法是直接把它换掉。换掉也不会再插上去,客户不太清楚这个盘插上去是不是能用,会造成一些资源的浪费。

很多情况下,SSD虽然出现一些业务的抖动,但不一定是SSD本身的问题,或者说掉盘,可能是整个系统的问题,不是SSD本身的问题。这个时候也许你把SSD热插拔一下,拔下来再插上去,SSD跟以前一样还是可以用。很多客户为了保险起见不敢这样做,也就是说换下来的盘以后再也不会用,但是这些盘其实很多没到使用年限,简单处理一下完全可以重新使用,所以我们觉得这个是客户的痛点,也是我们开发这个系统的初衷。

上图就是如果没有这个系统的话,我们一般出错的话很多客户都是把SSD寄给我们,我们做一些分析,比如说用一些分析工具来做检测,看SSD是不是正常,这样的话有时候厂商都不在中国的话需要寄到那边分析回来,这时候几周过去了,客户觉得这个时间比较长。但是如果你有这个系统的话,它定期可以收集一些数据,通过这些数据可以非常精准定位SSD出错的原因,这样的话只需要几天就可以把问题定位,然后反馈给客户。

另外一个价值就是我们可以通过这个系统做一些比较深入的分析,比如说像刚才那种情况,SSD掉盘了,我们如果通过这个系统前面抓的数据来判断,这个SSD其实没有问题的我们可以告诉客户你只要把它热插拔一下再插上去完全可以使用,这样对客户的成本也有好处。

这是现在做的一个系统,我们跟一些大的客户有合作,在他们的数据中心里面大概几万块或者更多几十万块,然后定期收集一些数据,用这些数据作为一个输入到我们的系统里面,做一些分析,再把一些结果反馈给客户。

其实这里面比较有用的几个点,比如说做预测的功能:SSD长时间使用以后把它的使用寿命耗尽,这个时候如果我们通过这个系统做一些预测的话,我可以告诉客户,四周以后SSD会挂掉,你就可以提前做一些干预的工作,比如说提前把它换掉,对后面业务的中断会很有帮助,就不会那么长时间。我们可以做一些分析,比如说你现在有一部分的SSD出错,我们通过这个系统分析出错的原因是什么,也许你买了一批盘,但是放在不同的地方,这批盘运行很好,那批盘集中出问题,我们可以通过系统找出问题。也许你在那个数据中心你的制冷各方面不太达标,我们可以得到数据,给客户一些反馈,客户可以根据反馈再进一步优化他们的数据中心以及其他的系统。

Z-SSD

第二我想介绍的就是Z-SSD,Z-SSD其实是一个SCM的产品,现在很多公司都在进入这个市场,我们为什么要做类似的产品?因为现在像三星有SSD的产品,也有内存的产品,但是我们觉得从延迟的角度来说,内存一般是纳秒级别,现在比较快的SSD就是50微秒到100微秒,中间存在1000倍的差距,客户在这方面需求很多,我们觉得这是比较大的需求,也是比较大的市场,所以也开发了新的SSD叫Z-SSD。

跟普通的SSD相比,它的特点是:第一它的延迟非常低,它大概只有10微秒左右,一般的SSD是100微秒,是10倍的差距;另外是使命寿命,我们用的是耐久度比普通的好很多,它会有30DWPD,耐久性非常高,也就是说一般的SSD DWPD 1或者3已经写得快要完的时候,它还可以用很长的时间,这是它非常优势的地方。

我们觉得它现在主要应用场景是两个,分别是cache和tiring.具体来说用数据库做一个例子

数据库系统读写一段数据其实不是客户写一个数据就把数据写进去,或者改一个数据把它读出来再写进去,这样的话开销非常大,因为整个系统里面其实开销最大的就是存储设备的IO的开销,所以很多对系统的优化就是对IO次数的优化。我写一段数据的时候不会直接写到数据库里面,而是先写到内存里面,然后写log, 然后给上层的应用说这个写已经完成了。然后我在系统不忙的时候会有后台线程把它集中刷下去,这样的好处可以减少跟磁盘交互的次数,减少你的IO,整个系统的性能会提升非常多。我们觉得像这种LOG用Z-SSD存储的话,整个性能都会提升非常多,我们也做了一些测试,其实效果都非常明显,如果你LOG存在Z-SSD里面,把其他数据存在T-SSD或者Q-SSD里面,整个系统性能会有非常明显的提升。

ZNS

第三想介绍一下ZNS,其实这个技术在SSD方面是一个比较新的技术,但是整体来说它并不是一个很新的技术,在HDD中已经有类似的技术。HDD有叠瓦式的,以前每个TRACK之间会有空隙,如果把空隙利用起来的话对整个密度提升有很大的帮助,所以很多HDD的公司开发了叠瓦式SSD,把中间的gap缩短,每一层叠到一起,这样的话它的存储密度会上升很多,对它来说成本会很有优势。

这样带来一个问题,叠到一起的话下面再写的时候,有可能写这个track对其他track有影响。硬件上的改动会带来软件上的更新,左边是ZNS软件的情况,为了适用这种叠瓦式的HDD,在软件的协议上跟原来相比更新了很多东西,为了专门适应叠瓦式的HDD,做了很多的改进。

现在SSD其实也是继承了这个方案,也是有类似的解决方案,就是Zoned namespace,所有数据只能顺序写下去,不能随机写。很多随机写的话比如传统SSD要做垃圾回收的时候,你需要把一个Block里面有效数据的页拷贝到另外一个新的Block里面,这样带来很多写放大的问题,要先拷、再擦。如果顺序写的话直接擦掉就可以,写放大就可以减少非常多。

另外OP也会减少,如果你使用Zoned namespace方式的话,全是顺序写的话只存一些很简单的信息就可以了。OP减少,意味着用户可用的容量增大,从成本来说对客户比较好。

这个技术其实现在NVMe有一个工作组正在讨论,也许在下一个版本,我们就能看到类似的信息。我们也希望如果有客户或者业界同仁对类似的解决方案感兴趣,可以一起讨论。

MultiTenants

最后一个我想介绍Multi Tenants的技术,为什么会有这个技术?它的背景就是现在很多企业、公司都在提业务要上云。支撑云计算的一个非常重要的技术就是虚拟化的技术。大家可以看到从左到右是发展的趋势,原来一个服务器比如说CPU、内存还有存储设备,只是给一个应用来用,比如只有一个A。后面有一些虚拟化的技术发展,我可以再提供给上层用户,提供很多虚拟化的东西,一个服务器可以给多个应用来用,安装虚拟化软件以后可以装不同的VM,上面跑不同的应用。从用户的视角来说我觉得其实这就是三个机器,其实底层硬件是完全一样的,中间只是拿虚拟化的技术做区分。后面还有很多的技术,每一个服务器或者每一个存储设备共享的用户越来越多,这是未来发展的趋势。

SSD这个东西它容量每一年基本都会翻倍,后面SSD的容量会越来越大,所以以前SSD容量比较少的时候,给一个应用用的话,不存在什么浪费的情况。后面SSD会越来越大,如果只有一个应用访问它的话,就会带来很多的问题。所以基于虚拟化还有SSD的发展趋势来看,未来这种很多用户去访问一块SSD的这种场景会越来越多。

基于虚拟化的技术可以支持更多的应用,但是其实也会带来很多问题,比如说有一些应用是写密集型的,有一些是读密集型的,在SSD内部我并不知道主机端是什么应用,只是全部处理就可以了。这样带来的问题是有一些应用跟其他应用,比如一个写密集的跟读密集的就会产生干扰,像右边的图一样,它是非常吵的邻居这样的概念。比如说我本来只是想读一个东西,读的延迟很少。因为前面另外一个住户一直写,就会把我阻塞掉,很简单的请求会过很长时间才可以返回来,这样的话我的用户体验就会非常差,这也是我们希望极力避免的东西。另外就是比如说我这个应用都是顺序写的,但是其他的应用总是在随机写,顺序写的话本来一些写放大还有垃圾回收应该非常小,但是因为另外有一个用户随机写,会造成整个系统写放大、垃圾回收的动作非常多,系统的性能就会下降非常明显。

所以多用户场景非常好,但是怎么解决每一个用户之间的互相干扰是一个非常重要的问题。

我们也是有一些解决方案,我会依次介绍。第一是IOD解决方案,这也是最新加进去的一个标准,像刚才这种有读有写的请求,但是下来以后部打乱了,比如说都是写下去,读就得在这等着,他写完以后才能读,这样延迟会非常高。IOD的技术是把SSD内部做一个物理隔离,写的请求和读的请求所用的资源都是独立的,互不干扰,整个延迟、性能都会比原来的解决方案要好。

IOD有两个比较重要的技术,第一个技术叫NVMSet,NVM Set的概念实现出来的话其实是物理的隔离,也就是说我每个Set有自己独立的CPU资源,大家互不干扰就非常好。

第二个是PLM的功能,它的意思是说,大家可以看到底下有绿的、红的,绿框就是说我在这个窗口期只去读,我肯定很快,因为没有写。但是我有一些其他的,比如说写操作、垃圾回收,把它放到这个红框里面集中进行,集中进行以后再切换到绿框,这样的话总能保证在一段时间内应用、返回会非常快,其实也就是通过时间窗的技术,把读、写进行分离,来提升它的性能。

最后我想介绍一下跟多用户相关的就是叫SR-IOV跟MPF的技术。

SR-IOV在网络方面也有类似的技术,这个技术其实非常有用,它的原理是刚才说的虚拟化场景,比如现在很多云计算的公司,他们在上层有很多虚拟机,比如说VM1一直到VM4,但是底层硬件是一样的,所以怎么能让用户觉得我在使用不同的机器,其实就是通过虚拟化的技术。

虚拟化的技术一个非常重要的软件就是虚拟化的管理的软件,这个软件很好,它可以让上层的应用觉得我只是在使用我自己专门的机器,跟其他人没有关系。但是为了达到这个效果,它有一些弊端,也就是说它虚拟化管理的这个开销也会比较大,可能原来比如我有100个资源,完全可以分给每一个用户25个,但是虚拟化管理软件要消耗一些资源,给每个分配的资源就是20个,虚拟化的开销就会比较大。业界有很多公司在做尝试,让上层虚拟化硬件可以直接访问底层的资源,像刚才100个资源也许就能做到每一个24个或者25个,把虚拟化开销减得非常少。国内有非常大的云计算公司也有类似的技术,SR-IOV就是跟类似的技术做结合,我直接跳过虚拟化管理软件那层,整体的性能都会提升很多。

我们还开发了一种MPF的技术,传统SR-IOV 里面只有一个PF,其他都是VF。它在功能上面拥有的SSD资源方面不是独立的,很多情况下它是共享的,这样会对它的性能造成一些影响,我们做了一个改进,现在不用VF,全部用PF,每一个PF都有独立的资源,比如说内存这些东西,用应用直接访问PF,比SR-IOV的性能更好。

如果没有SR-IOV或者MPF的技术的话,整个系统的延迟、开销就会比较高,但是如果有这个技术的话,开销就会非常小,整体的性能就会提升非常大。云计算现在发展非常快,底下的机器非常多,虚拟化管理的开销如果放到单个机器来说也许能够承受,如果放到整个云计算场景或者数据中心的话,如果能节省10%或者20%的话,整体来看就会非常多。

所以我们觉得未来其实虚拟化还有SSD还有多住户的这些场景,也是未来一个SSD方面会非常热门的技术,我们也是希望能在中国跟更多的客户,在这些领域做一些深入的合作。

  • 相关专题

免责声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,也不承认相关法律责任。如果您发现本社区中有涉嫌抄袭的内容,请发送邮件至:operations@xinnet.com进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

相关文章

免费咨询获取折扣