高性能存储 SIG 月度动态:优化 xfs dax reflink 时延,独立选型并维护 mdadm 和 ledmon

简介: 高性能存储 SIG 月度动态:优化 xfs dax reflink 时延,独立选型并维护 mdadm 和 ledmon。

本次高性能存储月度动态综合了 SIG 在 5、6 两个月的工作进展,包含多项特性支持,性能优化,以及 Bugfix 等。

01 SIG 整体进展

  • 引入 xfs deferred inode inactivation,进一步优化 xfs dax reflink 过程中的抖动时延。
  • Intel 将在 SIG 中独立选型 mdadm & ledmon 并维护。
  • fuse 支持 resend pending 请求和读写分离优化,virtio-fs 支持多队列。
  • erofs 支持 zstd 压缩算法,并重构 utils 支持 lib 库集成以及增量构建。
  • dsms 解决断电场景数据丢失问题,并通过优化 ceph 内存分配解决碎片化场景 IO 延迟升高问题。

02 项目具体进展

2.1 Cloud Kernel

2.1.1 erofs

[Bugfix] 修复 erofs_statfs() 中 UUID 问题,并优化 DEFLATE stream 分配逻辑。(PR3281/PR3285/PR3287)

[Feature] 支持 zstd 压缩算法,已合入社区 6.10 主线。

[Feature] 重构 erofs utils,可提供 lib 库供其他项目集成,如 DADI。

[Feature] 支持 centos oot。

[Feature] erofs utils 支持增量构建。

2.1.2 xfs

[Feature] quota functions 重构,该系列补丁为 deferred inode inactivation 的准备工作。(PR3154)

[Feature] 空间不足时 reclaim 策略优化,该系列补丁同样为 deferred inode inactivation 的准备工作。(PR3156)

[Feature] posteof 和 cowblocks 重构,该系列补丁同样为 deferred inode inactivation 的准备工作。(PR3158)

[Feature] incore inode walk 重构,该系列补丁同样为 deferred inode inactivation 的准备工作。(PR3159)

[Feature] deferred inode inactivation。(PR3160)

[Bugfix] 修复 CONFIG_FS_DAX 关闭时编译错误。(PR3164)

[Improment] 增加 XFS_IOC_SET_REFLINK_FLAGS 的检查条件,并导出 xfs_wait_reflink_secondary()。(PR3205)

[Performance] 优化 xfs_log_force() 可能存在的数十 ms 阻塞导致的 reflink 抖动。(PR3273i/PR3306)

2.1.3 ext4

[Bugfix] 回合社区 stable 分支补丁。(PR3141)

2.1.4 io_uring

[Bugfix] 修复 io_uring percpu sqthread 特性,限制仅在同一个进程下多线程之间共享。(PR3127/PR3138)

2.1.5 fuse/virtio-fs

[Bugfix] 修复 statx 系统调用 ENOSYS 错误。(PR3118)

[Feature] 支持显示禁用 export。(PR3166)

[Feature] 支持 resend pending 请求。(PR3264/PR3271)

[Feature] 支持多队列。(PR3277/PR3278)

[Performance] bg_queue 读写分离优化。(PR3352)

2.1.6 misc

[Bugfix] overlayfs:修复 ovl_parse_param() 内存泄露。(PR3115)

[Bugfix] hugetlbfs:修复 hugetlbs_fill_super() 空指针解引用。(PR3126)

[Improvement] block:rq_hang 使用 %px 打印请求。(PR3129/PR3135)

[Improvement] cgroup writeback:限制仅在 cgwb_v1 场景使能 memcg_blkcg_tree 相关操作。(PR3142/PR3144/PR3147)

[Performance] kernfs 全局锁竞争。(PR3132)

