《深入浅出SSD》-专用SSD存储

本文章大部分内容来源自《深入浅出SSD》第2版,会有小部分内容来自于搜索(为了更深入的理解)和自己的理解,即个人的学习笔记。

本章将重点介绍可计算存储设备和航天存储设备,以及其中设计的专用SSD。

1.可计算存储

什么是可计算存储?SNIA(全球网络存储工业协会)的定义:可计算存储为一种将计算功能与存储耦合以卸载(Offload)主机处理或减少数据搬移的架构,该架构通过继承主机与存储驱动器之间的计算资源,或直接继承存储驱动器内的计算资源,提高应用程序性能或优化基础设置的效率,目标是实现并行计算,或减轻对现有的计算、内存、存储和I/O的限制。

通俗地讲,可计算存储是在原有存储设备(比如NVMe SSD)上叠加专有芯片,并由该专有芯片直接加速与数据存取相关的计算任务,实现CPU计算任务卸载或数据的搬移。理论上不但能节省主机CPU的算力资源,且能不来回复制数据浪费系统总线资源。

可计算存储也具备更好的灵活和可扩展性,用户可以根据需求对计算和存储资源进行动态分配和调整,从而实现资源的最优配置。

1.1 可计算存储的诞生背景

数据产生和使用呈爆发性增长,给底层的计算和存储技术带来巨大的挑战。

1.存储面临的挑战

存储技术的容量和性能都得到巨大的提升,但提升的速度远赶不上数据增长的速度。这是存储方面的巨大挑战。

2.算力面临的挑战

由于CPU的性能提升逐渐接近物理极限,Intel创始人提出的摩尔定律逐渐失效,CPU的性能每隔18个月的提升已经不足2倍,但数据的增长量却呈爆发式增长。算力也将面临巨大挑战。

当传统的计算与存储方式难以满足数据增长需求时,就必须通过创新来解决计算和存储的效率。提升计算和存储效率最有效的解决方案就是将计算分流,例如:

  • 将AI的计算分流到GPU、TPU、DPU等计算AI数据效率更高的专有芯片。

GPU(Graphics Processing Unit),图形处理单元;

TPU(Tensor Processing Unit,张量处理单元,是谷歌开发的一种专用由于机器学习和人工智能计算任务的硬件加速器);

DPU(Data Processing Unit,数据处理单元,是一种用于网络数据处理的硬件加速器)

  • 将网络相关的计算分流到智能网卡芯片
  • 将存储中与数据相关的计算任务下推给存储本身的芯片(如:数据压缩与解压、数据过滤、数据加密与解密等)

1.2 可计算存储的应用探索

1.可计算存储

可计算存储可拉进数据存储端(存储设备)与数据运算处理器端(专有芯片)的距离,盘内集成的专有芯片可直接在盘内完成数据的处理运算。这样不但可大幅度减少数据的搬迁量,还可大幅度提升计算的性能(专有芯片的计算性能远高于通用芯片)。如果在一台服务器中插有多块可计算存储设备,甚至还可以利用多块可计算存储设备中的专有芯片来大幅度提升计算的并行度。

在可计算存储领域,来自ScaleFlux的CSD 2000系列NVMe SSD就是一款自带专有芯片与计算引擎的可计算存储产品。如把CSD 2000的盘拆开看,与普通NVMe SSD并无多大区别,都有存储芯片(闪存颗粒)和主控芯片,不一样的地方在于可计算存储的主控芯片包含了计算加速引擎以及配套的核心软件与固件,可以更好地发挥底层硬件的性能,以便更好地服务上层核心应用(如数据库应用等)。那计算加速引擎是什么黑科技呢?

在CSD 2000这款产品中,可圈可点的计算加速引擎当属透明压缩/解压和计算下推。

2.透明压缩/解压

透明压缩/解压是利用可计算存储缓解容量压力的探索。

