暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

NVMe SSD全闪架构解析

云存储技术交流 2018-12-12
2278

NVMe是何物?

NVMe是什么?它的全称为Non-Volatile Memory Express,是一种基于非易失性存储器的传输规范,NVMe规范由包含100多家公司在内的工作小组所制定。认识了NVMe之后,我们看看它到底有什么优势,一个字总结,那就是“快”。形象的来说,NVMe的出现解决了SSD“肚子大”,“有货”,却“吐得不够快”的问题。

 

对于闪存的普及,标准协议接口是非常重要的一环。NVMe规范提供了闪存访问的标准方式,充分利用PCIe通道的低延时和并行性,以及当代处理器、平台与应用的并行性,通过降低协议交互时延,增加协议并发能力,显著提高性能,在可控制的存储成本下,极大的提升固态硬盘的读写性能,从而进一步释放闪存的潜能,并推动全闪存在数据中心的普及。

 

传统的SATA接口与AHCI标准(SAS协议)是为机械硬盘设计,随着闪存介质的高速发展,以及全闪存存储系统对极致性能的追求,SAS协议劣势越发明显,成为全闪存系统发展的短板。相比于SAS-HDD,SSD单盘的吞吐量、IOPS都有大幅的提升,时延降低到100μs 的水平。SSD能力提升了,传输协议却成为了短板,怎么办?NVM Express组织由此制定了NVMe协议标准,去掉了SAS-HDD系统中的IOScheduler和SCSI等复杂的协议层,换成轻量级的NVMe协议。


NVMe协议栈图


NVMe给存储系统带来哪些优势?

       NVMe相比SAS的效率有很大的提升,NVMe所需的每次IO的CPU周期少于SAS的一半;在相同的CPU周期下,NVMe提供的IOPS是SAS的2倍。和NVMe相比,SAS的劣势已非常明显:


1.SAS协议交互次数多,需要在PCIe和SAS之间做协议转换,SAS/SCSI体系协议栈复杂,软件处理协议开销大,难以达到更高的IOPS。NVMe盘直接出PCIe接口,协议交互简单,可以获得更好的性能。

NVMe PCIe SSD可有效降低延迟

2.SAS协议是单队列,而NVMe支持多达64K个队列,每个队列支持最多64K个命令并发,大大提高SSD的IOPS(每秒读写次数)性能,理论上,IOPS=队列深度/ IO延迟,所以增加队列深度,就可以有效提升SSD的IOPS。NVMe多队列可以实现更高的并发处理,与SSD盘的多通道,多个片选,多个Die形成更好的配合,提供更好的性能。SAS 单队列在多核环境编程必须加锁保护,而NVMe原生支持多队列免锁机制,可以更好发挥多核的并发优势,降低软件开销。

队列深度的大幅提升


NVMe给存储系统带来哪些挑战?

存储协议向更高效的NVMe协议发展毋庸置疑,但是NVMe毕竟是一个比较新的协议,而SAS协议仍然作为一种经过多年实践应用的成熟存储协议,相对而言,SAS目前还有一些优势:

1.SAS协议原生支持多端口,双端口盘技术成熟,与多控系统配合稳定可靠,而PCIe双端口技术还在发展完善中。

2.SAS协议对热拔插有完善的支持,IO基于连接的协议机制不会导致故障扩散。而PCIe的热拔插向来是一个技术难点,做到高可靠性需要比较深的技术积累。

3.SAS组网灵活,容易扩展,SAS协议在设计之初就充分考虑组网场景,基于路由交换的协议为扩展性奠定了好的基础。熟悉PCIe协议的人都比较清楚,PCIe的扩展性非常受限,在级联深度和支持设备总数上有很大的局限。


基于SAS SSD的存储系统应用在传统的高性能应用场景,而基于NVMe的存储系统可以应用在对时延要求更苛刻的应用场景。NVMe存储和SAS存储在一段时间内将共同存在,应用于不同的业务场景。


NVMe是一个全新的协议,基于PCIe技术,在带来极致性能的同时,也给盘片和系统的设计带来了新的挑战。


NVMe SSD作为硬盘的一种,必须要支持快速在线更换,而传统的PCIe对热拔插支持易用性不好,特别是暴力热拔插(PCIe surprise hotplug),因此很容易导致系统异常,业务中断。同时,在企业存储中,高可靠性必须采用双控冗余技术,基于PCIe的双端口技术是SSD设计面临的一个难题,目前有些厂家的SSD不是原生双PCIe端口,比如Intel目前的部分NVMeSSD就是通过内部PCIe Switch实现的PCIe双端口,走这样的技术捷径必然导致系统可靠性的降低。


NVMe存储系统面临的另外一个挑战是系统级的优化。有人认为NVMe系统只是简单更换成NVMe SSD盘,就可以得到很大系统级性能优势,其实没那么简单,需要重新设计系统IO架构,适应多核并发处理流程,这样才能充分发挥出NVMe的优势。


NVMe-oF连接SSD到网络

标准的NVMe,它将SSD直接连接到服务器,但是NVM Express组织也发布了NVMe over Fabric (NVMe- oF)的规范,它将用于块存储的非易失性存储连接到网络。根据该组织的说法,“NVMe- oF定义了一个通用架构,它支持一系列存储网络结构,用于存储网络结构之上的NVMe块存储协议。”这包括在存储系统中启用前端接口,扩展到大量NVMe设备,并在数据中心内延长NVMe设备和NVMe子系统可访问的距离。

NVMe-oF规范与NVMe规范有大约90%的相同;然而,它确实使用了一种不同的传输映射机制。NVME-oF也有两种不同的变体:一种用于RDMA,另一种用于光纤通道。

  NVMe-oF规范也比NVMe规范新得多,尽管一些厂商已经宣布支持这项技术,但实际上很少有厂商销售NVMe的产品。期待这种技术在未来几年变得更加普遍。

文章转载自云存储技术交流,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论