Proxmox VE 6.1 – Open-Source virtualization platform
proxmox.com
proxmox.com
But even better for me, the ease and ability to pass through a GPU and run Windows in a VM while using modifiable resources makes it so flexible.
I've been a customer for over two years and they provide support with a super reasonable yearly subscription of just $99. The forum is active and the updates are recent and up to speed.
But also in the cases when the VMs are never running at the same time. Sometimes the "shop" closes and gaming starts...
I'm looking through the CLI docs now and I can't even figure out how to launch a VM. At face value, it doesn't look like a good CLI (well actually they list a bunch of CLI tools for VM management). Am I just looking in the wrong place?
I also want the ability to run setup commands (think AWS user-data) at first boot. The docs indicate user-data support though cloud-init, but I see forum discussions that indicate that you can only set up basic things like IP addresses, SSH keys, etc. Is there a programmatic way to inject bash commands at first boot?
As far as running bash commands at first boot, in ganeti I have customized their "create" script to include a bash script that installs some packages, clones our Ansible setup, and then runs Ansible to set the machine up. We respin our entire staging cluster every other day (even machines one day, odd the next).
The "qm" page shows:
qm start <vmid> [OPTIONS]
Start virtual machine.pct - controls containers
qm - controls vms
Proxmox's hosts controller does not require being on ZFS itself...you can have multiple drives and filesystems. If it were available to Proxmox and not passed through, it could be allocated only to a particular VM. In case that was your only end goal..
If Proxmox could do this in addition to maintaining port forwarding to these VMs I would be happy.
I too wish it was a built-in Proxmox feature, or at least officially documented...
[1]: https://blog.jenningsga.com/private-network-with-proxmox/
I would recommend it for most businesses honestly
Back several years ago I worked on a project to build a system for making demos of network solutions. We ran Proxmox inside of an ESX virtual machine and then used it to virtualise various pieces of the demo architecture. The ESX image could simply be coped to an external drive for the consultant to use.
Ultimately the company went for a central-lab demo environment instead but it was pretty cool anyway.
The demo itself was stored as a bunch of Ansible playbooks and assorted scrips so it was Git-friendly, to be applied to a generic ESX template.
We built cool things like a canvas-based Visio-like UI that could be used to define VMs / containers / networks and provision at the touch of a button.
Similarly the solution itself would be visualised using a diagram that supported dynamic components like links showing traffic, counters, graphs etc that would show traffic running between the VMs inside the demo.
We also had a central server that would store pre-created demo templates using Ceph that could checked-out for use via a web UI.
Fun times :)
Nifty! What frontend/backend dev stack did you use? Does anything like that exist in OSS, for any virt platform?
The canvas diagram was plain JS and for logos we used SVGs from company official PowerPoint icon pack to make it look consistent.
The backend was Node.js that ran Ansible playbooks that provisioned things via Proxmox API and then configured the VMs as needed.
If I have Mellanox IB cards in my servers, proxmox fails to handle ipoib without a lot of legwork. Compare that to something like oVirt; that supports it out of the box.
There is very little incentive for me to recommend a proxmox subscription to any of my clients because having >= 40 gbit interconnects is far better than using lags on single gbit. High traffic internal applications, (and migration!) benefit so much from those interconnects.
The only upside is now I can build a dedicated visualization machine or grab some old enterprise hardware from Craigslist. My wife is not so amused.
What else is there to take its place? oVirt can't do LXC.
You can also install pve on a debian system if you want the proxmox gui. If you want to do full disk encryption, that's the recommended approach, because proxmox's installer doesn't support it.
My only objection is that it's a 'full-fat' linux distro that needs to run off a real disk (unlike ESXi), however on every other level it's far superior.
> My only objection is that it's a 'full-fat' linux distro that needs to run off a real disk (unlike ESXi), however on every other level it's far superior.
Why not Alpine Linux? I use that in diskless mode https://wiki.alpinelinux.org/wiki/Installation#diskless_mode
My understanding is that alpine is a very light weight linux ditro and isn't a productised, easy to use hypervisor with full control via a gui.
It's a bit like me saying "I like music editing using xxx because it has a tonne of value added, makes it easy, but it requires an amount of hardware resource" and someone replying "pah, I just use a reel-to-reel, some sharp scissors and a roll of tape!" - unless I'm missing something, it's not really comparable.
edit: as tfigment pointed out along side my comment, I'm slightly annoyed that proxmox is a full-fat linux install for the hypervisor. The comparison I tried to make was with vmware ESXi which boots from an SD card or USB stick and is almost entirely held in memory after boot. ESXi has a whole number of other issues attached to it, but the fact I can throw a £10 usb stick in a server and use that as a boot drive, rather than "wasting" two of my SATA/SAS bays to a pair of real disks with the hypervisor installed on is nice.
I've been wanting to do something like that, but I was afraid that the combination of LXC + Docker would blow up due to networking or cgroups or something.
Are you running Docker and LXC containers side by side?
Any documentation on how you did it?
I had a previous home server built around docker, and found it fiddly to get right— most of the services I wanted to deploy didn't already have containers, and there was a lot of outer config stuff to play with, getting the containers to restart properly on reboot, getting DNS to resolve them, getting the right data directories set up as binds.
But that was also in 2016, so it's likely things are a lot better now, and conversely, it's not necessarily clear that a VM-based approach would be a lot better in some of these areas.
Proxmox is opinionated about how storage is allocated (I think lvm-thin is a bad idea), doesn't support docker, and has some quirks about getting the apt repos set up correctly if you're not a paying subscriber. It's fine if you want to use things in their opinionated way, but know that they're not doing any magic to make KVM work. KVM and LXC are the exact same as you'd get from debian out of the box.
PVE is basically Debian with a wonderful web-UI wrapped around KVM/QEMU. You don't really need it, but it sure makes life easy!
It makes sense to use Proxmox at home or in a business on a lot of planes. Ceph usage is not required, and it comes with excellent ZFS support. There are a lot of other great features which Proxmox facilitates.
But it is meant for using the machine mainly as an hypervisor, not as a desktop with the ability to ocasionally run a few virtual machines (in that case kvm+virt_manager or virtualbox are more desktop friendly).
I would like something a bit more fleximble, and was seriously thinking about jumping to Guix or Nix. Does any of you have any input on this? Proxmox is also a candidate, as I could run my old Yunohost side-by-side with Nix, Guix, and others, I guess. I'm just afraid of overcomplexifying my nginx config.
Allso, if I run Guix/Nix on Proxmox, I'll lose the declarative config advantage... Is the opposite possible?
But perhaps Yunohost can be used to model what you have in mind, and once solidified, use it as a base to build VM with precise setup.
Ansible is perhaps the closest you can get to declarative config... See "sovereign" on github - I migrated from it to Yunohost, as things kept breaking and I was looking hands off setup (hence Yunohost), but given that Sovereign is ansible-based - perhaps you can leverage it.
Recently I tried it again when attempting to install Untangle on a system with EFI. Untangle didn’t support EFI so I needed to virtualize it.
I found it too difficult to get software network adapters to work with different physical network cards.
Switched over to VMware ESXi and had vswitch configured within minutes.
YMMV and I’d still recommend Proxmox for simple virtualization projects.
I run a Synology full of spinning rust for backups, archives, and shared file storage. It works reliably and is stupid simple to maintain.
Adjacent to that is a server running Proxmox, and I'm currently working to add Kubernetes/Rancher as a layer on top of that. The Proxmox server has a local SSD array so the VMs have fast low-latency storage. VMs that touch larger files (media server, etc) have an NFS mount to the NAS.
IMHO the financial/maintenance overhead of a second unit is totally outweighed by the easy opportunity to have two performance and reliability tiers (fast homelab vs reliable slow storage), ability to upgrade/change the two units independently of each other, and ability for cohabitants to use the NAS without having to understand/deal with the virtualization stuff.
I'll be running proxmox and VMs off of an nvme drive in a 4x pcie adapter, and the NAS drives using the hotswap bays in the front.. it's a used R710 (iirc), and has 6 3.5" bays (came with 2TB drives, but replacing the raid controller with one that will support larger drives and upgrading to 8TB as time/cost permits).
I could totally drop the home server compute requirement before the NAS requirement as my desktop could handle those chores.
If you are okay with the limited VM hosting capabilities of Freenas (headless VMs and containers on the same network as the file server) then you can use it for that as well.
downside is it's closed source and not free
Setting up networks is a pain in the butt.
Setting up storage is even worse.
Both really require the command line, which shouldn’t be necessary.
I ran Proxmox in production for a year for a small ecom company, but if I had to do it again, I’d go vSphere. It’s worth it.
> If the package ifupdown2 of the Debian network interface manager is installed, it’s now possible to change the network configuration and reload it in the Proxmox web interface without a reboot.
The only thing I miss is a truly compatible Terraform module that lets you create accounts, machines and infrastructure. That would be cool
XCP-NG is also a nightmare due to how half baked Xen Orchestra is.
VMWare ESXi is the only type 1 hypervisor that I would ever recommend to a fellow hacker. You can get a free license for personal use.