对于空间服用(这里指删除旧数据后在腾出的空间中写入新数据),SSD并不能像内存和传统机械硬盘那样直接覆盖旧数据。SSD需要先读旧数据占用的闪存块执行擦除操作,之后再在“干净”的闪存页中写入新数据。在执行擦除操作时,如果同一个闪存块除了旧数据,也存在正常文件的数据(有效数据),这个时候并不能直接擦除,在执行擦除操作前,必须将这些有效数据搬迁到其他空闲的闪存块中,再执行擦除操作,这个过程叫垃圾回收。这个过程中可能会产生写放大(Write Amplification).

一旦SSD剩余空间显著变少,且出现大量数据碎片时,可能会频繁地触发垃圾回收,这个过程会产生严重的写放大。严重的写放大会严重影响SSD性能(如人们会显著感知I/O延时变大、IOPS降低)。对于SSD内部的I/O延时(非应用感知的I/O延时),单个擦除操作的延时是写操作延时的几倍,而写操作的延时又是读操作延时的几十倍。在混合读写的场景中,垃圾回收会引发延时抖动,进而影响应用性能。

为降低垃圾回收的频率,SSD不仅会优化垃圾回收的算法,还会预留一部分空间(预留空间通常称为OP空间,即Over Provision)专门用于腾挪垃圾回收过程中的数据。企业级1DWPD SSD通常将OP设置为7%,3DWPD SSD通常将OP设置为28%。SSD内部空闲的空间越多,写放大系数就越小,而写放大系统减少可显著提升SSD的性能并降低I/O延时。

对数据进行压缩,可在不改变应用架构的前提下立竿见影地增加SSD内部空闲空间,这不仅能节省空间,更能优化性能。目前业界提供了丰富多样的成熟算法,比如zstd、zlib、brotli、quicklz、lzolx、lz4、lzf、snappy等。基于这些压缩算法,现行的解决方案可简单归纳成软压缩(即消耗主机CPU的方案)和硬压缩(这里指可计算存储压缩方案)两种。

软压缩方案的压缩和解压能力完全由CPU提供算力。本质上以牺牲CPU资源来换取存储空间,因此该方案存在如下几个突出的问题。

  • CPU抢占:会占用大量CPU资源,同时也会跟应用抢占CPU资源。
  • 数据复制导致的带宽抢占:在主机和CPU之间频繁引入大量的数据复制(DRAM<-->三级缓存<-->二级缓存<-->一级缓存<-->寄存器),抢占服务器PCIe带宽和内存带宽,同时带来潜在的CPU缓存未命中问题,进一步影响计算效率。
  • 延时不稳定:因为CPU抢占和带宽抢占,当操作系统负载较高时,操作系统中的时钟中断和任务调度会增加延时的不确定性,这是I/O密集型业务很难忍受的。

硬压缩方案能够很好地解决软压缩方案中的突出问题。

  • CPU负荷卸载:采用内置的专有芯片完成压缩和解压缩计算,实现CPU负荷卸载。专有芯片在低延时上非常适合计算密集型任务(比如矩阵运算、压缩和非对称加密)。专有芯片通过片上集成缓存和DRAM接口来减少与CPU的交互,与OS的进程调度和进程不相互干扰。同时,专有芯片是基于定制流水线MIMD设计的,同时拥有流水线并行和数据并行特性,进一步降低延时。
  • 零复制:内置专有芯片进行压缩和解压缩时,不会改变原有的数据路径,完全在盘内进行压缩和解压缩任务,避免数据复制,也大大降低了I/O的延时。这也是可计算存储又称近存储计算的原因。
  • 可线性扩展:每个可计算存储设备都内置了压缩、解压缩引擎,在扩充存储容量的同时也能够线性扩展压缩、解压缩能力。

CSD 2000硬压缩,应用对数据压缩和解压缩的过程不感知的,当应用应用写数据时,数据子啊写入盘之前保持着未压缩状态,当数据写入盘之后,通过盘内置的压缩引擎,结合内置的专有芯片进行压缩,完成压缩后再写入NAND闪存颗粒;当应用读数据时,先从NAND闪存中读出数据,然后通过内置的解压引擎,结合内置的专有芯片进行解压,完成解压之后再返回上层应用。

CSD 2000是基于Host-based NVMe SSD,需要安装驱动才能被系统正确识别。

