You are looking at the documentation of a prior release. To read the documentation of the latest release, please
visit here.
This guide will give you an overview of how VolumeSnapshot process works in Stash.
The following diagram shows how Stash creates VolumeSnapshot via Kubernetes native API. Open the image in a new tab to see the enlarged version.
The VolumeSnapshot
process consists of the following steps:
At first, a user creates a BackupConfiguration
crd which specifies the targeted workload or targeted PVC.
Stash operator watches for BackupConfiguration
crd.
When it finds a BackupConfiguration
crd, it creates a CronJob
to take a periodic backup of the target volumes.
The CronJob
triggers backup on each scheduled time slot by creating a BackupSession
crd.
Stash operator watches for BackupSession
crd.
When it finds a BackupSession
crd, it creates a volume snapshotter Job
to take snapshot of the targeted volumes.
The volume snapshotter Job
creates VolumeSnapshot
crd for each PVC of the target and waits for the CSI driver to complete snapshotting. These VolumeSnasphot
crd names follow the following format:
<PVC name>-<BackupSession creation timestamp in Unix epoch seconds>
CSI external-snapshotter
controller watches for VolumeSnapshot
.
When it finds a VolumeSnapshot
object, it backups VolumeSnapshot
in the respective cloud storage.
Once the snapsotting is completed, Stash Operator updates the status.phase
field of the BackupSession
crd.
The following diagram shows how Stash restores PersistentVolumeClaims from snapshot using Kubernetes VolumeSnapshot API. Open the image in a new tab to see the enlarged version.
The restore process consists of the following steps:
At first, a user creates a RestoreSession
crd which specifies the volumeClaimTemplates
. VolumeClaimTemplates
hold the information about VolumeSnapshot
.
Stash operator watches for RestoreSession
crd.
When it finds a RestoreSession
crd, it creates a Restore Job
to restore PVC from the snapshot.
The restore Job
creates PVC with spec.dataSource
field set to the respective VolumeSnapshot name.
CSI external-snapshotter
controller watches for PVC.
When it finds a new PVC with spec.dataSource
field set, it reads the information about the VolumeSnapshot
.
The controller downloads the respective data from the cloud and populate the PVC with it.
Once restore process is completed, the Stash operator updates the status.phase
field of the BackupSession
crd.