IBM / ibm-spectrum-scale-csi

The IBM Spectrum Scale Container Storage Interface (CSI) project enables container orchestrators, such as Kubernetes and OpenShift, to manage the life-cycle of persistent storage.
Apache License 2.0
66 stars 49 forks source link

shallow copy should not create a new fileset #1074

Closed saurabhwani5 closed 9 months ago

saurabhwani5 commented 10 months ago

Describe the bug

when shallow copy is created it creates a new fileset whereas snapshot is referred in this and it is row

How to Reproduce?

  1. Install CSI 2.11.0 with #1067 images:
    NAME                                                  READY   STATUS    RESTARTS   AGE
    ibm-spectrum-scale-csi-attacher-869bd7ff6d-pwlrz      1/1     Running   0          23h
    ibm-spectrum-scale-csi-attacher-869bd7ff6d-rz2gn      1/1     Running   0          23h
    ibm-spectrum-scale-csi-cbx5h                          3/3     Running   0          23h
    ibm-spectrum-scale-csi-operator-bb759f8d8-xsc9m       1/1     Running   0          23h
    ibm-spectrum-scale-csi-provisioner-c48d8df47-v4mfr    1/1     Running   0          23h
    ibm-spectrum-scale-csi-rcprp                          3/3     Running   0          23h
    ibm-spectrum-scale-csi-resizer-54c67667c4-8kx4c       1/1     Running   0          23h
    ibm-spectrum-scale-csi-snapshotter-6f4964bd9b-jrdnh   1/1     Running   0          23h
    [root@saurabhrhel8-master ~]#
    [root@saurabhrhel8-master ~]#
    [root@saurabhrhel8-master ~]# oc describe pod | grep quay
    Image:         quay.io/hemalatha_gajendran/driver_shallowcopy_feature_latest:latest
    Image ID:      quay.io/hemalatha_gajendran/driver_shallowcopy_feature_latest@sha256:73ff90970f5f79a444c2a829b71c4292bbdd25255735fc996ab202c7acb6545c
    Image:         quay.io/ibm-spectrum-scale-dev/ibm-spectrum-scale-csi-operator@sha256:18264e0c9c112856bc2744f7f971a4b60ecb24de57e46af4d35456dcdf8e3cbf
    Image ID:      quay.io/ibm-spectrum-scale-dev/ibm-spectrum-scale-csi-operator@sha256:18264e0c9c112856bc2744f7f971a4b60ecb24de57e46af4d35456dcdf8e3cbf
      CSI_DRIVER_IMAGE:      quay.io/hemalatha_gajendran/driver_shallowcopy_feature_latest:latest
    Image:         quay.io/hemalatha_gajendran/driver_shallowcopy_feature_latest:latest
    Image ID:      quay.io/hemalatha_gajendran/driver_shallowcopy_feature_latest@sha256:73ff90970f5f79a444c2a829b71c4292bbdd25255735fc996ab202c7acb6545c
    [root@saurabhrhel8-master ~]# oc get cso
    NAME                     VERSION   SUCCESS
    ibm-spectrum-scale-csi   2.11.0    True
  2. create sc ,pvc and pod as following:
    
    apiVersion: v1
    kind: Pod
    metadata:
    name: csi-scale-fsetdemo-pod-1
    labels:
    app: nginx
    spec:
    containers:
    - name: web-server
     image: nginx
     volumeMounts:
       - name: mypvc
         mountPath: /usr/share/nginx/html/scale
     ports:
     - containerPort: 80
    volumes:
    - name: mypvc
     persistentVolumeClaim:
       claimName: scale-advance-pvc-1
       readOnly: false

apiVersion: v1 kind: PersistentVolumeClaim metadata: name: scale-advance-pvc-1 spec: accessModes:


apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: ibm-spectrum-scale-csi-advance provisioner: spectrumscale.csi.ibm.com parameters: volBackendFs: "fs1" version: "2" reclaimPolicy: Delete


3. write data inside pod :

root@csi-scale-fsetdemo-pod-2:/usr/share/nginx/html/scale# ls test1 test12 test16 test2 test23 test27 test30 test34 test38 test41 test45 test49 test52 test56 test6 test63 test67 test70 test74 test78 test81 test85 test89 test92 test96 test10 test13 test17 test20 test24 test28 test31 test35 test39 test42 test46 test5 test53 test57 test60 test64 test68 test71 test75 test79 test82 test86 test9 test93 test97 test100 test14 test18 test21 test25 test29 test32 test36 test4 test43 test47 test50 test54 test58 test61 test65 test69 test72 test76 test8 test83 test87 test90 test94 test98 test11 test15 test19 test22 test26 test3 test33 test37 test40 test44 test48 test51 test55 test59 test62 test66 test7 test73 test77 test80 test84 test88 test91 test95 test99

4. take snapshot of pvc:

apiVersion: snapshot.storage.k8s.io/v1 kind: VolumeSnapshot metadata: name: ibm-spectrum-scale-snapshot spec: volumeSnapshotClassName: ibm-spectrum-scale-snapshotclass-advance source: persistentVolumeClaimName: scale-advance-pvc-1

apiVersion: snapshot.storage.k8s.io/v1 kind: VolumeSnapshotClass metadata: name: ibm-spectrum-scale-snapshotclass-advance driver: spectrumscale.csi.ibm.com parameters: snapWindow: "30" #Optional : Time in minutes (default=30) deletionPolicy: Delete

5. create shallow copy as following:

apiVersion: v1 kind: Pod metadata: name: csi-scale-fsetdemo-pod-snapshot-5 labels: app: nginx spec: containers:

Expected behavior

This is the improvement for shallow copy which will reduce time required for shallow copy and inodes will be saved as fileset won't be there

saurabhwani5 commented 9 months ago

verified, Thanks @hemalathagajendran