作者 唐杰
随着Intel的3DXP产品,傲腾系列的推出,以及Samsung 对应的Z-SSD 产品的推出。SCM,storage class memory这样的技术对于数据中心的各位意味着什么?需要来看看了。要知道,IBM在2007年就在讨论这个SCM了【2】
SCM,目前大家比较粗俗的定义,就是persistent 的内存, 介于NAND和DRAM之间,性能和成本也是。
相对于NAND Flash,SCM的性能和访问方式已经和DRAM差别只有10~100的差别。通过对于传统应用程序的修改,比如基于SCM的系统的应用就根本不需要传统的I/O堆栈来进行SCM的操作了。
因此,问题来了, 数据中心的各位要如何拥抱SCM呢?
从这个比较粗糙的图开始,说实在,冬瓜哥应该有更牛的图。如果瓜哥愿意,我再搞一个更新版。
这个是目前数据中心中的云服务器的抽象。在传统的方式中,如红色箭头所示,应用程序访问DRAM和外部设备的存储设备。
如果加入了SCM,有些程序就可以使用由SCM+DRAM组成的统一寻址空间了。就像蓝色的箭头。这里面的一个Software Shim ,这个东西可以理解为一个接口在OS和Hypervisor上,让上层的把下面的SCM看作内存,整个系统就有了大量的内存资源,加速程序的运行。
和蓝色箭头所示一样,SCM自身需要和local的NVMe 的NAND Flash或者远端的存储资源交互。和cache一样,在自身中加载热点数据,大量数据最终刷新到直连的NVMe或者远端存储资源。
这个缓存管理软件或者Shim Driver更像一个系统级的应用,就像Netapp的Plexistor,当然也可以是操作系统或者Hypervisor的一部分。因此第一个问题:
1.在物理服务上跑着的Windows, Linux,Unix,如何支持SCM?
接着的问题:
2.这些Hypervisor, vSphere, Xenm 和KVM如何支持SCM。
硬件的角度:
在现有的硬件系统中如何加入SCM, 问题三:
3.是使用PCIE 的U.2,还是AIC,还是是使用DIMM, 或者未来的OPENCAPI, GenZ接口?
不管哪种物理连接接口,大家都希望实现高带宽,低延时的连接。那就带来问题4:
4.如何支持不同的CPU,从X86到ARM,到Power和Sparc。
对于服务器供应商来讲,接下来的问题5:
5.服务器采用什么样的规格,是1U的高密度,还是2U X24 slot的规格,如何配比DRAM,SCM,NAND的这几级的配置比例?
这个问题都是需要,Cisco,Dell,Fujitsu,HPE,Huawei, Inspur, Supermicro,Vantara,AIC 来解决。
谁来提供SCM产品给服务器商,是独立的SCM的startup公司,还是Intel/Micron, Samsung,目前这个问题应该有答案了,应该是Intel/Micron, Samsung 这些人来提供。这就有了新问题:
6. Intel/Micron, Samsung都有DRAM生意,他们会如何平衡SCM和DRAM之间的平衡,手心手背都是肉?
软件角度:
从软件角度,使能SCM的软件从哪里来,问题7:
7. SCM的软件是集成在OS和Hypervisor上,还是类似于Netapp 的cache软件一样集成在应用中,还是像Hazelcast这样独立的应用软件,或者,新的opensource 软件,就像memcached点燃了对象存储一样?
HCI的新贵们的角度:
对于目前提供HCI系统的Cisco,Dell EMC (VxRack/Rail), HPE,Netapp, Nutanix, Pivots, Scale, 和软件厂商如:DataCore,Maxta,他们的问题是:
8. 是不是直接采用它,以免在性能上落伍,还是基于SCM重构整个架构。
Nutanix最近购买的Pernixdata可以提供一层基于hypervisor的cache 层。这个就带来另一个问题:
9. 这个SCM的层已经是基于DAS模式,还是池化的方案?
网络角度:
从SCM的本身性质来看,RDMA是唯一适合他它的网络。但是NVMe over Fabric刚刚开始,PM over Fabric已经在路上了,带来问题是:
10. 对于目前站主流生态的存储协议,FC,Iscis,NFS, 大家如何拥抱SCM?
存储整列角度:
从存储厂商,使用SCM来获得更大的缓存是最明显的用途。但是带来另一个问题就是:
11. 在引入SCM的情况下,存储的控制器如何操纵I/O,因为SCM的访问方式的变化,存储厂商会面临性能提升和被旁路的选择。
目前的存储startup公司,Datrium和Excelero在这个方面有一些实现可以参考。
到这里,各位可以看出,我基本是在意译【1】这篇文章,这篇文章的最终结论是,SCM已经来了,但是真正的生态成熟还要等到2019年或者更晚。翻译这个文章的原因就是,技术的演进是令人兴奋,但是从技术到产品,真的要有很多事情要考虑,很多坑要一个一个地填。