您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。 [开放数据中心标准推进委员会]:NVMe SSD 透明压缩功能测试规范 - 发现报告

NVMe SSD 透明压缩功能测试规范

2025-09-22 开放数据中心标准推进委员会 顾小桶🙊
报告封面

开放数据中心标准推进委员会ODCC2025年9月 版权声明 ODCC(开放数据中心委员会)发布的各项成果,受《著作权法》保护,编制单位共同享有著作权。 转载、摘编或利用其它方式使用ODCC成果中的文字或者观点的,应注明来源:“开放数据中心委员会ODCC”。 对于未经著作权人书面同意而实施的剽窃、复制、修改、销售、改编、汇编和翻译出版等侵权行为,ODCC及有关单位将追究其法律责任,感谢各单位的配合与支持。 编写团队项目经理:曹仲深圳大普微电子股份有限公司工作组长:郭亮中国信息通信研究院贡献专家:郭亮中国信息通信研究院王晋强深圳大普微电子股份有限公司李根深圳大普微电子股份有限公司崔志勇深圳大普微电子股份有限公司刘伟平深圳大普微电子股份有限公司韩港霄深圳大普微电子股份有限公司谢丽娜中国信息通信研究院李佳媛中国信息通信研究院郭睿浪潮电子信息产业股份有限公司黄富帅联想(北京)信息技术有限公司杜松英韧科技股份有限公司戴权烽火通信科技股份有限公司方兴烽火通信科技股份有限公司赵凯畅快算信息产业(北京)有限公司程墨长江存储科技有限责任公司 罗挺得一微电子股份有限公司贾秀秀得一微电子股份有限公司李军成都华瑞数鑫科技有限公司豆坤三星(中国)半导体有限公司胡泽志北京三快在线科技有限公司 前言 在数据存储需求呈爆炸式增长的当下,对企业存储设备提出了越来越高的要求,透明压缩SSD应运而生,通过基于ASIC的硬件压缩技术,使其拥有高效利用存储空间与加速数据处理的显著优势。但因透明压缩SSD目前普及程度有限,众多有需求的用户对其使用方法了解较少。本规范主要是提供透明压缩盘的基准测试方案,让用户能轻松上手,充分领略透明压缩盘的便捷与高效,推动其在更广泛领域的应用与普及。 目录 一、透明压缩盘概述.................................................1(一)什么是透明压缩SSD.......................................1(二)透明压缩盘的优点和缺点....................................2(三)透明压缩盘的应用..........................................3二、透明压缩盘的使用说明...........................................5(一)非扩容使用................................................5(二)扩容与容量水位线说明......................................5(三)异常处理..................................................6三、管理工具参考..................................................10(一)扩容命令参考.............................................10(二)获取压缩盘信息字段参考...................................10(三)其他功能参考.............................................11(一)压缩比测试..............................................12(二)性能基准测试............................................13(三)写超恢复测试............................................14(四)写放大测试..............................................15(五)稳定性测试..............................................16 图目录 图1容量模式图例..................................................3图2性能模式图例..................................................4图3容量水位线监控流程.............................................6图4块设备写超处理参考流程.........................................8图5文件系统写超处理参考流程.......................................9图6实时压缩比信息收集流程.......................................11图7性能基准测试分布.............................................14 表目录 表1数据压缩方式的对比.............................................1表2扩容命令参考..................................................10表3压缩盘状态命令参考............................................10表4获取/设置实时压缩比命令参考...................................11表5只读后恢复读写命令参考........................................12 一、透明压缩盘概述 (一)什么是透明压缩SSD 透明压缩盘指在盘内实现数据压缩存储,即在数据写入时,由盘自动按一定块大小压缩后再写入存储介质;读取数据时,由盘从存储介质上定位并读取所需的数据,解压缩后返回;外部应用在写入和读取数据时均不感知数据是否被压缩。 目前业界一般通过软件或硬件2种方式实现盘内数据透明压缩存储,这2种方式优缺点对比如下: 通过以上对比分析,同时考虑到NVMeSSD提供高吞吐,高IOPS和低延时的特性,使用软件实现数据压缩,可能会严重影响NVMeSSD的性能和延时;因此在NVMeSSD上最佳选择是通过硬件实现压缩/解压缩。 (二)透明压缩盘的优点和缺点 透明压缩盘具有以下优点 应用无感知,对应用侵入性低:整套的压缩以及解压缩的操作都是在盘内进行的,主机端无需安装驱动或者其他操作,可轻松适配并无缝融入现有存储架构。 压缩从CPU卸载到盘,节省CPU使用:传统数据压缩,在没有加速卡的情况,通常都是由CPU通过软件算法完成,会占用大量的计算资源,如果将压缩的操作下放到盘,可释放CPU的资源,用于其他关键任务。 有效降低写放大,提升写性能以及寿命:在一定的压缩比下(例如2:1),落盘的数据量会远远小于主机写入的数据量,盘内会有更多的可用空间,因此受到GC的影响会变小,从而提升了稳态随机写性能,降低了写放大,用户端可用的寿命也会随之提升。 降低NAND Die冲突,提升读写混合负载性能:NAND闪存的基本操作单元是Die,由于闪存的特性,每个Die同一时间只能执行一个命令(读,写或擦除),当多个I/O请求同时访问同一Die的时候就会产生冲突,导致命令排队。同模型下与标盘相比,透明压缩盘能够有效减少写入命令的数量,从而降低NANDDie冲突,写入性能得到了提从,从而也提升了混合读写性能。 可按需扩容,增加用户的可用空间:在一定的压缩比下,落盘的数据量会远远小于主机写入的数据量,在这种场景下透明压缩盘可以对用户空间进行扩容,以2:1压缩比举例,一片3.84T的透明压 缩盘可以扩容成7.68T使用,可以存储更多的数据,降低TCO 同时由于透明压缩盘的扩容特性也引入一些缺点 扩容后,由于主机的可用容量会大于硬盘的物理容量,因此如果压缩比不理想的情况下就会出现写超的风险,这样就需要运维来实时监控物理容量的水位线来预防盘片进入写超后的异常模式,增加了运维的工作量。 (三)透明压缩盘的应用 透明压缩盘的应用场景 容量模式: 透明压缩盘支持用户容量扩容,例如在数据压缩比大于2:1的情况下,可将盘的用户容量扩大一倍(如3.84TB扩大到7.68TB),以存储更多数据,可以有效降低TCO,参见图1。 性能模式: 使用原始容量,在数据压缩比较高时,数据随机写入性能,混合读写性能都有明显提升。例如当数据压缩比大于2:1时,实际闪存占用只有物理容量的一半,因此会大幅延缓SSD退出FOB状态的时机,GC开销较低,在长时间运行随机写入和混合读写的模型,性能提升很大,参见图2。 二、透明压缩盘的使用说明 (一)非扩容使用 非扩容模式下,使用方式与标盘相同,参考标盘使用方式即可。 (二)扩容与容量水位线说明 1.扩容说明 扩容模式下,需要根据当前压缩比的情况,对硬盘进行扩容操作,扩容后需要监控容量水位线,以防进入写超后的异常状态,参考指令和监控条目请查看(三管理工具参考),扩容完成后的盘除了需要监控容量水位线外,其他与标盘使用方式相同。 2.容量水位线说明 在存储系统中,通常会为每张数据盘设定容量水位线并进行监控。 设定容量水位线 设定容量水位线是为了预先规划和管理数据存储,避免数据盘在毫无预警的情况下被填满,进而导致数据写入失败、系统性能下降甚至业务中断等一系列问题。 监控容量水位线 通过监控容量水位线,用户可以及时感知风险,采取措施,如扩容、清理数据、调整存储策略等,保证系统的可靠性。 建议的水位线阈值 建议警告阈值:整盘物理容量的80% 在警告状态下建议关注容量增长情况 紧急阈值:整盘物理容量的95% 紧急阈值的情况下建议对存储空间进行优化 基本监控流程请参考图3 (三)异常处理 尽管对压缩盘设定了容量水位线并增加物理容量监控,在扩容场景下,压缩盘还是可能存在物理容量写超的情况,这种情况下,厂商通常会让硬盘进入只读模式来保护数据安全。在这种异常场景下,需要用户手动干预,通过回收空间来恢复读写。 以下提供2种典型写超后恢复的异常情况处理方法用于参考。 1.直接管理压缩盘块设备 当应用直接管理和使用块设备时,通常该应用了解盘上所有数据的分布,且负责管理所有数据的写入和删除。 异常处理方案: 当盘的物理容量用尽,进入只读状态时,需要与应用紧密配合,通过应用存储管理引擎找出可回收数据的LBA地址范围,发送trim/的allocation命令(如nvmedsm命令)释放空间,退出只读状态并恢复正常读写,参见图4,如果。 dsm命令参考(trim3.84T硬盘的所有数据): #nvmedsm/dev/nvme0n1-d-s0-b7501476528 2.通过文件系统使用压缩盘 当应用通过文件系统使用压缩盘时,物理容量写满会导致盘进入只读状态,同时文件系统自身也可能由于数据/元数据更新失败进入只读状态。由于文件系统的元数据和数据需要保持一致,通过文件系统找出LBA地址范围并直接发送trim/deallocation命令(如nvmedsm命令)可能导致文件系统数据不一致。 因此,文件系统上的最佳实践是: 由于只读模式无法重新挂载文件系统,因此需要用厂商给到的方式来恢复读/写模式(常规方式是厂商给指令释放一部分OP来恢复读写的状态) 卸载并重新挂载文件系统。文件系统会通过自身日志系统恢复读写模式。用户检视并评估文件系统存储空间,通过删除文件和fstrim命令 来回收空间。 这里没有做异常情况的考虑,只给出了基本流程的参考,参见图4, 三、管理工具参考 由于压缩盘的指令没有标准,因此本章节主要对命令的实现和需要监控的字段给出一个参考,具体指令需要根据各家的实现来执行。 (一)扩容命令参考 扩容命令一般需要实现以下两个参数 (二)获取压缩盘信息字段参考 获