NVMe的目标:释放闪存潜能
HH 发表于:15年03月30日 16:34 [原创] 存储在线
主流的PCIe闪存卡性能要远高于SAS和SATA接口的固态硬盘,这是一个公认的观点,但是另一个问题是原生PCIe闪存卡就需要厂商为其开发专属的接口规范,以便PCIe能够与闪存实现更好的结合。但是市场要往前走就必须实现标准化,这时候NVMe出现了。
NVMe是一个可扩展的主机控制接口,主要为企业、数据中心以及客户端系统中应用PCIe接口的固态存储设备设计。这个接口规范在指令和执行路径上都做了优化,而且支持多个并行操作(单一I/O队列可以支持到64K命令)。此外,NVMe支持很多包括端到端数据保护(和T10DIF和DIX标准配套)这样的企业级功能。上面一段文字是NVMe联盟官网对于NVMe接口标准的一段描述,概述了NVMe的本质和几个比较重要的优势。对于NVMe来说,最大限度的释放闪存的潜能是其终极目标,本篇文章将从NVMe的发展进程和标准化两个方面来介绍。
NVMe的前身当属NVMHCI (Non-Volatile Memory Host Controller Interface),这是英特尔、IDT(已经被PMC收购)、NetApp等公司联合推出的非易失性存储主机控制器接口标准,包括不需要寄存器的读取操作、针对能够直接与CPU通信的PCIe接口标准设计在内的特性都被NVMe继承,当然NVMHCI工作组大部分成员也是当下NVMe联盟的成员。
截至2015年2月6日,NVMe拥有近60家成员(包括联盟发起成员13家、贡献者成员40家以及采用者成员6家,成员名单下载)。从这份名单来看,NVMe的生态已经初步形成,联盟成员不仅有Memblaze这样的PCIe闪存卡厂商和闪存控制器厂商PMC,还有EMC、NetApp这样传统存储巨头、有东芝、SK这样的芯片供应商,甚至Qlogic这样的HBA卡厂商也在联盟当中,当然最后还少不了英特尔这样生态搭建高手。像Linux、在Hadoop等所有开源项目一样,每一家联盟成员享受到“基准驱动”持续改进好处的同时,还要将自己的修改在适当时候贡献到整个生态系统中。
NVMe 1.0规范于2011年3月1日发布,1.0规范旨在打造一个高可扩展并且能够充分释放PCIe闪存潜能的标准,这个规范为NVMe的发展奠定了一个基础。具体到接口的细节上,1.0规范支持多核架构;保障多个线程在每个核上都有自己的SSD队列并且不会被中断。在企业级解决方案中,NVMe支持端到端的数据保护、安全以及加密功能,同时还有健全的错误报告和管理功能。
2012年10月11日,NVMe1.1规范发布。NVMe在企业级和客户端上的功能也上升了一个层级,对于企业级,1.1规范通过多I/O路径以及命名空间共享的方式增加了多主机使用模式(这种多路访问方案可以促进SSD资源被多个主机共享的实现,也会促进PCIe交换技术的发展),增强了重置功能,简化了预留机制并提高容错能力。对于企业级和客户端系统,1.1规范都增加了设备状态自动转化的功能以降低设备功耗。
2014年11月3日,NVMe1.2规范发布。最新的规范同样针对企业级和客户端系统做了升级。客户端方面增强了电源管理等功能。这为消费级SSD的研发带来了便利。企业级方面则在降低延迟和实现PCIe闪存共享的功能方面有了突破。由于刚发布不久,市场上还鲜有相关的产品和解决方案做以支持。
早期基于PCIe的固态硬盘目前在主机控制器接口(HCI)没有统一的标准,这导致每一个固态硬盘厂商都需要为其固态硬盘提供专门的驱动程序,标准的缺乏使得基于PCIe的固态硬盘市场发展具有巨大的阻力,不论是NVMHCI工作组还是当下的NVMe联盟都在努力打破这个局面,其工作不仅确保了整个NVMe生态圈的全面协同发展,使客户可从开放的产业生态链中选购所需,对产业规模的提升和用户成本优化具有划时代意义。
Windows、Linux、Solaris、Unix、VMware、UEFI等系统都已经实现了对NVMe标准的支持,PCIe固态硬盘的验证周期和相应的成本都得到了极大的缩减。
上图为德国CeBIT 2015上,Memblaze展出采用NVMe标准的PBlaze4 PCIe闪存卡,产品的正式发布将在5月举行。PBlaze IV系列SSD4K随机读/写IOPS性能最高可以达到80万/25万,读/写带宽最高分别达到4.0GB/s及2.5GB/s,并且响应延迟可以控制在微秒级,这样的性能表现可以说为PCIe闪存卡立下了新的行业标杆。与其他NVMe标准的产品和技术一样,PBlaze4的出现也会推动NVMe标准和PCIe闪存市场进一步走向成熟。