Page 1 of 1

Time Machine, ZFS, and extended attributes

PostPosted: Tue May 27, 2025 2:10 pm
by Solidee
Hi everyone I have a zpool containing a number of datasets.

While they’re all being backed up to Backblaze, I’d like some of them to be backed up to Time Machine too.

Time Machine is on a separate APFS volume outside the pool.

My initial approach was to set com.apple.mimic=hfs on the relevant datasets and add them to the Time Machine inclusions. However, each backup started taking forever as over 100GB were copied by Time Machine each backup.

Running tmutil compare between two of these backups revealed that the backups had barely any changes between them. But the fun starts when I compared my latest backup with my current system state.

Basically, Time Machine thought that all files on my ZFS datasets were changed because the extended attributes were different on the dataset versus on the Time Machine backup.

I tried to set xattr=sa on a smaller dataset to test. So far this hasn’t yielded any changes but I’m wondering if:

  • Are the extended attributes supposedly being captured in the dataset correct as far as macOS would be concerned?
  • Are there more steps I can take to try and get this to work?
  • Is getting a dataset incrementally backed up onto Time Machine not currently possible?

Re: Time Machine, ZFS, and extended attributes

PostPosted: Fri Jun 27, 2025 4:41 pm
by Solidee
For the benefit of others who might read this thread in future, the issue appears to be related with Time Machine itself.

I started using Carbon Copy Cloner instead of Time Machine to handle my backups. FYI the setup is as follows:

  • APFS striped RAID (I considered ZVols but I don't care about extra ZFS features on the backup volume)
  • A separate APFS volume for each APFS volume and ZFS dataset I'm backing up
  • Nothing special on the extended attributes front

Unlike Time Machine, CCC sees the extended attributes as the same on both the source and destination, so doesn't copy everything over at once.

Failing that, you can also tell CCC to ignore extended attributes during a backup. By default, it also disables Spotlight for each destination volume.