[Bugfix] ceph:修复 encode_cap_msg() use-after-free 问题。(PR3152

[Bugfix] md:修复 rdev->serial 内存泄露。(PR3318)

[Bugfix] ring_buffer:修复 ring_buffer_free_read_page() 中潜在的空指针解引用。(PR3308)

2.2 dsms

[Bugfix] 解决断电场景数据丢失问题。

[Improvement] 优化 ceph 内存分配器,解决内存碎片化后导致 IO 延迟升高的问题。

更多详细进展,请参见项目主页:

https://gitee.com/anolis/dsms

2.3 mdadm & ledmon

Intel VROC 为基于 NVMe 的企业级 RAID 解决方案,同时也支持对 SATA 类 RAID 的监控。该方案依赖 mdadm 和 ledmon 两个软件包,因此决策在龙蜥 OS 中独立选型并维护。

目前基线版本经确定,并在 SIG 中创建仓库:

https://gitee.com/anolis/mdadm

https://gitee.com/anolis/ledmon

后续由 Intel 的两位 Maintainer 负责将补丁合入 dev 分支,经过测试后合并到 main 分支,作为龙蜥 OS 的发布包来源。

03 开源会议

SIG 成员 gaoxiang 分享了 Container Plumber Days 和 OSSNA 的参会纪要:

https://openanolis.cn/sig/high-perf-storage/doc/1109666477415585831


相关链接:

高性能存储SIG主页:

https://openanolis.cn/sig/high-perf-storage

注:更多龙蜥 SIG 月度动态可点击这里查看。


高性能存储 SIG(Special Interest Group)致力于存储栈性能挖掘,当前主要聚焦内核 io_uring 技术优化异步 IO 性能,使用持久化内存提升业务单成本性能,容器场景存储技术优化等课题。高性能存储 SIG 期望通过社区合作,打造标准的高性能存储技术软件栈,推动软硬件协同发展。

更多龙蜥SIG主页点击查看:https://openanolis.cn/sig

—— 完 ——

相关实践学习
基于Hologres+Flink搭建GitHub实时数据大屏
通过使用Flink、Hologres构建实时数仓,并通过Hologres对接BI分析工具(以DataV为例),实现海量数据实时分析.
实时计算 Flink 实战课程
如何使用实时计算 Flink 搞定数据处理难题?实时计算 Flink 极客训练营产品、技术专家齐上阵,从开源 Flink功能介绍到实时计算 Flink 优势详解,现场实操,5天即可上手! 欢迎开通实时计算 Flink 版: https://cn.aliyun.com/product/bigdata/sc Flink Forward Asia 介绍: Flink Forward 是由 Apache 官方授权,Apache Flink Community China 支持的会议,通过参会不仅可以了解到 Flink 社区的最新动态和发展计划,还可以了解到国内外一线大厂围绕 Flink 生态的生产实践经验,是 Flink 开发者和使用者不可错过的盛会。 去年经过品牌升级后的 Flink Forward Asia 吸引了超过2000人线下参与,一举成为国内最大的 Apache 顶级项目会议。结合2020年的特殊情况,Flink Forward Asia 2020 将在12月26日以线上峰会的形式与大家见面。
相关文章
vscode将本地代码实时同步到服务器
vscode近些年变得越来越流行了,主要是IDEA用上去实在有点卡,机器卡崩溃几次,这段时间也想用vscode体验一下,在自己的一些项目上面,想实现像phpstorm或者goland那样直接把代码通过sftp传到服务器上面,那么怎么来做这个事情呢,经过一番研究,把方案整理下来。
2247 0
|
存储 Kubernetes Cloud Native
阿里巴巴开源容器镜像加速技术
近日阿里巴巴开源了其云原生容器镜像加速技术,其推出的overlaybd镜像格式,相比于传统的分层tar包文件格式,实现了基于网络的按需读取,从而使得容器可以快速启动。
|
8月前
|
人工智能 持续交付 开发工具
🚀基于 Qoder 平台的 Vibe Coding 范式:以圣诞消消乐网页游戏开发与云端部署为例🧣🚀基于 Qode
🚀基于 Qoder 平台的 Vibe Coding 范式:以圣诞消消乐网页游戏开发与云端部署为例🧣 摘要: 本研究探讨了在 Vibe Coding 模式下,利用 AI 原生开发工具 Qoder 高效构
713 2
|
JSON JavaScript 前端开发
Go语言JSON 序列化与反序列化 -《Go语言实战指南》
本文介绍了 Go 语言中使用 `encoding/json` 包实现 JSON 与数据结构之间的转换。内容涵盖序列化(`Marshal`)和反序列化(`Unmarshal`),包括基本示例、结构体字段标签的使用、控制字段行为的标签(如 `omitempty` 和 `-`)、处理 `map` 和切片、嵌套结构体序列化、反序列化未知结构(使用 `map[string]interface{}`)以及 JSON 数组的解析。最后通过表格总结了序列化与反序列化的方法及类型要求,帮助开发者快速掌握 JSON 数据处理技巧。
|
Ubuntu 开发工具
Ubuntu 22.04 aarch64版本操作系统下编译ZLMediaKit教程
通过上述步骤,你可以在Ubuntu 22.04 aarch64版本上成功编译ZLMediaKit,这是一个相对简单而直接的过程,但可能会遇到一些需要根据具体系统环境和要求调整的地方。
1291 0
|
Java 关系型数据库
解决java.lang.ClassNotFoundException: com.mysql.jdbc.Driver问题(真实有效)
数据库驱动找不到 这个一场特别奇葩,既然这个异常存在,竟然又能编译通过,项目也不报错,只是在启动的时候,抛出异常! 一、看看这个异常 Error starting ApplicationContext.
14784 0
|
弹性计算 关系型数据库 MySQL
透明代码大页:让数据库也能用上 2MB 大页!
本文介绍代码大页方案以及一些实验阶段性能测试。
透明代码大页:让数据库也能用上 2MB 大页!
|
前端开发 JavaScript API
前端技术栈方向研究报告
前端技术栈方向研究报告
658 0
|
移动开发 算法 编译器
OAUTH之 钉钉第三方授权登录
OAUTH之 钉钉第三方授权登录
1372 0

热门文章

最新文章