Sunday 29 September 2024

Playing with Proxmox

 Up until recently I've used Hyper-V for most of my virtualisation needs. Hyper-V is a fully integrated Type 1 hypervisor and comes with most "Pro" versions of Windows 10 and Windows 11, and of course Windows Server. There's plenty of nice stuff with Hyper-V, don't get me wrong - I do like it and retain it. The trouble is - you need Windows for it, and if you don't have a copy of Windows Server, well - that's a bit of a problem. Enter then - PROXMOX! (That's supposed to be dramatic). 

Proxmox Virtual Environment - or Proxmox VE to be precise. Details are here: https://www.proxmox.com/en/proxmox-virtual-environment/overview but the summary is this:

Proxmox Virtual Environment is a complete, open-source server management platform for enterprise virtualization. It tightly integrates the KVM hypervisor and Linux Containers (LXC), software-defined storage and networking functionality, on a single platform. With the integrated web-based user interface you can manage VMs and containers, high availability for clusters, or the integrated disaster recovery tools with ease.

 I can hear you now - that's freaking amazing, but so what? Well, a Type 1 hypervisor with a full feature set is very nice to have - management of all your resources is very good, and you get access to ZFS for managing disk - oh and Ceph is built in! If you don't know what Ceph is, then Network Chuck has a great video on it here: https://youtu.be/jJrnJ9rj6fs?si=3KOunfnbodFLnFlw 

I haven't had time to play with ceph much yet, but I look forward to doing so shortly. Back to proxmox. I recently acquire a HPE ML30 server. The specs are reasonably modest:

  • 8 x Intel(R) Xeon(R) CPU E3-1240 v6 @ 3.70GHz (1 Socket)
  • 24 GB of RAM (now 32)
  • 3 x 960GB SSDs on a SAS RAID array.
  • along with all the normal HPE server stuff - a neat and tidy lay out, with extra SATA and plenty of power for extra disks.
In the Proxmox console it looks like this:




The ML30 came with Windows Server 2016 - and this isn't ideal. Installing Proxmox was a bit of challenge though - the 3 SSDs were in RAID5, and Proxmox did not recognise or acknowledge this array. So adios array - I deleted it and set up a ZFS array. I also put a 10TB HDD in from an external drive I had floating around. The end array looks like this:



Now here's something that is a bit cooler than good old Hyper-V - you can run virtual machines and containers:


I haven't messed much with containers - but now I have, I am really impressed. And here's why - this server hasn't got a huge amount of RAM, so when I run a virtualised server I have to make sure I'm not running out of memory. Using containers means that the virtual machine shares elements of the hypervisor, which reduces the amount of RAM (and CPU) that one needs to expend on a virtual machine. Happily, this means that even with a fairly modest 32GB of RAM, I can run the following servers in containers:
  • Linux server for secure connections to other servers
  • Linux server to manage my Cloudflare tunnels (more on this later - so awesome!)
  • Linux server running Jellyfin - this is the heaviest container I've got and runs really well with 4 vCPUs and 4GB of RAM.
  • Linux server running NextCloud and helpfully set up using an LXC script. This was a very easy way to set up a Debian server, and all the necessary bits and pieces. I'm playing with NextCloud a bit - I'll write up some stuff down the track on it once I've worked with it a bit.
  • Linux server running torrent management for the legitimate torrents I download (like Mint and Ubuntu Server).
  • and finally, a Wazuh SIEM server running as a full VM. This is the big momma of all my VMs with 8GB of RAM and 4 vCPUs. This thing pushes the server load up when it boots quite significantly. 
This runs on the server at about 50% of the available RAM. CPU is up and down but rarely sits above 20% even when I've got a couple of movies or TV shows being streamed. 


In this image you can see I've got a container as a template. I set up an Ubuntu server, set password, SSH config and a couple of other things. I patched it up, and then shut it down for later on. I've used it to create all the container VMs, except the Cloudflared and NextCloud VMs - you can search up a script that you run and it downloads/configures the server. This was excellent as a quick way to get started - especially after I screwed up the first implementation and had to start all over. Oops.

So the final word is this - the problem I had with choosing a hypervisor with plenty of features has been solved with Proxmox. I've got a few other bits to work up now - messing with ceph, installing the Proxmox backup system from here: https://www.proxmox.com/en/proxmox-backup-server/overview and pushing this server to its limit. It needs more disk, and I've given up on trying to find RAM for it - bastard of a thing must have the most rare memory type ever. At any rate, it's a solid server, and now it's running reasonably well I'm quite happy with it. If you're looking to try something new out, I can recommend giving proxmox the once over. Some of the home lab projets on YouTube are wild - guys running NAS servers using passthrough for disk, other guys running AI systems with video card passthrough and all kinds of other stuff. 




Playing with Proxmox

 Up until recently I've used Hyper-V for most of my virtualisation needs. Hyper-V is a fully integrated Type 1 hypervisor and comes with...