1. 课程导入与全景认知
在企业级 IT 基础设施中,容器化已经成为应用交付的主流形态。Kubernetes 解决了无状态应用的编排问题,但数据库、消息队列、日志检索、AI 训练数据等有状态负载,仍然需要一块可靠、可共享、可迁移的持久化存储。Dell 企业存储产品线与容器平台的集成,正是围绕这一需求展开:把企业级存储的可靠性、快照、复制、精简配置等能力,通过 CSI(Container Storage Interface)等标准接口暴露给 Kubernetes,让 Pod 像使用本地卷一样使用企业存储。
一、Dell 企业存储产品线概览
理解容器持久化集成,首先要分清 Dell 存储家族中哪些产品面向块存储、哪些面向文件存储、哪些面向对象存储,以及它们各自通过什么方式接入容器平台。
| 产品线 | 存储类型 | 典型协议 | 容器接入方式 |
|---|---|---|---|
| PowerStore | 块 / 文件 / vVol | iSCSI、FC、NFS、SMB | CSI 驱动(PowerStore CSI) |
| PowerMax | 高端块存储 | FC、iSCSI、NVMe-oF | CSI 驱动(PowerMax CSI) |
| PowerFlex | 软件定义块存储 | SDC、NVMe-oF | CSI 驱动(PowerFlex CSI) |
| PowerScale | 横向扩展文件存储 | NFS、SMB、S3 | CSI 驱动(PowerScale CSI) |
| Unity XT | 中端块 / 文件 | iSCSI、FC、NFS、SMB | CSI 驱动(Unity CSI) |
| ObjectScale / ECS | 对象存储 | S3 | 通过 S3 接口或 COSI 接入 |
从容器视角看,块存储适合单 Pod 独占的高性能数据库场景,文件存储适合多 Pod 共享读写(RWX)场景,对象存储适合备份、归档、数据湖等场景。选择哪条产品线,取决于业务对性能、共享方式、容量规模和成本的要求。
二、容器持久化集成的业务价值
为什么要把企业存储接入容器平台?核心价值可以归纳为四点。
- 数据持久与生命周期解耦:Pod 重建、节点漂移、集群升级时,数据卷不随容器销毁而丢失,PV(PersistentVolume)与 PVC(PersistentVolumeClaim)把存储生命周期与计算生命周期分离。
- 复用企业级数据服务:快照、克隆、远程复制、精简配置、QoS 限流等能力,通过 StorageClass 参数和 CSI 接口直接暴露给应用团队,无需存储管理员手工划卷。
- 动态供给与自助交付:开发人员提交 PVC 即可自动创建后端 LUN 或文件系统,缩短交付周期,减少人工工单。
- 统一运维与可观测性:存储侧与容器侧通过 CSI 驱动、拓扑感知、指标暴露形成统一视图,便于容量规划和故障定位。
三、从请求到落盘:一次 PVC 的完整链路
下面这张图展示了 Kubernetes 中一次 PVC 请求如何经过 CSI 驱动最终落到 Dell 存储阵列上。理解这条链路,是后续所有配置和排障的基础。
图中可以看到,PVC 本身只是一个“需求声明”,真正决定使用哪条 Dell 产品线的是 StorageClass 中的 provisioner 字段。例如 csi-powerstore.dellemc.com 对应 PowerStore,csi-powermax.dellemc.com 对应 PowerMax。CSI Controller 负责调用后端 API 创建卷,CSI Node 插件负责在目标节点上完成挂载。排障时,这条链路上的每一个对象——PVC 事件、StorageClass 参数、CSI Controller 日志、CSI Node 日志、存储侧卷状态——都是需要检查的观察点。
四、课程目标与学习路径
本课程的目标不是让读者背命令,而是建立一套“从需求到落盘、从配置到排障”的完整能力。学完之后,你应该能够:
- 根据业务场景选择合适的产品线和访问模式(RWO / ROX / RWX)。
- 部署并验证 Dell CSI 驱动,确认 Controller 与 Node 插件状态正常。
- 设计 StorageClass 参数,包括精简配置、快照类、拓扑约束、QoS 等。
- 完成 PVC 动态供给、Pod 挂载、数据读写验证的完整闭环。
- 使用快照、克隆、复制等能力实现备份与恢复。
- 在 Pod Pending、挂载失败、性能异常等场景下定位问题。
学习路径建议按“产品认知 → CSI 原理 → 驱动部署 → StorageClass 设计 → 应用挂载 → 快照与恢复 → 排障与优化”的顺序推进。每一章都会围绕真实对象和可观察结果展开,避免停留在概念层面。
容器持久化集成的本质,是把企业存储的能力通过标准接口“翻译”给 Kubernetes。理解这条翻译链路,后面的每一章都会变得有迹可循。