Leveraging Snapshots on APFS Volumes

Printer-Friendly Version
Product: 
ccc5

movie icon Watch a video of this tutorial on YouTube

What is a snapshot?

Snapshots are a new feature of Apple's APFS filesystem, and they're available on macOS High Sierra and later. A snapshot is a point-in-time representation of a volume on your hard drive. Once the snapshot is taken, each file within that snapshot will be available on the snapshot in its exact state at the moment that the snapshot was taken, even if you delete the file. When you configure CCC to make regular snapshots of your APFS-formatted volumes, you can quickly restore older versions of your files. When you combine snapshots and CCC bootable backups, you can even restore an older version of your Mac's operating system!

Note: Snapshots are only available for APFS-formatted volumes on macOS High Sierra and later.

The Role of Snapshots in a Comprehensive Data Protection Strategy

There are several aspects of data protection that a backup aims to provide. Protection against:

  • Accidental file deletion or modification
  • Malicious file modification (e.g. malware/ransomware)
  • An OS or software update that causes functionality regressions
  • Hard drive failure
  • Computer theft
  • Catastrophic loss (e.g. tornado, hurricane, flood -- loss of both original and backups)

Support for snapshots at the filesystem level is an important and integral component of a backup strategy, but snapshots are not a complete replacement for a true backup on physically separate hardware. If your startup disk fails, all the snapshots in the world aren't going to help you restore your startup disk and data. Having a bootable backup on an external disk will get you back to work immediately.

 
Snapshots
Bootable Backup
Backup to Remote Macintosh
Accidental file deletion
Malware/ransomware
Bad OS update    
Hard drive failure  
Theft  
Catastrophic loss    

When you develop your backup strategy, consider all of the possible risks to your data and decide whether and how you will mitigate those risks. At minimum, we recommend regularly scheduled backups to a locally-attached hard drive. With a regularly scheduled backup, you will have very good protection against the most common risks to your data.

Using snapshots in CCC

When you select an APFS volume as a source or destination to a CCC backup task, CCC will automatically enable snapshot support on that volume and set a default Snapshot Retention Policy for that volume. For basic snapshot support, you don't need to configure any settings; CCC will automatically manage your snapshots using a sensible set of defaults.

Snapshots on the source

Maintaining snapshots on the source volume offers protection against accidental file deletion and modification. When snapshots are kept on the source volume, you don't need your backup volume to recover accidentally-deleted files. Retaining snapshots will increase disk usage over time, however, so we recommend limiting retention of snapshots on the source. This recommendation is specifically imposed by CCC upon the startup disk.

When your backup tasks run, CCC will automatically create a snapshot on an eligible source volume and use that snapshot as the source for the backup task. Because the snapshot is mounted read-only, changes that you make to files while the backup task runs won't cause errors during the backup task – you'll get a true point-in-time backup of your data. If you have snapshots disabled for the source volume (see more on how to do that below), CCC will automatically remove the temporary source snapshot at the end of the backup task.

Snapshots on the destination

If you have CCC's SafetyNet feature enabled, CCC will create a SafetyNet Snapshot of the destination at the beginning of the backup task. CCC will then thin snapshots on the destination according to the Snapshot Retention Policy defined for that volume. At the end of the backup task, CCC will create another "Backup Snapshot" that defines the point-in-time backup for that backup task event.

Toggling snapshot support and setting a Snapshot Retention Policy

CCC considers snapshot support on an individual volume basis. Snapshot support is automatically enabled for a volume when you select that volume (or a folder on that volume) as a source or destination to a CCC backup task. If you prefer that CCC does not automatically enable snapshot support for source and destination volumes, you can disable that behavior in CCC's Preferences window.

To view or change a volume's snapshot support or retention policy, reveal CCC's sidebar, then click on the volume in CCC's sidebar. CCC will list any snapshots currently present on the volume and will display the retention policy for that volume. Remember that snapshot support is limited to APFS volumes. If you select a non-APFS formatted volume in CCC's sidebar, you won't see any snapshot settings.

