PowerFlex snapshots are a block image in the form of a storage volume or LUN used to instantly capture the state of a volume (or a group of volumes) at a specific point in time. They are thin-provisioned and writable, unless the Secure Snapshot and/or Read Only options are selected. Once created, a snapshot becomes a new volume that can be managed like any other volume that is exposed by the storage system. When the snapshot is created with secure snapshots option, it ensures data retention compliance by preventing alteration or deletion until a set expiration time.
Snapshots can be managed through the PowerFlex UI, CLI, or REST API, with automated policies available for creation, retention, and deletion according to predefined schedules. Snapshots and their source volume are organized into a Volume Tree (V-Tree). The V-Tree includes the root volume and all descendant snapshots resulting from that volume. A V-Tree includes not only snapshots that are taken of the root volume at different points in time, but also descendants that are snapshots of snapshots. For example, it is common practice to create a snapshot of a production database, mask any proprietary or private data, then create additional snapshots and provision them to groups such as Development and QA.
PowerFlex snapshots also support the notion of data consistency or consistency group by allowing snapshot creation of a group of volumes to take place as a unit, preserving write-order fidelity. When a snapshot operation takes place and includes a set of volumes, the snapshot is consistent across the participating volumes.
User-driven snapshots offer flexibility and control for creating on-demand copies, allowing users to capture specific database states as needed, such as before implementing updates, changes, or for ad-hoc data protection.
The following steps describe how to create a user-driven PowerFlex snapshot:
1. In PowerFlex UI, under Block > Volumes, select all the volumes that the database resides in, including data, and software volumes, and click Create Snapshot as shown in the following figure:
Figure 12. User-driven snapshot
2. The PowerFlex volumes included in the operation construct a snapshot consistency group. The following dialog is displayed, and the snapshots are created with the specified names and suffixes. For snapshots that are only required for recovery purposes, use the Read Only option (default).
Figure 13. Configuring snapshots
3. The following image shows the snapshot volumes that are created. These snapshots capture a quiesced image of the YugabyteDB database and can be used to start the database with data valid to the time the snapshot was created. To use a snapshot, the snapshot volumes are mapped to the ESXi hosts, VMFS datastores are created and then assigned as hard disk to the database nodes (VMs).
Figure 14. Snapshot list
Policy-based snapshots automate snapshot creation, retention, and deletion processes based on predefined schedules or conditions, ensuring consistency and reliability in snapshot management. This approach improves data protection and reduces administrative overhead compared to user-driven snapshot management.
The following steps describe how to create a policy based PowerFlex snapshot of YugabyteDB database volumes:
1. To create a snapshot policy, in the PowerFlex Manager UI, go to the Protection > Snapshot Policies and then click Create Snapshot Policy to open the policy wizard. In the wizard, enter the policy name, interval, and desired retention period as per the business need.
2. The policy can also be created in a multilevel retention structure (up to six levels), where the intervals build upon one another as minutes/hours/days/weeks. For example, the below image shows a Snapshot Policy that is configured to take a snapshot every 60 minutes, keep 24 of them, a daily snapshot for a week and a weekly snapshot for a month.
Figure 15. Snapshot Policy creation
3. The policy described above can also be created using the following CLI command:
scli --add_snapshot_policy --snapshot_policy_name YDB-SNP-SCHL --snapshot_creation_cadence 60 --number_of_snapshots_per_retention_level 24,7,4
4. After creating the policy, to add the source volumes, select the policy, and then click More Actions and Assign Volumes.
Figure 16. Adding source volume to the policy
5. Select the desired volumes and click Assign Policy.
Figure 17. Assigning volumes to the policy
6. The source volume can also be added to a policy using the following CLI command:
scli --add_source_volume_to_snapshot_policy --snapshot_policy_name YDB-SNP-SCHL --source_vol_id 5d046acb00000003
For more information about PowerFlex snapshots and how to use them, see the Dell PowerFlex: Snapshots Technical White Paper.