Gaming on a NAS? You better believe it!
A unique and powerful use-case for unRAID is in its ability to combine the capabilities of a powerful gaming rig with a storage server. In today’s blog post, we wanted to cover this use-case and discuss the ever-so-important elephant in the room: what is performance like?
Gaming on a NAS? But…why?
Better question: why not? For the longest time, folks who have had a need for a gaming rig and a NAS have been forced to separate these needs into two separate devices. That’s twice the memory, motherboards, processors, power supplies, cases, and floor space required to satisfy their personal computing needs. But with unRAID’s virtualization technology, this is no longer a requirement. We can safely combine the capabilities of both into a single physical machine, either saving you money, or allowing you to take that extra cash and get better components (CPU, memory, GPU, storage, etc).
How to Do It
The trick to making this work is in having capable hardware. This means a CPU with Intel VT-x and VT-d (or AMD-V and AMD-Vi). It also means having support for this in your motherboard as well. You can check if your system fits the bill using the following resources:
- The Intel ARK site
A great resource for determining if your CPU has support for these features. Just search for your CPU model number and look for VT-x and VT-d support (you will need both). AMD doesn’t have an equivalent of this site, but you can do some basic Google searching on your CPU to determine support for AMD-V and AMD-Vi.
- Your motherboard manual
Most manufacturers indicate in their manual if there is a setting to enable virtualization features as well. The only difficulty is that some manufacturers don’t specifically indicate support for VT-d / AMD-Vi.
- Your motherboard BIOS
Our wiki lists a few example images of the settings you’re looking for, so give that a shot and make sure they are all turned on.
- Community maintained KVM VGA pass through spreadsheet
A spreadsheet is being maintained by a community of users that originated from the Arch linux forums that shows which combinations of hardware / software have been confirmed to work / not work. Just note that any references to embedded graphics working on this spreadsheet should be ignored. A discrete GPU is required, which is required for gaming anyway.
The real key is to making sure the unRAID webGui shows support for both IOMMU and HVM under the Info panel. With both enabled, you should be good to go, but there are still some gotchas out there. If you have difficulty getting this to work, be sure to post in our KVM Hypervisor forum to get assistance.
Testing for Performance with 3D Mark
Having been a hardcore PC gamer my whole life, I can tell you that the #1 thing I look for in a gaming rig is frame rate performance and graphics quality. Any noticeable sacrifices to performance due to virtualization would have been unacceptable, so to measure this, we used one of the most popular gaming benchmark tools available: 3D Mark.
3D Mark breaks down scoring from performing four key tests. The first two tests are primarily focused on stressing the GPU with high quality textures and rapid camera movement, which pushes the GPU hard. The next test after that is designed to stress the CPU to generate rag-doll physics effects. The final test is the combined test, which stresses both the CPU and GPU simultaneously, and is the most important in overall scoring. Once all the tests run, you are returned to the desktop and presented with your scores.
The software also offers a number of different tests designed for different device types, ranging from low-end mobile devices to high-performance PC gaming monsters. For our testing, we ran the Fire Strike benchmark, which is designed for higher-performance gaming rigs.
My Testing System
To run these benchmarks, I utilized my personal workstation at Lime Technology that I’ve nicknamed unJON. Here are the system specs:
- Motherboard: Gigabyte Z87MX-D3H-CF
- CPU: Intel® Core™ i7-4790K (4.00GHz)
- Memory: 16GB G.SKILL Trident X Series DDR3 2400
- GPU: Gigabyte NVIDIA GeForce GTX 780 (GV-N780GHZ-3GD)
In my system, the GPU and CPU are both water cooled, as this was my former gaming rig, but neither were overclocked for the purpose of this benchmark. I wanted a purely stock setup. We’ll experiment with overclocking in a future blog post (sneak preview: yeah, it works).
Running Our Tests
While the primary purpose of this test was to compare physical to virtual machine gaming performance on unRAID, we also wanted to demonstrate the differences in performance with varying VM configurations. As such, we ran four tests in total:
- Test 1: Bare Metal (physical machine; no unRAID)
- Test 2: VM with 8 virtual CPUs assigned
- Test 3: VM with 6 virtual CPUs assigned
- Test 4: VM with 4 virtual CPUs assigned
Another thing worth noting here was that for our bare metal test, all 16GB of RAM was accessible to the OS, but with our VM tests, we only allotted 8 of the 16GB of RAM.
Now in addition to running the benchmark, we also configured our system so that during it, we used NVIDIA ShadowPlay to capture the benchmark video feed in real-time. This allowed us to then put together a video where we time synced the footage captured to show the visual difference. The first clip you’ll see (which has audio) is just the demo, and is not used for generating the benchmark scores. The clips that follow it are each of the benchmark tests themselves.
3D Mark allows us to publish results from our tests to their website so that scores can be verified. Furthermore, they allow you to perform a comparison between tests so you can easily see the differences. Here they are:
- Test 1: Bare Metal; Overall Score: 9431
- Test 2: VM w/ 8 vCPUs; Overall Score: 9254; 98.12% of bare metal
- Test 3: VM w/ 6 vCPUs; Overall Score: 9155; 97.07% of bare metal
- Test 4: VM w/ 4 vCPUs; Overall Score: 8762; 92.91% of bare metal
- Comparison View
Looking at the tests in close detail, you’ll find that the area of biggest variance between our physical and virtual tests was in physics. This makes sense because we are running another entire operating system on top of the machine which does need some resources to operate, albeit a minimal set. That said, when we look at the combined test, that same level of variance isn’t seen. The reality is that while physics are important, they don’t impact overall frame rate as much as they impact how effects appear in game, and from personal play testing experience, I can tell you that I don’t notice any tangible differences.
I’ve been a gamer my whole life. In fact, gaming is ultimately what got me into the technology industry in the first place. I was always fascinated at how a box of silicon and copper could be used to immerse me into a 3D world that was materialized from literally nothing. It got me asking questions, led me to building my own PCs, which in turn led me to starting my first companies. And I know I’m not alone, either! Throughout my career, I’ve met many technology professionals. In candid conversations, many admitted to the same gaming roots as I.
At the same time, I’ve also had a passion for server and storage technology as well, which is why I was a user of unRAID far before I was an employee of Lime Technology. But one of the things that always bothered me was the need to have a financial investment in both a server and a desktop, when I knew the horsepower of either system should have been able to handle both of my needs. While I could have used my Windows machine to act like a NAS, I knew I would be ultimately putting all my eggs in one basket (aka an operating system). But with unRAID 6, we can have more than one basket on a single hardware platform. This enables us to make use of the same underlying hardware to support our need for a storage appliance, an application server, and even a full blown desktop PC, but without adding unnecessary risk and complexity to the system.
This lets us take that extra money we were going to spend for a second system and use it to buy a better processor, more memory, and a beefier GPU, which in turn, makes that little bit of overhead for virtualization all worth it.