写点什么

高性能存储 SIG 月度动态:ublk 完成 POC、dsms-storage 在 Anolis OS 上成功适配

  • 2023-02-06
    北京
  • 本文字数:1953 字

    阅读完需:约 6 分钟

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

01 本月 SIG 整体进展

尽管 SIG 成员在 1 月都经历了新冠感染,但在本月仍然合入 anolis 主线 PR 23 个,包含多个主要组件的特性增强,性能优化,以及 bugfix 等。感谢所有 SIG 成员的辛勤付出,祝大家新年快乐!


ANCK 5.10 支持 ublk 代码已基本完成适配,同步测试中;另外在分布式存储项目中完成 POC,从 POC 数据来看,效果很不错,比之前的 tcmu 方案有很大程度的优化。该特性支持预计将在 ANCK 5.10-14 版本正式发布。


erofs 容器镜像 page cache 共享特性代码已发送到社区,需要进一步跟进并根据社区的 review 意见修改,并最终合入社区主线。


ANCK 4.19/5.10 fuse 回合 killpriv_v2 特性,极大地提升了 small write 性能(70% ~ 120%)。


DSMS 第一阶段适配工作已基本完成,dsms-storage 已可以在 Anolis OS 上正常运行。


浪潮信息 cuishiwei 同学在测试多个 nvme 盘并发创建和删除分区时发现可能导致宕机,报告到社区并在社区主线修复后,积极提交 PR 在 ANCK 4.19/5.10 两个版本完成修复。感谢 cuishiwei 同学的贡献。

02 项目具体进展

1、Anolis OS


erofs:fix potential NULL in error path(PR1022)


ext4:fix bug_on ext4_mb_use_inode_pa(PR1055),fix check to prevent false positive report of incorrect used inodes(PR1056),fix bug for rename with RENAME_WHITEOUT(PR1064),stable fixes(PR1091)


xfs:Speed up file fsyncs by reducing iolock cycling(PR1024),validate inode fork size against fork format(PR1067)


block:unhash blkdev part inode when the part is deleted(PR1081/PR1082)


fuse:support FUSE_HANDLE_KILLPRIV_V2(PR1084/PR1085),simply use flags instead for fuse passthrough(PR1088)


dax:fsdax COW bug fixes(PR1033),mark the iomap argument to dax_iomap_sector as const(PR1086)


io_uring:Improve IOCB_NOWAIT O_DIRECT reads(PR1034),fix referencing uninitialized io_uring_ctx(PR1040),fix CQ waiting timeout handling(PR1070),add IO_WQ_WORK_MM for uring_cmd(PR1077)


liburing:add IORING_SETUP_SQE128 and uring-cmd support(PR3),Add missing fields for uring_cmd in struct io_uring_sqe(PR4)


miscs:fix documentation for unprivileged_userns_clone sysctl(PR1073/PR1074),stable fixes (dm/md/nfs)(PR1089)


2、容器镜像加速


容器镜像 page cache sharing 特性在社区持续迭代,增加对 readahead 的支持。以 tensorflow 镜像为例,在创建同一镜像的多个实例时,该特性能节省 ~97% 的(容器镜像)内存占用;tensorflow 小版本之间能节省 ~20% 的(容器镜像)内存占用。


ANCK fscache daemonless 特性已实现 RFC 版本,支持 fscache daemon 的退出和重新拉起,持续迭代中。


3、用户态存储


ANCK 5.10 支持 ublk 代码已基本完成适配,40+ 补丁,待提交 PR review。


分布式存储项目的 POC 进展顺利,POC 基于 6.1 内核 ublk 适配,单个 IO 时延明显低于 tcmu 版本,IOPS 也有大幅度提升。


ebpf + io_uring 零拷贝特性原计划春节前发出 RFC,但因存在一些未解决的问题有些延迟;预计 2 月上旬发出 RFC 系列补丁到社区。


4、io_uring


优化 nowait O_DIRECT 读性能。


回合 uring-cmd 特性后结合 ublk 进行测试,过程中发现一些 io hang 等问题,确认为 uring-cmd 回合引入的问题,目前已经修复。


开始分析 asio 中 io_uring 的代码流程,目前已讨论出一些优化点,预计 2 月底会有一个阶段性的进展。


5、DSMS


在解决包缺失问题后,适配工作进展比较顺利,目前第一阶段的适配已基本完成,dsms-storage 已经可以在 Anolis OS 上正常跑起来;下一步将进行可视化相关开发工作。


当前选定 ceph 版本为 15.2.15。


相关工作计划:https://gitee.com/anolis/dsms/issues/I62HO3

03 SIG 下一步计划

1、推动容器镜像 page cache 共享特性合入上游主线并回合到 ANCK。


2、erofs-utils 支持多线程解压,优化 ISO 镜像安装性能。


3、ANCK 5.10 支持 ublk 测试和分布式存储场景适配。


4、ebpf + io_uring 零拷贝方案社区 RFC 和讨论推进。


5、io_uring + async_simple 协程优化。


6、dsms 可视化管理平台开发。


附录:SIG 项目一览


  • io_uring

  • virtiofs

  • 容器镜像加速

  • 数据库优化

  • 用户态存储

  • DSMS


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


高性能存储技术 SIG 主页链接地址: https://openanolis.cn/sig/high-perf-storage


—— 完 ——

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

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

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

评论

发布
暂无评论
高性能存储SIG月度动态:ublk完成POC、dsms-storage在Anolis OS上成功适配_技术_OpenAnolis小助手_InfoQ写作社区