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

01 本月 SIG 整体进展

本月共合入 Anolis 主线 PR 23 个,包含多个主要组件的性能优化、CVE 修复,以及 bugfix 等。

erofs over fscache 回合上游新特性 shared domain 和 failover。这两个特性是由火山引擎内核与虚拟化团队同学贡献,Jeffle Xu 和 gaoxiang 参与 review。shared domain 特性支持多镜像间共享相同内容的 blob 存储空间;failover 特性支持 daemon 崩溃后恢复。这两个特性的合入,进一步促进了 erofs over fscache 镜像加速方案的生产可用。

xfs 社区长期存在一个 inode extent-to-btree 转换失败,最终导致 fs shutdown 的问题。gaoxiang 通过构造相关场景,并成功抓取到问题发生时的 dump,最终将解决方案发到社区,并提前在 ANCK 中修复。同时,该修复合入后发现 xfstests 用例需要同步更新,正在推社区的过程中。

回合社区主线 fsdax-rmap 相关基础补丁,用于支持 fsdax 场景 tracking shared page。后续将基于该方案进一步支持 xfs fsdax reflink。

凝思软件贡献 DSMS 项目到高性能存储 SIG。当前项目仓库已经构建,并发布整体工作计划,预计 2023.6 发布第一个版本。

02 项目具体进展

1、Anolis OS

cve:CVE-2022-3649(PR813),CVE-2022-2503(PR856),CVE-2022-26365(PR859),CVE-2022-3621(PR858),CVE-2022-3646(PR878)。

erofs:misc fixes for fscache mode(PR881/PR884),use kill_anon_super() to kill super in fscache mode(PR883),支持 fscache shared domain 特性(PR893),支持 fscache failover 特性(PR894/PR915)。

xfs:修复 syscalls/quotactl07 case 失败(PR877),修复 inode extent-to-btree 转换失败导致的 fs shutdown(PR891),fsck 支持恢复日志(PR14)。

fuse:修复 getattr 优化的问题(PR854)。

crypto:SM4 XTS symmetric algorithm support(PR895)。

dax:支持 dax cow(PR905)。

io_uring:sqthread park/unpark race fixes(PR857),don't convert to jiffies for waiting on timeouts(PR868/PR869),移除异步 ioctl 支持(PR923),解决 IORING_ENTER_SQ_SUBMIT_ON_IDLE 与上游特性的冲突(PR924),anolis23 liburing(PR6)

2、容器镜像加速

针对之前回合到龙蜥社区的容器镜像加速方案 (erofs over fscache),从主线社区回合一系列修复补丁。

share domain 特性回合到 ANCK 5.10 内核,支持镜像之间层 (image layer) 粒度的共享,从而节省镜像在磁盘上的存储空间。该特性于 v6.1 合入主线内核。

failover 特性回合到 ANCK 5.10 内核,支持 user daemon 异常退出并恢复之后,容器内对容器镜像的访问可以自动恢复,整体过程对容器无感透明。该特性目前仍在主线社区讨论中,但是该方案已经在字节内部生产环境上部署。

share domain 与 failover 特性回合 ANCK 4.19 内核仍在进行中。

3、用户态存储

ublk 已经开始在分布式存储场景 POC,代码适配中。

目前我们正在为 ublk 开发零拷贝特性,方案设计已初步完成,预计12月下旬完成编码和测试工作。

4、io_uring

Anolis 23 的 liburing 打包中,选型 2.3 上游版本 + 自研特性。

io_uring + async_simple 协程优化目前正在进行初步性能分析,预计 12 月底完成评估。后续计划使能 io_uring 新的高级特性,进一步性能优化。

async_simple git repo:

https://github.com/alibaba/as...

5、dsms

凝思软件的同学 yxpeng 介绍了 dsms 项目背景,整体架构和工作计划,相关仓库已经创建,预计 2023.6 发布第一个版本。

03 SIG下一步计划

1、share domain 与 failover 特性回合到 ANCK 4.19 内核。

2、chunk 级别 page cache 共享,以节省内存占用,实现资源超卖,计划合入上游主线 v6.3,然后再回合到 ANCK 5.10/4.19。

3、完成基于 io_uring + ebpf 的 ublk 零拷贝特性开发。

4、io_uring + async_simple 性能调优。

5、dsms 完成分布式存储的选修以及在 Anolis 上的移植与开发测试。

附录:SIG 项目一览

  • io_uring
  • virtiofs
  • 容器镜像加速
  • 数据库优化
  • 用户态存储
  • DSMS

详情内容见高性能存储技术 SIG,欢迎各位感兴趣的开发者加入共建。

高性能存储技术SIG :https://openanolis.cn/sig/hig...

—— 完 ——


龙蜥社区
40 声望12 粉丝

OpenAnolis龙蜥社区由国内外头部企业联合建立的操作系统开源社区。