NVMe SSD盘“登基”咋就这么难?

2015中国闪存峰会特邀 “大话存储”图书及公众号作者冬瓜哥对“NVMe IO协议栈技术”进行系统介绍。作为技术大咖,冬瓜哥名不虚传,从IO协议栈结构、时延,到堆栈队列数量和深度,SATA SSD在IO协议栈方面的问题暴露无疑。

 
  冬瓜哥指出:传统磁盘执行IO指令的平均时延是10ms, SCSI协议栈带来时延为0.01ms占比为0.1%,这是可以接受的。但对于SSD盘而言,SSD执行IO指令的平均时延是0.01ms,如果仍然沿用SCSI协议栈,就意味着IO协议栈时延占比会高达50%,显然这就是不能够接受的。(详情参见IO协议栈前沿技术研究动态(2015存储峰会分享))一文。
 

  从技术的角度,SSD替代硬盘,IO时延降低100倍,如果用新的NVMe协议栈来替代传统SCSI协议(SATA盘采用),则时延可以进一步降低20us,不要小看这20us,对于SSD新的存储介质来说,其对性能的影响是非常大的。

\

 
  但现在的情况是,为了兼容性,SSD盘仍然保留了SCSI协议,因此这种盘也被称为SSD SATA/SAS盘。如果我们用“削足适履”来形容这种现象应该是最恰当不过的。因此,从技术的角度,NVMe SSD盘取代SATA SSD盘势在必然。
 

  但从市场的角度,NVMe SSD取代SATA SSD的情况并没有发生?原因何在。

\

 
  成本的原因吗?据专业人士介绍,用NVMe SSD盘取代SATA SSD盘,用8639接口替代传统的串行ATA接口,会带来6倍带宽性能提升,时延3倍降低,容量8~10倍提升,但成本是非常接近的。因此,成本并不是NVMe SSD盘迟迟没有推广的原因。
 
  除了成本之外,再有就是软件的因素。软件方面,新的操作系统都提供了对于NVMe协议的支持,这意味多数应用没有迁移的障碍。但少部分应用软件,例如数据库、中间件等,涉及部分IO协议栈的问题,需要对NVMe提供支持。这在一定程度上,影响了NVMe  SSD盘的应用。
 
  要知道,对于IO性能更加关注的应用,数据库首当其冲。好消息是,Oracle数据库正在针对NVMe协议进行优化,假以时日,障碍就会扫除。基于这个因素考虑,NVMe SSD盘市场爆发会相对延迟,预计会在今年下半年左右。
 
  服务器厂商的态度十分微妙,甚至可以用小心谨慎来形容。一方面,服务器设计需要优化,二来成本会提升,此外,市场的接纳度成疑,服务器厂商不愿意涉险。加上消化库存以及和传统磁盘厂商的关系,这都让服务器厂商更愿意观望和等待。
 
  对于NVMe是不是只有临渊羡鱼的份吗?其实也不尽然。
 

  这就要说一个叫苹果的公司。据微信公众号“SSD攻城狮”的“苹果’杀死’eMMC”的文章介绍,新的iPhone 6S就是使用了NVMe SSD存储介质。较之上一代产品iPhone 6,IO性能快出了一个三星S5。这就是差距。

\

 
  不要说什么苹果“软硬件封闭一体化”优势等客观因素,在意识上,态度上,心态上,就真的没有什么可以总结的吗?
 
  我想还是让“削足适履”的事情赶快过去吧!
 
  最后补充一句,如果你等不及了,你可以选择闪存卡,很多闪存卡率先拥抱了NVMe的时代。但卡和盘的区别,读者可以自己分析和研究,这里不更多讨论了。需要提醒注意的是,真正的NVMe的时代不分卡和盘(参见NVMe时代,别跟我说什么卡和盘)。