Ondat Snapshots

Overview

💡 This feature is available in release v2.8.0 or greater.

The Ondat Snapshot feature can be used in conjunction with a backup tooling provider e.g. Kasten K10 or CloudCasa to snapshot, backup and restore Kubernetes applications. Kasten K10 and CloudCasa have been tested and validated with our feature.

The snapshot functionality is useful for:

  1. Disaster Recovery (DR) scenarios.
  2. Rolling back unwanted changes.
  3. Auditing purposes.
  4. Migrating applications between clusters.

What Are Snapshots, Backups & Restores?

A “snapshot” is a point-in-time copy of a PVC. Snapshots are modelled via the VolumeSnapshot and VolumeSnapshotContent Kubernetes API objects.

  • Snapshots have limited use as they live within the cluster and cannot be used to restore the PVC if the node holding the snapshot is lost.

A “backup” is the process of materialising a new PVC, whose data source is a previously created snapshot and then extracting the data to a location outside of the cluster.

  • The Ondat Snapshots feature integrates with Kasten K10 or CloudCasa to provide backup functionality.

A “restore” is the process of restoring an application from a given backup.

  • The Ondat Snapshots feature integrates with Kasten K10 or CloudCasa to provide restore functionality.

How Does It Work?

The Kubernetes Volume Snapshots feature provides users with a set of custom resource definitions (CRD) and APIs to create and manage volume snapshots. Storage providers can then implement the necessary Container Storage Interface (CSI) APIs to integrate with this feature.

This is exactly what we’ve done at Ondat. Additional backup tooling solutions (e.g. Kasten K10 or Cloudcasa) can then be utilised to orchestrate and automate snapshotting, backups and restores.

⚠️ The Ondat Snapshots feature is not fully CSI compliant yet. As of today, the feature can only be used with Kasten K10 or CloudCasa, and with restoration from an external backup.

Current Scope & Limitations

The Ondat Snapshots feature has the following limitations:

  1. The feature has been designed to work with Kasten K10 & CloudCasa only. This is not a fully CSI compliant implementation of the specification yet.
  2. Restoring via Kasten 10 from a “local snapshot” is not supported with the Ondat Snapshot feature. Users may only restore applications using a Kasten K10 “External backup”.
  3. Snapshotting ReadWriteMany (RWX) volumes is not supported. This is because it is next to impossible to ensure that a NFS mounted volume is in a suitable state for snapshotting.
    1. For RWX volumes, the user only has access to the filesystem on the NFS client. It is not possible to run fsfreeze on this mount point – NFS does not support it. Thus the user can not quiesce the filesystem and we can not take a “consistent” snapshot.