更新时间:2025-02-28 GMT+08:00

存储概述

存储概览

CCE的容器存储功能基于Kubernetes容器存储接口(CSI)实现,深度融合多种类型的云存储并全面覆盖不同的应用场景,而且完全兼容Kubernetes原生的存储服务,例如EmptyDir、HostPath、Secret、ConfigMap等存储类型。

图1 容器存储概览类型

CCE支持工作负载Pod绑定多种类型的存储:

  • 从实现方式上划分,可以分为容器存储接口和Kubernetes原生存储。

    类别

    说明

    容器存储接口

    Out-of-Tree的形式,规定了标准的容器存储接口,可以允许存储供应商使用符合标准的自定义存储插件,通过PVC/PV的形式实现挂载,摒弃了以往需要将插件源码添加到Kubernetes代码仓库统一构建、编译、发布的方式。从Kubernetes 1.13开始,容器存储接口(CSI) 是实现卷插件的推荐方法。

    Kubernetes原生存储

    In-Tree的形式,通过Kubernetes代码仓库统一构建、编译、发布。

  • 从存储介质上划分,可以分为云存储、本地存储和Kubernetes资源对象。

    类别

    说明

    应用场景

    云存储

    存储介质为存储供应商提供的云存储,该类别的存储卷挂载均通过PVC/PV形式。

    一般用于存储可用性要求较高的数据,或部分数据需要共享的场景,例如日志保存、媒体资源存放等。

    根据具体的使用场景,您可以选择合适的云存储类型,详情请参见云存储对比

    本地存储

    存储介质为节点本地数据盘或内存,其中本地持久卷为CCE提供的自定义存储类型,通过容器存储接口以PVC/PV形式挂载,其余类型均为Kubernetes原生存储。

    用于存储非高可用数据,可在IO要求较高、延迟低的场景下使用。

    根据具体的使用场景,您可以选择合适的本地存储类型,详情请参见本地存储对比

    Kubernetes资源对象

    ConfigMap和Secret是集群中创建的资源,属于比较特殊的存储类型,由Kubernetes API服务器上的tmpfs(基于RAM的文件系统)提供存储。

    ConfigMap一般用于给Pod注入配置数据。

    Secret一般用于给Pod传递敏感信息,例如密码。

云存储对比

对比维度

云硬盘EVS

文件存储SFS

极速文件存储SFS Turbo

对象存储OBS

专属存储DSS

概念

云硬盘(Elastic Volume Service)可以为云服务器提供高可靠、高性能、规格丰富并且可弹性扩展的块存储服务,可满足不同场景的业务需求,适用于分布式文件系统、开发测试、数据仓库以及高性能计算等场景。

SFS为用户提供一个完全托管的共享文件存储,能够弹性伸缩至PB规模,具备高可用性和持久性,为海量数据、高带宽型应用提供有力支持。适用于多种应用场景,包括HPC、媒体处理、文件共享、内容管理和Web服务等。

SFS Turbo为用户提供一个完全托管的共享文件存储,能够弹性伸缩至320TB规模,具备高可用性和持久性,为海量的小文件、低延迟高IOPS型应用提供有力支持。适用于多种应用场景,包括高性能网站、日志存储、压缩解压、DevOps、企业办公、容器应用等。

对象存储服务(Object Storage Service,OBS)提供海量、安全、高可靠、低成本的数据存储能力,可供用户存储任意类型和大小的数据。适合企业备份/归档、视频点播、视频监控等多种数据存储场景。

专属分布式存储服务(Dedicated Distributed Storage Service,DSS)可以为您提供独享的物理存储资源,通过数据冗余和缓存加速等多项技术,提供高可用性和持久性,以及稳定的低时延性能。

存储数据的逻辑

存放的是二进制数据,无法直接存放文件,如果需要存放文件,需要先格式化文件系统后使用。

存放的是文件,会以文件和文件夹的层次结构来整理和呈现数据。

存放的是文件,会以文件和文件夹的层次结构来整理和呈现数据。

存放的是对象,可以直接存放文件,文件会自动产生对应的系统元数据,用户也可以自定义文件的元数据。

存放的是二进制数据,无法直接存放文件,如果需要存放文件,需要先格式化文件系统后使用。

访问方式

只能在ECS中挂载使用,不能被操作系统应用直接访问,需要格式化成文件系统进行访问。

在ECS中通过网络协议挂载使用。需要指定网络地址进行访问,也可以将网络地址映射为本地目录后进行访问。

提供标准的文件访问协议NFS(仅支持NFSv3),用户可以将现有应用和工具与SFS Turbo无缝集成。

