ZNS SSD垃圾回收优化方案解读-2

news2025/1/18 22:21:31

四、Brick-ZNS 关键设计机制解析

Brick-ZNS 作为一种创新的 ZNS SSD 设计,聚焦于解决传统 ZNS SSDs 在垃圾回收(GC)过程中的数据迁移低效问题,其核心特色为存储内数据迁移与地址重映射功能。在应用场景中,针对如 RocksDB 和 LevelDB 等产生的顺序写入数据,ZNS SSDs 的顺序写入区域可高效处理。而分区文件系统(如 ZenFS 和 ZoneFS)则负责应用数据的访问与区域管理,包括区域操作、GC 和基于区域的数据放置。当触发 GC 时,分区文件系统会向设备的数据迁移模块发送请求,促使有效数据从命中区域迁移至目标区域。

图片

为降低 GC 数据迁移开销,Brick-ZNS 在数据迁移模块中引入两种关键方案:存储内迁移与地址重映射。对于有效数据占比低的命中块,采用存储内迁移,在设备内部移动数据,规避端到端传输;对于高有效数据占比的命中块,则运用地址重映射,减少块到块重写开销。鉴于 ZNS SSDs 现有区域 - 块映射机制的局限,创新性的动态区域 - 块映射机制应运而生,同时设置动态阈值(Th),依命中块有效数据比例智能抉择迁移方式,实现数据迁移开销最小化与空间利用率最大化的双重目标。

1. 存储内迁移(In - storage Migration)

传统主机端 GC 数据迁移的端到端传输导致严重开销。为此,Brick-ZNS 设计了 Zone_MD 和 Zone_MDF 新命令。Zone_MD 命令驱动存储内迁移,携带源地址(Src)、目标写指针(Dst)、迁移数据长度(Size)和动态阈值(Th)等参数。主机下达迁移指令后,设备定位物理块并检测有效数据比例(P),若 P < Th,数据经内部通道移至目标地址,避免端到端传输。然而,此过程使迁移由同步变异步,影响性能可预测性,且地址重映射时会引发主机目标区域无效空间记录与设备实际值不一致问题。

图片

Zone_MDF 命令有效解决了这些问题。设备接收 Zone_MD 后,若执行存储内迁移则计算迁移延迟(Lat),若进行地址重映射则确定未回收空间(Space),并迅速反馈给主机。对于存储内迁移,设备依据 Zone_MD 地址信息索引芯片可用时间,结合重写数据量与闪存操作延迟算出 Lat;对于地址重映射,设备能快速检索目标区域未回收空间大小。主机依此精准把控数据迁移性能,优化区域管理策略,确保系统高效稳定运行。

2. 动态区域映射(Dynamic Zone Mapping)

由于现有 ZNS SSDs 区域映射机制无法支持地址重映射,Brick-ZNS 构建了全新动态映射机制。设备层面,依预配置并行芯片数量将芯片分组为并行芯片组(PCG),再按块偏移将 PCG 内块分组为并行块组(PBG),以 PBG 为映射单元契合 ZNS SSDs 动态映射与芯片并行处理需求。

图片

动态区域映射流程如下:写请求到达时,主机选空闲逻辑空间充足区域,不足则拆分请求;区域接收请求后,若空闲物理空间小于写入数据量,优先选下一个可用时间最短的 PCG,以轮询方式选空闲 PBG 映射至该区域,更新映射表与空闲空间,直至空间足够后并行写入数据。该算法对系统性能无显著影响。此机制有效平衡芯片负载,提升资源利用率;空闲 PCG 充足时可实现多区域与空闲 PBG 动态映射,隔离不同 workload 性能;PCG 繁忙时优先映射空闲 PBG 确保负载均衡,但可能引发多区域映射至相同 PCG 导致访问干扰,不过已有如 Fair-ZNS 和 eZNS 等研究通过 I/O 调度缓解此问题,协同提升资源利用率与性能隔离性。

3. 地址重映射(Address Remapping)

ZNS SSDs 的垃圾回收(GC)进程中,Brick-ZNS 引入的基于并行块组(PBG)的地址重映射策略是提升性能的关键创新点。传统方式下,GC 过程中的块到块重写开销巨大,严重影响存储效率。而此策略旨在直接将命中区域中含有大量有效数据的 PBG 重映射至目标区域,避免回收低效益块,从而有效降低重写成本。

图片

