NVMe:一种“生来彷徨”的技术

日期: 2017-01-09 作者:Jon Toigo翻译:joker.D 来源:TechTarget中国

去年夏天,我正致力于闪存内存方面的研究,尤其是对那些基于内存存储的产品,毕竟它们看起来对我的客户们更具吸引力。NVMe,或者称之为快速非易失性内存——Non-Volatile Memory Host Controller Interface,即将PCIe架构直接用作闪存内存存储使用(不再需要SATA硬盘控制器的参与)——这种特定的架构看起来激起了相当一部分闪存厂商的兴趣。就在去年六月,NVMe的专家们提出了一种NVMe over Fabrics的规范,一部分人则将其视为构建高可扩展性闪存平台的关键因素。 尽管这个想法听起来不错,但问题还是来了:临近收官之际,所有这些所谓的“标准”看起来都不像是……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

去年夏天,我正致力于闪存内存方面的研究,尤其是对那些基于内存存储的产品,毕竟它们看起来对我的客户们更具吸引力。NVMe,或者称之为快速非易失性内存——Non-Volatile Memory Host Controller Interface,即将PCIe架构直接用作闪存内存存储使用(不再需要SATA硬盘控制器的参与)——这种特定的架构看起来激起了相当一部分闪存厂商的兴趣。就在去年六月,NVMe的专家们提出了一种NVMe over Fabrics的规范,一部分人则将其视为构建高可扩展性闪存平台的关键因素。

尽管这个想法听起来不错,但问题还是来了:临近收官之际,所有这些所谓的“标准”看起来都不像是为了解决某种已知的实际问题而设立的。相反,它更像是工业发展本身的产物。

关于现在

根据厂商们的反馈,相比于成规模的硬盘部署,闪存内存的价格正变得更为廉价,而这种趋势还在不断持续。闪存的长处在于读取,而非写入。闪存在写入数据方面的短板迫使厂商们投入了更多的研发精力——然而并不是为了解决闪存本身的问题,而是通过加入更多的缓存使其短板看起来不那么严重。

我曾经和一位存储主管聊过,“尽管闪存芯片的技术日新月异,但是其在写入方面的表现之差也愈发严重。所以我们在控制器端投入了大量的精力,就是为了缓解写入的问题,进而中和性能方面的差异。”对话临近尾声的时候,他补充道,厂商们把宝压在了存储设备不断下降的价格上,再加上硬盘存储I/O和延迟的不断提升,闪存的短板最终会被慢慢掩盖掉。

从这个角度出发,你不难发现NVMe只是作为提升闪存性能的另一种尝试,尽管其所谓的“优势”在面对实际问题时也许只是纸上谈兵而已。

尽管问题看起来再简单不过,但其背后的故事却很值得讲一讲。

关于过去

在21世纪初,随着闪存内存作为存储介质的出现,每家厂商都尝试创造自己的技术——控制器、软件堆栈、驱动等等——目的就是为了不借助SATA接口来实现闪存的访问。他们吹嘘自己的专利技术独一无二,比竞争对手的更快速,比模拟硬盘和硬盘控制器的效果好到不知道哪里去了。闪存应该有自己的接口来“释放其天生的并行处理能力”。引用我的一位业界老手的话,这就是一个“千载难逢的创造专利的机会”,随之而来的就是涌现出了一大批像Fusion-IO这样具有知识产权公司。

然而,一种罕见的消费常识(大萧条时期的副作用)就出现了,自主闪存技术很快陷入了无人问津的境地。大公司不想因此(购买闪存技术相关产品)困住自己的购买渠道——除非,这个技术是来自Intel的。

当Intel在其2007年的Developer Conference上宣布,他们正在研发自己的闪存内存PCIe接口,该产品将使用更少的缓存并且部署了标准化驱动堆栈,这对于投资者来说再好不过了,他们可以借此机会终止在那些新兴闪存存储公司身上的投入。显而易见的是,Intel将会从NVMe的“标准化”进程中收益颇多,这一点从2014年首个规范发布的时候就开始逐渐显现了。

像我这种对此带有怀疑观点的人,看到的则是Intel借着NVMe提升了自己在PCIe闪存方面的话语权,不管这种做法带来的影响是好还是坏,它确实就这么发生了。尽管NVMe带来的实际好处还要继续观望,但还没人愿意对此进行过多讨论。

有些人则认为NVMe的初衷是让闪存发挥其原有的速度优势,而不应该产生由于IO通过SATA总线带来的负面效应。然而,该论点的变体却被拿来去评判每一次技术革新——从软件定义存储和超融合架构到NVMe——过去十年中,I/O路径和存储架构中总能见到它们:“传统存储太慢了。我们要让应用运行的更快些。”

然而,真相往往和我们想象的不一样。

关于现实

考虑到应用的性能,尤其是像数据库这种应用,它们的性能瓶颈(在大多数情况下)不完全在存储I/O层面。然而事实却是,除了高性能计算的场景以外,我们的应用产生的数据量或者存储I/O几乎很少会使存储路径达到饱和,甚至都不会有等待队列的出现。

还记得几年前SATA II和SATA III硬盘刚刚出现时的场景吗?消费者关于兼容性的问题无处不在:最新的SATA设备会不会受到传统数据传输技术的影响。系统厂商的技术人员诚实地表示,你们的数据生成速度还没快到能“flood”到传统SATA的地步,又何谈SATA II和SATA III的兼容性问题。技术人员并不认为SATA是存储设备中带来延迟的根本原因。尽管评判标准作为工程技术进步的一部分在不断提升,但是它还不足以解决任何实际问题。

闪存已经发展的有几年了。尽管VMware费尽心思的把VM的低性能归咎于存储,但通常来说二者之间的关系并不大,更不用提那些有的没的联系了。

DataCore Software至今已经反复验证了三次关于I/O拥挤的真相:发生在I/O路径的末端并将其称之为裸I/O——在这里,处理器对应用指令进行处理,生成I/O并将I/O请求转移至I/O总线上进行执行。最近,DataCore依照Storage Performance Council SPC-1 Benchmark生成了五百万的IOPS,并利用代码将这些连续或者顺序I/O进行多CPU的并行处理(如果没有DataCore的Parallel I/O,多核芯片依然会采用单核芯片处理顺序I/O的方式)。这次实验的结果表明:之前我们所了解的关于传统存储或者Fibre Channel网络的无稽之谈都是假的。DataCore的这五百万IOPS是通过FC连接传统存储实现的,而链路带宽仅仅使用了50%。

NVMe作为一种技术让我感到不解的是,它的设计初衷更多的是出于工程技术自身以及市场定位的考虑,而不是为了解决消费者们面临的具体问题。闪存相比于硬盘在成本方面的竞争力日趋显现,就算它在延迟或者吞吐量上带来的改善不那么显著,但消费者却已经给其贴上了性能问题的标签。也许这就足够了。


文章选自存储经理人2016年10月刊:智慧商业的背后:智能存储,欢迎下载阅读!

翻译

joker.D
joker.D

某国际存储厂商技术支持,魔都。

相关推荐