I have some files that I want stored mirrored. I have some files that I only need single copies (i.e. scratch data, easily regenerated data, etc). And I have some files that are so critical, I want it mirrored in triplicate so I can handle a 2-disk failure. These sets of data are separated into different directories and could be different fs/volumes/etc.
I want to also thinly provision the data across a pool of disks so that I can expand the pool later, because I don't know how much space each thing will require.
ceph can handle this, but I don't have multiple nodes. I'm only concerned with data recoverability, not high availability, so I don't have the need for something as complex as ceph.
Are there other tools / systems for Linux that can do this? From a cursory look, it seems lvm, btrfs, and zfs all can't do this because they specify their redundancy on a per-disk-in-pool basis, not a per-volume basis.