高性能存储 SIG(Special Interest Group)目标:存储领域的发展历程,本质上是存储介质与软件栈相互促进发展的过程。高性能存储 SIG 致力于存储栈性能挖掘,当前主要聚焦内核 io_uring 技术优化异步 IO 性能,使用持久化内存提升业务单成本性能,容器场景存储技术优化等课题。高性能存储 SIG 期望通过社区合作,打造标准的高性能存储技术软件栈,推动软硬件协同发展。
本月 SIG 整体进展
1)本月合入 Anolis 主线 PR 共计 11 个,包含重要组件的特性支持,性能优化和 bugfix 等。
2)ANCK 5.10 支持 erofs subpage block 特性,提升容器镜像 tar 包解压性能以及 golden image 的安全性。
3)ublk 零拷贝方案仍在社区讨论中。
4)ANCK 5.10 计划支持 io_uring nvme passthrough 特性,以进一步优化内核 IO 栈开销,提升业务性能。
5)DSMS Anolis 8.6 联调持续进行中。
项目具体进展
cve:CVE-2023-1611(PR1548/PR1549)
erofs & fscache:优化按需场景 IO 性能(PR1557),erofs block-based IO 切换到 iomap 框架(PR1531),erofs 支持 subpage block for tarfs(PR1561)
io_uring:修复 IORING_OP_URING_CMD 的兼容问题(PR1564/PR9)
xfs:修复多个 xfstests 问题,xfs/191,xfs/144,xfs/549(PR15)
virtiofs:修复 cache=none 模式下 fd 长时间不释放的问题(PR1533)
misc:修复 nilfs2 sysfs 接口生命周期 bug(PR1559),修复 nfsd server crash 问题(PR1590)
随着 Linux v6.4 合并窗口开启,erofs 文件系统的 long xattr name prefixes 特性正式合入社区主线,优化存储 overlayfs xattr 元数据(例如 composefs 模式)重复 name 的额外开销:https://lwn.net/Articles/928610/。
ANCK 5.10 支持 erofs subpage block 特性,可应用于容器镜像场景中 erofs 直接索引容器镜像的 tar 包,省去容器镜像生命周期管理中 tar 包的 untar 以及清理流程,从而提升性能和稳定性,并提升容器镜像作为 golden image 的安全性。
ANCK 5.10 支持 erofs 的 flattened block device 模式,使得 multi-blob images 存储于同一个 block device,该特性可以应用于机密容器的存储方案。
截止目前,上游社区一共提出了三种 ublk 零拷贝方案:
https://lwn.net/Articles/926118/
近期 io_uring 社区核心开发者 Pavel 也提出一个方案,目前还在讨论中。目前判断该方案对 io_uring 侵入较小,最终接收到主线的可能性较高:
https://lore.kernel.org/all/cover.1682701588.git.asml.silence@gmail.com/
另外,向上游社区 blktests 贡献了 6 个测试用例,覆盖 ublk 设备的正常删除、crash 后删除、文件系统挂载和故障恢复等特性:
https://lore.kernel.org/linux-block/20230505032808.356768-1-ZiyangZhang@linux.alibaba.com/T/#t
基于分布式存储业务需求,开始调研 nvme passthrough 技术。我们测试发现性能并没有想象中那么好,经过分析我们认为可以做得更好,并抛出了我们的方案,获得了三星开发人员的认可:https://lore.kernel.org/io-uring/24179a47-ab37-fa32-d177-1086668fbd3d@linux.alibaba.com/
另外,我们计划在 ANCK 5.10 中支持 nvme passthrough 技术。该技术基于已经支持的 io_uring uring_cmd 方案,允许 nvme 请求通过 io_uring 直接发送到 nvme 块设备驱动,从而优化 nvme 设备读写经历的软件栈提升性能。
目前 dsms 持续在 Anlios 8.6 上面进行 dsms-engine、dsms-storage 以及 dsms-ui 等组件的功能联调。
另外,经过 SIG 例会讨论,ceph 15 确定在 dsms 项目中维护,先整体基于 Anolis 8 开发,后续再迁移至 Anolis 23 并发布。
03
dsms 继续进行 dsms-engine、dsms-storage 以及 dsms-ui 等组件的功能联调,并开始适配 Anolis 23。
详情内容见高性能存储技术 SIG(链接见文末),欢迎各位感兴趣的开发者加入共建。
高性能存储技术 SIG 主页:
https://openanolis.cn/sig/high-perf-storage
加入龙蜥社群
加入微信群:添加社区助理-龙蜥社区小龙(微信:openanolis_assis),备注【龙蜥】与你同在;加入钉钉群:扫描下方钉钉群二维码。
本文分享自微信公众号 - OpenAnolis龙蜥(OpenAnolis)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。