# 存储概述
#### 存储概览
CCE Autopilot集群的容器存储功能基于Kubernetes容器存储接口（[CSI](https://support.huaweicloud.com/usermanual-cce-autopilot/cce_11_0378.html#cce_11_0378__section79711433131110)）实现，深度融合多种类型的云存储并全面覆盖不同的应用场景，而且完全兼容Kubernetes原生的存储服务，例如EmptyDir、Secret、ConfigMap等存储类型。
图1容器存储概览类型   
![](https://support.huaweicloud.com/usermanual-cce-autopilot/zh-cn_image_0000002038900210.png "点击放大")
Autopilot集群支持工作负载Pod绑定多种类型的存储：
- 从实现方式上划分，可以分为容器存储接口和Kubernetes原生存储。
  
  | 类别             | 说明                                                                                                                                                                                                                                            |
  |:---|:---|
  | CSI            | 是一种标准化插件机制（对应CCE的Everest插件），旨在解决传统in-tree存储插件与Kubernetes核心代码强耦合的问题，实现存储系统与编排平台的解耦。其核心设计是通过定义统一的gRPC接口规范，允许存储厂商以out-of-tree方式开发自定义存储插件，无需将插件源码嵌入Kubernetes源码仓库，从而实现存储功能的独立构建、编译和发布。用户只需通过PVC/PV声明存储需求，CSI驱动会自动将其转换为对应存储系统的操作指令，实现存储资源的动态供给与管理。 |
  | Kubernetes原生存储 | 采用in-tree模式，其存储插件代码直接嵌入Kubernetes核心代码仓库，与kubelet、kube-controller-manager等核心组件一同进行统一构建、编译和发布。由于插件迭代需随Kubernetes版本升级，导致其无法独立开发、升级或扩展，限制了对第三方存储系统的支持灵活性。                                                                                         |
     
  
- 从存储介质上划分，可以分为云存储、本地存储和Kubernetes资源对象。
  
  | 类别            | 说明                                                                                                      | 应用场景                                                                                                                                                    |
  |:---|:---|:---|
  | 云存储         | 由云服务商提供，可以通过网络将数据存储在远程集群中，实现集中管理和弹性扩展。在集群中，用户只需通过PVC/PV声明存储需求，CSI 插件便可自动对接云存储，无需手动配置底层资源。              | 一般用于存储可用性要求较高的数据，或部分数据需要共享的场景，例如日志保存、媒体资源存放等。 根据具体的使用场景，您可以选择合适的云存储类型，详情请参见[云存储对比]。 |
  | 本地存储          | 仅支持临时路径（EmptyDir），该类型存储是Kubernetes原生的EmptyDir类型，生命周期与容器实例相同，并支持指定内存作为存储介质。容器实例消亡时，EmptyDir会被删除，数据会永久丢失。 | 用于存储非高可用数据，可在IO要求较高、延迟低的场景下使用。 详情请参见[本地存储]。                                           |
  | Kubernetes资源对象 | ConfigMap和Secret是集群中创建的资源，属于比较特殊的存储类型，由Kubernetes API服务器上的tmpfs（基于RAM的文件系统）提供存储。                         | ConfigMap一般用于给Pod注入配置数据。 Secret一般用于给Pod传递敏感信息，例如密码。                                                                    |
     
  
 #### 云存储对比
| 对比维度    | 云硬盘EVS                                                                                                             | 文件存储SFS                                                                                                          | 极速文件存储SFS Turbo                                                                                                                        | 对象存储OBS                                                                                                  |
|:---|:---|:---|:---|:---|
| 概念       | 云硬盘（Elastic Volume Service）可以为云服务器提供高可靠、高性能、规格丰富并且可弹性扩展的块存储服务，可满足不同场景的业务需求，适用于分布式文件系统、开发测试、数据仓库以及高性能计算等场景。       | SFS为用户提供一个完全托管的共享文件存储，能够弹性伸缩至PB规模，具备高可用性和持久性，为海量数据、高带宽型应用提供有力支持。适用于多种应用场景，包括HPC、媒体处理、文件共享、内容管理和Web服务等。  | SFS Turbo为用户提供一个完全托管的共享文件存储，能够弹性伸缩至320TB规模，具备高可用性和持久性，为海量的小文件、低延迟高IOPS型应用提供有力支持。适用于多种应用场景，包括高性能网站、日志存储、压缩解压、DevOps、企业办公、容器应用等。          | 对象存储服务（Object Storage Service，OBS）提供海量、安全、高可靠、低成本的数据存储能力，可供用户存储任意类型和大小的数据。适合企业备份/归档、视频点播、视频监控等多种数据存储场景。 |
| 存储数据的逻辑 | 存放的是二进制数据，无法直接存放文件，如果需要存放文件，需要先格式化文件系统后使用。                                                                       | 存放的是文件，会以文件和文件夹的层次结构来整理和呈现数据。                                                                                    | 存放的是文件，会以文件和文件夹的层次结构来整理和呈现数据。                                                                                                           | 存放的是对象，可以直接存放文件，文件会自动产生对应的系统元数据，用户也可以自定义文件的元数据。                                                          |
| 访问方式      | 只能在ECS/BMS中挂载使用，不能被操作系统应用直接访问，需要格式化成文件系统进行访问。                                                                    | 在ECS/BMS中通过网络协议挂载使用。需要指定网络地址进行访问，也可以将网络地址映射为本地目录后进行访问。                                                           | 提供标准的文件访问协议NFS（仅支持NFSv3），用户可以将现有应用和工具与SFS Turbo无缝集成。                                                                                   | 可以通过互联网或专线访问。需要指定桶地址进行访问，使用的是HTTP和HTTPS等传输协议。                                                           |
| 静态存储卷     | 支持，请参见[通过静态存储卷使用已有云硬盘](https://support.huaweicloud.com/usermanual-cce-autopilot/cce_11_0614.html)。                | 支持，请参见[通过静态存储卷使用已有文件存储](https://support.huaweicloud.com/usermanual-cce-autopilot/cce_11_0619.html)。            | 支持，请参见[通过静态存储卷使用已有极速文件存储](https://support.huaweicloud.com/usermanual-cce-autopilot/cce_11_0625.html)。                                   | 支持，请参见[通过静态存储卷使用已有对象存储](https://support.huaweicloud.com/usermanual-cce-autopilot/cce_11_0379.html)。    |
| 动态存储卷     | 支持，请参见[通过动态存储卷使用云硬盘](https://support.huaweicloud.com/usermanual-cce-autopilot/cce_11_0615.html)。                  | 支持，请参见[通过动态存储卷使用文件存储](https://support.huaweicloud.com/usermanual-cce-autopilot/cce_11_0620.html)。                | SFS Turbo不支持，SFS Turbo子目录支持，请参见[通过动态存储卷创建SFS Turbo子目录（推荐）](https://support.huaweicloud.com/usermanual-cce-autopilot/cce_11_0627.html)。 | 支持，请参见[通过动态存储卷使用对象存储](https://support.huaweicloud.com/usermanual-cce-autopilot/cce_11_0630.html)。       |
| 主要特点       | 非共享存储，每个云盘只能在单个Pod挂载。                                                                                             | 共享存储，可提供高性能、高吞吐存储服务。                                                                                            | 共享存储，可提供高性能、高带宽存储服务。                                                                                                                   | 共享存储，用户态文件系统。                                                                                          |
| 应用场景    | HPC高性能计算、企业核心集群应用、企业应用系统和开发测试等。 说明： 高性能计算：主要是高速率、高IOPS的需求，用于作为高性能存储，比如工业设计、能源勘探等。 | HPC高性能计算、媒体处理、内容管理和Web服务、大数据和分析应用程序等。 说明： 高性能计算：主要是高带宽的需求，用于共享文件存储，比如基因测序、图片渲染等。     | 高性能网站、日志存储、DevOps、企业办公等。                                                                                                             | 大数据分析、静态网站托管、在线视频点播、基因测序、智能视频监控、备份归档、企业云盘（网盘）等。                                                         |
| 容量       | TB级别                                                                                                           | SFS 1.0：PB级别 通用文件系统（原SFS 3.0 容量型）：EB级别                                            | 通用型：TB级别                                                                                                                               | EB级别                                                                                                     |
| 时延      | 1\~2ms                                                                                                         | SFS 1.0：3\~20ms 通用文件系统（原SFS 3.0 容量型）：10ms                                      | 通用型：1\~5ms                                                                                                                            | 10ms                                                                                                    |
| 最大IOPS    | 因规格而异，范围为2.2K\~256K                                                                                            | SFS 1.0：2K 通用文件系统（原SFS 3.0 容量型）：百万级                                               | 通用型：最大达100K                                                                                                                           | 千万级                                                                                                      |
| 带宽       | MB/s级别                                                                                                          | SFS 1.0：GB/s级别 通用文件系统（原SFS 3.0 容量型）：TB/s级别                                        | 通用型：最大为GB/s级别                                                                                                                           | TB/s级别                                                                                                  |
   
 #### 本地存储
临时路径（EmptyDir）是Kubernetes原生的EmptyDir类型，生命周期与容器实例相同，并支持指定内存作为存储介质。容器实例消亡时，EmptyDir会被删除，数据会永久丢失。详情请参见[临时路径（EmptyDir）](https://support.huaweicloud.com/usermanual-cce-autopilot/cce_11_0638.html)。
主要特点：本地临时卷，存储空间来自本地的kubelet根目录或内存。
应用场景：
- 缓存空间，例如基于磁盘的归并排序。
- 为耗时较长的计算任务提供检查点，以便任务能方便地从崩溃前状态恢复执行。
- 在Web服务器容器服务数据时，保存内容管理器容器获取的文件。
 
#### 企业项目支持说明
- 自动创建存储： CCE Autopilot集群支持使用存储类创建云硬盘和对象存储类型PVC时指定企业项目，将创建的存储资源（云硬盘和对象存储）归属于指定的企业项目下，**企业项目可选为集群所属的企业项目或default企业项目**。
  若不指定企业项目，则创建的存储资源默认使用存储类StorageClass中指定的企业项目。对于CCE Autopilot集群提供的csi-disk和csi-obs存储类，所创建的存储资源属于default企业项目。
- 使用已有存储： 使用PV创建PVC时，因为存储资源在创建时已经指定了企业项目，如果PVC中指定企业项目，则务必确保在PVC和PV中指定的everest.io/enterprise-project-id保持一致，否则两者无法正常绑定。
  
 
#### 相关文档
- 支持多种存储卷类型，具体如下：
  - [存储基础知识](https://support.huaweicloud.com/usermanual-cce-autopilot/cce_11_0378.html)
  
  - [云硬盘存储（EVS）](https://support.huaweicloud.com/usermanual-cce-autopilot/cce_11_0044.html)
  
  - [文件存储（SFS）](https://support.huaweicloud.com/usermanual-cce-autopilot/cce_11_0111.html)
  
  - [极速文件存储（SFS Turbo）](https://support.huaweicloud.com/usermanual-cce-autopilot/cce_11_0125.html)
  
  - [对象存储（OBS）](https://support.huaweicloud.com/usermanual-cce-autopilot/cce_11_0160.html)
   
- 关于容器存储的常见问题和解决方案，请参见[存储管理](https://support.huaweicloud.com/cce-autopilot_faq/cce_13_00037.html)。
 
