您可以在容器服务Kubernetes集群中使用阿里云OSS存储卷。本文介绍OSS存储卷的功能介绍、存储规格、适用场景、使用限制及计费说明。
功能介绍
阿里云对象存储OSS(Object Storage Service)是阿里云提供的海量、安全、低成本、高持久的云存储服务。
OSS具有丰富的安全防护能力,支持服务器端加密、客户端加密、防盗链白名单、细粒度权限管控、日志审计、合规保留策略(WORM)等特性。OSS为您的云端数据安全进行全方位的保驾护航,并满足您企业数据的安全与合规要求。
存储规格
对象存储OSS提供标准、低频访问、归档、冷归档四种存储类型,全面覆盖从热到冷的各种数据存储场景。更多信息,请参见存储类型概述。
适用场景
根据业务需求,您可以对OSS存储卷进行以下操作。
业务需求 | 参考链接 |
存储应用数据 |
|
加密存储在OSS存储卷上的数据 | 仅支持服务器端加密。更多信息,请参见服务器端加密。 具体操作,请参见加密OSS存储卷。 |
使用限制及说明
OSS存储卷通过FUSE将对象存储挂载到本地,与本地存储和ext4块存储相比有一定限制。针对读写场景,请尽量避免使用随机写和追加写操作,或直接在挂载路径下进行压缩、解压缩操作。由于写操作导致的元数据和数据的不一致性问题,容器服务 Kubernetes 版 ACK(Container Service for Kubernetes)不承诺保障。
您可以使用SDK、ossutil工具实现写操作。若您需要直接通过OSS存储卷实现写操作,建议使用ossfs 1.91及以上版本。更多信息,请参见ossfs 1.91及以上版本新功能介绍及性能压测。
配置存储卷的使用说明如下。
OSS为共享存储,可以同时为多个Pod提供共享存储服务。
使用数据卷时,每个应用使用独立的PV名称。
如需挂载OSS Bucket中的子目录,建议直接使用PV中的path字段,而非subpath方式。若您的业务需要使用subpath或subpathExpr配置,为避免因权限配置错误等原因导致挂载异常,请先阅读常见问题中的使用subpath或subpathExpr方式挂载OSS存储卷异常。
OSS存储卷是使用ossfs文件进行挂载的FUSE文件系统。
适合于读文件场景。例如,读配置文件、视频、图片文件等场景。 更多使用限制,请参见ossfs使用限制。
不适用于写文件的应用场景。如需写入文件,建议您使用SDK实现写操作。关于使用SDK实现写操作的具体操作,请参见OSS存储读写分离最佳实践。若您需要直接通过OSS存储卷实现写操作,建议使用ossfs 1.91及以上版本。更多信息,请参见ossfs 1.91及以上版本新功能介绍及性能压测。
CSI版本小于1.28时,ossfs以进程形式直接运行在节点上,支持的节点操作系统为CentOS、Alibaba Cloud Linux、ContainerOS和龙蜥操作系统。如果节点操作系统不支持,您可以通过升级CSI版本的方式运行ossfs。
OSS存储卷挂载根路径不支持chmod、chown操作,您可以通过配置项mp_umask实现。更多信息,请参见OSS存储挂载权限问题。
ossfs使用限制
随机或者追加写文件实际为在本地生成新文件重新上传至OSS服务端。
因为需要远程访问OSS服务器,list directory等元数据操作的性能较差。
文件、文件夹的rename操作不是原子的。
多个客户端挂载同一个OSS Bucket时,依赖用户自行协调各个客户端的行为,例如,避免多个客户端写入同一个文件等。
不支持硬链接(Hard Link)。
CSI plugin为v1.20.7以下的版本时,仅检测本地修改,而不能检测其他客户端或工具的外部修改。
为避免系统的负载升高,请勿在高并发读写的场景中使用。
计费说明
关于OSS的计量计费方式,请参见计费概述。