The real benefit of using ZFS or btrfs as the storage backend for UrBackup is the forever incremental backup. If you do not use ZFS or btrfs, your incremental backups must be “chained” together. Chaining the incrementals means each subsequent incremental requires the previous incremental to be valid unless you are setup the incremental’s base as the last full backup.
Example:
Full backup on Monday. incremental on Tuesday, incremental on Wednesday, incremental on Thursday. In order to a restore a full machine backup from Thursday, the incrementals from Wednesday and Tuesday must be available and valid as well as the Full from Monday. If any of these are not available or become corrupt, you not be able to perform a restore.
You can set UrBackup to base incrementals off of the last full backup. This is a differential backup. In this case you would require the incremental and the full backup to do a restore.
How does ZFS help? ZFS is a Copy-on-Write file system. As data gets written to the filesystem, only the data in a file that is actually different will get written as new blocks. Any data that is shared between the original file and the updated file is shared. This helps save space.
ZFS COW also provides the mechanism where incremental backups do not require any previous incremental to be available to be valid.
ZFS also offers features like compression and dedup. COmpression will save space as data is written to the disk and dedup will help reduce overall space if there are common blocks between separate files. Dedup is very expensive in regards to CPU and RAM though. Compression is almost free.
Another great feature of ZFS and btrfs is replication. It is very easy under either filesystem to replicate your data block by block to remote storage. This can provide an off site backup of your backups without requiring the clients to communicate with 2 backup servers.
UrBackup saves individual backups as separate ZFS data-sets. UrBackup needs those data-sets to be mounted in order to see the data in order to perform backups and restores. So yes, they need to be mounted. You can set the data sets to unmount but UrBackup will not function properly.