使用并行文件存储PFS L3
更新时间:2026-11-12
容器引擎CCE支持通过创建PV/PVC,并为工作负载挂载数据卷方式使用百度智能云并行文件存储PFS 极速型L3。本文将介绍如何在集群中动态和静态挂载并行文件存储。
前提条件
- 集群已安装并行文件存储组件,更多信息请见CCE CSI PFS L3 Plugin 说明。
- 已创建PFS极速型L3文件系统和挂载点,具体可参见快速入门(极速型L3)。
使用限制
并行文件存储PFS极速型L3产品使用限制请见使用限制和使用建议(极速型L3)。
操作步骤
动态挂载并行文件存储
1. 创建存储类StorageClass
集群管理员可使用StorageClass为集群定义不同的存储类型。您可通过StorageClass配合PVC动态创建需要的存储资源。
本文介绍通过Kubectl方式创建并行文件存储PFS L3类型的StorageClass,自定义并行文件存储使用所需的模板。
YAML
1apiVersion: storage.k8s.io/v1
2kind: StorageClass
3metadata:
4 name: pfsl3-sc
5provisioner: csi-pfsl3plugin
6parameters:
7 pfsl3Address: <pfsl3Address>
8 #volDirBasePath: <volDirBasePath>
9 archiveOnDelete: "false"
10reclaimPolicy: Delete
| 参数 | 说明 |
|---|---|
| pfsl3Address | 必填,PFS极速型L3的挂载点地址。在“PFS实例详情页->挂载点信息”中查看![]() |
| volDirBasePath | 可选,为待挂载PFS极速型L3文件系统内子路径。动态方式创建的volume将基于该路径创建PVC。如果路径不存在,挂载时会默认创建。 |
| archiveOnDelete | 可选,删除PVC时后端存储的文件数据是否被真正删除,只在reclaimPolicy为Delete时生效。archived-{pvName}.{timestamp}。使用建议:在高频创建和删除PV的场景下,如果PV目录下有大量子目录或文件建议设置为 true(大目录的删除较慢),否则可能导致CSI控制器任务队列阻塞,新PV创建排队 |
| reclaimPolicy | 必填,PV的回收策略,控制删除PVC后的资源处理方式。Delete:删除PVC时,自动释放PV,后端子目录数据是否真正删除,由archiveOnDelete参数进一步控制。Retain:删除PVC时,PV保留,后端数据不会删除,需手动清理。适用于对数据安全性要求高的场景。 |
2. 创建持久卷声明PVC
注意storageClassName需要指定为上述部署storageClass时填写的storageClass名称。
YAML
1apiVersion: v1
2kind: PersistentVolumeClaim
3metadata:
4 name: dynamic-pvc-pfsl3
5 namespace: train
6spec:
7 accessModes: # 访问模式,支持ReadWriteMany
8 - ReadWriteMany
9 resources:
10 requests:
11 storage: 64Gi
12 storageClassName: pfsl3-sc
3. 检查PVC状态为Bound
YAML
1[root@cce-ig-3xyqv7tu-arymhnji-4cmbup97 ~]# kubectl get pvc -ntrain
2NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE
3dynamic-pvc-pfsl3 Bound pvc-38200600-8b98-44bf-877b-7b90e7b615cf 64Gi RWX pfsl3-sc <unset> 18s
4. 在Pod中挂载PVC
- Pod和PVC需要在同一个namespace下。
- 当前支持挂载异常恢复,需要在pod的volumeMounts配置中加上mountPropagation: HostToContainer参数。若通过 volumeMounts.readOnly=true设置了只读模式,不要配置mountPropagation,否则异常恢复后挂载传播会导致只读属性失效。
YAML
1apiVersion: v1
2kind: Pod
3metadata:
4 name: my-dynamic-app
5 namespace: train
6spec:
7 containers:
8 - name: gpfs-test
9 image: registry.baidubce.com/public-tools/fio:3.6
10 command: ["/bin/sh"]
11 args:
12 - -c
13 - ls -lh /data && sleep 360000
14 volumeMounts:
15 - mountPath: /data
16 name: data-vol
17 mountPropagation: HostToContainer
18 volumes:
19 - name: data-vol
20 persistentVolumeClaim:
21 claimName: dynamic-pvc-pfsl3
静态挂载并行文件存储
1. 创建持久卷PV
YAML
1apiVersion: v1
2kind: PersistentVolume
3metadata:
4 name: static-pv-pfsl3
5spec:
6 accessModes:
7 - ReadWriteMany
8 capacity:
9 storage: 100Gi
10 csi:
11 driver: csi-pfsl3plugin
12 volumeHandle: <pfsl3Address>;<subpath>
13 persistentVolumeReclaimPolicy: Retain
| 参数 | 参数说明 | 配置值选项 | 是否必须 |
|---|---|---|---|
| metadata.name | pv名称,用户根据自身需求进行配置 | 字符串 | 必配 |
| spec.accessModes | 访问模式 | ReadWriteMany | 必配 |
| spec.capacity.storage | 容量 | 值类型 | 必配 |
| spec.csi.driver | csi的driver类型 | csi-pfsl3plugin | 必配 |
| spec.csi.volumeHandle | 存储的句柄 | <pfsl3Address>;<subpath> |
必配 |
| persistentVolumeReclaimPolicy | 存储空间的回收策略 | Retain | 选配 |
2. 创建持久卷声明PVC
YAML
1apiVersion: v1
2kind: PersistentVolumeClaim
3metadata:
4 name: static-pvc-pfsl3
5 namespace: train
6spec:
7 volumeName: static-pv-pfsl3
8 accessModes:
9 - ReadWriteMany
10 resources:
11 requests:
12 storage: 100Gi
3. 检查PVC状态为Bound,并且与对应的PV绑定
YAML
1# 查看PVC状态
2[root@cce-ig-3xyqv7tu-arymhnji-4cmbup97 ~]# kubectl get pvc -ntrain
3NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE
4static-pvc-pfsl3 Bound static-pv-pfsl3 100Gi RWX <unset> 10s
4. 在Pod中挂载PVC
- Pod和PVC需要在同一个namespace下。
- 当前支持挂载异常恢复,需要在pod的volumeMounts配置中加上mountPropagation: HostToContainer参数。若通过 volumeMounts.readOnly=true设置了只读模式,不要配置mountPropagation,否则异常恢复后挂载传播会导致只读属性失效。
YAML
1apiVersion: v1
2kind: Pod
3metadata:
4 name: my-static-app
5 namespace: train
6spec:
7 containers:
8 - name: pfsl3-test
9 image: registry.baidubce.com/public-tools/fio:3.6
10 command: ["/bin/sh"]
11 args:
12 - -c
13 - ls -lh /data && sleep 360000
14 volumeMounts:
15 - mountPath: /data
16 name: data-vol
17 mountPropagation: HostToContainer
18 volumes:
19 - name: data-vol
20 persistentVolumeClaim:
21 claimName: static-pvc-pfsl3
评价此篇文章

