# 存储概述
#### 存储概览
Kubernetes容器存储接口（[CSI](https://support.huaweicloud.com/usermanual-cce/cce_10_0378.html#cce_10_0378__section79711433131110)）是CNCF推出的标准化存储插件框架，旨在将存储系统与Kubernetes解耦，使存储服务以插件形式接入集群，无需修改Kubernetes核心代码。CCE的容器存储功能基于该接口构建，深度融合块存储、文件存储、对象存储等多种云存储类型，全面支持无状态应用、有状态应用等典型场景。同时，该功能完全兼容Kubernetes原生存储体系，支持EmptyDir、HostPath、Secret、ConfigMap等多种存储形式。
图1容器存储概览类型   
![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000001633881905.png "点击放大")
CCE支持工作负载Pod绑定多种类型的存储：
- 从实现方式上划分，可以分为容器存储接口（CSI）和Kubernetes原生存储。
  
  | 类别             | 说明                                                                                                                                                                                                                                                                                                                                                                                 |
  |:---|:---|
  | 容器存储接口（CSI）     | 是一种标准化插件机制（对应CCE的[Everest](https://support.huaweicloud.com/usermanual-cce/cce_10_0066.html)插件），旨在解决传统in-tree存储插件与Kubernetes核心代码强耦合的问题，实现存储系统与编排平台的解耦。其核心设计是通过定义统一的gRPC接口规范，允许存储厂商以out-of-tree方式开发自定义存储插件，无需将插件源码嵌入Kubernetes源码仓库，从而实现存储功能的独立构建、编译和发布。用户只需通过PVC/PV声明存储需求，CSI驱动会自动将其转换为对应存储系统的操作指令，实现存储资源的动态供给与管理。 从Kubernetes 1.13开始，CSI已成为官方推荐的实现方式。 |
  | Kubernetes原生存储 | 采用in-tree模式，其存储插件代码直接嵌入Kubernetes核心代码仓库，与kubelet、kube-controller-manager等核心组件一同进行统一构建、编译和发布。由于插件迭代需随Kubernetes版本升级，导致其无法独立开发、升级或扩展，限制了对第三方存储系统的支持灵活性。                                                                                                                                                                                                                              |
     
  
- 从存储介质上划分，可以分为云存储、本地存储和Kubernetes资源对象。
  
  | 类别            | 说明                                                                                         | 应用场景                                                                                                                                                    |
  |:---|:---|:---|
  | 云存储         | 由云服务商提供，可以通过网络将数据存储在远程集群中，实现集中管理和弹性扩展。在集群中，用户只需通过PVC/PV声明存储需求，CSI 插件便可自动对接云存储，无需手动配置底层资源。 | 一般用于存储可用性要求较高的数据，或部分数据需要共享的场景，例如日志保存、媒体资源存放等。 根据具体的使用场景，您可以选择合适的云存储类型，详情请参见[云存储对比]。 |
  | 本地存储          | 存储介质为节点本地数据盘或内存，其中本地持久卷为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）可以提供独享的物理存储资源，适用于性能隔离和数据安全性要求更高的场景。 EVS与DSS的详细对比，请参见[什么是专属分布式存储服务](https://support.huaweicloud.com/productdesc-dss/zh-cn_topic_0081591984.html)。                                |
| 存储数据的逻辑 | 存放的是二进制数据，无法直接存放文件，如果需要存放文件，需要先格式化文件系统后使用。                                                                       | 存放的是文件，会以文件和文件夹的层次结构来整理和呈现数据。                                                                                    | 存放的是文件，会以文件和文件夹的层次结构来整理和呈现数据。                                                                                                  | 存放的是对象，可以直接存放文件，文件会自动产生对应的系统元数据，用户也可以自定义文件的元数据。                                                          | 存放的是二进制数据，无法直接存放文件，如果需要存放文件，需要先格式化文件系统后使用。                                                                                                                                                                                                                        |
| 访问方式      | 只能在ECS/BMS中挂载使用，不能被操作系统应用直接访问，需要格式化成文件系统进行访问。                                                                    | 在ECS/BMS中通过网络协议挂载使用。需要指定网络地址进行访问，也可以将网络地址映射为本地目录后进行访问。                                                           | 提供标准的文件访问协议NFS（仅支持NFSv3），用户可以将现有应用和工具与SFS Turbo无缝集成。                                                                          | 可以通过互联网或专线访问。需要指定桶地址进行访问，使用的是HTTP和HTTPS等传输协议。                                                           | 只能在ECS/BMS中挂载使用，不能被操作系统应用直接访问，需要格式化成文件系统进行访问。                                                                                                                                                                                                                      |
| 静态存储卷     | 支持，请参见[通过静态存储卷使用已有云硬盘](https://support.huaweicloud.com/usermanual-cce/cce_10_0614.html)。                          | 支持，请参见[通过静态存储卷使用已有文件存储](https://support.huaweicloud.com/usermanual-cce/cce_10_0619.html)。                      | 支持，请参见[通过静态存储卷使用已有极速文件存储](https://support.huaweicloud.com/usermanual-cce/cce_10_0625.html)。                                    | 支持，请参见[通过静态存储卷使用已有对象存储](https://support.huaweicloud.com/usermanual-cce/cce_10_0379.html)。              | 支持，请参见[通过静态存储卷使用专属存储](https://support.huaweicloud.com/usermanual-cce/cce_10_0871.html)。                                                                                                                                                                          |
| 动态存储卷     | 支持，请参见[通过动态存储卷使用云硬盘](https://support.huaweicloud.com/usermanual-cce/cce_10_0615.html)。                            | 支持，请参见[通过动态存储卷使用文件存储](https://support.huaweicloud.com/usermanual-cce/cce_10_0620.html)。                          | SFS Turbo子目录支持，请参见[通过动态存储卷创建SFS Turbo子目录（推荐）](https://support.huaweicloud.com/usermanual-cce/cce_10_0839.html)                | 支持，请参见[通过动态存储卷使用对象存储](https://support.huaweicloud.com/usermanual-cce/cce_10_0630.html)。                 | 支持，请参见[通过动态存储卷使用专属存储](https://support.huaweicloud.com/usermanual-cce/cce_10_0872.html)。                                                                                                                                                                          |
| 主要特点       | 非共享存储，每个云盘只能在单个节点挂载。                                                                                              | 共享存储，可提供高性能、高吞吐存储服务。                                                                                            | 高性能、高带宽、共享存储。                                                                                                                 | 共享存储，用户态文件系统。                                                                                          | 非共享存储，每个云盘只能在单个节点挂载。                                                                                                                                                                                                                                              |
| 应用场景    | HPC高性能计算、企业核心集群应用、企业应用系统和开发测试等。 说明： 高性能计算：主要是高速率、高IOPS的需求，用于作为高性能存储，比如工业设计、能源勘探等。 | HPC高性能计算、媒体处理、内容管理和Web服务、大数据和分析应用程序等。 说明： 高性能计算：主要是高带宽的需求，用于共享文件存储，比如基因测序、图片渲染等。     | 高性能网站、日志存储、DevOps、企业办公等。                                                                                                    | 大数据分析、静态网站托管、在线视频点播、基因测序、智能视频监控、备份归档、企业云盘（网盘）等。                                                         | - 混合负载，专属分布式存储可同时支持HPC、数据库、Email、OA办公、Web等多个应用混合部署  - 高性能计算  - OLAP应用   |
| 容量       | TB级别                                                                                                           | SFS 1.0：PB级别 通用文件系统（原SFS 3.0 容量型）：EB级别                                            | 通用型：TB级别                                                                                                                      | EB级别                                                                                                     | TB级别                                                                                                                                                                                                                                                               |
| 时延      | 1\~2ms                                                                                                         | SFS 1.0：3\~20ms 通用文件系统（原SFS 3.0 容量型）：10ms                                      | 通用型：1\~5ms                                                                                                                   | 10ms                                                                                                    | 1\~3ms                                                                                                                                                                                                                                                            |
| 最大IOPS    | 因规格而异，范围为2.2K\~256K                                                                                            | SFS 1.0：2K 通用文件系统（原SFS 3.0 容量型）：百万级                                               | 通用型：最大达100K                                                                                                                  | 千万级                                                                                                      | 因规格而异，范围为1.5K\~8K                                                                                                                                                                                                                                                 |
| 带宽       | MB/s级别                                                                                                          | SFS 1.0：GB/s级别 通用文件系统（原SFS 3.0 容量型）：TB/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可迁移（不绑定节点）。                                                                                                                                             |
| 存储卷挂载方式 | 不支持静态存储卷 支持[通过动态存储卷使用本地持久卷](https://support.huaweicloud.com/usermanual-cce/cce_10_0634.html) | 详情请参见[使用本地临时卷](https://support.huaweicloud.com/usermanual-cce/cce_10_0726.html)。                                                                                                                                                                                                     | 详情请参见[使用临时路径](https://support.huaweicloud.com/usermanual-cce/cce_10_0638.html)。                                                                                                                                                                                                 | 详情请参见[主机路径（HostPath）](https://support.huaweicloud.com/usermanual-cce/cce_10_0377.html)。                                                                                              |
| 应用场景    | IO要求高、应用自带高可用方案的场景，例如：高可用部署MySQL。                                                                                          | - 缓存空间，例如基于磁盘的归并排序。  - 为耗时较长的计算任务提供检查点，以便任务能方便地从崩溃前状态恢复执行。  - 在Web服务器容器服务数据时，保存内容管理器容器获取的文件。   | - 缓存空间，例如基于磁盘的归并排序。  - 为耗时较长的计算任务提供检查点，以便任务能方便地从崩溃前状态恢复执行。  - 在Web服务器容器服务数据时，保存内容管理器容器获取的文件。   | 运行一个需要使用节点文件。例如容器中需使用Docker，可使用HostPath挂载节点的/var/lib/docker路径。 须知： HostPath卷存在许多安全风险，最佳做法是尽可能避免使用HostPath。 当必须使用HostPath卷时，它的范围应仅限于所需的文件或目录，并以只读方式挂载。 |
   
#### 企业项目支持说明
![](https://support.huaweicloud.com/usermanual-cce/public_sys-resources/note_3.0-zh-cn.png)
该功能需要everest插件升级到1.2.33及以上版本。
- 自动创建存储： CCE支持使用存储类创建云硬盘和对象存储类型PVC时指定企业项目，将创建的存储资源（云硬盘和对象存储）归属于指定的企业项目下。可选的企业项目包括default、集群所在企业项目或存储类指定的企业项目。
  若不指定企业项目，则创建的存储资源默认使用存储类StorageClass中指定的企业项目。
  - 对于自定义的StorageClass，可以在StorageClass中指定企业项目，详见[StorageClass高级配置](https://support.huaweicloud.com/usermanual-cce/cce_10_0380.html#cce_10_0380__section77491231462)。StorageClass中如不指定的企业项目，则默认为default企业项目。
  
  - 对于CCE提供的csi-disk和csi-obs存储类，所创建的存储资源属于default企业项目。
    
- 使用已有存储： 使用PV创建PVC时，因为存储资源在创建时已经指定了企业项目，如果PVC中指定企业项目，则务必确保在PVC和PV中指定的everest.io/enterprise-project-id保持一致，否则两者无法正常绑定。
  
 
#### 相关文档
- 使用容器存储功能前，建议提前了解相关基础概念（如PV和PVC等），具体请参见[存储基础知识](https://support.huaweicloud.com/usermanual-cce/cce_10_0378.html)。
- CCE通过Everest插件对接云存储服务，关于该插件的详细介绍请参见[CCE容器存储（Everest）](https://support.huaweicloud.com/usermanual-cce/cce_10_0066.html)。
- CCE支持多种存储卷类型，具体如下：
  - [云硬盘存储（EVS）](https://support.huaweicloud.com/usermanual-cce/cce_10_0044.html)
  
  - [文件存储（SFS）](https://support.huaweicloud.com/usermanual-cce/cce_10_0111.html)
  
  - [极速文件存储（SFS Turbo）](https://support.huaweicloud.com/usermanual-cce/cce_10_0125.html)
  
  - [对象存储（OBS）](https://support.huaweicloud.com/usermanual-cce/cce_10_0160.html)
  
  - [专属存储（DSS）](https://support.huaweicloud.com/usermanual-cce/cce_10_0869.html)
  
  - [本地持久卷（Local PV）](https://support.huaweicloud.com/usermanual-cce/cce_10_0391.html)
  
  - [临时存储卷（EmptyDir）](https://support.huaweicloud.com/usermanual-cce/cce_10_0636.html)
  
  - [主机路径（HostPath）](https://support.huaweicloud.com/usermanual-cce/cce_10_0377.html)
  
  - [自定义存储类（StorageClass）](https://support.huaweicloud.com/usermanual-cce/cce_10_0380.html)
   
- 关于容器存储的最佳实践，请参见[存储管理最佳实践](https://support.huaweicloud.com/usermanual-cce/cce_10_0900.html)。
- 关于容器存储的常见问题和解决方案，请参见[存储管理](https://support.huaweicloud.com/cce_faq/cce_faq_00037.html)。
 
