Software

Unraid VM Server

I first learned about the Unraid OS from a Linus Tech Tips videos where they set up multiple gamers to use the same PC, at the same time, with virtualized OS and separate dedicated GPUs for each person. This really sparked my interest not because I am a huge gamer but because of the possibilities of running a home lab server that could run multiple operating systems and containers at the same time along with hosting all of my files and backups.

Unraid OS

The Unraid OS allows you to set up sophisticated networked attached storage configurations run containers and virtual machines on a wide variety of hardware. You can download a 30-day trial off their website but the purchase is very reasonable at any level of configuration especially for the power it provides.

Unraid Website

The only thing you need to get started is a USB stick that will permanently be used to hold the Unraid OS and to download the USB Flash Creator for either Mac or Windows which makes it simple to load the Unraid OS onto your USB stick. Make sure to select the UEFI option if your motherboard uses a UEFI BIOS.

The basic set up can be seen in this great video from Linus Tech Tips that I mentioned earlier. Here they set up a gaming PC but with a dedicated HDD cage for the raid array.

You don’t need to do all the steps exactly in the video but it is a good baseline. I for one did not have enough storage devices to set up the full raid configuration so I am running without that protection, but if you have enough drives it’s a good idea to do so.

Unraid Dashboard

Hardware Setup

I Purchased the Alienware Aurora R10 Ryzen Edition because I wanted a pre-built system. I could have built my own but I was too lazy to research all the parts. I also think I got a really good deal on the system I paid ~$1300 for my system where they are currently selling the same configuration for over $1700!

Unfortunately, Unraid needs a GPU at boot for the motherboard to boot correctly. Therefore I needed two dedicated GPUs because the Ryzen 3900X processor does not have dedicated graphics built onto the chip, this limits PCIe expandability. For the Unraid GPU, I purchased a cheap Nvidia GEFORCE GT 710 for $35 on amazon, I picked this one because the heat sink was contained in the 1U PCIe slot width. For the VM GPU, I used the Nvidia RTX 1660 Super that came with the Alienware Aurora R10.

In the above image, you can see that I added an HDMI stub to 710 to allow it to initialize on reboot and not capture the more powerful VM GPU connected to my monitor.

I also added 64GB of Hyperx DDR4 so that each VM had sufficient memory, with my main Ubuntu VM getting the lion’s share. I was hoping to get 128GB but the Dell manual states that the motherboard can only support 64GB.

I Added 2 SATA 500GB SSDs for a total of 1TB of Cache storage for VMs. This was set up in single-mode so make sure to change the configuration before they get set up in a default raid configuration. For the shared storage I added 1 large 6TB HDD for most of my shares as well as an old 1TB HDD for temporary storage of ISOs and other downloads. The drawback to the Alienware pre-build is that I could not add an HDD cage to have multiple backup drives. I will eventually swap the old 1TB HDD for a 6TB HDD once I find one in a 2.5in size.

The eagle-eyed might notice an interesting M.2 board next to the Crucial SSD. This is an FPGA board that I am hoping to play around with. We will see if it plays nice with the unraid PCIe passthrough. PCIe and SATA M.2 Expansion board

Home Lab Setup

I wanted to set up a VM server for my home lab so I could experiment with other operating systems, set up dedicated VMs for specific software, and host my files on network-attached storage for easy access on all my other machines.

Using the Storage devices tab in Unraid you can configure your storage devices into Array Devices, which will hold your network shares, and Cache Devices that will run your VMs and accelerate data transfers to your shares when configured to do so. The Boot Device is the USB stick that permanently holds the Unraid OS.

Storage Array devices dashboard

For my network share configuration, I have the default folders along with specific shares for media and code that map only to the 6TB HDD and an iso share on my older 1TB HDD.

File shares dashboard

Once you have all the storage devices and shares configured you can start adding virtual machines. There are several templates for the major OS distributions that help you configure the VM correctly. There are also a plethora of youtube videos on OS specific installs if you get stuck.

VM dashboard

In order to have the graphics card passed through to a VM and be able to hotplug USBs Unraid needs to configure the PCIe bus so that the device controllers are available when the VM is started. If Unraid captures them (by default) they will not be available when the VM tries to access them.

There are many different configurations depending on the hardware you have but I had to split out PCIe ports and reserve one of the USB controllers using the Unraid boot-up options.

USB Passthrough only worked on one of the Alienware Aurora R10 Motherboard USB controllers. I was only able to pass through the non-blue colored USB’s whos controller conveniently contains the Bluetooth chip, so I can get audio out of my Linux VM, and the front panel USB ports! Here is a video of how you can figure it out for your hardware.

Once you get USB hotplug working (which can take a few hours of experimentation) you get the modern convinence that every normal computer has but from within your virtual OS!

My Ubuntu VM will be my main VM that I will do most of my work in, This includes running Vivado, GNURadio, Matlab, and etc.

The Windows 8 Pro VM for windows only software like Fusion360 but I am most likely going to transition to FreeCAD after the Autodesk debacle so this will mostly be for word processing and gaming in Steam.

I also installed a Plex server container so I can stream all my music and videos. This can be easily installed via a community application as a Docker container. I was floored by the software which also organizes and adds metadata to your content, similar to real music streaming services!

Active Community

There are so many other cool things that you can do with Unraid, there is an extremely active community that has so many helpful tools, workarounds, applications, forum posts, videos, and much more.

A quick google search of the problem you are having or for guided instructions usually results in several hits!

Already Paying Off

Now that the server is all set up, it’s time for it to stretch its legs. During the virtual GnuRadio conference I learned about a unique competition called the Radio Resilience Competition, that looks to advance the state of the art in creating reliable radios that are resilient to all kinds of interference. Using my Ubuntu VM I was able to quickly spin up all the docker containers that implement the modem, interferer, and simulation infrastructure. All of which are running GnuRadio. Here is a picture of the VNC into the Ubuntu VM that is running a test scrimmage along with monitoring the channel with Fosphor.

Setup VPN with WireGuard

If you are looking to set up a VPN to your server WireGuard is a simple option, check out my dedicated post on how I set it up!

1 thought on “Unraid VM Server”

  1. Some genuinely nice and utilitarian information on this site, too I believe the design and style holds excellent features. Timi Jefferey Braynard

Comments are closed.