Starblaze干货分享第一期:浅谈NVMe1.4 IO Determinism!

NVMe协会发布了最新的NVMe 1.4 draft版本,其中NVMe 1.4中增加的最重要的一个内容应该就是IO determinism。IO determinism主要包含两部分一个是NVM Sets一个是PLM(Predictable LatencyMode)。

不同的NVM Set使用的物理资源可以是独立的,每个NVM Set可以包含多个channel多个die,不同的NVM Set读写,擦除等都是相互独立互不干扰,可以提供更好的QoS。
Starblaze干货分享第一期:浅谈NVMe1.4 IO Determinism!_第1张图片
同一个NVM Set内部可以包含一个或者多个NS(name space)。
Starblaze干货分享第一期:浅谈NVMe1.4 IO Determinism!_第2张图片

PLM是IO determinism中另外一个组成部分,主要用于优化系统的读写延时,提高系统的QoS。在PLM有效之后系统划分为DTWIN(Deterministic Window)NDWIN(Non-Deterministic Window)两种时间窗口,在DTWIN时间窗口内,SSD系统提供为读写指令提供deterministic latency,以提高系统的QoS,在NDWIN时间窗口内,SSD系统不需要提供deterministic latency,以完成SSD系统内部的GC等操作。
Starblaze干货分享第一期:浅谈NVMe1.4 IO Determinism!_第3张图片

SSD系统提供在DTWIN可以执行read(rand 4K read)/write(Optimal Write Unit Size)的command的typical值。Host可以通过log page得到SSD系统在DTWIN窗口内剩余的可执行的read/write command的能力(Reliable Estimate)。
以read command为例,typical与reliable estimate的关系如下图。
Starblaze干货分享第一期:浅谈NVMe1.4 IO Determinism!_第4张图片

由于在read过程中会出现数据错误,而数据出错的比例的不同造成data recovery的时间也会不同,所以为了实现PLM,NVMe协议规定在支持PLM的时候需要同时支持Read Recovery Level Config。不同的Read Recovery Level对应不同的read latency。
Starblaze干货分享第一期:浅谈NVMe1.4 IO Determinism!_第5张图片

![在这里插入图片描述](https://img-blog.csdn.net/20181011103653892?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dla

Xhpbl80MzI5MTQ4MQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
随着SSD的不断发展,SSD系统的峰值性能已经不再是客户追求的主要目标。客户需要性能更加稳定,延时更低的解决方案,NVMe IO determinism的出现将会在这两方面发挥重要作用。相信随着后续NVMe 1.4的正式发布会有越来越多的厂商关注NVMe IO determinism技术。
如果您也想针对存储行业分享自己的想法和经验,欢迎您在文章底部留言评论,如您有任何的建议与指正,敬请在文章底部留言,感谢您的不吝指教!

你可能感兴趣的:(科技)