关于开源:高性能存储-SIG-月度动态erofs-新增支持多个重要特性持续构建容器场景竞争力

35次阅读

共计 2538 个字符,预计需要花费 7 分钟才能阅读完成。

高性能存储 SIG(Special Interest Group)指标:存储畛域的倒退历程,实质上是存储介质与软件栈相互促进倒退的过程。高性能存储 SIG 致力于存储栈性能开掘,以后次要聚焦内核 io_uring 技术优化异步 IO 性能,应用长久化内存晋升业务单老本性能,容器场景存储技术优化等课题。高性能存储 SIG 冀望通过社区单干,打造规范的高性能存储技术软件栈,推动软硬件协同倒退。

01 SIG 整体停顿

本次月报综合了 SIG 在 7、8 两个月的工作进展,涵盖多个重要模块的 CVE 修复,个性加强,性能优化和 bugfix 等。

  • erofs 新增反对多个重要个性,继续构建容器场景下的竞争力。
  • 与中兴同学单干修复一起 xfs 死锁问题,并初步达成后续独特加固 ANCK xfs 品质的合作意向。
  • 启动以后版本 io_uring 代码品质加固,预计下个版本公布。

02 我的项目具体停顿

1)CVE

CVE-2023-2124:修复 xfs out-of-bounds 内存拜访问题(PR1918/PR2027)。

CVE-2023-34256:修复 ext4 crc16 out-of-bounds read 问题(PR1793/PR2004)。

CVE-2023-3212:修复 gfs2 NULL pointer dereference 问题(PR2030/PR2041)。

CVE-2023-3111:修复 btrfs UAF 问题(PR2039/PR2040)。

2)erofs

ANCK 5.10:

因 RAFSv6 的系列补丁引入,导致 erofs 通过块接口挂载会 crash。该问题在 ANCK 5.10.134-15.1 紧急做了修复。(PR1987)

回合主线通明压缩个性,反对 LZ4/LZMA 压缩算法,反对 ztailpacking 和压缩去重等。(PR2076/PR2080/PR2081/PR2082)

erofs-utils:

fuse 模式反对 xattr long name prefix 个性。该个性能够优化存储 overlayfs xattr 元数据反复 name 的额定开销,在典型负载下可节俭 ~15% 的镜像存储空间。

反对 xattr bloom filter 个性,该个性能够减速 negative xattr lookup 的性能,例如“ls -lR”负载下可优化 ~20% 性能。

反对 rebuild 模式,该模式次要利用于 tarfs 场景,能够将多个 OCI 层转换而来的 erofs 镜像依照相似 overlayfs 模型合并为一个 erofs 镜像。

内部会议:

已申报 9 月底上海 Kubecon + Open Source Summit 2023 会议议题,届时将同步 erofs 在各种场景(尤其是云场景)的最新进展。

3)xfs

Revert“anolis: xfs: account extra freespace btree splits for multiple allocations”,该补丁之前是为了解决一个小概率 extent-to-btree conversion 失败问题,但因为其批改了调配策略,可能减少其余 corner case 的产生概率。(PR1837)

中兴同学报告了一起 xfs_create() 与 xfs_fs_destroy_inode() 流程死锁问题,该问题在最新上游主线 v6.5-rc1 曾经修复:https://github.com/torvalds/linux/commit/b742d7b4f0e03df25c2a772adcded35044b625ca

为了不便后续补丁的回合,本次修复计划尽可能回合了相干依赖补丁。(PR1990)

此外,与中兴同学就社区 xfs 的保护这块达成合作意向,后续将独特加固 ANCK xfs 品质。

4)ext4

将社区上游针对 fast commit 的一系列 bugfix 回合到 ANCK 5.10。(PR2066)ext4 fast commit 对 fsync 比拟频繁的场景有比拟显著的性能晋升,如 benchmark fs_mark,数据库 MySQL/PostgreSQL 等。

ext4 delalloc append 写场景(如 append 写日志),目前存在大量没有必要的 i_disksize 更新的操作,这将影响该场景下的性能。

Liu Song 针对该场景进行了优化,测试结果显示,在 Kafka 2.6.2 版本及包大小 2K 的场景,性能晋升 10%。

目前该优化曾经合入社区上游主线,并及时回合到 ANCK 5.10。(PR2083)

5)io-uring

在随机写场景,io_uring sqthread 和文件系统 IO 解决 kworker 可能运行在同一个 cpu 上。

因为之前批改了 sqthread 的 nice 值,可能导致文件系统 IO 解决 kworker 得不到及时调度,这将显著影响性能。

因而,咱们将之前批改 sqthread nice 值的补丁做了回退解决。(PR1888/PR1889)

在更新 liburing 版本后,相应的 io_uring 的 testcase 也失去了更新。

在新的 testcase 下,以后 ANCK 5.10 暴露出较多的问题,这些理论在社区高版本内核中都已失去解决,但回合比拟艰难。

社区 5.10 stable 曾经同步 io_uring 的版本至 5.15.85,因而咱们决策也追随 stable 版本进行降级,目前大部分自研个性都曾经实现移植。

因为 sqthread 从 kthreadd 创立的内核线程,演变为利用过程 fork 的子过程,咱们的 percpu sqthread poll 个性须要相应适配,预计在下个版本实现。

6)dsms

持续跟进社区对 dsms 软件包的反馈,持续修复 dsms-storage 模块安全漏洞和预览版未解决的 BUG。

dsms-engine 工作管理器的解决流程和 dsms-ui 前端界面优化进行中。

03 下一步打算

  1. erofs-utils 反对多线程压缩,并公布 1.7 版本。
  2. erofs 实现基于 fsverity 的全镜像校验,压缩个性反对 64k/16k page size + 4k block size。
  3. io_uring 基于 5.10 stable 降级,加固 ANCK 5.10 io_uring 品质。
  4. dsms 问题修复和继续优化。

相干链接

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

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

—— 完 ——

正文完
 0