Skip to content

Snapshots

In the ZFS Snapshots section, you can manage all your ZFS snapshots in one place. Let’s go over the various actions you can perform on your snapshots.

In this example we’re going to make 3 kinds of snapshots:

  1. A simple one time snapshot of a dataset
  2. A snapshot with a simple interval and retention policy
  3. A snapshot with a more complex interval and GFS based retention policy

This is the most straight forward way to create a snapshot, it’s a one time snapshot of a dataset. To create a simple snapshot, click on the “New” button in the context menu and fill out the form:

Simple Snapshot Form

Let’s go over the options:

  • Name: The name of the snapshot. This is required and must be unique within the dataset.

  • Pool: The pool that the dataset belongs to, without selecting this the dataset field won’t have any datasets.

  • Dataset: The dataset that you want to snapshot.

  • Interval: This is the interval at which the snapshot will be taken. For a simple snapshot, you can leave this empty or set it to “None”.

  • Recursive: If you want to snapshot all child datasets as well, you can enable this option.

Snapshot with Simple Interval and Retention Policy

Section titled “Snapshot with Simple Interval and Retention Policy”

Snapshot with Simple Interval and Retention Policy

As you can see above we have gotten new options when an interval type is given namely:

  • Interval: You can choose from an array of simple options like Every Minute, Every Hour, Every Day etc.

  • Retention: You can choose between “Simple” retention or GFS. Grandfather-Father-Son (GFS) retention is a long-term backup strategy that organizes backups into hierarchical cycles (typically weekly, monthly, yearly) to balance data retention compliance with storage costs. In this snapshot policy we’re going to stick with “Simple”

  • Keep Last: This is the number of last snapshots you want to keep for this policy, pruning the rest.

  • Max Age (Days): This is the maximum age of a snapshot in days, after which it will be pruned.

Snapshot with Complex Interval and Retention Policy

Section titled “Snapshot with Complex Interval and Retention Policy”

Snapshot with Complex Interval and Retention Policy

In this example we’re going to set up a more complex snapshot policy with a custom interval and GFS retention.

  • Interval: You can choose “Cron Expression” from the interval options, which will allow you to specify a custom cron expression for when the snapshot should be taken. In this example, we’re going to use 0 0 * * * which means the snapshot will be taken every day at midnight.

  • Retention: For the retention policy, we’re going to choose “GFS”. This will allow us to specify how many snapshots we want to keep for each cycle (hourly, daily, weekly, monthly, yearly).

  • Keep Last: This is the number of last snapshots that will be kept on top of the GFS retention policy. For example, if you set this to 2, then the last 2 snapshots will always be kept, regardless of the GFS retention policy.

  • Keep Hourly/Daily/Weekly/Monthly/Yearly: These options allow you to specify how many snapshots you want to keep for each cycle in the GFS retention policy. For example, if you set “Keep Daily” to 7, then the last 7 daily snapshots will be kept.

You can view periodic snapshot(s) of each pool by clicking on the clock button on the left of the refresh button in the table. This will open up a modal that will show you all the periodic snapshot policies for that pool.

Snapshot Periodics

There’s a clock button in the modal that opens in each row that you can use to change the rentention/intervals of that particular periodic snapshot policy.

All periodic snapshots will be named in this way:

zroot/samba@samba-minutely-2026-03-09-15-00

In the case above samba-minutely is the prefix I gave and -2026-03-09-15-00 is the name appended by Sylve’s scheduler.