I currently have a FreeNas box and I am planning on adding a dedicated front-end server for my websites, vms, and other stuff and I had an idea. What if I set up this new box as sort of a caching server while my current box as the dedicated storage. This is mostly theoretical but I still think it will be fun.
Here is my idea:
- Assume the front-end box (F) will have 256 GiB of SSD storage the back-end box (B) will have 8 TiB of spinning rust. Both running ZFS.
- I want everything to appear as one unified storage space. I don’t want to worry about mounting either from F or B. I just want to see storage and it all be seamless.
- If the data is in both servers, I want it to come from F. If not, I want to pull the data from B to F and serve the user. This should handle kicking non-frequent stuff out when F gets full (or about 80% full because ZFS)
- This needs to work over “basic” file sharing protocols. NFS, iSCSI, etc. I want to install as little extra programs as possible.
Now the problems:
- How to determine what gets cached?
- How to cache it?
I think this has kind of been handled by RedHat with FS-Cache, but I want to know if anybody has experience with anything like this either on BSD, Linux, or otherwise?