Unraid Ryzen Server Build 2020

The need to migrate Unraid to new low powered hardware has finally arisen. We will be migrating from Dual Xeon LGA 2011 2960’s to a Ryzen 3700x for the homelab. This is going to be so much fun!

The Transition

Moving the Unraid OS from one server to another server is incredibly easy. Normally taking any operating system and migrating it to all new hardware requires a complete re-install, especially if you are changing to completely different chipsets. Sure, in some cases you can do this but it’s normally not recommended because of driver complications and other driver related issues. This is not something you need to worry about with Unraid.

First things first.

Before you unplug the USB with Unraid and plug it into a completely new system, do yourself a favor and go ahead and do a parity sync/check.

Then once that is complete, backup your data to a different system just in case.

Finally, migrate all the hardware you need from the old system, including drives, and slap it into your new system. Don’t forget to grab Unraid! No re-installs required. One thing I always like to do just in case, is grab a screenshot of the drive order within your array. Unraid will remember the drive order but it’s always best to cover yourself whenever possible.

I did the following in Unraid version 6.6.6

  1. Do a parity sync

  2. Back up data

  3. Optional, take screenshot of drive order in the array

  4. Power Down

  5. Unplug USB with Unraid

  6. Move all the drives, HBA cards, GPU’s, etc etc to the new motherboard/CPU or whatever system

  7. Boot to USB

  8. Double check all drives are detected and are in the correct order in the array

  9. Start the array

  10. Done. Boooom Roasted!

What Sorcery is Unraid?

Why is Unraid able to be moved from computer to computer and from different hardware to different hardware with relative ease? Part of the magic with Unraid, aside from the Fel, is with the design and implementation of the linux kernel it runs. Unraid could perhaps be better categorized as an appliance because it’s more dedicated to a specific function than a true operating system would be.


Okay, that’s cool but why?
The reason why you can plug Unraid into virtually any hardware is because every time the system boots, the root file system gets loaded into RAM. So each reboot/boot means you are essentially starting with a fresh copy of the Unraid operating system. Traditional operating systems install the root file system onto some storage medium, like a hard drive or SSD for example. There are pro’s and con’s for this type of behavior, obviously the biggest pro is Unraid being hardware agnostic and another being that if the OS gets broken, rebooting it will restore the OS. Some Plugins can break this ability and there is the possibility of modifications to the OS config data that can break Unraid as well. However, in most cases, booting to safe mode (which skips loading plugins during boot) helps in alleviating potential OS issues or helps to figure out where the issue lies.

The Ryzen Build

Cool now that we talked about that a bit let’s talk about the build and then the why, the who, what, when, the where.

Here is the previous build most of the stuff was migrated to this build.

Why the 3700x?

The primary reason we are ditching the dual Xeons is because the server rack will be stuffed into a closet and I’m afraid of how much heat the server will put out. Moving to Ryzen reduces the heat output significantly but will still be at risk of over heating. The 2690’s have a 250 Watt TDP while the Ryzen 3700x has a TDP of 65 Watts.

Secondly, we are being price conscientious. What I mean is, both cost of the parts and cost of running over the course of a year. While the 3700x isn’t cheap by any means, it does offer a great deal for it’s price. Primarily the number of Cores (8) and it’s performance, being the deal. PassMark gives the Single Threaded score of 2906 and a CPU Mark score of 23838 for the 3700x, which is remarkably good compared to the again 2690’s which score 1870 in Single Threaded benchmarks and 19619. Those are very respectable numbers considering their age but the effects can be seen. The 2690’s struggle to run game servers like Space Engineers where a higher core clock really counts. While the Space Engineers server is multi-threaded, 1 core/thread is doing most of the heavy lifting while the others slack off. Running a Space Engineers server on the 3700x should be a cake walk now. Furthermore, I wanted to match the minimum number of cores a single Xeon 2690 provided, which is also 8 cores 16 threads. This seemed like the sweet spot for my work load.

Why not the 3600x or the 3800x? Well, there are several reasons, let’s look at this comparison provided by PassMark.

Ignoring the price and looking solely at Core count + Single Threaded Rating + CPU Mark Score + TDP, I decided that given my desires for at least 16 threads, the 3600x could be ruled out despite it’s amazing score. I was between the 3600x and the 3700x more times than I can count but eventually the 3700x won me over. Also, I wasn’t entirely sold on a 95 Watt TDP of the 3600x. Now, after sticking to my guns about the minimum number of threads I wanted, I was looking at the 3700x, 3800x, and 3900x. However, I felt like the 3900x was out of my affordability range so I was pretty much back to the 3700x vs 3800x. Looking back at the chart above, the decision was made slightly easier because the 3700x had a lower TDP and very very close scores to the 3800x. Eventually, I pulled the trigger on the 3700x because it was cheaper, had great performance and of course only had a rated max TDP of 65 Watts. Sold.

The Cons

