I use "existing path, least free space". Once a path is created, it keeps using it for new files in that path. If it runs out of space, it creates that same path on another drive. If the path exists on both drives for some reason, my rationale is this keeps most of the related files (same path) together on the same drive.
I see there's some newer "most shared path" options I don't remember that might even make more sense for me, so maybe that's something I'll change next time I need to touch it.
[1] https://github.com/trapexit/mergerfs
[2] https://github.com/trapexit/mergerfs#policy-descriptions
[1] https://blog.georgovassilis.com/2022/10/28/my-home-nas-setup... [2] https://www.snapraid.it/ [3] https://github.com/trapexit/mergerfs
I now run SnapRAID [1] with mergerfs [2] and for my use, it's got many benefits over zfs and normal raid setups:
I could start from my existing volumes, without having to move any files.
I can use my random bunch of varying size disks purchased over several years, and add as needed. I tend to buy a new drive every couple years at whatever cheapest $/GB is, which means usually each drive is 2x the size of the last one I bought.
If something catastrophic fails like the system itself, the disks are just normal independent ext4 volumes - I can read them from basically anything. I've had to recover a RAID5 array using replacement hardware before, it's not fun and not something I want to ever have to do at home.