以下来自Scaleflux CSD 2000的资料,厂商建议用FIO 3.13版本测试

3.计算下推

利用可计算存储实现数据库查询过滤的探索。

在现代处理器系统中,CPU高速缓存处于内存系统的顶端,其下是主存(DRAM)和存储介质。CPU高速缓存通常由多级组成(L1、L2和L3)。基于时间的局部性,CPU数据读取时将访问各级缓存直至到达主机DRAM,如果访问的数据在CPU高速缓存中被命中,将不会访问主存,

存储介质<-->主存(DRAM)<-->CPU(三级缓存<-->二级缓存<-->一级缓存<-->寄存器)

在联机分析(OLAP)场景中,如果同一作业的运行频率低,不同作业之间数据的关联度也低,那么现有缓存体系将极为低效甚至失效,比如热数据被换出引发缓存未命中,会导致应用性能急剧下降。在数据库领域对此有不同的解决思路,以oracle为例。

  • 缩短数据量的移动路径:数据库默认总是先将数据读取到自己维护的高速缓冲,Oracle 11g开始采用直接路径来扫描大表读取数据(默认为2%x缓冲器高速缓存),从而绕开缓冲器高速缓存,避免热数据被换出引发缓存命中率下降。
  • 减少移动的数据量:Oracle Exadata Smart Scan特性能可将大部分SQL操作下推(又叫卸载)到存储节点,从而极大地减少了存储节点和数据库节点之间传输的数据量。

4.可计算存储的前景展望

随着半导体工艺技术发展步伐的放缓,传统的基于CPU的同构计算架构越来越难以支撑计算机系统性能的持续提升。但同时以AI/ML与海量数据分析为代表的各种应用对计算机系统性能的需求却在不断加速增长。这一矛盾迫使整个计算机产业界从传统的同构计算架构逐步向异构计算体系架构转型,可计算存储产品作为一新兴领域,为了迈出商业成功的第一步,必须同时满足如下3个条件

  • 能够无缝嵌入现有软、硬件系统生态环境内,用户应用程序无须做任何改动
  • 所提供的计算服务必须具有足够的通用性,并能带来显著的应用价值
  • 必须提供与通用存储器(如NVMe SSD)相当的数据存储功能和性能

可计算存储未来发展的主要方向为将透明数据压缩、透明数据加密功能集成到搞性能存储控制芯片内,以保证与现有软、硬件系统生态环境实现无缝对接,并与NVMe标准完全兼容。从长期发展来看,可计算存储产品可提供的计算服务远不止透明数据压缩、加密。随着软、硬件系统生态环境逐步对可计算存储产品的包容性和适应性,系统会将更多的与海量数据高度耦合的计算任务(如查询、过滤、数据预处理等)直接下推至可计算存储内,达到进一步提高系统整体计算能力和效率的目的。

补充:

透明数据压缩和加密是指在NVMe SSD(非易失性内存扩展存储器固态硬盘)上进行数据压缩和加密操作,而对应的应用程序和操作系统对此并不感知,以保持对数据的透明访问。

透明数据压缩是指在传输数据到存储设备之前,对数据进行压缩操作,以减少存储空间的占用。该压缩功能由NVMe SSD硬件自动处理,对于应用程序和操作系统而言,读取或写入数据时无需特别的设置或额外的操作。压缩操作可以有效地减少存储成本和提高存储效率。

透明数据加密是指在传输和存储数据时对数据进行加密操作,以保护数据的安全性。通过硬件加密引擎,NVMe SSD自动对写入存储设备的数据进行加密,并在读取数据时对其进行解密。加密操作对应用程序和操作系统而言是透明的,不需要额外的软件或配置。因此,即使在存储设备被盗或丢失的情况下,数据仍然能够保持机密性。

总之,透明数据压缩和加密是在NVMe SSD硬件层面上提供的数据压缩和加密功能,以提高存储效率和数据安全性,并对应用程序和操作系统来说是无感知的。

2.航天存储

2.1 背景