The biggest con of going with Ryzen is the lack of PCI-E lanes. The 3700x plus motherboard will only have a total of 40 PCI-E lanes. This presents us a problem because we are trying to cram so much stuff into the system and not going to have enough lanes for all the daughter cards. We aren’t going to get into too many details here just yet but basically a sacrifice has to be made. I had to choose between keeping 3 of the following and dropping 1:

  • We are keeping the GPU essentially for the first time setup. (for troubleshooting and first boot).

  • Asus Hyper M.2 x16 (more on this later)

  • My highly recommended HBA Card SAS9211-8I for drives

  • Intel x540-T2 10GbE

It was a tough choice to make but I chose to drop the HBA SAS9211-8i card. I would not recommend doing this under normal circumstances. Here is why I ditched the HBA card however. I transfer a lot of data to my Unraid server and I wanted to have as much NVME cache available as possible and keep 1 NVME as an unassigned device for virtual machines. There is a good chance I will stop doing this and move back to using the SAS9211-8I and keeping 1 NVME drive for cache and slapping in an SSD as an unassigned device for any virtual machines. Stay posted on this more to come.

Basically what all this means is, due to the lack of PCI-E lane availability, it will limit the number of PCI-E devices that I can or you can put into the system. The Dual Xeon’s provided 40 lanes each giving me a total of 80, so yeah, big step down. I was able to slap so much stuff into the Xeon build see here —-> link.

Why the ASUS X370?

Well, full disclosure here, a friend gave me the board after he decided to upgrade and because the USB 3.1 port pins were damaged very badly. However, I was already shopping for a b450 board that supported Ryzen 3000 and before the stars aligned and the Asus board landed in my hands. What is particularly awesome about the ASUS ROG Crosshair VI Hero Extreme is that it supports the Ryzen 3700x CPU. It is also my understanding that is supports up to the 3900x, so I have some room to grow if the 3700x doesn’t cut it. Aside from Ryzen 3000 there are some other pro’s of this board that made me follow through with the switch and the primary one is, the ability to split a x16 lane into x8x8 for my NVME drives and also having an on-board nvme m.2 slot.

Now the Asrock Intel board was able to do this but in a much better way through something called bifurcation. Bifurcation is essentially the ability to split a x16 lane into multi lanes, like x8x8 or x4x4x4x4 or x4x4x8. Now the Asus board kind of does this but not to the same level as the Asrock board. The Asus board can only turn the PCI-E 3.0 x16 lane into two x8x8 lanes. This is what gives me the ability to use the Hyper M.2 x16 card with 2 NVME drives. So between that card and the on-board M.2 slot, I can have a total of 3 NVME drives in my Unraid server.

This board does support ECC RAM but I have yet to explore this option as ECC RAM is very expensive. I opted for the fastest cheapest RAM I could find during the time of purchase and landed on Corsair, go figure. Depending on how things go, I may switch to 64GB of ECC RAM in the future but we will cross that road when we get there.

One cool feature worth mentioning about this board too is that it has pins for a speaker. So, I dug around in my chest of junk and found a really old speaker to put in the server. Why do I want a speaker? Well this gives Unraid the ability to communicate with me slightly better, like when the server gets shutdown or reboots for any reason. Also, the motherboard will beep at me when it’s ready to boot to the OS or if there are any issues with it. This makes things a bit more sure-fire for me while the server is in operation.

Why non-ECC RAM?

Because money basically. 32GB of ECC RAM was almost $150 per stick. My goal was 64GB and I just straight up could not afford 64GBs of ECC, so that meant getting the fastest cheapest RAM I could find which happened to be the Corsair LPX 32GB (2x16GB) 3200MHz Kit. The other nice thing about this particular RAM is that the XMP profile works out of the box with the Asus x370 board, so there wasn’t anything I needed to do to make it run at higher speeds.

Now, I have no idea if this higher speed RAM will give me any perceivable gains in performance but I think it will give me some gains somewhere. I wanted to test this out somehow but wasn’t really sure how aside from running the normal benchmarks that you have probably seen all over the place by now.

I’m not really sure what else needs to be said about this so I’m just going to skip to the next part.

Why the 750 Watt PSU?

Well two reasons, it was already in the previous server build and I was just doing a hardware swap AND I needed a PSU that had two 8 pin power connectors for the X370. So it was a win win. Trying to find a lesser wattage power supply with two 8 pins for the CPU’s was a bit of a task that led to frustration pretty quickly. So it wasn’t long until I dropped the idea entirely and just rolled with what I already had. Plus a perk of this PSU is, it is Gold rated which means it will run pretty efficiently even if it isn’t at 90% utilization.

The Asus board does not require both CPU power headers to be live unless you plan on overclocking, which I may experiment with one day.

At idle the server uses about 80 watts of power in it’s current configuration. I’ve seen it use 114 watts while streaming a 4K movie. This is all according to my Cyberpower UPS by the way. Yes I did not test this on the Eaton UPS because it wasn’t convenient at the time of testing.

Why the Quadro P600?

It was laying around doing nothing and I might consider using it for some Plex transcoding jobs but that really isn’t necessary at this point in time because Ryzen seems to be doing a great job so far.

Stock Cooler

