通知:《大话计算机》一书初审、终审完毕,已经进入终稿落地修改意见阶段,一切顺利的话,2月底印刷入库,底3月中下旬就会上市!
根据IDC最新数据,2018年全球PCIe SSD出货量800万片,预计到2021年会增长到3000万片,3年增长接近4倍!
同时可以看到企业级SATA SSD出货量将以2018年为拐点,开始逐渐萎缩。而SAS SSD占比比较恒定。
企业级NVMe SSD目前主要的出货量集中在大型数据中心用户比如各大互联网第一梯队厂商以及云运营商,这些用户追求极致的性能,是NVMe SSD的最大用户。
在传统企业领域,NVMe SSD似乎还并没有全面铺开,一方面是多数场景下性能需求没那么高,另外就是成本,再加上传统企业采用外置独立集中存储系统的比例较大,丢与这些外置系统,如果是传统SAN,那么其倾向于采用SAS SSD以在传统SCSI生态栈上获取最大的收益和开发速度,新兴分布式存储系统则多数出于成本考虑采用SATASSD,或者SATA HDD 少量的NVMe SSD做缓存,这方面对NVMe SSD整体出货量贡献不大。另外一个技术限制是目前的Raid/HBA卡还并未成熟的支持Tri-Mode Raid,Broadcom的三模Raid卡虽然可以接入NVMe SSD并对其做Raid,但是其性能远未达到人们对NVMe SSD的期望,另一家Raid卡老牌厂Microsemi(PMC)就根本没打算在PCIE3.0这一代芯片上支持Tri-Mode,因为这一代Raid芯片根本无法支撑NVMe SSD的性能,现实也确实如此。而PMC的PCIE 4.0产品(今年量产)将会最大支持32个Tri-Mode通道,以最高直连8块x4 NVMe SSD,数百万极限IOPS的规格推向市场,这将会促进NVMe SSD在传统企业架构下的加速铺开。
传统企业中有一些特殊场景对性能需求也是非常变态的,比如传统零售业的经营分析决策支持系统,数据分析压力很大,这些系统中有些会采用全NVMe闪存。
再来看看NVMe的软硬件生态支持方面的现状和趋势。
- 热插拔。热插拔目前对于NVMe SSD来讲已经没有任何生态支持问题了。OS内核目前会自动为每个PCIE Bridge预留2MB的地址空间,就算这个Bridge下面没有扫描出任何设备。这样的话,NVMe SSD被热插入之后,这预留的2MB地址空间就会无缝被用起来,对于NVMe SSD来讲2MB的地址空间足够承载NVMe标准规定的寄存器了,除非实现了CMB,而目前看来CMB还并没有被广泛采用,热插拔问题不好解决也是一大限制之一。 其实OS内核可以预留更大的地址段,但是由于尚无定论,PCIE地址段最大64bit,每家SSD的CMB也并不一定会有多少,所以不太好拍板。对于GPU的热插拔其实就体现出这个问题,由于内核并不能确定GPU声明的地址空间到底有多少,有的几百兆,有的则可能几或者几十GB。所以无法预留。但是人们采用了另外的办法解决GPU热插拔问题,那就是把所有GPU插入,启动机器,让机器给所有GPU分配好地址占位,这样的话,后续的热拔出、热插入就可以无缝进行了。当然也有其他一些实现可以不用这么麻烦,这牵扯到PCIE Switch的高级功能,不再赘述。
- 扩展性问题/PCIE Switch。Intel在拖后腿。Intel在对PCIE的支持上扭扭捏捏,Intel CPU芯片推出的PCIE通道数量不太多,40~48通道捉襟见肘,以太网卡、SAS Raid卡/FC HBA卡,GPU,基本就占满了。想接入更多的NVMe SSD,就需要PCIE Switch,其会像SAS Expander一样成为PCIE生态体系中重要的角色。对应的,JBOF(F表示Flash)、JBOG(G表示GPU)这些新名词也都出现了。 在PCIE4.0时代,Intel已经落后不少,AMD和Power架构已经开始步入PCIE4.0时代了,Intel想在PCIE 5.0时代发力,但是似乎留下的时间窗不多了,因为旁边还有个GenZ蓄势待发,目前Gen-Z已经纳入一些联盟核心厂商的开发日程,或许真的会像其名称所示一样,最后一代的外部总线。GenZ的出现会对以太网RDMA发起最终挑战,其实这个设想早在Infiniband的时候就出现了,只不过IB生的太早,丰满的理想遇到了骨感的现实。而Gen-Z似乎更加天时地利人和,拭目以待。
- 硬Raid支持。NVMe SSD的大规模铺开其实离不开一个核心部件,那就是支持NVMe SSD的硬Raid卡。目前主流Raid卡只支持SAS/SATARaid,而对NVMe SSD进行支持其实本质上不难,在芯片后端加一个PCIE Root Complex控制器,固件中实现NVMe协议栈即可,上层的Raid Stack增加一些对高速SSD的I/O路径性能优化,就可以了。而我们将会在今年看到超高性能、扩展性的PMC 32三模式通道的Raid卡。
Microsemi的100通道PCIE 4.0 Switch,以及32通道三模Raid/HBA控制器见这里。
整个硬件生态都已经为NVMe SSD铺好了,NVMe SSD一统江湖基本已经成为定势。当然,SAS/SATA生态并不会消亡,很长一段时间内将会持续与NVMe生态共生,只不过会逐渐退居二线,与机械硬盘白头偕老,走完这一生。
在软件生态上,NVMe标准目前已经发展到了1.4版本,羽翼丰满。1.2亮点是HMB(Host Memory Buffer)和CMB(Controller Memory Buffer)机制的加入。而1.4标准中的亮点则是对QoS方面的功能增强。对于低速硬盘,QoS其实并不是重中之重,在一个超级慢的系统下谈QoS根本没有意义。在高速路上谈QoS的意义更大,原因很简单,高速路上一旦有一辆车出了问题堵塞了一条车道,那么将会造成严重的拥堵,另一条车道也会由于汇入得车辆导致吞吐量严重下降,这同时也是要避免锁的原因。
由于NVMe盘可能会同时被不同应用访问,而即便是同一个应用系统,在不同的时间段或者其他条件下,也可能会产生完全不同的I/O特征,而大量应用混杂的使用NVMe SSD,其之间的相互影响将不可忽略。这个技术冬瓜哥其实在8年前就要着手在SAN存储中实现并落地,因为SAN存储也是一个被各类应用混杂访问的系统,当时冬瓜哥规划了一套完整的多租户资源隔离、共享的底层技术以及上层展现、概念,称之为SmartMotion,详见这里。
在NVMe SSD QoS方面,目前国内厂商Memblaze走的比较前沿,在去年12月的DSS峰会上,Memblaze展示了他们对QoS的观点以及在PBalze系列NVMeSSD中的实现以及效果测试。
下面这张图简直与8年前冬瓜哥画的那张图如出一辙,可惜,冬瓜哥一直都是单枪匹马,所以没法落地。
后续制约NVMe SSD的无非就是成本和功耗问题,关于功耗冬瓜哥之前也介绍过,目前Memblaze等厂商已经在开始针对功耗问题持续优化,未雨绸缪,相信NVMe生态并不会被功耗问题所阻碍。另外就是成本问题,这其实才是最重要的,目前看NVMe SSD价格是SATA SSD的2倍左右,但是相比其所带来的性能而言,这2倍其实并不能绝对的来看。
看来NVMe SSD一统江湖已经是大势所趋了。欢迎留言发表观点。