高性能存储SIG月度动态:io_uring支持nvme直通,DSMS完成开发测试

简介: Cloud Kernel SIG 月度动态送达,一键了解 5 月各项目进展。

高性能存储 SIG(Special Interest Group)目标:存储领域的发展历程,本质上是存储介质与软件栈相互促进发展的过程。高性能存储 SIG 致力于存储栈性能挖掘,当前主要聚焦内核 io_uring 技术优化异步 IO 性能,使用持久化内存提升业务单成本性能,容器场景存储技术优化等课题。高性能存储 SIG 期望通过社区合作,打造标准的高性能存储技术软件栈,推动软硬件协同发展。

01  SIG 整体进展

1、本月合入 Anolis 主线 PR 共计 24 个,包含多个重要组件的特性支持,性能优化和 bugfix 等。

2、继上个月 ANCK 5.10 支持 erofs subpage block 特性后,ANCK 4.19 也提供这一特性支持,可提升容器镜像 tar 包解压性能以及 golden image 的安全性。

3、ANCK 4.19/5.10 支持 virtfuse 模块,可方便云原生场景下 FUSE 文件系统的部署,应用于大数据和 AI 训练的存储接入等场景。

4、ANCK 5.10 支持 io_uring nvme passthrough 特性的 PR 已经提交 review,计划合入 5.10-15 版本,POC 数据显示相比原生的 io_uring 路径性能提升 ~15%。

5、DSMS 开发测试完成,构建打包中,计划在 Anolis 23 中发布预览版。

02 项目具体进展

1)Anolis OS

cve:CVE-2023-0386(PR1608),CVE-2023-2269(PR1690/PR1691),CVE-2023-2513(PR1694)

erofs & fscache:支持 iomap(PR1638),支持 subpage block 特性(PR1639),修复添加 entry 到损坏的目录 crash 问题(PR1649)

io_uring:修复 uring cmd 提交失败的 bug(PR1644/PR1668)

ext4:优化 dio 覆盖写性能(PR1601),修复 ext4_xattr_set_entry UAF(PR1614),修复多个 ext4 bigalloc 的 bug(PR1657)

xfs:修复 xfstests xfs/191 用例失败问题(PR1594)

fuse:解决 FUSE_PASSTHROUGH 特性位冲突(PR1470),支持 virtfuse 特性(PR1606/PR1656),修复多个 fuse bug(PR1652),修复 virtfuse 在未注册回调函数的 bug(PR1655)

overlayfs:支持 virtiofs 作为 upper layer(PR1650),修复 virtiofs 作为 upper layer 的 bug(PR1651),修复 generic/683 用例失败问题(PR1667)

misc:修复 nilfs2 sysfs 接口生命周期问题(PR1626),修复 nilfs2 UAF bug(PR1666)

2)容器镜像

ANCK 4.19 支持 erofs subpage block 特性,可应用于容器镜像场景中 erofs 直接索引容器镜像的 tar 包,省去容器镜像生命周期管理中 tar 包的 untar 以及清理流程,从而提升性能和稳定性,并提升容器镜像作为 golden image 的安全性。

xattr bloom filter 已经开发完成并发出 RFC 补丁,在 shared xattr 场景运行时性能有 ~20% 的优化;另外,xattr 和压缩单元持续清理代码中。

erofs-utils 报告 2 个 cve,目前已经初步解决,并在 erofs 的 fsck 工具中集成了 fuzz 框架来满足 malicious image 的 fuzz 需求,同时基于 fuzz 框架进一步加固 erofs-utils。

3)io_uring

ANCK 5.10 支持 io_uring nvme passthrough 特性的 PR 已经提交 revew,将在接下来发布的 5.10-15 版本发布;

从测试版本的 POC 数据来看,相比原生的 io_uring,性能有 ~15% 的提升。接下来将在分布式存储项目端到端验证。

4)dsms

dsms 已经在 Anolis 8.6 上完成了 dsms-engine、dsms-storage 以及 dsms-ui 等组件的功能联调,并且通过测试,目前已经成功构建 dsms-ui、dsms-engine;dsms-storage 构建目前缺少依赖包,将在 SIG 群里跟进解决。

待全部包构建成功后,将按照社区包引入流程提交申请,计划在 Anolis23 中发布预览版。

03 下一步计划

xattr bloom filter 合入上游主线;完成 erofs 支持 deflate 压缩特性开发,并支持 subpage。

借助开源之夏项目,erofs-utils 支持多线程打包和解压,以及 fuse 增强等特性。

io_uring nvme passthrough 特性合入 ANCK 5.10 主线。

dsms 继续完成构建打包,并提交包引入申请,适配 Anolis 23。

相关链接:

高性能存储 SIG 主页:

https://openanolis.cn/sig/high-perf-storage

注:更多龙蜥 SIG 月度动态可点击这里查看。

—— 完 ——

加入龙蜥社群

加入微信群:添加社区助理-龙蜥社区小龙(微信:openanolis_assis),备注【龙蜥】与你同在;加入钉钉群:扫描下方钉钉群二维码。

