声明:本文所有推断均来自互联网上公开的资料,或已出版的书籍。
最近,某著名CSP(Cloud Service Provider)推出了一款DBFS(Data Base File System)产品。
从字面上可以看出,这种产品是专为数据库上云设计,甚至可以支持SAP HANA数据库。
而它的性能规格更是让人惊讶:
可见,这款存储产品的IO能力可达每秒8,000,000。而对应地,以每IO大小为4KB计,吞吐可达32000MBps。A,H,T等多家CSP都没有这么高性能的存储产品公布。
那么,构建这样一款超高IO的云存储产品,需要什么呢?
我们先来看一个故事。
苏联解体后,俄罗斯国防部副部长希望黑海造船厂完成“瓦良格”号航母的建造,但厂长马卡洛夫说:“完成它的建造,需要国家计划委员会、军事工业委员会和九个国防工业部、600个相关专业、8000家配套厂家以及20万以上的技术人才……”
众所周知的,瓦良格号幸运地获得了重生,因为在远东的国度具备了它重生的这些条件。
让我们来看一看,构建8M IOPS和32G Bps吞吐的云存储,需要一些什么…
所有存储产品的架构,都和下图类似:
控制器是存储产品的核心,通过前端NIC(Network Interface Controller)与存储网络(FC SAN或以太网)连接,同时,通过前端总线、PCI-E、SAS或SATA总线连接到缓存(RAM, NVMe, SSD)和磁盘(NVMe, SSD, HDD)。
如此高性能的存储,一般是用于核心数据库场景。我们知道,以Oracle为代表的企业核心数据库软件,为了尽量减少性能损耗,会直接将SQL转换为SCSI命令字,以绕过文件系统,通过RAW方式读写块设备。
如果使用以太网,那么,I/O请求将以SCSI命令字的方式发送到存储控制器。存储控制器最终解析SCSI命令字,并实现落盘。
这里的盘,可以是HDD,SSD,NVMe...
我们可以按照上述流程,梳理一下,支撑8百万IO,各个环节需要什么……
首先是NIC。
32GBps,实际上是8百万IO,每IO以4KB计的吞吐量,转化为小b(bit),相当于256Gbps。由于以太网跑iSCSI时,有部分TCP/IP的开销,这个系统需要至少400G以太网,才能避免NIC成为瓶颈;
其次,让我们看看后端磁盘。
Intel官方网站上,IOPS最高的磁(肯定不是磁了,划掉)SSD盘是这个家伙:
https://ark.intel.com/content/www/us/en/ark/products/202708/intel-ssd-d7-p5600-series-6-4tb-2-5in-pcie-4-0-x4-3d3-tlc.html
可以看出,虽然它的读IO可以到1M,但随机写的时候性能降低到读的1/4。
同时,我们还发现,这个家伙的接口是PCIE 4.0,而这个规范的处理器只有——
AMD,Yes!
以主流CSP的风格,他们是不会选择这个家伙的……
如果采用Intel支持的PCIE 3.0规范,性能只有PCIE 4.0的1/2。
所以,采用NVMe SSD固态盘来实现这个产品的可能性为……趋近于0。
唯一的可能性就是这个家伙了——
https://www.intel.cn/content/www/cn/zh/products/memory-storage/optane-dc-persistent-memory.html
以Intel傲腾为代表的SCM(Storage Class Memory)。
它实际上是DRAM接口的SSD。
如图,同样是SSD,傲腾SCM接口、PCIE NVMe接口和SATA接口的I/O路径从短到长,有显著的差别。当然,I/O与吞吐性能也有数量级的差别。从I/O能力看,只有它能满足百万级别IO的需求了。
然而,傲腾SCM有一个致命的问题,那就是——
容量。
在ark.intel.com 可以看到,傲腾SCM最大容量为512GB,也就是说,在三副本的情况下,需要1536条SCM才能够凑齐256TB的容量。没有CSP会用这么高的成本来实现一个产品。
怎么办呢?
让我们回忆一下,本公众号提到过的两个概念——时间局部性与空间局部性。
如果某名媛在白马会所享受了tony老师的高质量贴心服务,那么,她下次来白马会所仍然点tony老师为她服务的可能性,显著高于她点其他老师的可能性。这叫做时间局部性。
而某名媛如果常去白马会所,那么,她同时也常去旁边的丽思卡尔顿酒店的可能性显著高于她去其他距离较远的娱乐场所。这叫做空间局部性。
在计算机中就是:
如果地址A的数据近期被访问过,那么,下次地址A被访问的可能性显著高于其他数据被访问的可能性;
如果地址A的数据被访问,那么,在这次访问中,地址A 1也被访问的可能性显著高于其他地址被访问的可能性。
利用时间局部性和空间局部性,白马会所和丽思卡尔顿酒店可以共同赚名媛们的钱。
同样地,在计算机系统中,利用时间局部性和空间局部性,可以用少量的高速存储器,混合大量的低速存储器,用较低的成本实现较高的性能——这叫做缓存机制。
所以,我们可以推测,这个产品是这样实现的——
利用SCM内存作为一级缓存,NVMe作为二级缓存,SATA SSD提供高达256TB的有效存储空间,整体三副本存储,每个节点至少有2个100G以太网作为前端对外提供服务的网络接口,2个100G以太网作为后端数据同步的接口。
大家觉得,是不是还有优化成本的办法呢?