Skip to content

unRAID Tips ​

These are the tips I learnt after using unRAID for more than 2 years now and counting!~ My pain is your gain!

Assign Cache Policy Properly ​

This lesson hits me the hardest!

PRELUDE

I had never paid attention to this until I realize why two of my HDD was failing in a several months interval. I then started to monitor the disk read/write speed on the array. To my surprise, all the video feed recorded by my CCTV camera through Frigate was written 24/7 to my Array drive instead of the faster cache drive SSD for the past two years! Not only that, all my sensor data written to my HomeAssistant VM is also written to the Array!

That explain why my parity check time is so slow all the time.

Whenever there is a write to your Array, the overall disk I/O becomes slow due to the parity writes. So you should avoid writing data to Array as frequent as possible. Those should be triggered at a less frequent interval by Mover.

Without setting the cache policy, you might have noticed the following:

  • Parity Check takes very long time and the speed fluctuates. It never reaches more than 100 MB/s
  • Frequent random write speed on your Array
  • Your cache drive read/write speed is mostly idle

After setting the cache policy in the right way, you should noticed the following:

  • Parity Check averaging 150-250MB/s on SATA3 bus interface
  • Your cache drive read/write should only have values when there is disk activity to access media on them. All read/write to container/VM should all go to Cache drive first if there is still space left.
  • Your Array read speed should only increase when you are accessing data on it. You shouldn't see any write values there UNLESS your Mover task is triggered.

TIP

Use Yes for all media,

Use Prefer for docker app data, system, domains

Reference: https://www.reddit.com/r/unRAID/comments/moceby/which_of_the_default_shares_should_be_on_cacheonly/

Everything goes on cache in some capacity. The difference is if you want the cache option set to yes or prefer.

system, appdata and domains are set to Prefer cache (aka always on cache if there's room) as they're frequently accessed by VM's, the system itself and containers - meaning if you want to let your HDD's spin down, it's better to read that data from cache (There's performance reasons as well but in most use-cases it's actually not a massive deal).

iso is set to cache yes (So write to cache, then move to non-cache when the mover runs) for exactly the reason you specified, it's only used for the installation media. Same for your media shares, set them to cache: yes so download clients download to the cache then the mover will move those files to the pool when you've scheduled it to.

After assignment

Untitled

Backup Cache Drive Folder ​

DANGER

It is VERY IMPORTANT to back up your appdata folder back to the disk array periodically if you use Prefer cache policy for those. Without this backup strategy, you will LOSE ALL YOUR container/VM data if your cache drive ever decided to give up on you ONE DAY.

TODO