I chose to keep the stock cooler on the 3700x because it’s better than the 2000 series and is good enough out of the box. It fits perfectly fine in the Rosewill RSV-L4500 and for now is quiet enough to keep it in there. This might be something I upgrade in the future but I don’t see the need. I’d rather spend the money on more RAM or something else.

The server gives off about 37-42 decibels of noise sitting at idle and about 42-45 decibels while streaming a 4K movie, so pretty quiet overall I would say. I’d take these numbers with a grain of salt because they were recorded with my cell phone. Also, not sure if this is important but it’s probably worth mentioning, the cell phone was about 5 feet away while I was getting a decibel read.

Expansion on the Array and Drive Configuration

In the array what you will see configured is:

  • 2 Parity Disks

  • 2 Data Disks

  • 2 RAID 1 NVME Cache Disks

Outside of the array you will see:

  • 1 NVME drive used as an Unassigned Device

Typically I would plug all of my hard drives into my HBA SAS card. However, as we discussed early, I didn’t do it this time around. I have all of my SATA drives plugged into the motherboard for now. The 2 NVME drives used as cache are sitting in the Hyper M.2 card.

Finally, the single NVME drive sitting in the M.2 slot is used specifically for Virtual Machine storage. The reason why I prefer to have my VM’s outside of the array is for pure performance reasons. Operating systems are typically doing a lot of reads and writes to their storage device and in order to reduce the burden of the array with unnecessary drive activity, I have “offloaded” the work onto the NVME drive.



You should really check out the previous post.

If you haven’t done so already, you should really see this post. 90% of the hardware and 100% of the software is being transferred over to the new server.

Roles and Services

Hopefully you at the very least peaked at the previous post. If not then, here is a TL:DR of the roles and services I am running at home. If you want more details you will need to see the previous post.

Network Attached Storage -NAS

First and foremost, local network storage for the entire house and SPX Labs activities. Unraids’ primary role is give me a way to store all of my precious data and media. If it couldn’t even do that then this entire post probably wouldn’t exist. Unraid makes creating file shares so ridiculously easy, you will wonder why other operating systems can’t make their file share setups more trivial.

Media Encoding Server

See here for more details.

While I use it for less and less media encoding, I still keep the Handbrake docker around for converting gameplay footage into something that Final Cut Pro (FCPX) can ingest. Every now and again, I record my gameplay for YouTube videos and I need to convert the MKV file type to MP4 for FCPX. This makes my life much easier because I can slap the video onto the storage and retrieve it when it’s done, all the while not messing up my work flow.

Network Wide Ad-Blocking

I have setup the docker container for Pi-Hole, this literally blocks an ungodly amount of ads for all of my devices on my network, like the Apple 4K TV, Xbox, Apps, all PC’s, TV’s and more. If it touches the home network the advertisements get blocked. The Unraid community makes this incredibly easy to do and I wish I would have done it sooner.

See here —> Link.

Plex

Servicing Movies and Television for myself at home and abroad. There really isn’t much to say here except the 3700x can easily handle multiple 4K streams and thanks to the Unraid community members, running Plex is easier than ever. Just keep in mind Plex has benchmarks for ideal performance and if you need to stream more than 1 or 2 streams, you can now use Quadro graphics cards within Unraid to transcode multiple streams simultaneously.

VPN

I just started using a combination of OpenVPN and WireGuard. I am slowly making the transition to WireGuard only but this will take some time. Why? So I can remotely manage my server from anywhere in the world AND if I connect to a shady network, I can keep all of my data encrypted. Also, it’s free so why not…

Unifi Controller and Unifi Video

Unifi Controller to manage all of my Unifi devices and help get all my networked devices pointed to the right DNS for ad blocking purposes and Unifi video for all of my IP Cameras. Because both of these run are apps in Docker, they are web accessible within Unraid, which allows me access both of them without needing to memorize their IP addresses. Also I can store any recorded video directly to a file share thanks to easy path integration within the Unraid webUI.

Space Engineers Server

Now that this server is easily capable of running Space Engineers I am going to give it another go again. This is something that I have done time and time again on the old server but always ended up ditching because of Clang. After a couple weeks of the game server running, I would always have to bring it down because there was just too much going on for the server and it would always run hella slow. I will be glad to see this one come back and hopefully stay. Hopefully someone creates an app for it, like the several other game servers available in Community Apps.

No Banner Only Hulk!

In conclusion we can once again see that Unraid provides the ultimate flexibility for pretty much anything you could imagine. The community really makes Unraid an even more amazing product than it already is. My server has but a speck of the insane number of Community Applications available to it. The Community Apps are always updating and great new things are always being added, check out this sample.

Anyway, I truly feel like I could ramble on and on about the various things Unraid is capable of. This is year 5 of running Unraid on the same USB thumb drive that has migrated into at least 3 different systems now, never once have I lost a single byte of data. Unraid has been truly impeccable. I can’t wait to see what the future holds with my server on the Ryzen platform. It feels like Ryzen and Unraid are a match made in heaven and I can only dream of how amazing a 3950x or even Threadripper must be with Unraid.

As always, drop a comment if you have questions. Thank you all and all a have a good night, peace!


Would you like to know more?