相关实践学习
CentOS 7迁移Anolis OS 7
龙蜥操作系统Anolis OS的体验。Anolis OS 7生态上和依赖管理上保持跟CentOS 7.x兼容,一键式迁移脚本centos2anolis.py。本文为您介绍如何通过AOMS迁移工具实现CentOS 7.x到Anolis OS 7的迁移。
相关文章
|
22天前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
54 1
|
24天前
|
存储 算法 C语言
用C语言开发游戏的实践过程,包括选择游戏类型、设计游戏框架、实现图形界面、游戏逻辑、调整游戏难度、添加音效音乐、性能优化、测试调试等内容
本文探讨了用C语言开发游戏的实践过程,包括选择游戏类型、设计游戏框架、实现图形界面、游戏逻辑、调整游戏难度、添加音效音乐、性能优化、测试调试等内容,旨在为开发者提供全面的指导和灵感。
40 2
|
2月前
|
测试技术 网络安全
什么是软件测试? 软件测试都有什么岗位 ?软件测试和调试的区别? 软件测试和开发的区别? 一位优秀的测试人员应该具备哪些素质? 软件测试等相关概念入门篇
文章全面介绍了软件测试的基本概念、目的、岗位分类、与开发和调试的区别,并阐述了成为优秀测试人员应具备的素质和技能。
267 1
什么是软件测试? 软件测试都有什么岗位 ?软件测试和调试的区别? 软件测试和开发的区别? 一位优秀的测试人员应该具备哪些素质? 软件测试等相关概念入门篇
|
1月前
|
安全 测试技术 持续交付
云计算时代的软件开发与测试:高效、灵活、可扩展
云计算时代的软件开发与测试:高效、灵活、可扩展
|
2月前
|
人工智能 监控 测试技术
云应用开发平台测试
云应用开发平台测试
77 2
|
2月前
|
敏捷开发 测试技术
开发模型(瀑布、螺旋、scrum) 和 测试模型(V、W)、增量和迭代、敏捷(思想)及敏捷开发 scrum
文章详细介绍了软件开发过程中的不同开发模型(瀑布、螺旋、Scrum)和测试模型(V模型、W模型),以及增量和迭代的概念,最后阐述了敏捷思想及其在敏捷开发(如Scrum)中的应用。
128 0
开发模型(瀑布、螺旋、scrum) 和 测试模型(V、W)、增量和迭代、敏捷(思想)及敏捷开发 scrum
|
3月前
|
测试技术 持续交付 UED
软件测试的艺术与科学:平衡创新与质量的探索在软件开发的波澜壮阔中,软件测试如同灯塔,指引着产品质量的方向。本文旨在深入探讨软件测试的核心价值,通过分析其在现代软件工程中的应用,揭示其背后的艺术性与科学性,并探讨如何在追求技术创新的同时确保产品的高质量标准。
软件测试不仅仅是技术活动,它融合了创造力和方法论,是软件开发过程中不可或缺的一环。本文首先概述了软件测试的重要性及其在项目生命周期中的角色,随后详细讨论了测试用例设计的创新方法、自动化测试的策略与挑战,以及如何通过持续集成/持续部署(CI/CD)流程优化产品质量。最后,文章强调了团队间沟通在确保测试有效性中的关键作用,并通过案例分析展示了这些原则在实践中的应用。
93 1
|
3月前
|
数据采集 Java 数据挖掘
Java IO异常处理:在Web爬虫开发中的实践
Java IO异常处理:在Web爬虫开发中的实践
|
3月前
|
测试技术 UED 开发者
软件测试的艺术:从代码审查到用户反馈的全景探索在软件开发的宇宙中,测试是那颗确保星系正常运转的暗物质。它或许不总是站在聚光灯下,但无疑是支撑整个系统稳定性与可靠性的基石。《软件测试的艺术:从代码审查到用户反馈的全景探索》一文,旨在揭开软件测试这一神秘面纱,通过深入浅出的方式,引领读者穿梭于测试的各个环节,从细微处着眼,至宏观视角俯瞰,全方位解析如何打造无懈可击的软件产品。
本文以“软件测试的艺术”为核心,创新性地将技术深度与通俗易懂的语言风格相结合,绘制了一幅从代码审查到用户反馈全过程的测试蓝图。不同于常规摘要的枯燥概述,这里更像是一段旅程的预告片,承诺带领读者经历一场从微观世界到宏观视野的探索之旅,揭示每一个测试环节背后的哲学与实践智慧,让即便是非专业人士也能领略到软件测试的魅力所在,并从中获取实用的启示。
|
4月前
|
测试技术 C# 开发者
“代码守护者:详解WPF开发中的单元测试策略与实践——从选择测试框架到编写模拟对象,全方位保障你的应用程序质量”
【8月更文挑战第31天】单元测试是确保软件质量的关键实践,尤其在复杂的WPF应用中更为重要。通过为每个小模块编写独立测试用例,可以验证代码的功能正确性并在早期发现错误。本文将介绍如何在WPF项目中引入单元测试,并通过具体示例演示其实施过程。首先选择合适的测试框架如NUnit或xUnit.net,并利用Moq模拟框架隔离外部依赖。接着,通过一个简单的WPF应用程序示例,展示如何模拟`IUserRepository`接口并验证`MainViewModel`加载用户数据的正确性。这有助于确保代码质量和未来的重构与扩展。
109 0