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

四、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.rhkb.cn/news/3512.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

浅谈云计算14 | 云存储技术

云存储技术 一、云计算网络存储技术基础1.1 网络存储的基本概念1.2云存储系统结构模型1.1.1 存储层1.1.2 基础管理层1.1.3 应用接口层1.1.4 访问层 1.2 网络存储技术分类 二、云计算网络存储技术特点2.1 超大规模与高可扩展性2.1.1 存储规模优势2.1.2 动态扩展机制 2.2 高可用性…

C++ 强化记忆

1 预处理指令 # include <> #include <filename> 添加系统头文件。 #include "filename" 添加自定义头文件。 # include <iostream> 对应使用cout cin的情况下需要添加 # include <string> 对应使用字符串情况 # include <fstream> …

web worker 前端多线程一、

前言&#xff1a; JavaScript 语言采用的是单线程模型&#xff0c;也就是说&#xff0c;所有任务只能在一个线程上完成&#xff0c;一次只能做一件事。前面的任务没做完&#xff0c;后面的任务只能等着。随着电脑计算能力的增强&#xff0c;尤其是多核 CPU 的出现&#xff0c;单…

Vue项目搭建教程超详细

目录 一. 环境准备 1. 安装node.js 2. 安装Vue cli 二. 创建 Vue 2 项目 1. 命令行方式 2. vue ui方式 一. 环境准备 1. 安装node.js 可参考node.js卸载与安装超详细教程-CSDN博客 2. 安装Vue cli npm install -g vue/cli检查是否安装成功 vue --version Vue CLI …

IM聊天学习资源

文章目录 参考链接使用前端界面简单效果消息窗口平滑滚动至底部vue使用watch监听vuex中的变量变化 websocket握手认证ChatKeyCheckHandlerNettyChatServerNettyChatInitializer 参考链接 zzhua/netty-chat-web - 包括前后端 vue.js实现带表情评论功能前后端实现&#xff08;仿…

彻底理解JVM类加载机制

文章目录 一、类加载器和双亲委派机制1.1、类加载器1.2、双亲委派机制1.3、自定义类加载器1.4、打破双亲委派机制 二、类的加载 图片来源&#xff1a;图灵学院   由上图可知&#xff0c;创建对象&#xff0c;执行其中的方法&#xff0c;在java层面&#xff0c;最重要的有获取…

使用FRP进行内网穿透

一、基本概念 内网穿透&#xff1a;它是一种网络技术或方法&#xff0c;旨在允许外部网络&#xff08;如互联网&#xff09;访问位于内部网络&#xff08;内网&#xff09;中的设备或服务。由于内部网络通常处于NAT&#xff08;网络地址转换&#xff09;、防火墙或其他安全机制…

Mysql常见问题处理集锦

Mysql常见问题处理集锦 root用户密码忘记&#xff0c;重置的操作(windows上的操作)MySQL报错&#xff1a;ERROR 1118 (42000): Row size too large. 或者 Row size too large (&#xff1e; 8126).场景&#xff1a;报错原因解决办法 详解行大小限制示例&#xff1a;内容来源于网…

《计算机网络》课后探研题书面报告_网际校验和算法

网际校验和算法 摘 要 本文旨在研究和实现网际校验和&#xff08;Internet Checksum&#xff09;算法。通过阅读《RFC 1071》文档理解该算法的工作原理&#xff0c;并使用编程语言实现网际校验和的计算过程。本项目将对不同类型的网络报文&#xff08;包括ICMP、TCP、UDP等&a…

Python毕业设计选题:基于django+vue的智能租房系统的设计与实现

开发语言&#xff1a;Python框架&#xff1a;djangoPython版本&#xff1a;python3.7.7数据库&#xff1a;mysql 5.7数据库工具&#xff1a;Navicat11开发软件&#xff1a;PyCharm 系统展示 租客注册 添加租客界面 租客管理 房屋类型管理 房屋信息管理 系统管理 摘要 本文首…

联发科MTK6762/MT6762安卓核心板_4G智能模块应用

MT6762安卓核心板是一款工业级高性能、可运行 android9.0 操作系统的 4G智能模块。MT6762平台打造具备 AI 体验、先进双摄像头拍摄效果且具备丰富连接功能的智能手机主板。 MT6762安卓核心板 是一款髙性能低功耗的 4G 全网通安卓智能模块。此模块支持 2G/3G/4G 移动&#xff0c…

彩色图像面积计算一般方法及MATLAB实现

一、引言 在数字图像处理中&#xff0c;经常需要获取感兴趣区域的面积属性&#xff0c;下面给出图像处理的一般步骤。 1.读入的彩色图像 2.将彩色图像转化为灰度图像 3.灰度图像转化为二值图像 4.区域标记 5.对每个区域的面积进行计算和显示 二、程序代码 %面积计算 cle…

重拾Python学习,先从把python删除开始。。。

自己折腾就是不行啊&#xff0c;屡战屡败&#xff0c;最近终于找到前辈教我 第一步 删除Python 先把前阵子折腾的WSL和VScode删掉。还是得用spyder&#xff0c;跟matlab最像&#xff0c;也最容易入手。 从VScode上搞python&#xff0c;最后安装到appdata上&#xff0c;安装插…

Redis系列之底层数据结构字典Dict

Redis系列之底层数据结构字典Dict Dict数据结构 Dict是Redis数据结构中使用最为频繁的复合型数据结构&#xff0c;本质上是一个哈希表 查看redis6.0版本的源码&#xff0c;链接&#xff1a;https://github.com/redis/redis/blob/6.0/src/dict.h 哈希表的结构定义&#xff1…

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

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

基于 Python 的深度学习的车俩特征分析系统,附源码

博主介绍&#xff1a;✌stormjun、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&…

VSCode 的部署

一、VSCode部署 (1)、简介 vsCode 全称 Visual Studio Code&#xff0c;是微软出的一款轻量级代码编辑器&#xff0c;免费、开源而且功能强大。它支持几乎所有主流的程序语言的语法高亮、智能代码补全、自定义热键、括号匹配、代码片段、代码对比Diff、版本管理GIT等特性&…

【开源免费】基于SpringBoot+Vue.JS欢迪迈手机商城(JAVA毕业设计)

本文项目编号 T 141 &#xff0c;文末自助获取源码 \color{red}{T141&#xff0c;文末自助获取源码} T141&#xff0c;文末自助获取源码 目录 一、系统介绍二、数据库设计三、配套教程3.1 启动教程3.2 讲解视频3.3 二次开发教程 四、功能截图五、文案资料5.1 选题背景5.2 国内…

Transformer创新模型!Transformer+BO-SVR多变量回归预测,添加气泡图、散点密度图(Matlab)

Transformer创新模型&#xff01;TransformerBO-SVR多变量回归预测&#xff0c;添加气泡图、散点密度图&#xff08;Matlab&#xff09; 目录 Transformer创新模型&#xff01;TransformerBO-SVR多变量回归预测&#xff0c;添加气泡图、散点密度图&#xff08;Matlab&#xff0…

Nmap之企业漏洞扫描(Enterprise Vulnerability Scanning for Nmap)

简介 Namp是一个开源的网络连接端扫描软件&#xff0c;主要用于网络发现和安全审核。‌它可以帮助用户识别网络上的设备、分析它们的服务、检测操作系统类型&#xff0c;甚至发现潜在的安全漏洞。Nmap由Fyodor开发&#xff0c;最初是为了满足网络管理员的需求&#xff0c;但随…