在数据迁移阶段,依据命中区域和目标区域 PBG 内有效数据的分布状况,可分为不同类型组合。命中区域的 PBG 分为 V1(全有效)和 V2(部分有效)两类,目标区域的 PBG 分为 T1(已写满)和 T2(部分写入)两类。基于这四种类型的两两组合,设计了四种基本重映射策略,并针对特殊情况补充了第五种策略,以全面应对各种数据分布场景,确保重映射过程的高效性与准确性。

五、Brick-ZNS优化数据评估

为全面对比分析 Brick-ZNS 的优势,实验设置了三组对比方案。将其与不包含存储内迁移和地址重映射的传统 GC 策略(Trad)以及仅包含存储内迁移的复制型 GC 策略(IDM)进行对比。同时,考虑到已有相关研究对 ZNS SSDs 垃圾回收的探索,虽与本研究方向有所不同,但仍结合其中 Greedy 和 Cost - benefit 两种专注于优化受害区域选择策略的研究,进一步衍生出六种组合方案,分别为 Brick-ZNS 与 Greedy 结合(Brick+G)、Brick-ZNS 与 Cost - benefit 结合(Brick+CB)、Trad 与 Cost - benefit 结合(Trad+CB)、Trad 与 Greedy 结合(Trad+G)、IDM 与 Cost - benefit 结合(IDM+CB)以及 IDM 与 Greedy 结合(IDM+G)。并且,所有方案均在区域占用率达到 70% 时启动垃圾回收操作,每次回收占总区域 5% 的空间,确保了对比实验在相同的触发条件下进行,增强了实验结果的可比性。

1.垃圾回收延迟(GC Latency)

通过 db_bench 生成四种工作负载并写入空 ZNS SSD 以评估 GC 延迟,涵盖主机端 GC 与运行时区域重置延迟。

图片

与传统策略 Trad+G 相比,IDM+G 在不同工作负载(Ran、Ran+UR、Seq、Seq+UR)下分别显著降低 GC 延迟达 1.19 倍、1.17 倍、1.21 倍、1.19 倍;IDM+CB 相对 Trad+CB 也有类似显著降低。而 Brick+G 相较于 Trad+G 降低幅度更大,分别为 5.81 倍、4.67 倍、3.42 倍、5.01 倍;Brick+CB 相比 Trad+CB 也有 5.48 倍、5.52 倍、3.49 倍、5.16 倍的降低。平均而言,Brick-ZNS 相比 Trad 降低 GC 延迟达 4.82 倍。这主要归因于其有效规避了端到端传输开销,并减少了大规模块到块重写开销。

2.写入吞吐量(Throughput)

在工作负载写入过程中,每 20 秒收集 ZenFS 有效写入数据(排除 GC 期间写入)。对比发现,IDM+G 相对 Trad+G 在不同工作负载下写入吞吐量分别提升 1.05 倍、1.02 倍、1.09 倍、1.03 倍;IDM+CB 相较于 Trad+CB 也有相应提升。Brick+G 相比 Trad+G 提升更为显著,分别达 1.25 倍、1.17 倍、1.42 倍、1.21 倍;Brick+CB 相比 Trad+CB 也有 1.2 倍、1.17 倍、1.36 倍、1.2 倍的提升。平均来看,Brick-ZNS 相比 Trad 写入吞吐量提高 1.25 倍。这是因为 Brick-ZNS 的 GC 延迟降低,使得应用写入相同数据量的总延迟减少,从而有效提升了写入吞吐量。

图片

3.固态硬盘寿命(Lifetime)

收集运行时区域重置和主机端 GC 触发的物理块擦除次数来衡量 ZNS SSD 磨损(寿命损失)。由于 IDM 不影响 SSD 寿命,仅对比 Trad 和 Brick-ZNS。结果显示,Brick+G 相对 Trad+G 在不同工作负载下分别降低寿命损失 1.5 倍、1.23 倍、1.45 倍、1.4 倍;Brick+CB 相比 Trad+CB 也有 1.48 倍、1.32 倍、1.49 倍、1.42 倍的降低。平均而言,Brick-ZNS 相比 Trad 降低寿命损失 1.41 倍。原因在于 Brick-ZNS 通过重映射过滤出大量有效数据块,仅回收少量数据块,这些少量数据块含更多无效空间,相比 Trad 能以更少的擦除次数回收相同空间,有效延长了 SSD 寿命。

图片

如果您看完有所受益,欢迎点击文章底部左下角“关注”并点击“分享”、“在看”,非常感谢!

