高性能存储 SIG(Special Interest Group)目标:存储领域的发展历程,本质上是存储介质与软件栈相互促进发展的过程。高性能存储 SIG 致力于存储栈性能挖掘,当前主要聚焦内核 io_uring 技术优化异步 IO 性能,使用持久化内存提升业务单成本性能,容器场景存储技术优化等课题。高性能存储 SIG 期望通过社区合作,打造标准的高性能存储技术软件栈,推动软硬件协同发展。
01 SIG 整体进展
本次月报综合了 SIG 在 9、10 两个月的工作进展,涵盖多个重要模块的 CVE 修复,特性增强,性能优化和 bugfix 等。
1.erofs 分别在 OSS China 2023,CLK & CLSF,以及 2023 云栖大会龙蜥操作系统-云原生专场都发表了主题演讲,介绍了 erofs 在云原生方向所做的增强以及接下来的 Roadmap。
2.io_uring 基线代码已更新至 5.15.85,与社区 stable 保持一致,通过本次基线代码切换修复了多个问题。
02 项目具体进展
1、cve
CVE-2023-4385:修复 jfs dbFree() 中可能的空指针问题。(PR2318)
2、erofs
erofs 分别在 OSS China 2023,CLK & CLSF,以及云栖大会云原生专场都发表了主题演讲,介绍了 erofs 在云原生方向所做的增强以及接下来的 Roadmap,包括 tarfs containerd 社区对接,page cache 共享,fs-verity 一致性校验,16k/64k page size 场景的 sub-block 压缩优化等。
其中 OSS China 2023 的材料已经上传到 SIG 页面:
https://openanolis.cn/sig/high-perf-storage/doc/937946823553100326
ANCK 更新:
支持 deflate 压缩算法。deflate 压缩算法是非常通用的算法,通过该算法的支持,为后续 erofs 的压缩 offload 到加速器如 Intel IAA/QAT 提供了可能。(PR2257)
修复 ANCK 5.10 内核中 nydus + erofs rafsv6 模式下的多个问题。(PR2109)
修复超出文件尾部的非对齐部分未正确填充 0 的问题。(PR2110)
支持 rafsv6 模式下传入 zero-length iovec。(PR2288/PR2289)
3、xfs
回合社区 stable 相关补丁,加固 xfs 文件系统质量。当前已同步至 5.10.194。(PR2193/PR2199/PR2228)
4、ext4
修复 O_DIRECT + O_SYNC 语义问题,该问题在 iomap 框架引入后就一直存在,其原因为 generic_write_sync() 是在 iomap 框架中调用,但 i_disksize 更新确是在 iomap_dio_rw() 之后。这将导致 append 写的场景文件落盘的长度没有及时更新,此时异常掉电将无法读取写入的数据。(PR2279/2322)
上游社区相关讨论见:
https://lore.kernel.org/all/02d18236-26ef-09b0-90ad-030c4fe3ee20@linux.alibaba.com/
优化 set_buffer_uptodate() 调用之前的检查。(PR2115)
回合社区 stable 的相关补丁,加固 ext4 文件系统质量。当前已同步至 5.10.175。(PR2124/PR2125/PR2238/PR2255/PR2270/PR2301)
5、io_uring
io_uring codebase 更新至 5.15.85,并回合合区 stable 相关补丁。(PR2195/PR2208/PR2241/PR2247)
6、vfs
修复开启 lazytime 场景下,memory cgroup 长期不释放的问题。该问题将导致容器化部署环境下 memory cgroup 数量长时间处于高位,占用内存,以及引发遍历 cgroup 时 sys 过高等。(PR2298/PR2299)
7、fuse
将 FUSE_MAX_MAX_PAGES 设置为 1024,使得支持最大读写请求为 4MB,这在 AI 接入场景比较有用。(PR2281)
支持配置 delete_stale。fuse 默认会缓存 dentry,但可能导致持续引用已被删除的文件(不经过 fuse),通过配置 delete_stale 可以有效预防该问题。(PR2326)
修复容器中 fuse pid namespace 存在的死等问题。(PR2259)
修复 fuse_direntplus_link() 中异常分支 nlookup 引用计数问题。(PR2271)
修复 fuse_dentry_revalidate() 被中断场景的问题。(PR2121)
8、其他
回合社区 stable 针对 device-mapper 相关的补丁。(PR2121)
修复 overlayfs generic/673 用例失败问题。(PR2317)
9、dsms
- 完成任务管理器和部署程序优化。
- 修复 3 个 bug,并处理了 3650 安全漏洞。
- 多用户模块功能设计中,正在修复 0670 安全漏洞。
03 下一步计划
1.erofs 云原生场景的持续增强和优化。
2.fuse 在大数据、AI 接入场景的优化。
3.io_uring nvme passthrough 基于业务 POC 反馈进一步优化,做到生产可用。
4.dsms 安全加固,以及相关组件的持续优化。
相关链接:
高性能存储 SIG 主页:
https://openanolis.cn/sig/high-perf-storage
注:更多龙蜥 SIG 月度动态可点击这里查看。
—— 完 ——
加入龙蜥社群
加入微信群:添加社区助理-龙蜥社区小龙(微信:openanolis_assis),备注【龙蜥】与你同在;加入钉钉群:扫描下方钉钉群二维码。
关于龙蜥
龙蜥社区是立足云计算打造面向国际的 Linux 服务器操作系统开源根社区及创新平台。龙蜥操作系统(Anolis OS)是龙蜥社区推出的 Linux 发行版,拥有三大核心能力:提效降本、更加稳定、更加安全。
目前,Anolis OS 8.8 已发布,更多龙蜥自研特性,支持 X86_64 、RISC-V、Arm64、LoongArch 架构,完善适配 Intel、兆芯、鲲鹏、龙芯等芯片,并提供全栈国密支持。
加入我们,一起打造面向云时代的操作系统!