一、业界背景与现状

近些年来,有三件事实在业界同时发生:
    1.  业务的发展朝着“生产”和“使用”海量增长数据的方向演进。
    2.  摩尔定律 的失效。
    3.  快速增长的存储和网络带宽需求同时束缚着传统数据中心基础设施。

  这三件事实的影响下,大大限制了为应用程序扩展能力、数据存储和分析扩展容量以及以系统降本增效的能力。这也导致以计算为中心的架构逐渐转变为了以数据为中心的架构,同时对数据库管理员、IT 基础设施管理者甚至采购团队提出了新的挑战。
  随着摩尔定律的失效,计算设备慢慢向着不同的专有领域发展,在算力芯片方面,逐步衍生出了FPGA/GPU/TPU/DPU等专有算力芯片;在互联网络方面,也衍生出了具有高吞吐低延迟的智能网卡等;而在算力和互联网络方面的瓶颈得到缓解之后,存储方面的瓶颈便开始浮现,因此,在存储方面,CSD也随之应运而生(即计算存储驱动器,英文全称 Computational Storage Drives , 通常我们也将其称之为” 计算型固态盘”)。

二、什么是CSD

  简单来讲,CSD 其实就是在普通 NVMe SSD 的基础上,在盘片内部集成一个或多个计算存储引擎的新型 NVMe SSD。与普通 NVMe SSD 相比,CSD 在控制器内集成了计算存储引擎(CSD盘内物理结构如下图所示),因此能够直接在盘内对数据进行相关计算(例如:数据透明压缩/解压、原子写、计算下推等)。

  ScaleFlux 目前的主流产品 CSD 2000就是这样一款新型 NVMe SSD 。其主打的计算特性为透明压缩/解压,那么,CSD 2000能够为应用带来怎样的价值呢?下面我们以普通NVMe SSD为对照,对CSD 2000 的应用价值进行简单介绍。

1.  CSD 2000能够大幅提升应用的性能

  在数据有压缩需求的场景中,相比采用普通 NVMe SSD的方案(如下图左侧所示),压缩/解压引擎是定义在SSD盘外(主机端或者加速卡),这种方案中压缩对应用不透明,且数据的压缩与解压需要占用大量主机总线带宽在CPU或加速卡与SSD之间来回拷贝数据,这会严重影响整体性能,而如果采用CSD 2000(如下图右侧所示),压缩/解压引擎是定义在盘内部的,数据的压缩与解压完全是在盘内进行,数据是完全零拷贝的,不需要占用主机总线资源,从而达到提升性能的目的。

  在数据无压缩需求的场景中,采用普通NVMe SSD方案,应用写入的数据量与SSD NAND中的空间占用大小相等。而采用CSD方案,CSD 2000内置的透明压缩/解压引擎,对数据的压缩与解压完全是在盘内进行,对应用完全透明(就好像数据从未压缩过一样),且能够在大幅降低物理空间占用的同时(如下图所示,假设数据的压缩率为2:1,则使用CSD 2000时实际写入NAND介质中的数据可减少一半),显著提升应用的性能(通常,当SSD NAND介质容量使用率超过60%以上时,SSD盘内的GC会逐渐增多,这会对SSD的性能造成严重影响。而采用CSD 2000方案,实际写入NAND介质的数据量会显著减少,这相当于增加了盘内的OP空间,而OP空间一旦增多便能够显著降低GC,进而能够显著提升性能)。

2.  CSD 2000能够大幅降低存储TCO

  CSD 2000支持LBA(逻辑块地址,它的大小代表OS层面的可用空间大小)到PBA(物理块地址,它的大小代表NAND介质的可用空间大小)之间的变长映射,使得CSD 2000内置透明压缩/解压得以对应用完全透明,在大幅降低SSD物理空间使用率的情况下,还能够大幅提升应用性能。
  也正是由于CSD 2000内置了透明压缩/解压引擎,使得应用数据实际写入到NAND介质中的数据量可能很少(数据压缩率越高,写入NAND介质中的数据量就越少),因而使得SSD物理空间的使用率较低,为了使得SSD的物理空间使用率最大化, CSD 2000支持将LBA进行放大(以数据的实际压缩率作为依据),这样一来,与普通NVMe SSD相比,在同等物理容量的前提下,CSD 2000能够提供给应用更大的可用空间,数据的压缩率越高,CSD 2000能够提供给应用的可用空间越大,从而显著降低存储TCO(总体拥有成本)。如下图所示,左侧代表普通NVMe SSD,由于无内置压缩/解压引擎,无论数据压缩率如何都无法降低存储TCO;右侧代表CSD 2000,这里假设数据压缩率为2:1,根据数据的实际压缩率2:1,CSD 2000支持将应用可用空间从3.2TB放大2倍为6.4TB,从而实现了将TCO成本降低50%的目的。