Toggling snapshots and setting a retention policy

Default retention policy settings

  • SafetyNet snapshots will be retained for 7 days
  • Weekly snapshots will be retained until free space is constrained†
  • Daily snapshots will be retained for 30 days†
  • Hourly snapshots will be retained for 24 hours
  • The oldest snapshots will be deleted when free space is less than 30GB

† CCC applies a more conservative retention policy for the startup disk — weekly snapshots are not retained, and daily snapshots are only retained for 7 days. You can customize those settings if you want a longer retention for snapshots on the startup disk, but be sure to consider the implications this will have on disk usage on your startup disk.

CCC will thin snapshots at the beginning of the backup task, and any time during the backup task if free space becomes constrained (on a destination volume). The retention policy is evaluated in the order listed above, but any snapshot may be deleted if doing so is required to achieve the specified free space limit. The only exception to that is for any snapshots created by other applications, and the snapshot created during the current backup task – CCC will not remove the SafetyNet snapshot that was created at the beginning of the current backup task.

Snapshots created by other applications

During snapshot thinning, CCC will never delete snapshots created by other applications. If you would like to remove snapshots created by another application, click on the relevant volume in CCC's sidebar, select the snapshots you would like to remove, then press the Delete key.

CCC's snapshot retention policy is only applied when snapshots are enabled for that volume

If you disable CCC snapshot support for a volume that contains previously-created CCC snapshots, CCC will not perform automated snapshot thinning on that volume. When you disable snapshot support, you are welcome to delete the snapshots listed above the snapshot toggle button. Simply select one or more snapshots listed in the table then press the Delete key.

The snapshot retention policy defines which snapshots will be retained, not when they will be created

CCC creates snapshots when your backup tasks run, and only when your backup tasks run. CCC will never create snapshots outside of a scheduled or manually-run backup task. As such, a retention policy that saves "up to one snapshot per hour for 24 hours" does not imply that you will have 24 snapshots for the last day. If you have a backup task configured to run only on a daily basis, you should expect to see only one snapshot for the source and destination volumes. If you want to have hourly snapshots, be sure to configure your backup task to run on an hourly basis.

CCC will override your free space limit if that's required to complete a backup

The default free space limit of 30GB will generally ensure that CCC can write 30GB of data to your destination volume during each backup task. If CCC finds more than 30GB of data to copy and runs out of room on the destination, it will remove additional snapshots during the backup task to free additional space. When this "emergency" thinning takes place, CCC will add a notification to your backup task event (in the Task History window), suggesting that you review the Snapshot Retention Policy for your destination volume.

Click on the destination volume in CCC's sidebar to review the Snapshot Retention Policy, and click on the Customize button to customize those settings. When reviewing the free space limit, consider whether your backup tasks generally copy more than 30GB. Specify a value that will leave enough space to accommodate the amount of data that usually gets copied to the destination to avoid the emergency thinning and associated notification.

If you notice that your backup task is suddenly copying a lot more data than usual, please take a moment to look for potential problems. For example, if you have more than one backup task backing up different sources to the same destination, those tasks may be conflicting, removing each others' files. You should also determine if disk usage on the destination is unusually high compared to the source (excluding snapshot disk usage). If the disk usage looks suspicious, or if the amount of data that CCC is copying is difficult to explain, please don't hesitate to contact us for an additional review of your setup.

SafetyNet snapshots vs. Backup snapshots

SafetyNet is a feature unique to CCC that aims to protect data on your destination volume. Suppose, for example, that you have three volumes: Macintosh HD, Backup, and Photos. If you created a backup task and accidentally selected the Photos volume as your destination, most cloning applications would simply erase the destination or delete the files on that volume, with no recourse! With SafetyNet enabled, CCC benevolently retains those items on the destination, but cordons them off to a separate folder so you can recover them later if necessary.

