高性能存储 SIG 月度动态:优化 xfs dax reflink 时延,独立选型并维护 mdadm 和 ledmon

本次高性能存储月度动态综合了 SIG 在 5、6 两个月的工作进展,包含多项特性支持,性能优化,以及 Bugfix 等。

01 SIG 整体进展

  • 引入 xfs deferred inode inactivation,进一步优化 xfs dax reflink 过程中的抖动时延。

  • Intel 将在 SIG 中独立选型 mdadm & ledmon 并维护。

  • fuse 支持 resend pending 请求和读写分离优化,virtio-fs 支持多队列。

  • erofs 支持 zstd 压缩算法,并重构 utils 支持 lib 库集成以及增量构建。

  • dsms 解决断电场景数据丢失问题,并通过优化 ceph 内存分配解决碎片化场景 IO 延迟升高问题。

02 项目具体进展

2.1 Cloud Kernel

2.1.1 erofs

Bugfix\] 修复 erofs_statfs() 中 UUID 问题,并优化 DEFLATE stream 分配逻辑。(PR3281/PR3285/PR3287) \[Feature\] 支持 zstd 压缩算法,已合入社区 6.10 主线。 \[Feature\] 重构 erofs utils,可提供 lib 库供其他项目集成,如 DADI。 \[Feature\] 支持 centos oot。 \[Feature\] erofs utils 支持增量构建。 **2.1.2** **xfs** \[Feature\] quota functions 重构,该系列补丁为 deferred inode inactivation 的准备工作。(PR3154) \[Feature\] 空间不足时 reclaim 策略优化,该系列补丁同样为 deferred inode inactivation 的准备工作。(PR3156) \[Feature\] posteof 和 cowblocks 重构,该系列补丁同样为 deferred inode inactivation 的准备工作。(PR3158) \[Feature\] incore inode walk 重构,该系列补丁同样为 deferred inode inactivation 的准备工作。(PR3159) \[Feature\] deferred inode inactivation。(PR3160) \[Bugfix\] 修复 CONFIG_FS_DAX 关闭时编译错误。(PR3164) \[Improment\] 增加 XFS_IOC_SET_REFLINK_FLAGS 的检查条件,并导出 xfs_wait_reflink_secondary()。(PR3205) \[Performance\] 优化 xfs_log_force() 可能存在的数十 ms 阻塞导致的 reflink 抖动。(PR3273i/PR3306) **2.1.3 ext4** \[Bugfix\] 回合社区 stable 分支补丁。(PR3141) **2.1.4 i** **o_uring** \[Bugfix\] 修复 io_uring percpu sqthread 特性,限制仅在同一个进程下多线程之间共享。(PR3127/PR3138) **2.1.5 fuse/virtio-fs** \[Bugfix\] 修复 statx 系统调用 ENOSYS 错误。(PR3118) \[Feature\] 支持显示禁用 export。(PR3166) \[Feature\] 支持 resend pending 请求。(PR3264/PR3271) \[Feature\] 支持多队列。(PR3277/PR3278) \[Performance\] bg_queue 读写分离优化。(PR3352) **2.1.6 misc** \[Bugfix\] overlayfs:修复 ovl_parse_param() 内存泄露。(PR3115) \[Bugfix\] hugetlbfs:修复 hugetlbs_fill_super() 空指针解引用。(PR3126) \[Improvement\] block:rq_hang 使用 %px 打印请求。(PR3129/PR3135) \[Improvement\] cgroup writeback:限制仅在 cgwb_v1 场景使能 memcg_blkcg_tree 相关操作。(PR3142/PR3144/PR3147) \[Performance\] kernfs 全局锁竞争。(PR3132) \[Bugfix\] ceph:修复 encode_cap_msg() use-after-free 问题。(PR3152 \[Bugfix\] md:修复 rdev-\>serial 内存泄露。(PR3318) \[Bugfix\] ring_buffer:修复 ring_buffer_free_read_page() 中潜在的空指针解引用。(PR3308) #### **2.2 dsms** \[Bugfix\] 解决断电场景数据丢失问题。 \[Improvement\] 优化 ceph 内存分配器,解决内存碎片化后导致 IO 延迟升高的问题。 更多详细进展,请参见项目主页: *https://gitee.com/anolis/dsms* #### **2.3 mdadm \& ledmon** Intel VROC 为基于 NVMe 的企业级 RAID 解决方案,同时也支持对 SATA 类 RAID 的监控。该方案依赖 mdadm 和 ledmon 两个软件包,因此决策在龙蜥 OS 中独立选型并维护。 目前基线版本经确定,并在 SIG 中创建仓库: *[mdadm: Manager of Linux Software RAID implemented through Multiple Devices driver.](https://gitee.com/anolis/mdadm "mdadm: Manager of Linux Software RAID implemented through Multiple Devices driver.")* *[ledmon: Enclosure LED Utilities](https://gitee.com/anolis/ledmon "ledmon: Enclosure LED Utilities")* 后续由 Intel 的两位 Maintainer 负责将补丁合入 dev 分支,经过测试后合并到 main 分支,作为龙蜥 OS 的发布包来源。 ### ***03*** **开源会议** SIG 成员 gaoxiang 分享了 Container Plumber Days 和 OSSNA 的参会纪要: *https://openanolis.cn/sig/high-perf-storage/doc/1109666477415585831* **相关链接:** 高性能存储SIG主页: *[High Performance Storage SIG - OpenAnolis龙蜥操作系统开源社区](https://openanolis.cn/sig/high-perf-storage "High Performance Storage SIG - OpenAnolis龙蜥操作系统开源社区")* 注:更多龙蜥 SIG 月度动态可点击[这里](https://mp.weixin.qq.com/mp/appmsgalbum?__biz=Mzg4MTMyMTUwMQ==&action=getalbum&album_id=2739816963685924866&scene=173&from_msgid=2247514437&from_itemidx=1&count=3&nolastread=1#wechat_redirect "这里")查看。 **高性能存储 SIG** **(Special Interest Group)** **:**致力于存储栈性能挖掘,当前主要聚焦内核 io_uring 技术优化异步 IO 性能,使用持久化内存提升业务单成本性能,容器场景存储技术优化等课题。高性能存储 SIG 期望通过社区合作,打造标准的高性能存储技术软件栈,推动软硬件协同发展。 更多龙蜥SIG主页点击查看:*[SIG - OpenAnolis龙蜥操作系统开源社区](https://openanolis.cn/sig "SIG - OpenAnolis龙蜥操作系统开源社区")* ------ 完 ------

相关推荐
不穿格子的程序员1 天前
操作系统篇3——深入理解操作系统:Linux 常用命令、系统中断与用户态/内核态详解
linux·服务器·操作系统·内核态·用户态·中断
海棠蚀omo1 天前
Linux信号保存的核心:未决信号集与阻塞信号集——探秘内核如何实现信号的阻塞、暂存与派发
linux·操作系统
不穿格子的程序员1 天前
操作系统篇4——深入理解操作系统:僵尸进程、孤儿进程与进程调度算法详解
操作系统·僵尸进程·孤儿进程·进程调度
代码AC不AC2 天前
【Linux】计算机的基石:从冯·诺依曼体系结构到操作系统管理
linux·操作系统·冯诺依曼体系结构
序属秋秋秋3 天前
《Linux系统编程之进程环境》【环境变量】
linux·运维·服务器·c语言·c++·操作系统·系统编程
阿巴~阿巴~3 天前
自定义协议设计与实践:从协议必要性到JSON流式处理
服务器·网络·网络协议·json·操作系统·自定义协议
海棠蚀omo5 天前
解读Linux进程的“摩尔斯电码”:信号产生的原理与实践,掌控进程的生死时速
linux·操作系统
ZhengEnCi8 天前
P3H0-Python-os模块完全指南-操作系统接口与文件路径处理利器
python·操作系统
moringlightyn10 天前
Linux---进程状态
linux·运维·服务器·笔记·操作系统·c·进程状态
Live&&learn11 天前
数据结构vs 内存结构
数据结构·操作系统·内存结构