Help Understanding File Provisioning/Thin/etc

Hi All,
Forgive me if I am not good at describing this but hear me out. I will describe my interest, which I swear I learned about 6 months ago, and I just can’t find out how/what to do:

  1. Have a bunch of data in TrueNAS Scale Dataset
  2. Share the data to several users where:
    a) Each user does not take up more space than the original dataset does and
    b) If a user changes a file in the dataset, only the changes add to the space required.
    c) Each user’s view of the data is their own and a new user only sees the original dataset until they make changes.

Essentially, all users of the dataset have access to the same data, but as they affect the data or folders in the data, their version is personalized and the size on the disk only increases by their version/changes.

Please help me know what this is and how to seek methods to deploy.

Cheers,

Sounds like you want a base ZFS Dataset that you don’t share out. Then you snapshot it, and clone the snapshot it for each new user.

So yes, that is possible. You have to make a new share for each “clone” and share it out for only 1 user.

All users share the base ZFS Dataset until they make changes. However, if a user modifies a file, depending on the application modifying the file, it is possible that the entire file will be re-written, even with a small number of changes.


Further, changes or additional files to the ZFS base Dataset won’t be reflected, ever, in the user’s clones using the method I describe. That is because the base Dataset’s snapshot is frozen in time at the point when the snapshot was taken.

You can sort of work around this by making another snapshot which will include the base Dataset’s changes or additional files. But, existing users won’t be able to use it unless you manually migrate them over.

That might be okay. You will have to decide.


Please note that while ZFS has some great features, their are times when TrueNAS and or ZFS does not have the flexibility that a user desires. For example, you list this;

2 x 256GB Samsung 850 pro SSD for TrueNAS and Apps

TrueNAS, (both Core & SCALE), do not support sharing the boot-pool storage with other uses, like Apps. It can be done, but is not supported. A boot-pool generally only needs about 16GBytes, though 32GB to 64GB can be useful for specific cases.

Hey yeah I split my mirror pair into extra drives with a special method during install so that I can run apps on the extra space. I found the instructions on here somewhere…

Anyway. Thanks for the great info. I’ll have to figure out how to translate your instructions into some action I can implement. Also, there must be a relatively simple script to run that would update the base data… where you compare the user’s data to the original, copy out the changed files to temporary cache, then look at the new base data and copy over the cached stuff…

What I imagine is a library with notes. And then eventually adding more books so to speak. If that’s a fair example.

I think I’ve got enough info to work with. Thank you.