6 minutes
My Unraid Server Experience
What do I think of Unraid?
First of all I love Unraid , but it’s not for everyone. In 2019 my brother showed me his Unraid server. I really liked the ease of use for containers and how you could also host VMs. The ease of use in Unraid is what has made it popular.
At the time when I started I just wanted to host my Plex Library and run Nextcloud, as well as a VM or two to play with. What I have come to now is much higher requirements from the system for my future plans.
How is my Unraid Tower configured?
I broke out building and testing Unraid into a couple of phases where I just had one simple NVME, and later added a few drives. I wanted to ease into it using docker and VMs and see exactly what I wanted to do with it.
Phase 1: Testing out Unraid
- Case - I found a LianLi little short mid tower .
- CPU - Originally I used a 3700x but moved quickly to the AMD Ryzen 3900X
- Motherboard - Using a B550 AM4 MicroATX , I needed to fit the special mid tower. I felt that microATX gave me more features and best cost to size ratio, as ITX can get expensive as you pay the “size” tax.
- RAM 64GB PC3200 unbuffered ECC - I wanted to use cheaper unbuffered ECC that was AM4 compatible. At the time I setup this computer unbuffered ECC was cheaper than faster non ecc memory so it was a win win. Using some form of ECC was to hopefully save me from some memory errors. See the LTT video on this topic that convinced me.
- Power Supply - Standard 650W ATX Power Supply
- NVME - To start I went with a single Samsung 980 1 TB .
- Video Card - EVGA GTX 980SC I used to use in a SLI config but now use for virtualization passthough.
Initially I wanted a small ITX setup similar to a small QNAP/Synology, but I realized it would be easier with standard ATX power supply and this allows easy replacement should something fail. This moved me toward cases that fit microATX or ITX. I wanted to stay with microATX as you get an extra PCIe slot in addition to the 16x PCIe. This would allow an extra upgrade, maybe 10gig networking, in the future.
With this in mind I obtained a smaller than regular mid tower sized Lian Li case. I always wanted one of these and was impresed with the quality for as inexpensive as it was at the time (early 2020). B550 chipset for microATX was out and hit the feature set I was interested in.
Phase 2: Using Unraid filesystem
- 2x 2.5" WD 2TB SATA drives
- NVME - Additional Samsung 980 1 TB
An additional NVME drive was added and raided the two with BTRFS. This ensured data written to the drives was preserved even if one of the drives failed. At least that was my plan.
Two 2.5" laptop drives were used as the main storage pool. Unraid uses a parity drive to ensure data is saved should any of your array drives go out. I only had 1 drive, the other 2TB drive as my array for storage. The space was more than enough for what my use case was as I had another full NAS to store all of my larger data.
Problems I hit
I then added more and more containers and VMs I started to hit concurrent read / write limits of the single nvme drive. This prompted me to add the 2nd NVME and I wanted to backup the data on the NVMEs so I added the two 2TB sata drives. When I added the 2nd NVME I thought it would be a good idea to have the NVME drives as a miorred BTRFS pair. That was a mistake as it became apparent that both the BTRFS and the mirror wasnt the way to go.
For me I started running more than just a few VMs and I started seeing slugish performance. I added a few Windows VMs and a few linux VMs for testing various tasks. Once I got to a certain point the layout of the VMs didnt work right.
How to get around these problems
As I added some test kubernetes VMs I noticed even more “slowness”. I decided to split the nvme drives up into 2 single drives that had the appdata (docker) and vm drives into seperate NVME drives. This seemed to help the VM speeds but my plan to run 5 kubernetes VMs plus my other 3 VMs on the same nvme drive wouldnt fly.
The best way to do this on unraid would be to have the docker appdata on a single drive, then split VMs across other drives, or even pass through drives to VMs. One of my VMs is a windows machine I use as a cloud gaming box through parsec. This would be great as a VM that I pass the direct hardware to.
Unraid uses the parity system and individual drives to give you the most space possible. But with this you dont get any kind of striping benefits to add speed. These cache drives are the way that we get much more performance out of the system.
Another thing I could do if I had more cache drives was to do file level caching for certain files or directories that I used most often on a seperate drive from my array.
Unraid has some amazing strengths
Some features I really like that makes sense for certain kinds of people.
- Parity only needs 1 or 2 drives for the whole array. You could have up the max number of drives your system supports and allocate only 1 or 2 drives for parity. They are dedicated drives and need to be sized for your array’s biggest disk’s size.
- Plugins are a stable of Unraid as it allows you to extend the system. One of the main plugins is Community Applications, which gives us
- The application catalog via the community apps is, simply put, amazing. People add to this catalog, unvetted, applications that are pre made to work and launch via Docker on Unraid. The number and variety of these apps continues to grow at an even faster rate as time goes on. It is a great tool to find something you want to host and launch it.
- A community can make or break anything. The Unraid community is a great resource that makes Unraid as great as it is now and why the adoption of it has been so high as of late. There are several Youtubers that really help to make it what it is.
Pitfalls: Yep those too
There are a few problems with how Unraid is designed for certain use cases.
- Disk Performance
- Drive Count
- Drive Order
Its made for a certain type home lab person
- People new to homelab
- People who want an easy ability to expand array
- Ease of use for applications in docker
- Ease of use for plugins to the system
Overall
Overall I really like Unraid. I plan to use it in a very certain way going forward where I use its stregnths. Having a seperate NAS and other boxes running the majority of my VMs it the way I will be moving forward.