可以通过互联网或专线访问。需要指定桶地址进行访问,使用的是HTTP和HTTPS等传输协议。

只能在ECS中挂载使用,不能被操作系统应用直接访问,需要格式化成文件系统进行访问。

静态存储卷

支持,请参见通过静态存储卷使用已有云硬盘

支持,请参见通过静态存储卷使用已有文件存储

支持,请参见通过静态存储卷使用已有极速文件存储

支持,请参见通过静态存储卷使用已有对象存储

支持,请参见通过静态存储卷使用专属存储

动态存储卷

支持,请参见通过动态存储卷使用云硬盘

支持,请参见通过动态存储卷使用文件存储

不支持

支持,请参见通过动态存储卷使用对象存储

支持,请参见通过动态存储卷使用专属存储

主要特点

非共享存储,每个云盘只能在单个节点挂载。

共享存储,可提供高性能、高吞吐存储服务。

高性能、高带宽、共享存储。

共享存储,用户态文件系统。

非共享存储,每个云盘只能在单个节点挂载。

应用场景

HPC高性能计算、企业核心集群应用、企业应用系统和开发测试等。

说明:

高性能计算:主要是高速率、高IOPS的需求,用于作为高性能存储,比如工业设计、能源勘探等。

HPC高性能计算、媒体处理、内容管理和Web服务、大数据和分析应用程序等。

说明:

高性能计算:主要是高带宽的需求,用于共享文件存储,比如基因测序、图片渲染等。

高性能网站、日志存储、DevOps、企业办公等。

大数据分析、静态网站托管、在线视频点播、基因测序、智能视频监控、备份归档、企业云盘(网盘)等。

  • 混合负载,专属分布式存储可同时支持HPC、数据库、Email、OA办公、Web等多个应用混合部署
  • 高性能计算
  • OLAP应用

容量

TB级别

SFS 1.0:PB级别

通用型:TB级别

EB级别

TB级别

时延

1~2ms

SFS 1.0:3~20ms

通用型:1~5ms

10ms

1~3ms

最大IOPS

因规格而异,范围为2.2K~256K

SFS 1.0:2K

通用型:最大达100K

千万级

因规格而异,范围为1.5K~8K

带宽

MB/s级别

SFS 1.0:GB/s级别

通用型:最大为GB/s级别

TB/s级别

MB/s级别

本地存储对比

对比维度

本地持久卷(Local PV)

本地临时卷(Local Ephemeral Volume)

临时路径(EmptyDir)

主机路径(HostPath)

概念

将节点的本地数据盘通过LVM组成存储池(VolumeGroup),然后划分LV给容器挂载使用。

基于Kubernetes原生的EmptyDir类型,将节点的本地数据盘通过LVM组成存储池(VolumeGroup),然后划分LV作为EmptyDir的存储介质给容器挂载使用,相比原生EmptyDir默认的存储介质类型性能更好。

Kubernetes原生的EmptyDir类型,生命周期与容器实例相同,并支持指定内存作为存储介质。容器实例消亡时,EmptyDir会被删除,数据会永久丢失。

将容器所在宿主机的文件目录挂载到容器指定的挂载点中。

主要特点

低延迟、高IO,非高可用的持久卷。

存储卷通过Label绑定节点,且为非共享存储,只能在单个Pod中挂载。

本地临时卷,存储空间来自本地LV。

本地临时卷,存储空间来自本地的kubelet根目录或内存。

挂载主机节点文件系统上的文件或目录,支持自动创建主机目录,Pod可迁移(不绑定节点)。

存储卷挂载方式

不支持静态存储卷

支持通过动态存储卷使用本地持久卷

详情请参见使用本地临时卷

详情请参见使用临时路径

详情请参见主机路径(HostPath)

应用场景

IO要求高、应用自带高可用方案的场景,例如:高可用部署MySQL。

  • 缓存空间,例如基于磁盘的归并排序。
  • 为耗时较长的计算任务提供检查点,以便任务能方便地从崩溃前状态恢复执行。
  • 在Web服务器容器服务数据时,保存内容管理器容器获取的文件。
  • 缓存空间,例如基于磁盘的归并排序。
  • 为耗时较长的计算任务提供检查点,以便任务能方便地从崩溃前状态恢复执行。
  • 在Web服务器容器服务数据时,保存内容管理器容器获取的文件。

运行一个需要使用节点文件。例如容器中需使用Docker,可使用HostPath挂载节点的/var/lib/docker路径。

须知:

HostPath卷存在许多安全风险,最佳做法是尽可能避免使用HostPath。 当必须使用HostPath卷时,它的范围应仅限于所需的文件或目录,并以只读方式挂载。