您的位置:首页 > 其它

数据中心的福音 | NVMe协议将增加IO Determinism功能

2017-09-11 09:44 295 查看
IO Determinism功能的引入

NVMe Spec 1.3有一个新功能:多流写技术。具体操作是在每个I/O指令上加上一个标签,SSD则根据写入I/O的标签,把不同标签的资料放到不同的区域,借此让多流写入作业能有序的进行,进而实现冷热资料的分区存放,从而大幅改善垃圾回收的效率,让SSD能提供更好的性能,不受传统的垃圾回收作业的困扰。

除了用于多流写入外,NVMe 1.3这种I/O标签的功能,未来还可望扩展到其他应用,如用于服务等级(QoS)管理,利用附加在每笔I/O上的QoS等级标签,让SSD控制器优先处理高QoS等级的I/O。NVMe未来预定在2019年提供的IO Determinism(IO确定性)功能,应该就是基于这种方式来运作。



NVMe协议为什么增加IO Determinism功能呢?因为用户需要高速、可靠、稳定的IO性能。在平时我们访问一些APP或者网站的时候遇到卡顿,很大一部分原因是因为IO延迟造成的波动。



NVMe SSD已经取代传统的SSD称为数据中心布局的重要存储介质。解决IO稳定的问题是刻不容缓的任务。真正落实到标准落实到产品中如何解决这个问题,大家想到的一点是如何做并行化。NVMe协议中引入的IO Determinism功能也是基于IO并行化。NVMe协议提供将整块SSD分为多个逻辑单元(叫做Set),不同的逻辑单元之间相互独立,在不同逻辑单元并行的读和写,做并行的操作,减少串行的工作避免时延的出现。在每个逻辑单元中,可能包含一个或者多个Namespace。



扩展:每个NS都有一个名称与ID,如同每个人都有名字和身份证号码,ID是独一无二的,系统就是通过 NS的ID来区分不同的NS。如下图例子,整个闪存空间划分成2个NS,名字分别是NS A和NS B,对应的NS ID分别是1和2。如果NS A大小是M (以逻辑块大小为单位),NS B大小是N,则他们的逻辑地址空间分别是0到M-1和0到N-1。



SSD数据布局结构的影响

以4 Namespace, 8 Channels的SSD系统为例,传统的data布局如下图:最简单的结构配置,数据均匀分布在所有的die。但是这个布局的缺点就是会有IO冲突造成的延迟。



基于IO determinism功能, 引入三种逻辑单元结构的数据布局:

1. 垂直逻辑单元((Vertical Sets):



2. 水平逻辑单元(Horizontal Sets):



3. 混合型逻辑单元(Mixed Sets):



测试干扰条件:在NS1进行32K顺序写操作(QD=4),在NS2进行4K随机读操作(QD=8)。

测试结果:

(1)平均读延迟

在垂直逻辑单元的数据布局结构条件下,平均读延迟提升了7倍;在水平逻辑单元的数据布局结构条件下,平均读延迟提升了9.5倍;



(2)最大读延迟

在垂直逻辑单元的数据布局结构条件下,最大读延迟提升了16倍;在水平逻辑单元的数据布局结构条件下,最大读延迟提升了11倍;



(3)4K随机读IOPS与队列深度的关系

在三种数据布局条件下,IOPS随着队列深度的增加均有上升的趋势。不过,水平逻辑单元数据布局结构(HS)的IOPS在QD=6时达到最大。最重要的是,水平逻辑单元数据布局结构(HS)和垂直逻辑单元数据布局结构(VS)的IOPS均是传统数据布局结构IOPS的2倍之多。



IO Determinism中的时间窗

上面的测试结果是主要是针对SSD逻辑单元(Set)对IO延迟的影响。在NVMe推广的信息中,我们发现关于IO determinism还有两个重要的概念:Deterministic Window和Non-Determinism Window.



我们先想象一下平时的汽车,当你的汽车在5千公里行驶以内的时候,你这个时延是稳定的,性能跟说明书上一样,当汽车开到4S店做保养换机油的时候,它没有稳定的时延,它的性能指标和说明书上说的完全没有关系。

NVMe在完全借鉴了汽车保养的特性,在SSD里面设置了一个时间窗,这个时间窗是稳定时延的模式,即Determinism Window。当SSD盘需要垃圾回收、Wear-leveling维持操作时切换到非稳定模式,这个阶段IO性能是不稳定的,即Non-Determinism Window, 也可以称作Maintainance Window。如果用两块SSD合作,则在任何一个时间点,至少会有一个SSD处在Determinism
Window,为系统提供稳定的IO性能,如下图:



写在最后

不管是之前介绍的Multi-Stream还是本篇介绍的IO Determinism基本都是NVME协议针对数据中心提供的新功能。随着大数据时代的来临,我相信,在企业级SSD存储领域会有更多更强大的功能被引入,让我们拭目以待吧~

精彩推荐:

SCM+MLC/TLC
NAND混合SSD性能探究

浅析企业级SSD
Multi-Stream Write技术

企业级SSD发展趋势

2D
NAND和3D NAND横向对比

第二代3D
TLC NAND原厂级深度评测

为QLC保驾护航
| 慧荣科技亮出最新LDPC技术

SSD固态硬盘接口种类多,你了解多少?

写放大机制与影响因素详解

详解SSD之垃圾回收GC

SSD为什么需要Trim?

OP详解:
谁“偷”走了SSD的容量?

SSD性能优化之4K对齐

文件系统全记录回顾

快来看,SATA秘籍惊现江湖!!!

PCIe最全科普贴流出!不说了,赶快Mark!

独家发布
| Linux NVMe Driver学习笔记大合集

存储随笔《NVMe专题》大合集及PDF版正式发布!

更多精彩内容,敬请关注头条号【存储随笔】获取更多活动内容。

同时,也可以关注公众号:
存储随笔,Memory-logger. 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息