In this Blog post I am going to try-out the new Pure Service Orchestrator (PSO) Kubernetes CSI Driver Volume Snapshot and Cloning features for the first time using one of my FlashArray volumes which I created during a previous Kubernetes previous Blog.
Persistent Volume Snapshot
Before we start, lets see if we have any existing persistent volume snapshots
$ kubectl get volumesnapshot -n oracle-namespace No resources found in oracle-namespace namespace.
Below is an example Kubernetes YAML file which I will use to perform a storage snapshot of my Oracle 19c database volume called ‘ora-data193’, the snapshot will use the suffix ‘snap’.
--- apiVersion: snapshot.storage.k8s.io/v1alpha1 kind: VolumeSnapshot metadata: name: ora-data193-snap namespace: oracle-namespace spec: snapshotClassName: pure-snapshotclass source: name: ora-data193 kind: PersistentVolumeClaim
We can take a Pure Storage snapshot using the above yaml file e.g.
$ kubectl apply -f snapshot19c.yaml volumesnapshot.snapshot.storage.k8s.io/ora-data193-snap created
We can see our new volume snapshot using kubectl get volumesnapshot again
$ kubectl get volumesnapshot -n oracle-namespace NAME AGE ora-data193-snap 3m2s
You can also use kubectl describe volumesnapshot to see full details

Ok, let’s logon to the FlashArray and see if the Pure Service Orchestrator has performed a snapshot.

Persistent Volume Cloning
Ok, now we have a snapshot let’s use that as the source of a new storage volume.
--- kind: PersistentVolumeClaim apiVersion: v1 metadata: name: ora-data193-clone namespace: oracle-namespace spec: storageClassName: pure-block accessModes: - ReadWriteOnce resources: requests: storage: 20Gi dataSource: kind: VolumeSnapshot name: ora-data193-snap apiGroup: snapshot.storage.k8s.io
Using the above yaml file we can create our new persistent volume with
$ kubectl apply -f clone19c.yaml persistentvolumeclaim/ora-data193-clone created
And check the status with kubectl get pvc (Persistent Volume Claim)
$ kubectl get pvc -n oracle-namespace
NAME STATUS VOLUME CAPACITY ACCESS STORAGECLASS
MODES
ora-data193-clone Bound pvc-0a46648a-3492-4e1c-9e1f-afa1e246ff3e 20Gi RWO pure-block
...


In my next Kubernetes blog post we will look at using the above and other recent learning’s to clone an existing physical Oracle database to into my Kubernetes cluster.
[twitter-follow screen_name=’RonEkins’ show_count=’yes’]