On a snapshot-enabled volume, the SafetyNet is now implemented as a pre-flight snapshot. Before CCC makes any changes to the destination, it will create a "SafetyNet Snapshot" of the destination. Then the task will proceed in the normal manner, copying files from the source to the destination. If you later realize that you had configured the task with the wrong destination, or that you had placed files on the destination volume and they're missing after running your backup task, you can restore those items to the destination from the SafetyNet Snapshot.

At the end of the backup task, CCC will create a second snapshot; a "Backup Snapshot". This second snapshot represents the state of the source for the current backup event. If you ever wanted to restore data back to the original source or to a replacement disk (e.g. because the source disk failed), you would use a Backup Snapshot to restore that data. This is a very important point: you generally will never use a SafetyNet snapshot to restore data back to the original source. SafetyNet Snapshots are used to restore files that were errantly deleted or modified on the destination.

Summarizing, keep these two points in mind:

  • SafetyNet Snapshot icon SafetyNet Snapshots allow you to recover files on the destination that were unrelated to your backup task
  • Backup Snapshot icon Backup Snapshots give you point-in-time restores of the data from your source volume

Do I need SafetyNet? Can I turn it off, or limit the amount of space it uses?

SafetyNet snapshots offer protection from configuration mistakes, e.g. selecting the wrong destination, or using the destination to store files that are not related to the backup task. Because these snapshots have a different purpose, they are managed by a separate retention policy. By default, CCC will remove SafetyNet Snapshots that are more than one week old. If your destination volume is dedicated to your backup task and you never store other files on that volume, then you can reduce the SafetyNet retention value (e.g. to one or two days).

If you're very confident in your tasks' configurations, and your destination is dedicated to the backup task, and your destination does not have a lot of overhead, you can also choose to disable SafetyNet. You can either disable SafetyNet on a per-task basis, or, what we recommend instead, you can set the SafetyNet retention value for your destination volume to zero. With that setting, CCC will still create a SafetyNet snapshot at the beginning of the task, but it will remove all previously-created SafetyNet Snapshots at the beginning of the next task. This configuration gives you a modicum of protection from configuration errors without consuming a lot of extra space on your destination disk.

SafetyNet is a safety mechanism, it's not a strategy for retaining other stuff on your backup volume

Wearing a seatbelt doesn't make it OK to drive into a wall every day. Your backup volume should be dedicated to your backup task. If you want to take advantage of some extra space on your backup disk, you should add a volume to that disk specifically for storing the other data. That other volume will be outside of CCC's purview, thus protected from any unintentional alterations. Open Disk Utility and select your backup disk, then choose Add an APFS Volume... from the Edit menu to add a volume to your backup disk.

Mounting and browsing the contents of a snapshot

If you would like to browse the contents of a snapshot, select that snapshot in the snapshots table, then right-click and choose the Reveal in Finder option. Or, simply double-click on the snapshot. You may then browse the contents of that snapshot in the customary manner in the Finder. The snapshot is mounted read-only, so it is impossible for you to make any harmful modifications to the snapshot. If you would like to restore a single item, you can simply drag the item from the snapshot to wherever you want to restore it to.

Use the contextual menu to mount and browse snapshots

Note: Neither the Finder nor Disk Utility shows mounted snapshots, so you cannot unmount a snapshot in those applications. CCC will indicate when a snapshot is mounted by placing a small green dot on the snapshot creator icon in the snapshots table. You can right-click on a mounted snapshot in CCC and choose the Unmount option to manually unmount a snapshot. For your convenience, however, CCC will automatically unmount any snapshots that it mounted when you quit CCC.

Restoring from a snapshot

CCC offers two methods to restore from a snapshot. The simplest method is to start from CCC's Disk Center:

  1. Click on a volume in CCC's sidebar to view a list of snapshots available on that volume
  2. Select an individual snapshot
  3. Click on the Restore... button

