Proxmox vs Unraid for "2 gamers 1 CPU" setup

So I opened a thread a few weeks ago trying to do this with one GPU but as far as I can gather it is not possible to bypass the necessary driver block to make my Vega 64 show up as a pro GPU to take advantage of the virtualization features AMD provides for the pro lineup.

So I am waiting for some parts to arrive and try to make this happen, what my setup will look like when all the parts are here:

CPU: i9 9900k
RAM: 2*16GB 3200mhz cl16 Gskill trident z
Mobo: z370 Asrock taichi
VM1 dedicated physical SSD: 1TB Nvme Sabrent rocket
VM2 dedicated physical SSD: 2nd physical 1tb Nvme sabrent rocket
Main hypervisor/OS medium: 16GB intel optane.
Physical Storage disk: 6TB WD Blue HDD
GPU1: Sapphire RX Vega 64 Nitro+
GPU2: Sapphire RX Vega 64 Nitro+
GPU for hypervisor/mainOS: Intel IG graphics from the CPU

Additionally

I have 2 monitors (the hypervisor/OS will display on an LCD monitor I mount on the PC case which will be a touchscreen as well)
2 keyboards and mice and 2 USB headsets.

Target:

I want two users (my two nephews) to be able use a windows VM as if it was a normal physical windows machine no limitations and the usuage will be gaming and casual usage (browsing, streaming,word excel etc)

I want to share 50% of the PC hardware resources to each user or as close to that as I can get (since some will be taken by Promox or unraid)

Passing through an individual nvme for the windows installation of each user and an GPU

My question:

Which of the two (or any other you might have in mind) would be the best solution ?

by “best” I mean in terms of stability, compatibility, and low resource drain.

I want the two VMs to get as close to bare metal performance in gaming as possible.

So the Vega 64 has the reset bug.

Fortunately, gnif and belfrypossum have figured out workarounds that are working fairly well. The patches that you may have seen are obsolete, because they are superceded by the vendor-reset kernel module. The upside compared to a standalone patch is that with a module you do not have to recompile the entire kernel, you only have to build the module and add it in to your current kernel.

So basically, figure out if unraid or proxmox is more friendly to adding in kernel modules. You will need to install the kernel headers at a minimum, and DKMS would be good as well.

Thanks for the heads up I was aware of that issue but I already had one Nitro+ and getting two additional GPUs was not an option for me especially since the same issue exists for other AMD GPUs as well so I had to go with nvidia which introduces other driver under VM issues and generally I do not like to financially support for personal reasons.

Having that said I am still interested in which route would be best suited for my project reset bug aside.

E.G I have 16 threads available and I think that I as long as I do not use dockers etc I dont need to dedicate more than 2 threads (and as far as I see any at all? ?? ) with unraid… proxmox seems to be more heavy or is that not the case?

In general I am interested to hear feedback from people that have used one of the two or both or any other similar sollution thanks.

In theory. But I think you’ll find that in practice you’re going to end up with 4 threads not pinned.

Consider this: You want to use CPU pinning on the VMs. AND you want the two VMs to be balanced.

So if you leave 2 threads from 1 core reserved for Unraid, you can pin a total of 14 threads between the two systems, right?

Except that leaves you 3 dedicated cores per VM plus 1 core split between the two. When you run benchmarks, etc. you’re going to notice really odd performance characteristics (inconsistencies on cpu-bound benchmarks). You definitely want to pin in pairs.

You could try running the vms without CPU pinning but you will most likely experience similar situations (and I suspect with benchmarks running on both VMs, your performance will be lower than tri-core/6 thread dedicated per VM).

Finally, you COULD do 7 threads per and take one thread from one core for one vm, and one thread from another core for the other vm (leaving unraid with 2 threads from two separate cores). I still suspect this will be unlikely to lead to a performance increase over the 6 threads with a good chance of decreasing consistency.

SO I would say just reserve the 2 cores for unraid and use them for a plex docker, hassio in vm, etc.

1 Like

They both are Linux based, and they both use KVM+QEMU for their virtual machines. So in terms of overhead, they are going to be very very similar.

1 Like

So which one of those two (or any other similar solution) would be your preference?

Any particular reason for having that preference (related to the usecase aka 2 gamers 1 CPU, its not going to be a NAS/plex storage solution etc)?

Thanks

So you would prefere unraid for that usecase? Any particular reason for your preference? thanks

I’d personally go with Proxmox, but that is more down to personal preference.

Proxmox VE is open source, while Unraid is not. Unraid does have parts where the source code is available because they are building on GPL software, but the bits that make it different (GUI, etc) are all closed. That is more a philosophical difference than any difference in functionality.

I run Debian almost everywhere I’m installing Linux, so Proxmox is also more appealing to me because of that. It is even possible to install Proxmox on top a stock debian install instructions. Again, this is more a personal preference thing than a concrete difference.

Oh appologies. I wasn’t specifying Unraid over Proxmox. I simply meant that if you DID run Unraid, you’re going to end up in a situation where you most likely want to save 2 cores behind to ensure both VMs are balanced since you can’t really save just 1 core (because performance when you have a single thread available tends to be worse in any scenario I’ve seen…).

As for Proxmox over Unraid… Unraid is probably easier. But it also has a one-time license fee which sounds to be entirely unnecessary for your use case. Although the fact that you are most likely going to wind up with 2 cores left behind no matter which way you skin the cat means you could certainly consider expanding your use-case to the point where maybe Unraid would make sense.

Proxmox probably makes the most sense if for no other reason than the 40 bucks or whatever the entry license costs these days for unraid. Also the Unraid thread proposing adding the reset bug header fix for Vega to Unraid 6.8 went cold and I don’t see anything about it in the release notes. But it MAY work out of box on the newest unraid? (It will still not help whenever a VM crashes, etc. so you’re still going to be dealing with hw resets).

So you think they are equally prone to crashes as far as running two VMs simultaneously goes?

Oh it’s not about crashing because you’re running two VMs simultaneously. It’s about the Vega GPU not resetting itself properly to re-start a VM in general without a hw reset. It’s everything to do with those particular GPUs being less pleasant to work with in VM environments.

AFAIK - the kernel module that was referenced at the top of the thread mitigates the issue, but it doesn’t resolve it. If your VM doesn’t successfuly shutdown properly thaat won’t help.

Either method is going to be relatively similar in terms of performance.

What it boils down to is that, in my opinion, if you didn’t know anything about anything going into it, Unraid is easier (others may disagree, I’m sure). Yet Proxmox is undeniably cheaper. :slight_smile:

Either one you’re going to have issues to overcome in terms of how you accomplish hardware passthrough, configuration quirks, etc.

OH! also Unraid runs off a USB stick FYI. That optane won’t be of any use. HDD speed doesn’t impact performance. It loads into ram and runs from there. Not like “by default” but … afaik… by “only”. (It’s really easy to store a back-up of your config and re-img a new usb in the event that something goes wrong for some reason.