NVMe协议将增加IO Determinism功能 (nvme协议设置)
整理分享NVMe协议将增加IO Determinism功能 (nvme协议设置),希望有所帮助,仅作参考,欢迎阅读内容。
内容相关其他词:nvme协议需要什么支持,nvme1.2协议,nvme1.4协议,nvme协议支持,nvme协议支持,nvme1.3协议,nvme协议支持,nvme1.2协议,内容如对您有帮助,希望把内容链接给更多的朋友!
NVMe协议为什么增加IODetermini*功能呢?因为用户需要高速、可靠、稳定的IO性能。在平时我们访问一些APP或者网站的时候遇到卡慢,很大一部分原因是因为IO延迟造成的波动。 NVMeSSD已经取代传统的SSD称为数据中心布局的重要储存介质。搞定IO稳定的问题是刻不容缓的任务。真正落实到标准落实到产品中如何搞定这个问题,大家想到的一点是如何做并行化。NVMe协议中引入的IODetermini*功能也是基于IO并行化。NVMe协议提供将整块SSD分为多个逻辑单元(叫做Set),不一样的逻辑单元之间相互*,在不一样逻辑单元并行的读和写,做并行的*作,减少串行的工作避免时延的出现。在每个逻辑单元中,可能包含一个或者多个Namespace。扩展:每个NS都有一个名称与ID,如同每个人都有名字和*号码,ID是独一无二的,*就是通过NS的ID来区分不一样的NS。如下图例子,整个闪存空间划分成2个NS,名字分别是NSA和NSB,对应的NSID分别是1和2。如果NSA大小是M(以逻辑块大小为单位),NSB大小是N,则他们的逻辑*空间分别是0到M-1和0到N-1。SSD数据布局结构的影响 以4Namespace,8Channels的SSD*为例,传统的data布局如下图:最简单的结构配置,数据均匀分布在所有的die。但是这个布局的缺点就是会有IO冲突造成的延迟。 基于IOdetermini*功能,引入三种逻辑单元结构的数据布局: 1.垂直逻辑单元((VerticalSets): 2.水平逻辑单元(HorizontalSets): 3.混合型逻辑单元(MixedSets): 测验干扰条件:在NS1进行K顺序写*作(QD=4),在NS2进行4K随机读*作(QD=8)。测验结果:(1)平均读延迟 在垂直逻辑单元的数据布局结构条件下,平均读延迟提升了7倍;在水平逻辑单元的数据布局结构条件下,平均读延迟提升了9.5倍;(2)最大读延迟 在垂直逻辑单元的数据布局结构条件下,最大读延迟提升了倍;在水平逻辑单元的数据布局结构条件下,最大读延迟提升了倍;(3)4K随机读IOPS与队列深度的关系 在三种数据布局条件下,IOPS随着队列深度的增加均有上升的趋势。不过,水平逻辑单元数据布局结构(HS)的IOPS在QD=6时达到最大。最重要的是,水平逻辑单元数据布局结构(HS)和垂直逻辑单元数据布局结构(VS)的IOPS均是传统数据布局结构IOPS的2倍之多。IODetermini*中的时间窗 上面的测验结果是主要是针对SSD逻辑单元(Set)对IO延迟的影响。在NVMe推广的信息中,我们发现关于IOdetermini*还有两个重要的概念:DeterministicWindow和Non-Determini*Window. 我们先想象一下平时的汽车,当你的汽车在5千公里行驶以内的时候,你这个时延是稳定的,性能跟说明书上一样,当汽车开到4S店做保养换机油的时候,它没有稳定的时延,它的性能指标和说明书上说的完全没有关系。 NVMe在完全借鉴了汽车保养的特点,在SSD里面设置了一个时间窗,这个时间窗是稳定时延的模式,即Determini*Window。当SSD盘需要垃圾回收、Wear-leveling维持*作时切换到非稳定模式,这个阶段IO性能是不稳定的,即Non-Determini*Window,也可以称作MaintainanceWindow。如果用两块SSD合作,则在任何一个时间点,至少会有一个SSD处在Determini*Window,为*提供稳定的IO性能,如下图:写在最后 不管是之前介绍的Multi-Stream还是本篇介绍的IODetermini*基本都是NVME协议针对数据中心提供的新功能。随着大数据时代的来临,我相信,在企业级SSD储存领域会有更多更强大的功能被引入,让我们拭目以待吧。