During my apprenticeship, I was supposed to deal with the topic of Proxmox. But somehow this topic has also found its way into my private life. Now it even runs on my own hardware - a true miracle! 🤯
Virtualization offers numerous advantages:
Proxmox Server Solutions GmbH is an Austrian company that offers three main products:
Although Proxmox is an open-source solution and can be operated without license costs, the company offers a four-tier subscription model. This provides access to a repository with extra-tested packages as well as different levels of support depending on the subscription tier. While this may not be necessary for individual users, it provides additional security and support for medium to large enterprises.
To operate your own Proxmox environment, certain requirements must be met:
The installation of Proxmox is very similar to a normal Linux installation, as it is based on Debian. It’s important to assign a static IP address during installation.
After a successful installation, you will be greeted by the clear web interface of Proxmox.
Note that HTTPS and port 8006 must be used: https://<Static IP>:8006
On the left side, virtual machines and containers are listed. Clicking on a machine provides further information.
Containers and VMs are two different types of virtualization. Containers are lightweight and share the host’s kernel, while VMs are more isolated and have their own kernel.
LXC is an operating-system-level virtualization method for running multiple isolated Linux systems on a single host. It’s similar to a chroot, but offers much more isolation.
Some highlights that make LXC special:
KVM is a full virtualization solution for Linux on x86 hardware containing virtualization extensions (Intel VT or AMD-V).
Some highlights that make KVM special:
Proxmox VE can be clustered to provide high availability and load balancing to virtual machines and containers. This is done by combining multiple Proxmox VE servers into a cluster.
Proxmox supports various network configurations, including classic Linux configurations as well as Open vSwitch (OVS).
Proxmox supports various storage types, including local storage, network storage, and distributed storage. This connections are possible, including CIFS, NFS, iSCSI, and Ceph.
Proxmox VE provides a tool to migrate virtual machines from VMware ESXi to Proxmox VE. This is done by converting the VMWare virtual disk to a Proxmox compatible format.
.vmdk
files to Proxmox.vmdk
files to qcow2
format: qemu-img convert -f vmdk ten4sg.vmdk -O qcow2 /var/lib/vz/images/123/ten4sg
qm importdisk 123 ten4sg local-1-HDD --format qcow2
I have written a script that downloads VMs from vulnhub and imports them into Proxmox. It is called vuln2pve. This uses similar techniques. Since the VMs on Vulnhub are usually available in different formats, these are also converted.
Additional note 26.03.2024: Proxmox has now also released a tool that makes it easier to migrate from ESXi to Proxmox. Proxmox Wiki
Proxmox offers an API that allows Proxmox to be controlled via a script.
This is particularly interesting for larger environments. There is also a Terraform
provider for this API.
There is also an app for Proxmox. This allows you to manage your Proxmox environment from your smartphone. It’s quite useful for checking how the machines are running, but I rarely use it otherwise.