NVMe 1.4协议三大新功能解读!

640?wx_fmt=jpeg

640?wx_fmt=gif&wxfrom=5&wx_lazy=1

NVMe协会在FMS2018上通过一系列的演讲对NVMe、NVMe-oF、NVMe-MI、JBOF以及NVMe基准测试等方面做了介绍。并且发布了NVMe后续的演进方案的Roadmap。


640?wx_fmt=jpeg


从NVMe Roadmap来开,NVMe 1.4将会是NVMe协会接下来的主要工作。此次NVMe1.4的更新主要包含以下几大方面:


  1. IO Determinism;

  2. Persistent memory Region;

  3. Multipathing;


  • IO Determinism是为了优化latency提供更好的QoS而生。

  • Persistent memory Region的特点是掉电不丢数据,为系统提供一种高效的Non-Volatile存储空间。从目前市场应用来看最可能的应用是存储一些系统的log文件,以及一些metadata等。

  • Multipathing提供了更加高效便捷的data share解决方案。其中IO Determinism应该是此次NVMe 1.4更新的重点内容。本文也主要针对IO Determinism做一些分析。


What is NVMe IO Determinism?


  • 提供相对独立的访问空间;

  • 提高IOPS,降低延时;

  • 提供更加优秀的QoS;


为了做到以上几点,IO Determinism包含以下几部分内容,一个是NVM Sets,一个是PLM(Predictable Latency Mode),还有RRL(Read Recovery Level)。


NVM Sets


NVMe 1.4中通过NVM Sets实现了对SSD物理资源的精细划分,每个Set可以独立占用一部分SSD的资源,每部分资源可以包含多个Flash channel以及多个Flash die,可以独立的进行read,write,erase等操作,如下图所示,在没有NVM Set之前多个application share所有的SSD资源,会出现一个application在执行的时候会block另一个application的操作,降低系统的QoS,在有NVM Sets之后每个一个application可以使用一个独立的NVM Set,这样application之间不会存在相互block的情况,提高了系统的QoS。


640?wx_fmt=jpeg


PLM


PLM是IO determinism中另外一个组成部分,主要用于优化系统的读写延时,提高系统的QoS。在PLM有效之后系统划分为DTWIN(Deterministic Window)以及NDWIN(Non-Deterministic Window)两种时间窗口,在DTWIN时间窗口内,SSD系统提供为读写指令提供deterministic latency,以提高系统的QoS,在NDWIN时间窗口内,SSD系统不需要提供deterministic latency,以完成SSD系统内部的GC等操作。


640?wx_fmt=jpeg


有了这两种时间窗口系统可以灵活调度对SSD的读写,以保证尽量将read/write执行放在DTWIN的时间段内执行,以减少latency,提高系统的QoS。


在DTWIN内有两个值需要注意,一个是typical value,这个值表示SSD系统可以在DTWIN时间窗口内可以执行的command数量(rand 4K read or Optimal Write Unit Size write)。另一个是reliable estimate value,这个值表示在DTWIN时间窗口内剩余的可执行的command数量值。以上两个值Host可以通过Get log page得到。


下图为大家展示了一个read DTWIN的typical value与estimate value之间的关系图。


640?wx_fmt=jpeg


随着reliable estimate value的减少,当小于某一threshold之后,SSD会自动从DTWIN跳到NDWIN。当然Host也可以通过set Features指令直接配置SSD处于DTWIN还是NDWIN时间窗口内。


在DTWIN以及NDWIN内有几个时间参数也需要注意:


  • NDWIN Time Minimum Low:SSD controller在收到请求进入DTWIN的set Feature指令之后需要在这个时间之内完成从NDWIN到DTWIN的转换。

  • NDWIN Time Minimum High:表示Host在上一个DTWIN Time Maximum之后需要在NDWIN窗口内需要花费的时间。

  • DTWIN Time Maximum:表示SSD系统可以保持在Deterministic Window的最大时间。


DTWIN Time Maximum与NDWIN Time Minimum High提供了一个系统在DTWIN与NDWIN的比例,例如Host在Deterministic Window保持了DTWIN Time Maximum的一半时间,那么host只需要在接下来的Non-Deterministic Window保持NDWIN Time Minimum High的一半时间。


RRL


由于在read过程中会出现数据错误,而数据出错的比例不同造成data recovery的时间也会不同,所以为了实现PLM,NVMe协议规定在支持PLM的时候需要同时支持Read Recovery Level Config。不同的Read Recovery Level对应不同的read latency。Recovery Level 0代表需要SSD尽最大努力去恢复数据,同时read latency也会更高,Recovery Level 15代表需要SSD尽快完成数据恢复工作,尽可能降低read latency,但是同时也有可能带来数据无法正确恢复。Host根据不同的需求可以配置不同的recovery level。


随着SSD的不断发展,SSD系统的峰值性能已经不再是客户追求的主要目标。客户需要性能更加稳定,延时更低的解决方案,NVMe IO determinism的出现将会在这两方面发挥重要作用。相信随着后续NVMe 1.4的正式发布会有越来越多的厂商关注NVMe IO determinism技术。


推荐阅读:


温馨提示:

请识别二维码关注公众号,点击原文链接获取更多RDMA技术资料总结

640?wx_fmt=jpeg

640?wx_fmt=gif&wxfrom=5&wx_lazy=1

猜你喜欢

转载自blog.csdn.net/BtB5e6Nsu1g511Eg5XEg/article/details/86746673