精彩推荐:

  • 浅析PCIe链路均衡技术原理与演进

  • 存储随笔2024年度技术分享总结

  • 浅析下一代NAND接口新特性SCA

  • 2025年CXL强势启航:开启内存扩展新时代

  • PCIe SSD在温变环境的稳健性技术剖析

  • DWPD指标:为何不再适用于大容量SSD?

  • 突破内存墙:DRAM的过去、现在与未来

  • E1.S接口如何解决SSD过热问题?

  • ZNS SSD是不是持久缓存的理想选择?

  • 存储正式迈入超大容量SSD时代!

  • FMS 2024: 带来哪些存储技术亮点?

  • IEEE报告解读:存储技术发展趋势分析

  • PCIe P2P DMA全景解读

  • 深度解读NVMe计算存储协议

  • 浅析不同NAND架构的差异与影响

  • 浅析PCI配置空间

  • 浅析PCIe系统性能

  • 存储随笔《NVMe专题》大合集及PDF版正式发布!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2278663.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

云消息队列 Kafka 版 V3 系列荣获信通院“云原生技术创新标杆案例”

2024 年 12 月 24 日&#xff0c;由中国信息通信研究院&#xff08;以下简称“中国信通院”&#xff09;主办的“2025 中国信通院深度观察报告会&#xff1a;算力互联网分论坛”&#xff0c;在北京隆重召开。本次论坛以“算力互联网 新质生产力”为主题&#xff0c;全面展示中国…

单元测试与unittest框架

&#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;薪资嘎嘎涨 单元测试的定义 1. 什么是单元测试&#xff1f; 单元测试是指&#xff0c;对软件中的最小可测试单元在与程序其他部分相隔离的情况下进行检查和验证的工作&am…

EF Core全局查询筛选器

目录 概述 用法 添加全局查询筛选器 禁用全局查询筛选器 概述 全局查询筛选器&#xff1a;EF Core 会自动将这个查询筛选器应用于涉及这个实体类型的所有 LINQ 查询。 场景&#xff1a;软删除、多租户。 什么是软删除&#xff1f; 逻辑删除&#xff0c;并不是真正地从数…

【机器学习实战入门项目】MNIST数字分类机器学习项目

Python 深度学习项目&#xff1a;手写数字识别 为了使机器更加智能&#xff0c;开发者们正在深入研究机器学习和深度学习技术。人类通过不断练习和重复来学习执行某项任务&#xff0c;从而记住如何完成这些任务。然后&#xff0c;大脑中的神经元会自动触发&#xff0c;他们能够…

[Datawheel学习]用Llama-index创建Agent、数据库对话Agent和RAG接入Agent

1.Llama-index创建Agent 1.0 背景知识 什么是Llama-index? LlamaIndex&#xff08;原名GPT Index&#xff09;是一个专为大语言模型&#xff08;LLMs&#xff09;设计的数据框架&#xff0c;旨在帮助用户将外部数据与LLMs结合&#xff0c;实现更高效的数据检索和知识增强生成…

FPGA:Quartus软件与操作系统版本对照表

文章目录 1.软件概述2.软件版本3.设计流程4.支持的设备5.新特性6.版本对照 1.软件概述 Quartus软件是由英特尔&#xff08;Intel&#xff09;公司开发的一款功能强大的FPGA&#xff08;现场可编程逻辑门阵列&#xff09;设计工具&#xff0c;广泛应用于数字电路设计、仿真、综…

【网络协议】【http】【https】AES-TLS1.2

【网络协议】【http】【https】AES-TLS1.2 https并不是一个协议 而是在传输层之间添加了SSL/TLS协议TLS TLS 协议用于应用层协议&#xff08;如 HTTP&#xff09;和传输层&#xff08;如 TCP&#xff09;之间&#xff0c;增加了一层安全性来解决 HTTP 存在的问题&#xff0c;H…

数智化转型 | 星环科技Defensor 助力某银行数据分类分级

在数据驱动的金融时代&#xff0c;数据安全和隐私保护的重要性日益凸显。某银行作为数字化转型的先行者&#xff0c;面临着一项艰巨的任务&#xff1a;如何高效、准确地对分布在多个业务系统、业务库与数仓数湖中的约80万个字段进行数据分类和分级。该银行借助星环科技数据安全…

微信小程序:播放音频

在小程序开发中&#xff0c;音频播放是一个重要的功能。本文将详细介绍小程序音频播放的相关知识点&#xff0c;帮助开发者更好地掌握小程序音频播放的实现方法。 一、小程序音频播放的基本流程 在小程序中&#xff0c;音频播放的基本流程如下&#xff1a; 获取音频数据&#…

