NVMe:PCIe SSD标准不断完善,直指Fusion-io

在本届IDF2012大会之前,笔者曾经简单介绍过Intel安排的SSD相关技术课程,具体到每节课程的中英文演讲资料都可以在IDF官方网站下载。由于时间关系,我在本文中只想与大家讨论《NVM Express: 提供突破性PCIe SSD性能和可扩展性》这一节,不仅会列出幻灯片的部分节选,也想谈谈自己对NVMe的看法。 DRAM对闪存测试:Intel与Fusion-io的恩怨

上图中的文字就不再重复了,右边列出了Virident、Fusion-io、美光、LSI、OCZ,Intel和Marvell等厂商不同方案、外型各异的PCIe闪存卡(SSD)。“逐渐为人所知”这几个字表示该市场还处于起步阶段,前景光明,当然竞争也会激烈。


NVM Express(简称NVMe)是一个针对PCIe SSD的主机控制芯片接口标准,这就是说它只规范SSD控制器与操作系统之间的通信连接,而与如何控制闪存一侧无关。以前我们曾经说过,NVMe的成员中不包括Fusion-io。“相关产品的引入将在今年下半年开始”,也就是说现在还没有实际的产品推出,包括新发布的Intel SSD 910在内。


对比统一SATA连接的AHCI(高级主机控制器接口,记得还有NVMHCI规范)标准,NVM Express的优势一目了然。


这里笔者想多说2句,就在本节技术课程中,Intel还播放了一段专门PK. Fusion-io的视频,显然是NVMe将他们作为了假想敌。

  如上表,Intel使用基于DRAM的NVM Express PCIe“SSD”与Fusion-io ioDrive闪存卡对比,显得有点不太公平?内存和Flash的速度还需要比吗?因此“为未来更快的NVM技术留有发展空间”这句话还用的比较合适。另外,Nastran有限元分析软件笔者略有了解,属于有点类似高性能计算、数据挖掘这样以存储带宽需求为主的应用。那么在这里就有点“故意欺负”ioDrive PCIe 2.0 x4主机接口带宽劣势了吧?


NVMe主要解决的应该就是驱动程序模型,LSI WarpDrive可以在上面安装操作系统,而Fusion-io不能就是这方面的原因。我们看到(今年)Q1最先包含在Linux 3.3内核中;在Q2~Q3将会初始发布Windows Release 1,支持NVMe 1.0b版本(现在已经有1.0c了),包括Win7和Server 2008 R2;最后Q4计划有1.1更新,加入了Win8 Storport标准驱动等新特性。


所谓“分叉与合并策略”,就像Linux、在Hadoop等所有开源项目一样,每一家企业享受到“基准驱动”持续改进好处的同时,还要将自己的修改在适当时候贡献到整个生态系统中。

NVMe 1.1:写零、数据拷贝指令和多路径

预计在今年8月发布的NVMe 1.1中的新功能,包括写零指令、数据拷贝指令、通用化的SGL支持和启用有效的多路方案。其中前两项让我们想起了VMware VAAI(vStorage阵列整合API)中的Full Copy和Block Zeroing,它们之间的共性是都属于将原本需要主机全程参与的存储操作卸载到设备上完成。


写零指令:其中“主机通过总线传送大量的零是对功耗的浪费”一句说得相当直白,此外还简单解释了使用Deallocate(如Trim脏数据块回收指令)来对块写零不可行的原因。


数据拷贝指令是为了避免在总线上发送不必要的数据。对于在同一块SSD上从一个LBA到另一个LBA(比如C分区到D分区移动)这样的设备内搬移数据操作,可以通过只修改LBA-PBA(逻辑-物理地址映射)而无需实际数据读写。这也利用了SSD自身的长处,除了功耗节省之外,应该还可以提高性能。


启用多路访问,是不是有点像SAN存储系统的多路径驱动,或者集群NAS的全局命名空间?它针对于需要1个以上PCIe NVMe控制器设备来进一步提高性能,或者增加共享/高可用特性等场景。

你可能感兴趣的:(NVMe)