This section describes how to configure SFS volume mount options. You can configure mount options in a PV and bind the PV to a PVC. Alternatively, configure mount options in a StorageClass and use the StorageClass to create a PVC. In this way, PVs can be dynamically created and inherit mount options configured in the StorageClass by default.
The CCE Container Storage (Everest) add-on version must be 1.2.8 or later. This add-on identifies the mount options and transfers them to the underlying storage resources. The parameter settings take effect only if the underlying storage resources support the specified options.
The Everest add-on in CCE presets the options described in Table 1 for mounting SFS volumes.
Parameter |
Value |
Description |
---|---|---|
keep-original-ownership |
Blank |
Whether to retain the ownership of the file mount point. If this option is used, the Everest add-on must be v1.2.63 or v2.1.2 or later.
|
vers |
3 |
File system version. Currently, only NFSv3 is supported. Value: 3 |
nolock |
Blank |
Whether to lock files on the server using the NLM protocol. If nolock is selected, the lock is valid for applications on one host. For applications on another host, the lock is invalid. |
timeo |
600 |
Waiting time before the NFS client retransmits a request. The unit is 0.1 seconds. Recommended value: 600 |
hard/soft |
Blank |
Mounting mode.
The default value is hard. |
sharecache/nosharecache |
Blank |
How the data cache and attribute cache are shared when one file system is concurrently mounted to different clients. If this parameter is set to sharecache, the caches are shared between the mountings. If this parameter is set to nosharecache, the caches are not shared, and one cache is configured for each client mounting. The default value is sharecache. NOTE:
The nosharecache setting will affect the performance. The mounting information must be obtained for each mounting, which increases the communication overhead with the NFS server and the memory consumption of the NFS clients. In addition, the nosharecache setting on the NFS clients may lead to inconsistent caches. Determine whether to use nosharecache based on site requirements. |
You can set other mount options if needed. For details, see Mounting an NFS File System to ECSs (Linux).
You can use the mountOptions field to set mount options in a PV. The options you can configure in mountOptions are listed in SFS Volume Mount Options.
apiVersion: v1 kind: PersistentVolume metadata: annotations: pv.kubernetes.io/provisioned-by: everest-csi-provisioner everest.io/reclaim-policy: retain-volume-only # (Optional) The PV is deleted while the underlying volume is retained. name: pv-sfs spec: accessModes: - ReadWriteMany # Access mode. The value must be ReadWriteMany for SFS. capacity: storage: 1Gi # SFS volume capacity. csi: driver: disk.csi.everest.io # Dependent storage driver for the mounting. fsType: nfs volumeHandle: <your_volume_id> # ID of the SFS Capacity-Oriented volume volumeAttributes: everest.io/share-export-location: <your_location> # Shared path of the SFS volume. storage.kubernetes.io/csiProvisionerIdentity: everest-csi-provisioner persistentVolumeReclaimPolicy: Retain # Reclaim policy. storageClassName: csi-nas # Storage class name. mountOptions: # Mount options. - vers=3 - nolock - timeo=600 - hard
kubectl get pod | grep web-sfs
Command output:
web-sfs-*** 1/1 Running 0 23m
kubectl exec -it web-sfs-*** -- mount -l | grep nfs
If the mounting information in the command output is consistent with the configured mount options, the mount options are set successfully.
<Your shared path> on /data type nfs (rw,relatime,vers=3,rsize=1048576,wsize=1048576,namlen=255,hard,nolock,noresvport,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=**.**.**.**,mountvers=3,mountport=2050,mountproto=tcp,local_lock=all,addr=**.**.**.**)
You can use the mountOptions field to set mount options in a StorageClass. The options you can configure in mountOptions are listed in SFS Volume Mount Options.
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: csi-sfs-mount-option provisioner: everest-csi-provisioner parameters: csi.storage.k8s.io/csi-driver-name: nas.csi.everest.io csi.storage.k8s.io/fstype: nfs everest.io/share-access-to: <your_vpc_id> # VPC ID of the cluster. reclaimPolicy: Delete volumeBindingMode: Immediate mountOptions: # Mount options - vers=3 - nolock - timeo=600 - hard
kubectl get pod | grep web-sfs
Command output:
web-sfs-*** 1/1 Running 0 23m
kubectl exec -it web-sfs-*** -- mount -l | grep nfs
If the mounting information in the command output is consistent with the configured mount options, the mount options are set successfully.
<Your shared path> on /data type nfs (rw,relatime,vers=3,rsize=1048576,wsize=1048576,namlen=255,hard,nolock,noresvport,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=**.**.**.**,mountvers=3,mountport=2050,mountproto=tcp,local_lock=all,addr=**.**.**.**)