I am an amateur photographer using a base model MacBook Air (128 GB SSD) with a macOS/Ubuntu 16.04 dual boot. Because the SSD is too small to store my photo library on, I used to store it on a 500 GB 2,5" external HDD that I previously used as a backup drive. Obviously I no longer had a backup of my pictures anymore. Because of this I purchased a 2 TB internal HDD that I use with a 3,5" dock. The latter has now become my 'main' external HDD, with the 2,5" being a backup drive once again.
I formatted the 2 TB drive to ZFS yesterday, because I want to protect my photos against silent data corruption (bit rot). The 3,5" inch HDD was previously formatted to HFS+ and I used Darktable on macOS to manage/edit/whatever :) my photos. Now I will be using Darktable on Ubuntu 16.04 (including its new official ZFS support) with my photo library. I read that ZFS automatically detects and attempts to heal corrupted data by calculating checksums of the data. Then it dawned on me that the self-healing bit is only possible with a mirrored pool. But ZFS could also notify me of a particular photo being corrupted and I could then manually replace it with a copy from the 2,5" backup drive before the backup is polluted with the corrupted version.
Unfortunately I have read that ZFS doesn't appear to notify the user when it detects corrupted files during an automatic checksum calculation/comparison. So my idea isn't possible. Of course I could just mirror the pool with the 2,5" drive, but I don't want to have it plugged in all the time because:
my MacBook Air has only 2 ports which would both be used then, which means I wouldn't be able to use my external keyboard (my cheap USB hub died a while ago and I don't really feel like replacing it ;) )
I don't want to wear down the backup drive unnecessarily
So what would be the best solution for protecting my data against bit rot with the gear I already own? Surely my situation isn't that unique ;)