Hypervisors such as Hyper-V and VMWare ESXi have the ability to import disk images within their graphical WebGUI. However, Proxmox unfortunately lacks this feature (see their bug 2424).
Due to this limitation, there is therefore a little bit of additional work needed to get a Virtual Machine (VM) up and running within PVE (though it’s not too difficult a task). Here's the workaround...
What is Proxmox?
Proxmox VE is a complete open-source platform for enterprise virtualization. You can simply manage VMs and containers, software-defined storage and networking, high-availability clustering, and several out-of-the-box utilities on a single solution using the built-in web interface.
In essence it’s a nice point and click web interface to running a hyperconverged platform, both commercial (paid for) and community (free to use) versions are available.
Prerequisites for Loadbalancer.org Proxmox deployment
Here are your prerequisites:
- Running PVE system (well beyond the scope of this document).
- SSH access to the PVE system.
- A ‘Directory’ storage defined which will allow you to store disk images as a file (similar to the below):
How to deploy a Loadbalancer.org appliance on Proxmox VE v7.4
1.Once you have the above items in place, start the VM creation by clicking this button (top right of My deployment):
2.You then need to define a VM as per the following screens (note: proxmox is the hostname of my Proxmox system in use):
I would urge you to use the Advanced options so you can enable settings like “Start at boot”.
3.Provide a Name that’s helpful (I have chosen our default of “lbmaster” for this explanation), and ideally set the appliance to Start at boot.
4.There’s no need to provide a CD/DVD image, so select "Do not use any media”, before proceeding:
Setting the Graphic card to VirtIO-GPU is not essential, but I have found a slight improvement in the graphical output when doing so.
5.If you enable the Qemu Agent you’ll be able to access some stats from the VM within the PVE WebGUI, as well as be able to use buttons such as Shutdown and Reboot.
6.Setting the SCSI Controller to VirtIO SCSI is a requirement, otherwise the VM will not be able to access the hard disk image:
Ensure you use the VirtIO Block bus, and choose the Storage that matches the prerequisite defined earlier (mine is named "qcow").
7.Set the disk size to 20GiB (we’ll replace this later).
8.Allocate the required number of vCPUs (this can be adjusted later if needed). Our default configuration deploys with 2 vCPU cores:
9.Allocate at least 4GiB (4096MiB) of RAM, which is our default and a minimum requirement, this can also be increased later if needed:
10.Ensure the VirtIO network card type is chosen, and that the appropriate bridge device is used (there may only be one):
On this screen, ensure you have the Start after created unselected (don’t start).
11.When you click Finish the system will deploy a new VM, setup disks, network etc. This is how the hardware screen for the VM looks following the deployment steps above:
12. We now need additional network interfaces. I’ll add to a total of 4 (which is our default), ensuring they’re VirtIO and also set to Disconnect (we can connect these later as needed):
13.We also need to add a VirtIO RNG device (this helps with random number generation for SSL connections):
The hardware now looks like this, and we’re almost ready to go:
14.Next we need to head over to the CLI of the Proxmox system, and change to the directory of the image storage. Inside this is a directory called images where the disk images are held. Within this is a directory with the numeric ID of the defined VM (as per the screenshot in step 11. "Virtual Machine 100 'lbmaster' on node"). Change into that directory.
15.Here I’ve downloaded the Loadbalancer.org KVM image archive, and validated the checksum. Once they passed, I unpack the files, and copy the disk image directly over the top of the system generated disk image for the VM.
16.At this point we’ve done all the prep work and are ready to go. I would suggest converting this machine to a template, or at least cloning it to save needing to jump through the above steps again!
17.Then all that’s needed is to start the resultant VM, open a console, run through setup then access the Loadbalancer.org WebGUI:
Let me know if you have any issues, or need any other workarounds, in the comments below!