Proposal about Proxmox VE Compatibility for cnMaestro On-Premise
Context
Cambium Networks currently distributes cnMaestro On-Premise as an .OVA image, which works correctly on VirtualBox and VMware environments.
However, in Proxmox VE (KVM/QEMU) —a widely used platform for enterprise and ISP deployments— the .OVA file presents compatibility, stability, and startup issues that prevent cnMaestro from running reliably.
Tests Performed and Results
Conversion from a working VirtualBox VM
A stable cnMaestro installation running under VirtualBox was exported, and its .vdi disk was converted to .qcow2 for import into Proxmox.
Although the conversion was successful and the virtual machine booted, the web interface failed to start, showing the message:
Service Temporarily Unavailable!
Manual extraction and setup from the .OVA file
Following the steps documented in the Cambium Community (reference guide), we:
Extracted the .ova package
Converted the .vmdk disk to .qcow2
Created a new Proxmox VM (SeaBIOS, VirtIO adapters, bridged network)
Restored an existing cnMaestro backup
The VM successfully booted once or twice and briefly allowed web access, but then failed again with the same:
Service Temporarily Unavailable!
Logs indicated that internal services stopped responding properly after reboot.
Nested VirtualBox inside Proxmox
As a last resort, a Linux VM was created in Proxmox, and VirtualBox was installed inside it to run the original cnMaestro .OVA image in a nested virtualization environment.
The outcome was the same: the cnMaestro web portal remained inaccessible, displaying Service Temporarily Unavailable! after a short period.
Conclusion
After several deployment attempts, it is confirmed that the current .OVA image is not stable or fully compatible with Proxmox VE (KVM/QEMU), even after advanced conversion and configuration steps.
Proposal for Cambium Networks
Publish an official Proxmox/KVM-compatible image, provided in a native format such as:
.qcow2 (QEMU/KVM standard disk format), or
.raw (generic disk image format)
Ensure the image includes:
Full VirtIO driver support (for network and disk)
Compatibility with both SeaBIOS and UEFI boot modes
A generic kernel optimized for KVM/QEMU environments
Enables direct installation on Proxmox VE without conversions
Improves system stability and I/O performance
Reduces deployment complexity and risk of service failure
Expands cnMaestro’s compatibility with one of the most widely adopted virtualization platforms among ISPs and system administrators
Request
Given that Proxmox VE has become a leading virtualization solution in many production environments, we respectfully request that Cambium Networks release an official cnMaestro On-Premise image in .qcow2 or .raw format for native compatibility with KVM-based hypervisors.
Is there an estimated timeline or roadmap for publishing such an image?
Hi @micampo - This looks like it might be an AVX issue - did you confirm you have support in the VM? If you run this on the proxmox host we can check for support: cat /proc/cpuinfo | grep -q avx && echo "AVX support detected" || echo "no AVX support in CPU, not installable here"
You shouldnt need to use a virtualbox step at all - were you not able to run qm importovf.. from the files extracted from the .ova? If you share the errors from that too we can dig a bit.
As I mentioned in the text, one of the tests performed was decompressing the contents of the .ova file and then importing the files into PROMOX - this was unsuccessful.
Regarding this command - cat /proc/cpuinfo | grep -q avx && echo “AVX support detected” || echo “no AVX support in CPU, not installable here” - as I mentioned in the text - a link was used for the migration process that mentions this same command, but the process didn’t work either. (Installing cnMaestro on Proxmox)
I’ve already deleted all the virtual machines. Currently, I have a Linux virtual machine in PROMOX, and on top of that Linux, I have VirtualBox, and on top of that VirtualBox, I have cnMaestro… it’s the only survivor that I haven’t deleted yet (the others have already been removed). If it’s helpful to run any command on it, please let me know… because cnMaestro isn’t working there either.
Hi @micampo lets start with exact errors, we can’t really do much with “this was unsuccessful”. Lets start at #1. You attempted to decompress the .ova file. What exact command did you run, and what was the exact output of that command that showed you it was unsuccessful?
PS You seem to be using something like chatgpt for this. I would try to do this without LLM and just follow the steps: this part is hallucination, and does not exist in the guide you referenced: Manual extraction and setup from the .OVA file
Okay, I understand. I’ll try to explain it better:
Points 1 and 2 refer to following the entire process exactly as explained in the link:
Everything was done, the .ovf files were imported… the virtual machine starts in all the scenarios explained, but cnMaestro doesn’t work; it doesn’t load. The message:
Service Temporarily Unavailable!
That’s what I mean.
Chatgpt was used for support, so I don’t see anything wrong with using it correctly.
What I mean by converting the .vdi files to qcow2 is that—on my own initiative (since I wasn’t getting positive results). I took the initiative to convert the .vdi files to .qcow2 to try and get cnMaestro working. I know there’s no guide that mentions this, but I did it on my own initiative, and it didn’t work either. .vdi files have worked for me in other processes on other machines. I thought it might work, but it didn’t, and again, it was my own initiative. But I also get the message:
Service Temporarily Unavailable!
Is that clearer now?
I used chatgpt to help me write the explanation of all the processes I’ve tried. As indicated, I’ve tried three different ways, and none of them work with cnMaestro. In all the processes, the virtual machines start, but cnMaestro doesn’t load.
No problem, it can be helpful sometimes, just watch out for when it invents things! So lets be clear on what you’re trying to run. From your comment:
Currently, I have a Linux virtual machine in PROMOX, and on top of that Linux, I have VirtualBox, and on top of that VirtualBox, I have cnMaestro
Proxmox
Linux with VirtualBox
cnMaestro
Is there something you need in virtualbox? It would be a lot more reliable without all the nested stuff and just installing on Proxmox.
Lets start at the very basics
We agree that the link mentions this command, but you say the process doesnt work - lets get to the exact part that it breaks. What is the result of running this command on proxmox cli?
cat /proc/cpuinfo | grep -q avx && echo "AVX support detected" || echo "no AVX support in CPU, not installable here"
We cannot carry on without AVX support in the CPU, so lets verify this is present first. The symptoms of starting without AVX support is seeing a web interface that says “Service Temporarily Unavailable!”
Alternatively, you could open a support ticket and send in a techdump (do not post those in any public forum, they contain sensitive data)
Is there something you need in virtualbox? It would be a lot more reliable without all the nested stuff and just installing on Proxmox.
R// What I’ve tried to explain is that I’ve created several scenarios, one of which involved creating a Linux virtual machine in Proxmox, installing VirtualBox on that virtual machine, and then running cnMaestro within that VirtualBox environment. This scenario (like all the others) loads cnMaestro, but the webadmin doesn’t load; the same message keeps appearing.
“Service temporarily unavailable!”
What I’d like you to understand is that I created all three scenarios on my own initiative. You should try installing them yourself to verify that they work. For me, it was a failure.
What is the result of running this command on proxmox cli?
R// I followed the steps in the link exactly… the command output is this:
cat /proc/cpuinfo | grep -q avx && echo “AVX support detected” || echo “no AVX support in CPU, not installable here”
AVX support detected
But after creating the PROMOX machine and importing the .ovf file (exactly as explained in the link), the same thing happens… cnMaestro starts but the webadmin doesn’t load (the same error appears):
“Service temporarily unavailable!”
Alternatively, you could open a support ticket and send in a techdump (do not post those in any public forum, they contain sensitive data)
R// We’ve decided to move to the cloud until Cambium has a dedicated image for the Proxmox hypervisor.
You may intermittently experience the “Service Temporarily Unavailable!” error message when running cnMaestro on a non-VMware hypervisor. This is due to how Cambium has the disk mount points configured in fstab; the stock mount points utilize device names (such as /dev/sda1) which expect the virtual disks to be presented in a particular order by the hypervisor. With the stock bindings on Proxmox or Hyper-V, the initial boot may work- but after a reboot if the hypervisor switches the virtual drive order you will run into this exact error.
To resolve the issue, the stock mount point bindings (on BOTH cnMaestro OS partitions) should instead be pointed to a UUID or file system label.
I won’t go into too much detail here, but in short you will need to enumerate the UUIDs for both drives (such as via blkid or lsblk), then via your favorite terminal editor such as nano, update the mount points for /boot and /mnt/data to link to their drive’s respective UUID.
@Hamish - ideally Cambium would update their stock cnMaestro image to use a more resilient mount point system such as detailed above, especially as more and more companies switch away from VMware to other hypervisor platforms such as Proxmox and Hyper-V.
/mnt/data is set to the device name /dev/sdb1 - but if the hypervisor flips the order the drives are presented (which can and does sporadically happen on reboot), /mnt/data will reference the wrong virtual drive; so need to ensure that /mnt/data is instead set to the UUID of the secondary virtual drive (which you will need to enumerate). And since cnMaestro has two OS partitions, need to ensure you update fstab on BOTH of the OS partitions in case of failover/update.
This is very likely to break things. We do not recommend changing things in the appliance, as other parts will make assumptions about them staying as shipped.
Only the UUID in /etc/fstab, which is part of the partition mount point, has been modified… the partition mount points still have the same names in the operating system.