高性能存储 SIG 月度动态:多项内核特性移植到 6.6,erofs 完成共享特性 POC

简介: 高性能存储 SIG 月度动态送达,一键了解各项目当前进展。

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

01 SIG 整体进展

本次月报综合了 SIG 在 3、4 两个月的工作进展。

  • 完成存储领域 5.10 内核上的特性移植到 6.6 内核,包含 cgroup v1 writeback 限流、jbd2 增强、IO hang 检测、block throttle 增强、fuse 增强、tcmu 增强等。
  • 5.10 内核支持 dax reflink 特性,并针对 redis 场景做了相应的优化。
  • erofs page cache 共享特性完成 POC,使用两个镜像测试节省内存约 20%,实际效果取决于镜像中文件共享的情况,理论上限能达到 100%。

02 项目具体进展

1)CVE

CVE-2024-23307:修复 raid5_cache_count() 整型溢出问题。(PR2882)

CVE-2022-38096:修复使用 vmw_context_cotable() 可能导致无效解引用问题。(PR3040)

CVE-2023-6546:修复 gsm_cleanup_mux() 竞争场景可能导致的 UAF。(PR3047)

2)erofs

[Feature] fscache 按需加载模式支持 failover。(PR2791)

[Feature] 同步社区主线 6.8 相关补丁至 6.6 内核。(PR2880)

[Feature] 4.19 内核支持压缩,lzma/deflate 压缩算法,ztailpacking,multi-reference pclusters,压缩去重,fsdax 等。(PR2896/PR2903/PR2907/PR2920/PR2941)

[BugFix] 修复 THP vma alignment 问题。(PR2971)

[BugFix] 修复 pmem fsdax 特性问题。(PR2988)

page cache 共享方案完成 POC,使用两个镜像测试节省内存约 20%,实际效果取决于镜像中文件共享的情况,理论上限能达到 100%。目前正在整理 patchset,计划下个窗口发到社区。

3)xfs

[Feature] 支持 dax reflink 特性,并针对 redis 场景优化源文件的连续性,以及脏页回写的效率。(PR2794)

[Feature] dax reflink 去除对 reverse map btree 的依赖,优化 page fault 时延。(PR3087)

4)ext4

[Feature] 移植 ext4 & jbd2 增强至 6.6 内核。(PR2795)

[BugFix] 回合 stable 分支的补丁。(PR2042)

5)io_uring

[Feature] 移植 io_uring percpu sqthread polling 等特性至 6.6 内核。(PR2822)

io_uring percpu sqthread polling 特性在 rebase 过后,由于当前 sqthread 不再是内核线程而是用户进程创建,业务测试发现仍然存在问题,待进一步解决。

6)fuse

[BugFix] 修复 cache=none 模式 mmap 问题。(PR3007)

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

[Feature] 支持 flush 及 resend 请求。(PR3009)

[BugFix] 修复 VM_MAYSHARE 和 direct_io_allow_mmap 问题。(PR3051)

7)block

[Feature] 移植 io hang 检测至 6.6 内核。(PR2806)

[BugFix] 修复 cgroup v1 在没有配置规则时 IO 统计问题。(PR2835)

[Feature] 移植 block throttle 增强补丁至 6.6 内核。(PR2823)

[BugFix] 修复 cgroup v1 打开 CONFIG_CGROUPS 但不打开 CONFIG_CGROUP_WRITEBACK 的编译错误。(PR2875)

8)tcmu

[Feature] 移植 bypass tcmu data area 和 zero copy 特性至 6.6 内核。(PR2876)

[Feature] 移植 tcm_loop 支持 sg_tablesize 可配置补丁至 6.6 内核。(PR2879)

9)其他

[Performance] 调整 address_space 结构体布局,优化 unixbench/execl 性能。(PR2888)

[Feature] bcache 更新 writeback 速率时支持 fragmentation。该问题为社区伙伴 360 同学反馈,在特定场景会发生回写 hang 住。(PR3022)

[BugFix] nfs 修复容器内写大文件触发 oom 问题。(PR3015)

[BugFix] fat 修复 nostale filehandles 存在未初始化域问题。(PR3089)

[BugFix] nbd 修复 nla_nest_start() 空指针问题。(PR3094)

[BugFix] nfs 修复 root_nfs_cat() 差 1 问题。(PR3093)

10)dsms

继续调研 cache tiering 机制,并针对性进行性能测试。

针对遇到的磁盘故障导致业务异常,计划在 dsms 中增加磁盘健康检测功能。

更多详细进展,请参见项目主页:https://gitee.com/anolis/dsms


相关链接:

高性能存储 SIG 主页:https://openanolis.cn/sig/high-perf-storage

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

—— 完 ——

加入龙蜥社群

加入微信群:添加社区助理-龙蜥社区小龙(微信:openanolis_assis),备注【龙蜥】与你同在;龙蜥加入钉钉群(钉钉群号:78885006080),高性能存储 SIG 钉钉群(钉钉群号:34264214)。

相关文章
|
8天前
|
边缘计算 编译器 数据中心
X86架构与Arm架构的主要区别分析
X86架构与Arm架构的主要区别分析
506 0
|
8天前
请解释鸿蒙操作系统的分布式能力是如何实现的。
请解释鸿蒙操作系统的分布式能力是如何实现的。
70 1
|
6月前
|
传感器 数据采集 物联网
Golang硬件控制:将软件力量扩展到物理世界
Golang硬件控制:将软件力量扩展到物理世界
|
6月前
|
存储 缓存 算法
解密Linux中的通用块层:加速存储系统,提升系统性能
本文探讨了Linux操作系统中的通用块层和存储系统I/O软件分层的优化策略。通用块层作为文件系统和磁盘驱动之间的接口,通过排队和调度I/O请求,提高磁盘的读写效率和可靠性。存储系统的I/O软件分层包括文件系统层、通用块层和设备层,它们相互协作,实现对存储系统的高效管理和操作。本文旨在深入了解通用块层和其他I/O软件层的功能和作用,分析优化存储系统的管理和操作,提升系统性能和可靠性。
解密Linux中的通用块层:加速存储系统,提升系统性能
|
8月前
|
算法 安全 Linux
高性能网络 SIG 月度动态:推动 virtio 支持动态中断调节及更灵活的分流机制
高性能网络 SIG 月度动态送达,一键了解 8 月各项目进展。

热门文章

最新文章