Noob needs help with setting up virtualized game servers

I’m upgrading my system in a couple weeks here, and will have a decent amount of leftover hardware and am thinking of running game servers for myself and my friends. This will be dual-purpose for fun and as a lab environment. I consider myself decently tech-savvy, considering it is my job, however I have never touched virtualization other than playing around with VirtualBox on old laptops.

The “server” hardware would be a ryzen 3600, 32gb of ram, and a GT 710 or GT 1030 if I can get my hands on one for under $140.

Basically, I want to know the best way of setting this kind of stuff up. I’ve done some reading up on Windows Server 2019, but have also heard of running an opensource baremetal HyperVisor and virtualizing Linux off of that, but i have no clue what would be the best option, or how the set-up would look like, etc etc. I have also read that I may need a DGPU for every VM instance, although I’m not sure if that applies in this sense. Basically, if anyone has virtualized server game experience, I would love some help and tips on what I should look into or plan on doing.

I’d say, give yourself a week or 14 days to play around with different implementations before you consider anything production or play-worthy because there are lots of ways to do this, and what you’re going to end up liking likely has less to do with what “works best” or is “easiest” objectively, and more to do with what you find has useful documentation and works well for you.

Also consider whether you want to / your ISP is OK with, you handing out your own IP for this stuff, or if you need a gateway server.

(I host a Web/Mail/Git/Minecraft Server, and hosted a lot of other (game-)servers before)
I think there are two different questions in your Post:

Is your server hardware powerful enough for virtualization and game servers?

Which I can simply answer with probably yes.
You should have no problem running even decently-sized game servers or very resource-demanding ones(Minecraft eats your RAM).
You won’t even need a DGPU for most if not all gameserver software - You’re not running the game, you’re just running the server software.
(Not having GPUs in (virtualized) servers is the norm and very well supported, the opposite, having a GPU in a virtualized server, is way less common, more complicated and less well supported.)

What virtualization software should I use?
Now, when it comes to the actual virtualization software implementations you have a lot of options, I’ll try to explain them:
If you want to stick with Windows, you could even stick with VirtualBox, or use the more professional Hyper-V from Microsoft. There actually is a free version of Windows Server 2019 for use with Hyper-V(Hyper-V Server 2019). Might not contain a GUI though from what I’ve read.
Unfortunately, only the “Pro” and “Enterprise” versions of desktop windows 8/10 support Hyper-V.
I’ve personally never used Hyper-V, and in general, I wouldn’t recommend it, unless you definitely want to stick with Windows.

Other than that, virtualization usually falls in one of these categories:

  • Hyper-V(see above)
  • Xen-based(old and outdated)
  • VMware ESXi(The “business” solution)
  • Linux/KVM-based(The well-tested, most common/sane solution)

Of note is also that if you just want to run multiple Linux versions on a host that is also Linux(this is a very common thing), you might also want to look into containers:
They’re not quite like a virtual machine, although they run a second Linux instance on your Linux host system(Without the need to sacrifice allocate all your RAM to the VM gods different VMs without overlap).

I’d recommend staying away from Xen, as many consider it a legacy options, and it offers little benefit over KVM, it’s “direct competitor”(They’re both actually open-source projects of the Linux Foundation nowadays). People say there used to be a war between Xen and KVM - well, KVM won.

You can definitely use VMware ESXi, a surprising number of people seem to swear by it, but it does have it’s pitfalls - For example, if you have more obscure hardware like some RAID cards or network adapters, you might simply be out of luck - Because VMware uses it’s own kernel, and thus requires it’s own drivers, you’re dependent on them supporting your hardware, or buying hardware that is supported(VMware is often “the business-solution”, you can get commercial support etc.).
I think there is a free version, but for some of the more useful features you will require a paid license.
I would not recommend it because of the inevitable license cost, and because you likely won’t use most of the “enterprise-grade” features(High Availability, live migration, etc.) that you’d pay the license for.

Linux for virtualization with KVM has kind of become the norm, a lot of the “hyperscalers”, the Amazons of the world etc., seem to swear by it, and it’s not difficult to see why:
Using the Linux kernel means great hardware support, it’s well-tested and reliable, it’s open-source and has a good security track-record, and it’s so configurable that you can probably replicate all the “enterprise-grade” features of all the VMwares and Hyper-Vs of the world for free.
Now, Linux and KVM hardly constitutes a complete system; Think of them more as the “base technology”. On top of that you’ll want some tools for configuration.
There are IMHO two useful, beginner-friendly options for you:
Proxmox or libvirt(with virt-manager).

  • Proxmox is a complete Linux system made for virtualization, with all the fancy features one expects - A comprehensive web GUI, lots of different storage options, container support, etc.
  • libvirt(with virt-manager) is an application that you can install on almost every version of Linux to manage VMs - It looks and behaves a lot like VirtualBox in that sense.
    Actually it’s two applications, a server(libvirtd) that runs the VMs, and a client(typically virt-manager) for managing and displaying them.

Proxmox is probably easiest for you, as it can be administered only via the web GUI, but I personally use libvirt because I’m more familiar with it, and because it works well for my “workstation”-like usecase(I’ve used Proxmox before and it’s good as well).
You could also use VirtualBox on Linux, but why would you when there more powerful, just-as-easy solutions on Linux.

The suggestions that @The_DM_Barlow gave are very valid - At the end of the day, what matters is can you use it for your usecase, and best way to find out is to try.

Also have you considered just buying a VPS “in the cloud”? You can probably get them for cheaper than the electricity your computer uses(<5$/month), and a proper VPS has the advantage that it’s basically always available, and also has a really fast internet connection compared to residential internet - My VPS has 2.5Gbit/s Up/Down to the internet).

1 Like

Good answer - why not docker though?

Well, I’ve got that note about containers…
While docker doesn’t typically run system containers, it’s built on the same technology as regular “Linux containers”(namespaces, quotas, etc.). I would have counted docker to Linux containers(Linux containers are not just limited to LXC/LXD, it’s a general term for the technology).
Also Linux containers are somewhat out-of-scope for my already way to long forum post, and maybe not recommended for someone just getting started.

1 Like

A fair statement, but I’d still recommend Docker thanks to how relatively easy it is to learn to use and write Composes and other associated YMLs.

The suggestions you received in the forum are very helpful. It would be best if you had a clear idea of what you need, and only after that can you ask specific questions. You will find it useful to look at the situation differently.

Another virtualisation platform option is XCP-NG, xen is not “dead” as claimed above.
I run a pool of XCP-NG hosts in my rack and it works well… and is less of a pain to work with imo than proxmox