2. ONTAP核心存储概念回顾
在把 ONTAP 接入 Kubernetes 之前,需要先把 ONTAP 侧的对象模型重新梳理一遍。容器持久化并不是“另起一套存储”,而是把 Kubernetes 的 PV/PVC 语义映射到 ONTAP 已有的 SVM、卷、LUN、快照、克隆和 SnapMirror 之上。理解这层映射关系,才能判断一个 PVC 背后到底创建了什么、数据放在哪里、快照和克隆由谁触发、跨站点复制又落在哪一层。
一、SVM:租户边界与访问入口
SVM(Storage Virtual Machine,旧称 vServer)是 ONTAP 中的逻辑租户单元,它拥有独立的命名空间、独立的 IP 地址(LIF)、独立的卷集合和独立的协议配置。一个 ONTAP 集群可以承载多个 SVM,彼此之间在管理上隔离。对容器场景而言,SVM 通常对应一个业务域或一个 Kubernetes 集群的存储租户:NFS 导出的挂载点、iSCSI 的 IQN 目标、NVMe/TCP 的子系统,都挂在某个 SVM 上。
因此,Trident 在配置后端(backend)时,第一个要填的关键参数就是 svm。它决定了后续所有卷创建、快照、克隆、复制操作发生在哪个租户内。如果 SVM 选错,PVC 可能能挂载成功,但快照和 SnapMirror 关系会落在错误的租户里,跨集群恢复时找不到源。
二、卷、LUN 与 FlexGroup:数据到底放在哪
ONTAP 的“卷”(Volume)是承载文件系统的逻辑容器,它下面才是真正的数据。容器持久化有两条典型路径:
- 文件路径(NFS / SMB):PVC 直接映射为 ONTAP 卷上的一个目录(qtree 或普通目录),Pod 通过 NFS 挂载该目录。此时卷本身就是数据边界,快照、克隆、配额都作用在卷上。
- 块路径(iSCSI / NVMe/TCP):PVC 映射为一个 LUN,LUN 是卷内部的一个块设备文件。Pod 通过 iSCSI 发起端把它识别为一块磁盘,再在其上建立文件系统。此时卷是 LUN 的容器,LUN 才是 Pod 看到的“盘”。
FlexGroup 则是另一种卷类型:它把一个命名空间横向分布到多个成员卷(constituent)上,从而突破单卷的容量和性能上限。对于需要大容量、高并发元数据操作的容器场景(例如 AI 训练数据集、日志归档、CI 缓存),FlexGroup 比普通 FlexVol 更合适。但要注意,FlexGroup 的快照和克隆语义与 FlexVol 略有差异,部分高级特性(如某些版本的 SnapMirror 策略)需要确认兼容性。
三、快照与克隆:容器场景下的“秒级副本”
快照(Snapshot)是 ONTAP 最核心的数据保护原语:它在某个时间点记录卷的状态,不复制数据块,因此创建极快、占用空间极小。在 Kubernetes 中,快照通过 VolumeSnapshotClass 与 Trident 对接,PVC 可以声明“我要一个快照”,Trident 就在对应 ONTAP 卷上创建 Snapshot 副本。
克隆(Clone)则是在快照基础上生成一个可写副本。ONTAP 的克隆是“空间共享”的:新卷初始只记录元数据,数据块仍指向源快照,只有发生写入时才复制对应块。这对容器场景非常关键——例如 CI 流水线需要为每个构建任务提供一份干净的代码库副本,用克隆可以在几秒内交付一个可写卷,而不是复制几十 GB 数据。
需要区分两种克隆粒度:卷级克隆(FlexClone)和 LUN 级克隆。文件路径下,PVC 对应卷内目录,克隆通常以卷为单位;块路径下,如果 LUN 在卷内,克隆可以针对 LUN 文件进行,但快照仍以卷为边界。实际配置时,Trident 的 clone 能力取决于后端类型和 ONTAP 版本,建议在测试环境先验证克隆后的 PVC 能否正常挂载和读写。
四、SnapMirror:跨集群持久化的最后一道防线
SnapMirror 是 ONTAP 的卷级异步复制技术,它把源卷的快照增量传输到目标卷,实现跨集群、跨站点的数据保护。在容器持久化场景中,SnapMirror 通常用于两类需求:
- 灾备:生产集群的 PVC 数据实时复制到灾备集群,RPO 取决于 SnapMirror 策略(例如每 15 分钟一次)。灾备端不直接挂载,只有切换时才激活。
- 跨集群迁移:把 PVC 从一个 Kubernetes 集群迁移到另一个集群,源端停止写入后做最后一次 SnapMirror 同步,目标端导入卷并重新绑定 PVC。
SnapMirror 作用于卷,而不是单个 LUN 或目录。因此,如果容器数据分布在多个卷上,需要为每个卷分别建立复制关系。Trident 的 snapmirror 后端类型可以自动管理这些关系,但前提是源和目标 SVM 之间已经配置好集群对等(cluster peering)和 SVM 对等(SVM peering)。
五、映射到容器持久化:一张对照表
把上述对象与 Kubernetes 概念对齐,可以形成如下映射关系。这张表不是配置模板,而是帮助你在排障时快速定位“问题出在哪一层”。
| ONTAP 对象 | Kubernetes / Trident 对应 | 关键参数或判断点 |
|---|---|---|
| SVM | Trident backend 的租户边界 | svm 名称、LIF 地址、协议类型 |
| FlexVol 卷 | PV 的存储池 / 数据边界 | 卷大小、快照策略、导出策略 |
| LUN | 块模式 PVC 的实际设备 | LUN 大小、IQN、映射关系 |
| FlexGroup | 大容量 / 高并发 PVC 的卷类型 | 成员卷数量、聚合分布、快照兼容性 |
| Snapshot | VolumeSnapshot | VolumeSnapshotClass、快照保留策略 |
| Clone | 从快照恢复或快速交付新 PVC | 克隆粒度、空间共享、可写性 |
| SnapMirror | 跨集群灾备 / 迁移 | 对等关系、复制策略、RPO |