With Unraid 6.9, it’s pretty easy to add multiple cache pools. The benefit of these pools are you can now have a cache per share in Unraid. When you isolate out the cache duties to a single share you get some side benefits; less likely to see random I/O read/write and less cross talk between shares. The big win here is that you could consider using a very cheap 10K or 15K rpm spinner drive in front of a media share as media is usually long, contiguous writing which will be max performance on a spinner resulting in speeds north of 200MB/s. Cache pools also give way to taking advantage of smaller, high performance SSDs and for those of us on high-drive-bay machines like SuperMicro 826, 836, 837, 846, 847 this can come in handy with SAS SSDs.
Before making this upgrade, my stack consisted of an 800GB HGST SAS SSD for my AppData+Share Caching, a 3.2TB u2 NVMe in a PCIe slot for general swap, and around 100TB of spinners in a single-parity array. I was running Unraid’s mover every few days.
After this upgrade, my stack still is in the 100TB array size but I now run a 3.2TB SAS SSD for media caching (what is now the “Cache” pool) and then a very performant 200GB HGST SAS SSD for AppData and Docker image as shown below:
Disclaimer This setup works well for me because I have daily backups of my entire array so my exposure to my cache drive(s) failing is 24 hours, which is less than how often most people run their mover, and is a level I am comfortable with. If I did not have daily backup of my entire array, I would not bother with such a large media cache pool as it is unlikely to fill. I opted for the large cache so that new content/media is very accessible for a few weeks.
The process to move AppData to another drive is pretty straight forward if you have a standard Unraid install:
- Disable Docker (so nothing is writing to AppData)
- Shut down array
- Add your new Cache drive
- Click “Add Cache Pool” on the array management tab, Main, and name it
It should now show up if you’re in command prompt and check your mnt folder:
- Start your array
- Go to each share and set the cache to your new cache pool. For AppData, I set the “domains” “system” and “appdata” to go to this location. If you’re running VMs you may want go with an alternate pool configuration. For my use-cases, a single, fast drive was sufficient for these three folders.
- Open command prompt and (if you don’t have it, I suggest rsync for this step) copy the content from your previous cache drive to your new cache drive.
You should check your existing cache folder first:
It is worth noting that in my case here, my Cache had “Backups” on it so I ran the mover so that the only folders on my Cache drive were “appdata” “domains” and “system.” If your Cache drive has more then just copy those three folders. Now navigate into your new cache folder and run the rsync command to copy all of the contents. This will not delete anything from your old cache drive.
- Verify / spot check the data looks right
- Start up Docker and be well