U盘被格式化后的数据救赎与防范策略

一、U盘格式化后的数据困境 在日常的工作与生活中&#xff0c;U盘作为数据传输与存储的重要工具&#xff0c;扮演着不可或缺的角色。然而&#xff0c;当U盘不幸遭遇格式化操作后&#xff0c;存储在其中的宝贵数据瞬间化为乌有&#xff0c;给用户带来极大的困扰。格式化后的U盘…

关于 Cursor 的一些学习记录

文章目录 1. 写在最前面2. Prompt Design2.1 Priompt v0.1&#xff1a;提示设计库的首次尝试2.2 注意事项 3. 了解 Cursor 的 AI 功能3.1 问题3.2 答案 4. cursor 免费功能体验5. 写在最后面6. 参考资料 1. 写在最前面 本文整理了一些学习 Cursor 过程中读到的或者发现的感兴趣…

基于Oracle与PyQt6的电子病历多模态大模型图形化查询系统编程构建

一、引言 1.1 研究背景阐述 在当今数字化时代,医疗行业正经历着深刻的变革,数字化转型的需求日益迫切。电子病历(EMR)作为医疗信息化的核心,其管理的高效性和数据利用的深度对于提升医疗服务质量、优化临床决策以及推动医学研究具有至关重要的意义。传统的电子病历管理系…

算法(蓝桥杯)贪心算法7——过河的最短时间问题解析

一、题目描述 在漆黑的夜里&#xff0c;N位旅行者来到了一座狭窄且没有护栏的桥边。他们只带了一只手电筒&#xff0c;且桥窄得只够让两个人同时过。如果各自单独过桥&#xff0c;N人所需的时间已知&#xff1b;若两人同时过桥&#xff0c;则所需时间是走得较慢的那个人单独行动…

《贪心算法:原理剖析与典型例题精解》

必刷的贪心算法典型例题&#xff01; 算法竞赛&#xff08;蓝桥杯&#xff09;贪心算法1——数塔问题-CSDN博客 算法竞赛&#xff08;蓝桥杯&#xff09;贪心算法2——需要安排几位师傅加工零件-CSDN博客 算法&#xff08;蓝桥杯&#xff09;贪心算法3——二维数组排序与贪心算…

SQL2000在win10上安装的方法

安装前最好先关闭防火墙和一些杀毒软件&#xff0c;因为这些软件在安装过程中可能会碰到注册表等一下杀毒软件比较敏感的地带&#xff0c;如果违反杀毒软件的规则会被当做病毒强行终止删除 首相找到C盘下window文件中的sysWOW64文件 鼠标右键&#xff0c;点击属性、安全、高级 …

【12】Word:张老师学术论文❗

目录 题目 ​NO2 NO3 NO4 NO5 NO6 NO7.8 题目 NO2 布局→页面设置→纸张&#xff1a;A4→页边距&#xff1a;上下左右边距→文档网格&#xff1a;只指定行网格→版式&#xff1a;页眉和页脚&#xff1a;页脚距边界&#xff1a;1.4cm居中设置论文页码&#xff1a;插入…

软件授权管理中的软件激活向导示例

软件激活向导示例 在软件许可中&#xff0c;提供许可应该是简单和安全的。这适用于想要在中央许可证服务器上创建新许可证的软件开发人员&#xff0c;也适用于需要在其设备上获得许可证的最终用户。如果所讨论的系统有互联网连接&#xff0c;或是暂时的连接&#xff0c;就可以…

基于微信小程序的摄影竞赛系统设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…

在IDEA中使用通义灵码插件:全面提升开发效率的智能助手

在IDEA中使用通义灵码插件&#xff1a;全面提升开发效率的智能助手 随着软件开发行业对效率和质量要求的不断提高&#xff0c;开发者们一直在寻找能够简化工作流程、提升代码质量的工具。阿里云推出的通义灵码插件正是这样一个旨在帮助开发者更高效地编写高质量代码的强大工具…

【Unity3D】利用Hinge Joint 2D组件制作绳索效果

目录 一、动态绳索 &#xff08;可移动根节点&#xff09; 二、静态绳索 三、利用Skinning Editor(Unity2022.3.15f1正常使用) 四、注意事项 一、动态绳索 &#xff08;可移动根节点&#xff09; 动态绳索 DynamicRope空物体 Anchor和whitecircle是相同位置的物体&#xff…