Skip to content

CSI Driver NFS

Based on

Snapshots are very slow!

Snapshots are coping data via tar .. $source $targert and that is incredible slow. OpenShift Virtualization runs in timeout, for example, during VM cloning via WebUI. Possible solution, create an VM snapshot with an extralong timeout:

apiVersion: snapshot.kubevirt.io/v1beta1
kind: VirtualMachineSnapshot
metadata:
  name: snapshot-with-60-minute-timeout
spec:
  failureDeadline: 1h0m0s
  source:
    apiGroup: kubevirt.io
    kind: VirtualMachine
    name: rhel9-violet-halibut-12

Deployment via helm

Prepare namespace

1
2
3
4
export NAMESPACE=openshift-csi-driver-nfs
oc create namespace ${NAMESPACE}
oc adm policy add-scc-to-user -n  ${NAMESPACE}  privileged -z csi-nfs-controller-sa
oc adm policy add-scc-to-user -n  ${NAMESPACE}  privileged -z csi-nfs-node-sa

Deploy

Download values.yaml and adjust the NFS-Server and Path in the last lines.

curl -L -O  {{ page.canonical_url }}values.yaml
---
controller:
  resources:
    csiProvisioner:
      limits:
        memory: 1024Mi
    csiSnapshotter:
      limits:
        memory: 1024Mi
    livenessProbe:
      limits:
        memory: 1024Mi
    nfs:
      limits:
        memory: 1024Mi

externalSnapshotter:
  enabled: true
  customResourceDefinitions:
    enabled: false

## StorageClass resource example:
storageClass:
  create: true
  name: nfs-csi
  annotations:
    storageclass.kubevirt.io/is-default-virt-class: "true"
    storageclass.kubernetes.io/is-default-class: "true"
  parameters:
    server: 10.32.97.1
    share: /coe_stormshift_ocp1
    subDir: ${pvc.metadata.namespace}-${pvc.metadata.name}-${pv.metadata.name}
# Do use openshift/csi-driver-nfs because csi resizer is missing
helm repo add csi-driver-nfs https://raw.githubusercontent.com/kubernetes-csi/csi-driver-nfs/master/charts

#  v0.0.0, because we want latest with csi-resizer

helm install csi-driver-nfs \
  csi-driver-nfs/csi-driver-nfs \
  --namespace openshift-csi-driver-nfs \
  --version v0.0.0 \
  --values values.yaml

Create VolumeSnapshotClass

It's missing in the HelmChart: https://github.com/kubernetes-csi/csi-driver-nfs/issues/825

1
2
3
4
5
6
7
8
oc apply -f <<EOF
apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshotClass
metadata:
  name: nfs-csi-snapclass
driver: nfs.csi.k8s.io
deletionPolicy: Delete
EOF

2024-12-18 2024-12-18 Contributors: Robert Bohne