Backround/Situation:
I will get an upgrade to my internet uplink in the comming weeks to a 25GBit connection. For this, I am building my own router based on the Minisforum MS-01, which offers plenty of CPU power and comes with 2xSFP+ and 2x2.5GBE ports, and expand it with an Intel E810 2xSFP28 25Gbit PCI-E-card. I have all the hardware at hand and assembled already, so far everything seems to be o.k.
Now for the actual software setup, I do want to use OpenWRT as the router system (the alternative seems to be OPNsense, but I have no experience with that and I used OpenWRT a lot in the past, up to the point where I build my own u-Boot that would boot a custom compiled OpenWRT image over netboot).
Since the machine is quite powerful with a fast uplink and I will most likely have it idling a lot, I do want to also integrate some other features (FTP/HTTP server, possibly tvheadend, maybe a little storage), but I do not want that to interfere with openWRT. So the obvious solution: Virtualisation. I tried around a bit with Proxmox, but found that to be a bit over the top (+ the constant "please buy a license" nagging is a clear no-go for me).
I could of course run OpenWRT as the sole OS on the hardware and try to integrate everything I want into it, but that does not sound like a smart idea for the risk of messing the whole system up when just wanting to adjust some introduced service setting plus some of the software I would want to use is maybe not readily available for OpenWRT.
The more I think about the whole system architecture, the more I wonder if I cannot use OpenWRT directly as a host system that will then host 2-4 virtual machines.
The advantages would be obvious: OpenWRT would have direct access to the hardware and would be in control of everything. It would not rely on an underlying host system to hand through the network cards properly, system stability would be given by the OpenWRT release quality, and I would not have to maintain another system just for the sake of offering virtualisation.
Also, from what I have read, there seem to be some issues with handed through PCI-interfaces in the Linux 6.x-Kernel (KVM DOES NOT WORK AT ALL due to 6.x kernel bug, affects OpenWRT x86/64 snapshots) - so an OpenWRT as the host system would also circumvent that topic and make sure that OpenWRT could provide the best performance possible.
But I could not find any useful information on the internet on whether or not it is possible and/or a good approach to use OpenWRT as the host. What I could find was someone using qemu on OpenWRT to run a VM: Running QEMU guests on OpenWrt with qemu-bridge-helper
Additionally, software support from OpenWRT for some of my setup seems to be a bit limited at the moment, at least the Intel E810-Card does not have drivers integrated yet, though there seems to be a merge request that should fix that: Please add support for Intel E800 network cards -> https://github.com/openwrt/openwrt/pull/17564
So, based on this:
- Is it possible to use OpenWRT as a host for virtual machines?
- If so, is it a good idea? Why[?| not?]
- If so, what would be the recommended approach? Qemu? And is there possibly a LuCI-package that would allow some management of the VMs?
- If not, what would be the recommended approach?