Recommendations for running VMs on a headless server?
Quick overview of my setup: Synology NAS running a whole bunch of Docker containers and a couple of full blown VMs, and an N100 based mini PC running Ubuntu Server for those containers that benefit from hardware acceleration.
On the NAS I have a Linux Mint VM that I use for various desktoppy things, but performance via RDP or NoMachine and so on is just bad. I think it's ultimately due to the lack of acceleration, so I'd like to try running it from the mini PC instead but I'm struggling to find hypervisor options.
VirtualBox can be done headless, apparently, but the package installed via Apt wants to install X/Wayland and the entire desktop experience. LXC looks like it might be a viable option with its web frontend but it appears to be conflicting with Docker atm and won't run the setup.
Another option is to redo the machine with UnRaid or TrueNAS Scale but as they're designed to be full fledged NAS OSes I don't love that idea.
So what would you do? Does anyone have a similar setup with advice?
Thanks all!
Edit: Thanks for everyone's comments. I still can't get LXC to work, which is a shame because it has a nice web frontend, so I'll give KVM a go as my next option. Failing that I might well backup my Docker volumes, blat the whole thing and see what Proxmox can do.
Edit 2: Webtop looks to be exactly what I was looking for. Thanks again for everyone's help and suggestions.
Proxmox is sort of the gold standard for homelab server operating systems. Runs containers and VMs.
If you’re not into Proxmox, look into Fedora Server with Cockpit. Web UI for server management. Fedora CoreOS is an immutable variant of Server that would make more sense for a hypervisor, IMO.
I've been stung too many times by truenas scale and truecharts breaking things so I just redid my entire server set up switching from truenas scale to fedora server 40 with podman and cockpit and it's a bit tricky with selinux but it's been WAY better.
I'm running a few arrs and jellyfin, as well as a vm for home assistant.
I say go with proxmox on the n100 (I use it), there are alternatives kvm/QEMU managers that I heard good things about as well (namely Incus https://github.com/lxc/incus )
But I'd check the performance on the NAS first. They're not really built for VMs so you might be missing hardware features, but I'd check resource usage to see if you're maxing anything out. And try reducing resolution, color depth, etc. to make it easier.
Well indeed, that's why I want to move the VM off the NAS and onto something with some hardware acceleration. Are there any remote frontend options for KVM?
I've heard good things about Proxmox, but I have no direct experience with it. That would be a separate box that manages the VMs and everything, and it has a remote GUI option (webpage I think?).
If you want something on an existing box, just use KVM directly, or a simple frontend like GNOME boxes. I don't know about remote configuration, but once it's set up, do you really need to check in on things remotely? KVM will do hardware acceleration (definitely CPU acceleration, GPU if you configure it properly), and it has no GUI by default.
If you don’t want to go to a proper VM solution like Proxmox or TrueNAS, Mint is still on X so you can SSH into it and run graphical apps through it. Runs remarkably well.
You're overthinking this. You don't need an actual VM for services. Containers are fine. If you're worried about security, go down the Katanor gvisor rabbithole, but you definitely don't need an entire OS and VM running for simple services.
There's no reason containers can't be hardware accelerated. I'm confused by what that statement means.
I'm using plenty of containers, accelerated and otherwise, but I also want a full-blown desktop that I can access from wherever. Even on a wired LAN, streaming that desktop is slow and laggy when it's hosted on my NAS, which I think is due to the lack of hardware acceleration on that system. I want to move the VM to a host that has that feature (currently running Ubuntu Server) but I need a hypervisor that doesn't require its own desktop system to be installed in order to manage it.
Give webtop a try? Granted I haven’t tried anything heavy on it, but it’s been performant enough for me. Here’s a compose file if it stays formatted correctly: