EMC DSSD应该是NMVf(nvme over fabric)存储的先驱,其架构参见前文揭开EMC DSSD D5的神秘面纱。DSSD走的是硬件定义的路子,由于缺乏数据服务,GA后销售很少,现在DELL EMC已经把这个产品停止销售了。也就是说,硬件定义的DSSD从先驱变成了先烈。

我还以为NMVf存储的时代还没有到来,没想到,周末我看Storage Field Day 12的视频,发现还真有不死心的,有一个叫Excelero的NVMf存储Startup公司正式从秘密状态走出了,面向公众发布了其产品NVMesh。

Excelero也是一个以色列公司,2014年成立。原Fusion-io的创始人,现在的Primary Data的CEO David Flynn是投资人之一。其申请的专利有11项,其中最重要的RDDA已经得到批准。产品虽然刚刚GA,但是已经有了几个大客户,如NASA,就是一个128节点的存储。合作伙伴很多,据说DELL已经和其签署了OEM协议。

其产品采用完全不同于DSSD的思路,即软件定义的NVMf架构,Excelero叫NVMesh,后面的sh表示share,即共享的意思。它采用市场上通用的硬件,把各个服务器上的NVMe盘做成一个统一的存储池,让应用可以共享这些存储资源。

但是,和传统的SERVER SAN或者Virtual SAN不同,每台主机都需要安装一个专用的客户端(NVMesh Client),使得其可以通过NMVf直接访问其他服务器(NMVesh Target)上的NVMe盘。也就是说,数据路径还是走NVMf,这样就保证其可以充分发挥端到端NVMe的优点,时延要比那些只是后端采用NVMe盘的AFA(如华为刚刚发布的NVMe全闪存阵列Dorado 5000 v3)要小。

当然,Excelero要做得共享这些NVMe资源,需要有一个控制平面来进行资源的管理。这一看就是典型的软件定义存储的思路,控制平面和数据平面分离。

因此,NVMesh有下面的特点,首先是一个软件定义的块存储,第二是一个NVMe的虚拟SAN,第三也是一个Scale out的SERVER SAN,号称支持上万个节点,第四它支持融合部署和分离部署。

其中最关键的是,不管是融合部署还是分离部署,应用服务器都是通过NVMe来访问,就像访问本地NVMe盘一样。Excelero说通过专利的RDDA技术,远程访问NVMe盘仅仅增加5us时延,几乎可以忽略不计。

由于采用NVMf架构,因此和DSSD一样,不支持数据服务(DSSD还支持Thin),纯裸奔。因为做快照、复制、克隆都是非常影响性能的。而且,我们也看到,其保护方式非常简单,只支持RAID 1/10,即复制的方式。大家知道PCIe有一个组播功能,因此,我推测这是采用组播来实现的。

Excelero的这种架构,其优势在于不需要CPU,因为采用其专利的RDDA(Remote Direct Drive Access)访问方式。这个其实很好理解,即RDDA利用NVMe技术,当然不需要CPU参与数据处理了。

性能怎么样,我从其和联想的参考架构里摘录几个图来看看。这是用联想服务器测试的IOPS情况,我们可以看到几乎线性增长,百万IOPS轻松可以达成。

时延一般就是100us以下,和本地访问几乎没有区别。

带宽也是很高。

Excelero的NASA案例就是128个节点,组成一个巨大的flash pool,采用RAID 0(临时数据,不需要保护)的方式,实现最大的性能。

由于NVMesh不需要占用CPU,因此可以做真正的融合,即计划所有的计算资源你都可以分配给计算用,存储几乎不占CPU资源。不像VMware的vSAN,一般建议保留20-30%计算资源给存储使用。

这个思路有点像另外一个Startup公司FlashGrid,它们可以配合ORACLE RAC来使用。

只是Excelero的应用场景更广泛一些,云,实时分析,机器学习和IOT等都可以用到。

但是,这种只有性能,没有任何数据服务的场景还是比较少的,大概只占15%的比例吧。这也是DSSD要停止销售的原因。好在Excelero是SDS,因此研发成本相比要低得到,用户的采购成本也要低得多,因此,我相信其命运会比DSSD好。

不过,大部分的企业的高性能场景,采用类似华为Dorado 5000 v3的NVMe全闪存阵列就应该能够满足要求。因为它保持了传统的FC或者40GB以太或者IB这样的高速连接,只是后端的磁盘采用了NVMe,因此对于主机来说,和传统的SAN存储没有什么不同,关键其可以支持重删压缩,快速甚至双活等丰富的数据服务。只是时延只能做到500us,不像NVMf可以做到100us。

但是,企业有多少应用负载需要100us的时延呢?很少。相比数据服务,企业更喜欢有丰富数据服务的产品。

也许,DELL OEM Excelero的NMVesh后,可以把NVMesh作为底层,而把其ScaleIO跑在上面,这样既可以有较低的时延,但也可以可以提供很多企业特性。这是一个思路,也可能是下一代SERVER SAN的发展方向。