乐趣区

关于存储:高性能存储SIG月度动态ANCK-510正式支持ublkerofs容器镜像按需读时延优化60

高性能存储技术 SIG(Special Interest Group)指标:高性能存储技术趣味组致力于存储栈性能开掘,以后次要聚焦内核 io_uring 技术优化异步 IO 性能,应用长久化内存晋升业务单老本性能,容器场景存储技术优化等课题。冀望通过社区平台,打造规范的高性能存储技术软件栈,推动软硬件协同倒退。

01 本月 SIG 整体停顿

本月合入 Anolis 主线 PR 18 个,波及多个重要组件的更新(个性反对、性能优化、以及 bugfix 等)。

ANCK 5.10 正式反对高性能用户态块设施 ublk,将随下一个 ANCK 版本 5.10-14 公布。

tcmu zero copy 和 bypass data area 优化个性合入 ANCK 5.10,相比原生 tcmu 性能晋升 1 倍以上。

erofs over fscache 优化 on-demand buffered 读,按需读取数据时延优化 ~60%。

dsms-storage 开始适配 Anolis 23,治理平台相干开发工作按计划进行中。

浪潮信息同学奉献多个 cve 修复和 bugfix。

02 我的项目具体停顿

1、Anolis OS

CVE:CVE-2022-4696(PR1097),CVE-2022-1184(PR1140),CVE-2022-4139(PR1141),CVE-2022-47946(PR1173)erofs:optimize on-demand IO path with buffered IO(PR1252)

ext4:fix fstests generic/626(PR1066),various bugfixes(PR1280/PR1292)

xfs:fix fstests xfs/546(PR1069/PR1144),stable fixes(PR1095)

reiserfs:remove useless new_opts in reiserfs_remount(PR1256/PR1302)

io_uring:fix uring-cmd task_work(PR1129)

ublk: [feature] support high performance ublk(PR1133),fix queue_size overflow(PR1230)

tcmu:[feature] improve tcmu performance(PR1255)

miscs: stable fixes for dm/md/nfs(PR1094)

2、容器镜像减速

ANCK 5.10 erofs fscache 进一步优化 on-demand buffered 读,在触发按需读数据时,用户态 daemon 通过 buffered 写形式将用户申请拜访的数据写入缓存文件,再应用 buffered 读时命中缓存,时延优化 ~60%。

erofs 反对非 4k 页个性已合入上游主线,可反对非 4k 页架构(如 aarch64)的运行。

erofs-utils 反对 subpage(即小于 PAGE_SIZE 的块大小)个性,反对同一镜像多压缩算法;另外,多线程解压优化成果测试中。

3、用户态存储

ANCK 5.10 正式反对高性能用户态块设施 ublk,将随 5.10-14 版本公布。接下来将基于该版本刷新下分布式存储我的项目的 POC 数据。配套的用户态库革新中,目前曾经向上游社区提出革新需要。

ebpf + io_uring 零拷贝计划曾经发送到社区,目前曾经迭代到 v2 版本,须要持续依据社区倡议批改迭代。咱们的想法是做成一个通用的解决方案,在通用块层反对 ebpf 做数据过滤、重定向等,以后从零拷贝这个共性需要切入。

tcmu zero copy 和 bypass data area 优化个性合入 ANCK 5.10,相比原生 tcmu 性能有显著晋升,大块 IO 如 512k 读最大晋升 1 倍,写晋升 3 倍。

4、io_uring

目前正在对 c++ 库 asio 的 io_uring 代码进行优化,asio 以后默认应用 io_uring 的 fast poll 个性去进行网络申请解决,初步测试性能相比 epoll 还要差 ~10%。

咱们正在将其进行 io_uring 的 multi-shot 个性革新,目前适配工作还在进行中。

io_uring multi-shot 的材料可参考:

https://github.com/axboe/liburing/wiki/io_uring-and-networking-in-2023

5、DSMS

dsms-storage 正在 Anolis 23 上进行适配,因为 Anolis 23 目前缺失一些相干依赖包,适配工作暂停。目前曾经向社区提交了 issue,期待社区解决。dsms-engine 的开发工作按期进行中:https://gitee.com/anolis/dsms/issues/I62HO3

03 SIG 下一步打算

mkfs.erofs 反对用户设定的 block size(目前默认 4k),erofs 反对设置独自的目录 block size。

实现基于 5.10-014 内核版本的分布式存储我的项目 POC 数据更新。

推动社区对于 ebpf + io_uring 零拷贝计划的 review 并持续迭代。

实现 asio io_uring multi-shot 适配革新。

持续推动 dsms 适配 Anolis23 相干工作。

附录:SIG 我的项目一览

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

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

—— 完 ——

退出移动版