挂载PFS并行文件存储
更新时间:2025-06-05
PFS 概述
并行文件存储服务PFS (Parallel Filesystem Service),是百度智能云提供的完全托管、简单可扩展的并行文件存储系统,针对高性能计算场景提供亚毫秒级的访问能力和高IOPS的数据读写请求能力。同时,百度智能云PFS提供简单、易操作的接口,免去部署、维护费用的同时,最大化提升您的业务效率。更多信息参见PFS说明。
注意:
挂载PFS并行文件存储功能正在内测中,如需使用可提交工单申请。
提前准备
创建PFS实例
-
创建PFS,操作步骤请参考创建并行文件系统。
注意:
PFS实例须与容器集群处于同一VPC内。 - 从页面上获取PFS连接地址,以备后续部署存储插件时使用。
配置示例
动态挂载
- 创建PVC,注意storageClassName需要指定为上述安装插件时填写的storageClass名称。
Plain Text
1# 按需指定PVC存储空间
2$ cat >pfs-pvc.yaml <<EOF
3kind: PersistentVolumeClaim
4apiVersion: v1
5metadata:
6 name: csi-pvc-pfs
7 namespace: default
8spec:
9 accessModes:
10 - ReadWriteMany
11 storageClassName: pfs-sc
12 resources:
13 requests:
14 storage: 50Gi # 用户指定PVC存储空间
15EOF
16$ kubectl create -f pfs-pvc.yaml
- 检查PVC状态为Bound。
Plain Text
1$ kubectl get pvc csi-pvc-pfs
2NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
3csi-pvc-pfs Bound pvc-1ab36e4d1d2711e9 50Gi RWX pfs-sc 4s
- 在 Pod 中挂载PVC,要求 Pod 和 PVC 在同一个 namespace 下。
Plain Text
1apiVersion: v1
2kind: Pod
3metadata:
4 name: test-pvc-pod
5 namespace: default
6 labels:
7 app: test-pvc-pod
8spec:
9 containers:
10 - name: test-pvc-pod
11 image: nginx
12 volumeMounts:
13 - name: pfs-pvc
14 mountPath: "/pfs-volume"
15 volumes:
16 - name: pfs-pvc
17 persistentVolumeClaim:
18 claimName: csi-pvc-pfs
静态挂载
-
创建静态PV和PVC。
通过 pv.spec.csi.volumeAttributes.path 指定需要挂载的路径,该路径为相对于安装插件时填写的parentDir路径的相对路径。- 注意storageClassName需要指定为上述安装插件时填写的storageClass不同的名称,防止被动态创建流程接管。不要求该storageClass在集群中存在,只要PV和PVC的storageClassName一致即可,否则PV和PVC无法互相绑定。
- 例如,按照下述示例yaml创建,则该PV在pfs中的路径为 /kubernetes/exist/some/dir。如果对应的路径不存在,在挂载PV时会自动创建该路径。
Plain Text
1apiVersion: v1
2kind: PersistentVolume
3metadata:
4 name: static-pv-pfs
5spec:
6 accessModes:
7 - ReadWriteMany
8 storageClassName: pfs-static-sc
9 capacity:
10 storage: 100Gi
11 csi:
12 driver: csi-clusterfileplugin
13 volumeHandle: data-id
14 volumeAttributes:
15 # the path is the related path to parentDir
16 path: exist/some/dir
17
18---
19kind: PersistentVolumeClaim
20apiVersion: v1
21metadata:
22 name: static-pvc-pfs
23 namespace: default
24spec:
25 accessModes:
26 - ReadWriteMany
27 storageClassName: pfs-static-sc
28 resources:
29 requests:
30 storage: 100Gi
- 检查PVC状态为Bound,并且与对应的PV绑定。
Plain Text
1$ kubectl get pvc
2NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
3static-pvc-pfs Bound static-pv-pfs 100Gi RWX pfs-static-sc 10s
- 在 Pod 中挂载PVC,要求 Pod 和 PVC 在同一个 namespace 下。
Plain Text
1apiVersion: v1
2kind: Pod
3metadata:
4 name: test-pvc-pod
5 namespace: default
6 labels:
7 app: test-pvc-pod
8spec:
9 containers:
10 - name: test-pvc-pod
11 image: nginx
12 volumeMounts:
13 - name: pfs-pvc
14 mountPath: "/pfs-volume"
15 volumes:
16 - name: pfs-pvc
17 persistentVolumeClaim:
18 claimName: static-pvc-pfs