Backup types
Portworx Backup allows you to configure and back up the following types of backup:
- Cloud Native
- Native CSI (on premises or on cloud)
- KDMP with local snapshot (CSI offload)
- Direct KDMP
- Portworx (Portworx cloud snapshots)
Portworx Backup does not currently support VolumeBlock mode backup.
Cloud Native
With cloud providers (AWS EBS, Azure Disk, GCP Disk) Portworx Backup does not support a local snapshot along with offload capability currently as it leverages the native driver from the cloud provider. However backups do not fail, only snapshot exists in cloud snapshots and only Kubernetes resources get offloaded to object store. Offload option is not valid as snapshot already exists.
Native CSI (On premises)
Portworx Backup utilizes the storage provider's CSI driver to create a local snapshot on the array. This default behavior is applicable to all CSI storage providers (Dell, NetApp and so on).
Portworx Backup does not support Offload to S3 option
here and uses only CSI driver to backup data.
KDMP with local snapshot
In Portworx Backup, KDMP driver takes snapshots and later offloads or uploads those snapshots to S3 compliant object store. If you do not want to use cloud native drivers and prefer to use Portworx Backup's KDMP driver, you need to set the backup type as generic in kdmp-config
configmap that resides in kube-system namespace of your application cluster:
BACKUP_TYPE: Generic
In this case Portworx Backup performs the following tasks:
- Takes available snapshot storage class details
- Creates a snapshot
- Uses KDMP to attach the mount point of the PV on the worker node
- Copies the file system contents to object storage
Direct KDMP/Generic (enable the configmap)
This process uses KDMP to attach the mount point of the PV on the worker node and copy the file system contents to object storage.
You need to update the ConfigMap (kdmp-config in kube-system) in your application cluster and add the following string: BACKUP_TYPE: Generic
Portworx (PX drivers) - Extent-based snapshots
Under the extent-based mode, Portworx compares block metadata, called extents, to determine the difference between the local snapshot and the previously uploaded cloud snapshot.
Portworx uses this metadata to calculate the difference between snapshots for upload and does not need to store previous snapshots for comparison. As Portworx reduces the footprint of the locally stored cloud snapshot data significantly. However, Portworx must also upload this metadata to the cloud alongside the cloud snap data, resulting in slightly larger uploads.
While taking extent-based snapshots, Portworx performs the following tasks:
- Takes a snapshot
- Downloads extent data for the previous snapshot from the cloud
- Compares extents, scans for changed blocks or generations
- Uploads the changes and new snapshot metadata
- Deletes the local snapshot
Related topic: