高性能存储SIG月度动态:EROFS支持直接索引容器镜像tar包,io_uring将支持并优化NVMe直通

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 高性能存储 4 月度 SIG 动态送达,请查收。

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

01 本月 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 联调持续进行中。

02 项目具体进展

1、Anolis OS

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)

2、容器镜像加速

随着 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,该特性可以应用于机密容器的存储方案。

3、用户态存储

截止目前,上游社区一共提出了三种 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

4、io_uring

基于分布式存储业务需求,开始调研 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 设备读写经历的软件栈提升性能。

5、DSMS

dsms 是一个分布式存储系统管理平台,旨在实现可视化的存储集群管理,提升分布式存储软件的易用性。

项目地址:https://gitee.com/anolis/dsms/

目前 dsms 持续在 Anlios 8.6 上面进行 dsms-engine、dsms-storage 以及 dsms-ui 等组件的功能联调。

另外,经过 SIG 例会讨论,ceph 15 确定在 dsms 项目中维护,先整体基于 Anolis 8 开发,后续再迁移至 Anolis 23 并发布。

03 SIG 下一步计划

支持 erofs 的 bloom filter 特性,进一步提升 erofs 的 xattr 访问性能;在 ANCK 4.19 中支持 erofs subpage block 与 flattened block device 等特性。

ANCK 4.19 支持 virtual fuse 模块,其可以方便云原生场景下 FUSE 文件系统的部署,可应用于大数据和 AI 训练的存储接入;ANCK 4.19 增强 fuse 的缓存一致性,使其支持分布式文件系统后端,可应用于大数据和 AI 训练的存储接入方案。

ANCK 5.10 支持 io_uring nvme passthrough 特性,并在分布式存储项目完成 POC,同时在社区推进更加高效的 nvme passthrough 方案。

dsms 继续进行 dsms-engine、dsms-storage 以及 dsms-ui 等组件的功能联调,并开始适配 Anolis 23。

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

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

—— 完 ——

加入龙蜥社群

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

相关实践学习
通过容器镜像仓库与容器服务快速部署spring-hello应用
本教程主要讲述如何将本地Java代码程序上传并在云端以容器化的构建、传输和运行。
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
4月前
|
存储 Kubernetes Cloud Native
【阿里云云原生专栏】云原生容器存储:阿里云CSI与EBS的高效配合策略
【5月更文挑战第29天】阿里云提供云原生容器存储接口(CSI)和弹性块存储(EBS)解决方案,以应对云原生环境中的数据存储挑战。CSI作为Kubernetes的标准接口简化存储管理,而EBS则提供高性能、高可靠性的块存储服务。二者协同实现动态供应、弹性伸缩及数据备份恢复。示例代码展示了在Kubernetes中使用CSI和EBS创建存储卷的过程。
231 3
|
4月前
|
运维 Kubernetes 测试技术
容器技术:优化软件测试流程的利器
本文介绍了容器技术的概念、优势和历史发展,对比了容器与虚拟机的区别,并提及了Docker和Kubernetes等常见容器技术。容器作为轻量级虚拟化工具,提供高效、灵活的应用部署方式,广泛应用于软件开发、云计算和微服务架构。随着技术演进,容器将在边缘计算、人工智能等领域发挥更大作用,推动行业变革。
74 3
|
1月前
|
运维 Kubernetes 开发者
使用容器化技术优化你的应用:从理论到实践
【8月更文挑战第7天】容器化技术通过提供一致的运行环境、高效的部署与扩展能力以及资源优化,为现代应用的开发和运维带来了显著的便利。通过本文的介绍,你应该对如何使用Docker来优化你的应用有了初步的了解。从编写Dockerfile到构建镜像,再到运行容器和使用Docker Compose管理多容器应用,每一步都是向更高效、更可靠的应用交付迈进的坚实步伐。
|
1月前
|
缓存 Linux 调度
[kvm]硬盘IO优化
[kvm]硬盘IO优化
|
30天前
|
存储 缓存 监控
在Linux中,如何优化虚拟机和容器的性能和资源使用?
在Linux中,如何优化虚拟机和容器的性能和资源使用?
|
1月前
|
Dragonfly Docker 容器
实时数仓Hologres容器镜像问题之优化私有化部署如何解决
容器镜像常遇问题包括:将过多组件打包至单一容器、使用systemd导致状态不一致、私有部署中传输未优化的镜像包及基础镜像频繁下发致网络拥堵。应采用轻量化基础镜像,明确镜像版本,并利用镜像层复用来优化。[了解更多](https://developer.aliyun.com/ask/666077)。 避免容器臃肿的方法是选用精简基础镜像,固定镜像版本,并通过镜像层复用来减少重复内容,实现高效部署。[查看详情](https://developer.aliyun.com/ask/666078)。
32 0
|
1月前
|
数据采集 监控 Kubernetes
Job类日志采集问题之iLogtail以减小容器发现和开始采集的延时如何优化
Job类日志采集问题之iLogtail以减小容器发现和开始采集的延时如何优化
|
2月前
|
存储 JavaScript 容器
TS,添加注释,//,ctrl + /,shift + alt + a,输出语句,console.log(“Hello Ts‘),变量和数据类型导读,变量就是用来存储数据的容器,变量的使用,TS
TS,添加注释,//,ctrl + /,shift + alt + a,输出语句,console.log(“Hello Ts‘),变量和数据类型导读,变量就是用来存储数据的容器,变量的使用,TS
|
3月前
|
Java 开发者
Java IO流实战技巧:如何优化InputStream/OutputStream和Reader/Writer的使用?
【6月更文挑战第26天】Java IO流优化涉及缓冲、资源管理、字符编码和流式处理。使用Buffered流提高读写效率,如`BufferedInputStream`和`BufferedReader`。确保资源关闭使用try-with-resources,如`try (InputStream is = ...) {...}`。处理文本时指定编码,如`InputStreamReader(is, StandardCharsets.UTF_8)`防止乱码。流式处理大文件,分块读写避免内存溢出,以减少内存占用。这些技巧能提升程序性能和健壮性。
144 0
|
3月前
|
SQL 数据处理 API
实时计算 Flink版产品使用问题之holo的io以及cpu使用较为稳定,sink端busy一直在20%左右,有时候50%,该如何优化
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。

相关产品

  • 容器镜像服务