三、CSD 在携程的应用实践

  一直以来,ScaleFlux积极探索在数据库应用领域中可落地的应用场景,在数据库应用领域斩获了良好的应用成果。例如:在MySQL数据库中,在CSD 2000 NVMe SSD产品的"透明压缩"与"原子写"特性加持下,其在数据可压性高、访问并发高、数据量大的应用场景中,与普通NVMe SSD相比,普遍能够节省60%以上存储空间的同时还能够为读写性能带来80%以上的提升。
  从2021年3月份开始,ScaleFlux便与携程展开了一系列的技术交流和测试验证工作,测试结果表明:

  • CSD 2000在携程不同业务类型的生产数据样本中测量到的整盘数据压缩率分别在2.29~2.56之间,这意味着CSD 2000能够帮助携程能够节省56%~61%的存储空间。
  • 在FIO基准测试中,CSD 2000的顺序读、顺序写、随机读性能与普通NVMe SSD性能相当,是2 x SATA SSD RAID0的3倍以上 ;CSD 2000的随机写性能是普通NVMe SSD的3倍以上,是2 x SATA SSD RAID0的6倍以上 ;CSD 2000的随机读写混合性能是普通NVMe SSD的2倍以上,是2 x SATA SSD RAID0的6倍以上。这意味着能够帮助携程大幅缓解业务持续增长、业务请求暴增等场景下磁盘的负载压力。

  目前,CSD 2000已在携程数百台MySQL生产服务器中上线,涉及的业务系统包括:风控,机票,酒店等。在用户使用体验上也非常满意,例如:

  • 在某业务库中,未使用CSD 2000之前,文件系统空间使用率频繁触达90%+告警阈值,使用了CSD 2000之后,在不需要额外业务拓展架构的支持下,能够做到尽可能不影响生产业务的前提下,在线一键扩容500GB+文件系统可用空间,使得空间告警压力瞬间释放。如下图所示

  • 在某业务库中,未使用CSD 2000之前,磁盘IO负载频繁触达告警阈值,使用了CSD 2000之后,磁盘IO负载压力瞬间释放。如下图所示

四、CSD的应用前景展望

  ScaleFlux作为一家可计算型存储厂商,坚信可计算型存储是顺应未来技术发展潮流、是缓解未来数据量爆炸式增长压力的绝佳解决方案之一,在携程良好的实践成果也是对ScaleFlux产品能力的强力应证。在未来,ScaleFlux将会在更多应用领域中积极探索,在不久的将来,相信可计算型存储将会在越来越多的应用场景中落地生根。
  当今时代,我们正处在一个前所未有的数字化转型的进程中,各种新兴技术的产生和使用都会面临着一个共同的问题,那就是数据产生和使用呈爆发性增长,这会给底层的计算和存储的技术带来巨大的挑战。
  在过去的几十年中,存储的技术从卡带、到磁盘、到固态硬盘,从容量和性能上都得到了巨大的提升,但其提升的速度远远赶不上数据增长的需求,如果我们把2020年全球存储的产能加起来,大约20ZB(相当于20亿张10TB的硬盘),这已经是比较惊人的产量,但到了2025年,数据的增长大约会达到125ZB,与此同时,存储的产能只能达到22ZB,可想而知这将是存储面临的一个巨大挑战。
  Intel的创始人提出的摩尔定律在过去的70年代到00年代长期神奇般的有效,CPU的性能每隔18个月翻一倍、价格下降一半。但是在过去的10多年里,由于CPU的性能提升逐渐接近物理极限,摩尔定律已经逐渐失效,CPU的性能每隔18个月的提升已经不足2倍,与此同时数据的增长量却呈爆发式增长,这种情况下算力也将面临一个巨大的挑战。
  当传统的计算与存储的方式难以满足数据增长需求的时候,就必须通过创新来解决计算和存储的效率,要提升计算和存储的效率,最有效的解决方案就是将计算与存储分离,可以将不同的计算类型细分到不同的更加高效的计算引擎里。可计算型存储由此应运而生,将近存储的数据相关的计算(例如:数据的压缩与解压、数据的过滤、数据的加密与解密等)集成到存储设备内部,不需要额外的设备,这就意味着不需要主机CPU参与,不需要在系统总线中来回拷贝数据,不需要额外占用PCIe插槽与额外的供电,同时算力能够随着存储的扩容而线性扩展,甚至能够做到并行计算等等。
  我们完全有理由相信,可计算性存储一定能够很好地为未来5G时代的万物互联、AI、区块链、自动驾驶等新兴技术保驾护航!