全部产品
Search
文档中心

容器服务 Kubernetes 版 ACK:OSS存储卷概述

更新时间:May 15, 2025

对象存储OSS是阿里云提供的低成本的海量共享存储空间,适合存储写入后较少修改的数据,例如图片、音视频等非结构化数据。ACK支持使用OSS Bucket作为存储卷挂载到Pod上,满足持久化存储需求。

OSS介绍

对象存储OSS是一款海量、安全、低成本、高可靠的云存储服务,具备高数据持久性、高数据可用性等特点。OSS提供标准、低频访问、归档、冷归档等多种存储类型,可以覆盖从热到冷的各种数据存储场景。您可以结合OSS计费、数据访问频率等选择合适的存储类型。更多信息,请参见选型指导存储类型

重要

关于OSS的计量计费方式,请参见计费概述

适用场景

OSS是低成本的海量共享存储空间,适合存储写入后较少修改的数据。常见场景如下:

  • 共享数据场景:OSS为共享存储,可用于多个Pod间共享数据。

  • 只读场景:适用于读文件场景,例如读配置文件、图片、音视频等。

  • 读写分离场景:支持OSS数据的读写分离,例如断点保存、日志持久保存等。

说明

选择客户端

OSS存储卷可通过客户端文件系统(Filesystem in Userspace,简称FUSE)或虚拟块设备实现对象存储的本地挂载。相较于传统的本地存储和块存储,其在POSIX操作兼容性方面存在一定限制。

目前OSS存储卷支持的客户端如下。更多信息,请参见客户端选型参考

重要

使用ossfs 2.0需要将CSI组件升级到v1.33.1及以上版本。目前该版本CSI组件仅对白名单用户开放,如需使用,请提交工单申请。

客户端

类型

说明

依赖的存储组件版本

ossfs 1.0

FUSE

支持大部分POSIX操作,包括追加写、随机写、设置用户权限等。更多信息,请参见ossfs工作原理版本更新功能介绍

始终支持。具体请参见ossfs 1.0版本说明

ossfs 2.0

FUSE

支持完整读和顺序追加写操作。适用多读场景,大幅提升数据读取性能。更多信息,请参见ossfs 2.0概述

CSI组件版本为v1.33.1及以上。

strmvol

虚拟块设备

目前版本仅支持只读场景。使用虚拟块设备解决FUSE在海量小文件只读场景的性能瓶颈。

除CSI组件外,还需部署strmvol-csi-driver组件。

使用说明

  • 如需挂载OSS Bucket中的子目录,建议直接使用PV中的path字段,而非subpath方式。若您的业务需要使用subpath或subpathExpr配置,为避免因权限配置错误等原因导致挂载异常,请先查阅使用subpath或subpathExpr方式挂载OSS存储卷异常

  • OSS存储卷挂载根路径不支持chmod、chown操作,您可以通过配置项mp_umask实现。更多信息,请参见OSS存储挂载权限问题

注意事项

说明

以下注意事项主要针对通用读写场景(ossfs 1.0),ossfs 2.0和strmvol客户端由于仅支持部分POSIX操作(主要为读操作),基本不涉及。

随机或者追加写文件实际为在本地生成新文件重新上传至OSS服务端,由于OSS存储特性,请注意以下事项:

  • 文件、文件夹的rename操作非原子。

  • 请尽量避免并发多写,或直接在挂载路径下进行压缩、解压缩等操作。

    重要

    多写场景依赖用户自行协调各个客户端的行为。对于写操作导致的元数据和数据的不一致性问题,ACK不承诺保障。

此外,还需注意以下限制:

  • 不支持硬链接(Hard Link)。

  • 不支持挂载归档存储、冷归档存储或者深度冷归档存储类型的Bucket。

  • readdir操作默认会发送大量headObject请求以获取路径下的所有对象的扩展信息。当目标路径下的文件较多时,可能会影响ossfs的整体性能。若在读写场景中对文件的权限等属性不敏感,可开启-o readdir_optimze参数进行优化。具体请参见新增readdir优化功能

  • CSI plugin为v1.20.7以下版本时,仅检测本地修改,而不能检测其他客户端或工具的外部修改。

  • CSI版本小于1.28时,ossfs以进程形式直接运行在节点上。支持的节点操作系统为CentOS、Alibaba Cloud Linux、ContainerOS和龙蜥操作系统。如果节点操作系统不支持,请升级csi-plugin和csi-provisioner