If your fs implements hard links, no need inside one mount point. But you can't hard link cross mount.
Copies can be good or bad. It depends.
If your fs implements hard links, no need inside one mount point. But you can't hard link cross mount.
Copies can be good or bad. It depends.
So if I have a disk image that takes 1,000 blocks, and clone it - I now have two images that total 1,000 blocks. And if I modify one block in one image, I now have two different images that total 1,001 blocks. With a hardlink the modification would affect both images.
The way I visualise the difference, is that a directory entry points to a file entry, and a file entry points to a list of blocks. A hardlink is a new directory entry that points to an existing file entry. a linked clone is a new file entry that points to the same list of blocks.
Btrfs (and more recently also XFS) supports on-demand, batch dedup which doesn't have any of the downsides of ZFS's always-active dedup. This is an implementation issue, not a categorical problem of block (or extent) dedup.
https://btrfs.readthedocs.io/en/latest/btrfs-man5.html#raid5...
Also, reading stuff like "mostly OK" in a file system doesn't inspire confidence.
DragonFlyBSD's HAMMER filesystem supports on-demand/scheduled dedup using the hammer(8) command, with configurable memory and runtime limits.