写点什么

龙蜥社区高性能存储技术 SIG 11 月运营回顾 | 龙蜥 SIG

  • 2022-12-09
    北京
  • 本文字数:1797 字

    阅读完需:约 6 分钟

高性能存储技术 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/async_simple


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/high-perf-storage


—— 完 ——

发布于: 刚刚阅读数: 2
用户头像

还未添加个人签名 2021-07-20 加入

OpenAnolis龙蜥社区 由国内外头部企业联合建立的操作系统开源社区。加入我们,一起打造面向未来的开源操作系统。 社区官网:openanolis.cn|微信公众号:OpenAnolis龙蜥

评论

发布
暂无评论
龙蜥社区高性能存储技术 SIG 11 月运营回顾 | 龙蜥 SIG_开源_OpenAnolis小助手_InfoQ写作社区