CCC will create a new Restore task, mount the snapshot and select it as the source for the backup task. If the selected snapshot was a SafetyNet snapshot, CCC will select the original destination volume as the destination. If the selected snapshot was a Backup snapshot created by CCC, CCC will select the original source volume as the destination. If the selected snapshot was not created by CCC, click on the Destination selector to choose a destination for the restore task. You may also choose to limit the restore task to a specific set of files and folders.

You can also select a snapshot when configuring a restore task manually:

  1. Create a new task
  2. Select the volume containing the snapshot as the source
  3. Click on the source selector and select a specific snapshot from the contextual menu

Restoring from a snapshot

Restoring system files to your startup disk

macOS does not allow you to modify the operating system while you are booted from it. If you would like to restore your OS from an earlier snapshot, boot your Mac from your CCC backup volume, then you can proceed to restore from a snapshot.

Restoring files to your destination from a SafetyNet Snapshot

SafetyNet is a mechanism that is designed to protect files on your destination volume from accidental deletion. If you errantly selected the wrong volume as a destination, or if you were storing files on your destination that were unrelated to the source data set and you're now missing those files, you can restore those files to your destination from a SafetyNet Snapshot.

  1. Open CCC and select the affected destination volume from CCC's sidebar.
  2. Select the applicable SafetyNet Snapshot in the snapshots table.
  3. Click the Restore... button.
  4. Verify the settings of the task that CCC creates for you, then click the Clone button.

When you proceed with this restore task, CCC will copy the files from the snapshot back to your selected destination. Keep in mind that CCC cannot delete the snapshot that holds the files that you're restoring prior to restoring those files to the destination. As a result, the destination must have enough additional free space to accommodate a copy of all of the files that you're restoring. In some cases, it may not be practical to restore files back to the original destination, you may need to recover them to another disk first.

Related resources:

Snapshots and space concerns; Deleting snapshots

Initially, snapshots do not inherently consume space. When you create a snapshot, the disk usage on the volume containing the snapshot remains unchanged. However, because the snapshot retains references to every file on the volume, space is not freed when you delete a file. Suppose you have a 100GB hard drive with 80GB of content. You create a snapshot, then move 20GB of files to the Trash and empty the Trash. The resulting disk usage is still 80GB. That 20GB of space is not freed until the snapshot is deleted.

This free space behavior is an important factor to consider when you decide whether to enable snapshots for any particular volume, including your startup disk. If you have a hard drive that is particularly full, then maintaining snapshots on that volume may not be a practical solution. In contrast to Time Machine, CCC offers a lot of flexibility in whether snapshots are enabled for a particular volume, and how those snapshots are maintained over time. Additionally, CCC allows you to find and delete specific snapshots with ease. Simply click on a snapshot in the Snapshots table, then press the Delete key to delete that snapshot.

Note: Finder and Get Info windows don't include local snapshots in their calculations of the storage space available on a volume. If you would like to see the amount of space consumed by snapshots on any particular volume, select that volume in CCC's sidebar. The disk usage indicator will show the percentage of space consumed by snapshots, and the snapshots table will indicate the size of each snapshot on the volume. Calculating the size of snapshots is complex and dynamic – as you delete snapshots, the space consumed by adjacent snapshots may change as those snapshots become the last reference holder for files on the disk. This is normal. Also, note that the size of the snapshot indicates how much space would be freed if that snapshot is deleted, it does not indicate the total amount of data referenced by the snapshot.

movie icon Learn more about snapshots and disk usage concerns in this video on YouTube

Frequently Asked Questions

The retention policy says it will save one snapshot per hour. Why don't I see more hourly snapshots on my disks?

