It would be technically pretty easy to provide an interface to blockstore (dataset) users to create snapshots of their datasets. There is already a command in
bscontrol to make this happen on the FreeNAS side. This is really more of an accounting issue: how do we prevent users from using up all our disk space on backups? There is a mechanism in ZFS to set a quota that applies to the dataset and all its descendants, which would include snapshots and clones. But that does not apply to zvols where the size limit is controlled by the
volsize attribute. So we will have to track the usage ourselves and compare with the project quota.
Then we have to figure out how much to let them do. Create and destroy snapshots of course. Presumably rollback to a previous snapshot.
Maybe this is just all rolled into issue #216 related to blockstore clones. We just say that you create a backup by explicitly creating a clone dataset. Then the same rollback (or promote) interface would apply.