I've have a ext4 on LVM on linux RAID based NAS for a decade + that runs syncthing and syncs dozens of devices in my homelab. Works great. I'm finally building it's replacement based on ZFS RAID (first experience with ZFS), so lots of learning.
I know that:
- Dedup is a good idea in very few cases (I'm aware of the RAM implications. Let's assume I wait until fast-dedup stabilizes and makes it into my system)
- That most of my syncthing activity is little modifications to existing files
- That random async writes are harder/slower on a zraid2. Syncthing would be everpresent but the load on the new NAS would be light otherwise.
- Syncthing works by making new files then deleting the old one by default, but maybe copy_file_range changes this?
My questions are:
- seeing how ZFS is COW, and syncthing would just constantly be flooding the array with small random writes to existing files, isn't it more efficient to make a dataset out of my syncthing data and enable dedup there only?
- How does this syncthing setting interact with the ZFS dedup settings? copy_file_range Would it override the ZFS setting or do they both need to be enabled?
Update: Version info (Probably):
- Ubuntu 22.04 or 24.04
- kernel 6.5+
- syncthing 1.27.5
- OpenZFS 2.3