更高的数据精度、更长的服务时间、更远的探测目标、更实时的信息获取,这些太空服务能力提升的需求促进了存储容量和性能的爆发式增长。基于闪存的储存器因具有高集成度、非机械结构、轻量化和非易失性等特点而被广泛应用于航天系统中。然而闪存存储器对空间辐射并不具备免疫性,由高能质子、电子和重离子组成的空间辐射环境会使闪存存储器发生单粒子效应和总剂量效应,严重威胁器件的工作状态和使用寿命。空间辐射影响主要表现在如下几个方面。

1.重离子辐射引起的闪存浮栅单元单粒子翻转

2.重离子辐射后数据保存性能退化

3.总剂量效应对单粒子效应产生影响,使闪存器件的单粒子效应更为敏感

随着闪存工艺尺寸的减小,单粒子效应对闪存功能及可靠性的影响更为显著,同时随着生产工艺从2D升级为3D,FG(Floating Gate,浮栅极)单元结构演变为更为主流的CT(Charge Trap,电荷捕捉)结构,辐射效应下的闪存将会出现更为复杂的失效模式。

此外,上述空间辐射效应同样会发生在存储系统的其他器件,如控制器、RAM缓冲区、电源系统等。星载存储系统的技术发展重点在于:跟随闪存介质技术发展的同时,思考如何解决更为敏感的由空间辐射效应引发的问题。需要从空间环境下的闪存特性分析、高可靠宇航用闪存控制器设计及系统极冗余容错机制等多维度进行系统化研究。

以在轨遥感数据存储为例,星载存储系统处于数据传输通路的核心位置,前端一般是成像分系统,后端为数传分系统。与商用通用存储系统相比,星载存储系统的功能更为复杂,除了基本存储功能,还需要完成多源星载传感器数据采集、高速数据缓冲、文件系统管理和图像数据处理等工作。

2.2 航天存储系统技术现状与发展趋势

1.国内外现有技术形态

航天存储系统架构多采用一体化设计。美国水星公司发布的存储架构如下,该系统采用3U VPX单板结构,通过一颗Micromsemi公司的FPGA管理总容量为440G的SLC闪存介质阵列,系统容量及性能不可配置。美国水星公司基于FPGA实现的星载存储系统架构,代表了目前传统航天存储系统的技术形态。

西安微电子技术研究所是我国最早探索星载固态存储产品的单位之一。如下图,采用Xilinx公司的Virtex5系列FPGA作为主控,存储介质采用2D SLC NAND,总容量为8Tb.

目前国内外主流星载存储方案主要采用FPGA主控及SLC NAND介质。基于FPGA主控、MRAM缓存及工业级2D SLC NAND介质是最新的技术形态。FPGA主控及MRAM天然抗辐射特性能够有效避免空间环境下的单粒子效应问题。

2.发展趋势

相比商业存储,星载存储系统属于融合了SSD控制器、RAID控制器、文件系统及数据处理功能的混合型软硬件系统。随着卫星等航天器智能化发展,存储与计算一体的发展趋势越来越明显,如何高效融合存储与计算的需求是星载存储系统发展的重要方向。另外,随着低轨卫星星座技术的发展,卫星呈现网络化的发展趋势,未来星载存储系统同样朝着分布式网络存储架构的方向发展。

补充:

服务器中的看门狗电路是一种用于监控和重置系统的硬件设备。其作用是当服务器的操作系统或应用程序出现故障或死锁状态时,通过发送“喂狗信号”来重置系统,使其恢复正常工作。

看门狗电路通常由一个定时器和一个计数器组成。定时器会周期性地产生一个计时器中断信号,如果系统运行正常,操作系统或应用程序会在一定时间内定期喂狗,即发送一个喂狗信号来重置计数器,防止计数器溢出。如果系统出现故障或死锁,无法喂狗时,计数器将继续倒计时,当计数器溢出时,看门狗电路会认定系统出现问题,自动触发重置操作,将服务器重新启动。

通过看门狗电路,可以提高服务器的稳定性和可靠性,防止系统由于软件故障导致无响应或死机。这对于关键业务和系统来说尤为重要,因为它可以帮助减少系统故障的影响并提高系统的可用性。

  • 14
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值