To give you the most control over the creation of snapshots on your disks, CCC only creates snapshots when your backup tasks run (this is specifically in contrast to Time Machine's non-configurable hourly snapshots). If your backup task is configured to run on a daily or weekly basis, then CCC will not produce hourly snapshots. The retention policy will keep at most one snapshot per hour for the specified interval, but that does not imply that you will have at least one snapshot per hour for that interval. If you would like to have snapshots created on an hourly basis, then you can schedule your tasks to run on an hourly basis.

Where did the _CCC SafetyNet folder go?

Prior to CCC 5.1, CCC would create a "_CCC SafetyNet" folder at the root of the destination volume if the SafetyNet feature was enabled. As CCC updates the destination, any files that don't exist on the source or that were getting replaced by an updated version would be moved into that SafetyNet folder. With snapshot support in CCC 5.1 and later, that folder is no longer used as part of the SafetyNet mechanism when snapshots are enabled on the destination. Instead, CCC creates a SafetyNet Snapshot at the beginning of the task, then proceeds to update the destination. Older versions of files and files that don't exist on the source are immediately removed from the destination (but still protected by the SafetyNet Snapshot!), so at the end of the task, the source and destination look identical.

If you enable snapshots on an APFS destination volume that has a legacy SafetyNet folder, CCC will first create a SafetyNet Snapshot. After having successfully created the SafetyNet Snapshot (which will retain your legacy SafetyNet folder), the legacy SafetyNet folder is removed. That SafetyNet Snapshot is then subject to the SafetyNet retention setting defined by the Snapshot Retention Policy for your destination volume. If you would like to access the contents of that SafetyNet folder, select the SafetyNet Snapshot, right-click on that snapshot and choose Browse In Finder.

If you're familiar with using the SafetyNet for recovering older versions of your files, please keep in mind that Backup Snapshots are designed for that purpose in CCC 5.1. You should only be looking into a SafetyNet Snapshot if you had kept something on the destination and then lost it after running a backup task.

See also: The legacy SafetyNet folder is not used when snapshots are enabled on the destination

Should I reformat my HDD backup disk as APFS so I can take advantage of snapshots?

While snapshots offer great functionality specific to restoring older versions of a file, the APFS filesystem is still not optimized for HDD devices. Our recommendation mirrors Apple's recommendation at this point — stick with HFS+ for your HDD disks. This is particularly important for bootable backups. As you start to add snapshots to an APFS-formatted volume, the performance of APFS on an HDD drops significantly, making that device more frustrating to use as a bootable device. If you have an HDD destination but an SSD source device, use snapshots on the source to provide point-in-time restore functionality. If your source device is fairly full or is not an SSD, then consider purchasing an SSD for use as a backup device.

I want hourly snapshots, but my destination isn't available every hour of the day. How can I get hourly snapshots on my source volume?

CCC only creates snapshots during a task event, because snapshots are a piece of the backup strategy, not a replacement for it. Snapshots are a convenience, but the true backup requires that your files are safeguarded on a physically different piece of media. Nevertheless, some people would like the convenience of hourly snapshots, but for logistical reasons, can't run a backup task because the destination is not always available (e.g. when you go to work).

To configure CCC to create hourly snapshots on a particular volume, you can configure a new task that copies one folder to another on that same source volume. What gets copied in that case isn't important (in fact the folders can be empty), as long as the folders are both on the same disk. CCC will create and retain snapshots on that volume according to the retention policy that you have defined for that volume.

  1. Create two new folders somewhere on the source volume, named "source" and "destination"
  2. Open CCC and click the New Task button in the toolbar
  3. Drag the source folder onto CCC's Source selector
  4. Drag the destination folder onto CCC's Destination selector
  5. Turn off the SafetyNet feature
  6. Schedule the task to run hourly
  7. Save the task

I just enabled encryption on my APFS-formatted volume. Why am I now getting errors that CCC can't create snapshots?

The APFS filesystem won't make snapshots while encryption conversion is underway. The filesystem doesn't issue a specific error code for this condition, though, so CCC can't present this error condition with more helpful advice, nor just suppress it until conversion completes. Additionally, macOS doesn't provide an interface for third-party applications to determine that conversion is underway for a particular volume, so CCC can't tell that your encrypted volume is currently undergoing conversion. You can type diskutil apfs list in the Terminal application to see conversion progress.

Tags: