ZFS "Bookmarks", and why you don't use them (but should!)

That’s why I put a disclaimer in my OP:

To deal with child datasets, you’ll not only have to make a bookmark for each child’s snapshot, you also won’t be able to use -R in the zfs send command. You’ll need to do an incremental replication (using the bookmarks) for each child dataset. After all children on the destination are brought in to the latest snapshot with the source, you’ll be able to continue with your incremental “Full Filesystem Replications” (-R) like normal.

AFAIK, the ZFS devs have not implemented this yet and I’m not sure they will anytime soon. “Incomplete” features are a feature of OpenZFS.[1][2][3] :wink:

EDIT: This is why a script that handles snapshots automatically on a schedule and recursively (for datasets with children) is recommended, since manually creating bookmarks with the command-line for every snapshot is tedious.

If they are ever integrated into the GUI and middleware, it would be possible for TrueNAS to not only allow batch bookmarking, but also automatic creation, such as an “Also Create Bookmark” option for manual and periodic snapshot tasks.

It would be nice if they were integrated into the TrueNAS GUI and middleware. Maybe someone should create a feature request? :wink:


  1. Bookmarks are not fully implemented to handle children and recursive sends. ↩︎

  2. Encryption can theoretically support multiple keyslots, like how LUKS does, but many years later, this feature has not been implemented. ↩︎

  3. “Corrective” streams are implemented in a fashion that requires you to play a game of elimination in finding out between which two snapshots a corrupted file was first created, rather than automatically only sending a good version of the block from another pool. ↩︎

2 Likes