SafetyNet is a feature unique to CCC that aims to protect data on your destination volumes. The most common scenario for which this feature was designed was to protect the contents of a volume that was errantly selected as a destination volume. Rather than immediately deleting the contents of that volume, CCC would place that content into a folder named "_CCC SafetyNet". When you realize the configuration mistake, you simply recover the files from the SafetyNet folder and then correct your backup task configuration.
The SafetyNet feature does not know the difference between "old data that needs to be archived" vs. "data on the destination that has nothing to do with the source data set". Because these files are offered the same protection, many users have leveraged the SafetyNet feature as a means for recovering older versions of their files. The SafetyNet folder was never designed for this, and has many shortcomings when used in that regard. Nevertheless, many users have grown used to looking for the older versions of their files in this SafetyNet folder.
To avoid filling up the destination with older, unnecessary data, CCC would prune the contents of the SafetyNet folder when free space drops below a certain threshold (or based on age, or archive size, if you have modified this behavior). When CCC prunes the content of that folder, the space that those files occupies is immediately freed.
Snapshots and the legacy SafetyNet folder are mutually exclusive
When you enable snapshot support on a destination volume that contains a legacy SafetyNet folder, we have a dilemma to resolve. When you create a snapshot on the destination, the traditional pruning becomes completely ineffective at freeing up disk space. Because your oldest snapshot retains a reference to all of the files in the SafetyNet folder, the space that they consume will never be freed until that oldest snapshot is deleted, which may not occur until the destination reaches the free space limit defined in your snapshot retention policy.
To resolve this dilemma, CCC leverages a snapshot to implement the SafetyNet feature when snapshots are enabled on the destination. If you have a legacy "_CCC SafetyNet" folder on the destination, CCC will create a SafetyNet Snapshot of the destination (thus retaining references to every file in the SafetyNet folder), then delete the legacy SafetyNet folder. The files in the SafetyNet folder are not immediately lost because they are retained within the SafetyNet snapshot, however that SafetyNet Snapshot is now subject to the SafetyNet retention limit specified in your destination volume's Snapshot Retention Policy (by default it will be deleted after one week).
Advantages of snapshots over the legacy SafetyNet folder
Leveraging snapshots on the destination resolves several shortcomings of the folder-based SafetyNet with regard to using the SafetyNet for recovering older versions of your files. Please note that these are not advantages specific to the SafetyNet, however, these are general advantages of using snapshots. If you decide to use snapshots on your destination, you should try to avoid thinking about the SafetyNet as your mechanism for restoring older versions of files. When you want to recover older versions of your files, you'll use Backup Snapshots for that purpose. SafetyNet is a safety mechanism that should only be used when something was deleted from the destination that had nothing to do with the source data set.
If you have used the SafetyNet in the past for recovering files, consider the following advantages to using snapshots to recover older versions of your files:
- Bundle files (e.g. your Photos Library) in the snapshot are whole. If you deleted several albums from your Photos Library, you'll have a hard time recovering those from the legacy SafetyNet folder. With snapshots, you don't even need the SafetyNet, because those files are retained in Backup Snapshots.
- You can restore older versions of the operating system.
- Deleting snapshots is really simple, you'll never run into permissions problems or failures of the Finder to empty the Trash.
Disadvantages of the snapshot-based SafetyNet
While snapshots do offer significant advantages to users that want to restore older versions of their files, these come at a small cost to the original purpose of the SafetyNet feature. When items are moved to the legacy SafetyNet folder on the destination, they're still immediately visible to you in the Finder, and you can restore them immediately to their original location via a simple drag and drop procedure. When snapshots are enabled, however, those items are retained by a snapshot, but then deleted from the destination. To restore those items, you must reveal the SafetyNet Snapshot in the Finder, then copy those items back to the destination. That copying procedure will not only take quite a bit longer than a simple move, but it also may be logistically difficult if your destination volume is particularly full. In those cases, you may have to recover the files to a separate volume, delete the SafetyNet snapshot to free space, then copy the files back to the original volume.
While this is not an insignificant drawback of snapshots, we felt that the benefits of point-in-time restores far outweighs this disadvantage as long as the SafetyNet retains its ability to offer protection for files that are unique to the destination.
How do I choose which approach is best for me?
The choice comes down to whether you leverage the SafetyNet feature more as a safety mechanism that protects against configuration mistakes (like picking the wrong destination or accidentally storing stuff on your backup disk thinking it would be "safe" there) vs. using it as a means to recover older versions of your files. If you rarely look to your backups for recovering the older version of a file (or the OS), then enabling snapshots on your backup disk won't offer a lot of benefit over the legacy SafetyNet mechanism. If you've found yourself looking into the SafetyNet for older versions of your files, however, then enabling snapshots on the destination will provide much more reliable results for retrieving older versions of bundle files and of the whole OS.