George Wilkinson

Projects

Main Proxmox Hypervisor Node

Building

My main proxmox node is currently my largest project to date. I needed bulk network storage and local hypervisor compute that was low power, cost effective, and quiet. I chose to build on a consumer platform with an enterprise chassis, so I would have the best of both worlds for efficiency, form factor and cooling. Built on the last generation of the AM4 platform, I was able to build the compute end of the project for about £320. This included a Ryzen 5700G, ASRock B550, 2x32GB + 2x16GB Corsair DDR4 and a Noctua L9a. For the chassis, I ended up using a SuperMicro CSE-825, which is compatible with full-size ATX consumer board sizes, and has 8x3.5" hot-swap drive bays. The final piece of the project was storage - I needed a large amount of redundant storage with fast reads, something that isn't usually cheap. I managed to pick up 10 4TB HGST SAS drives from an e-waste company with around 50k hours on each drive. Since my chassis can hold 8 at a time, this leaves me with 2 cold spares if any choose to fail. At the same time I bought a 2 port Mini-SAS 8087 LSI 9207-8i PCIe HBA to connect the chassis backplane to my motherboard. On top of this hardware, I of course chose to use Proxmox, as it is a FOSS operating system and supports ZFS natively, unlike some alternatives like EXSi.

Storage

Set up in a ZFS Striped Mirror array, I achieve 16TB of usable space out of 32TB, with 1-4 drive failure depending on which drive fails. 50% usable space is quite the loss, but all the negatives of decreased space are made up by the massive random IO/s increases, giving me much higher performance for cloud storage and app performance. To give some reference, the highest speed I have seen is 1.6GB/s (12800Mbps), around 180x the average residential UK download speed ( according to Virgin Media: Here ).

VM List

  • 4CPU, 8GB RAM

    Under OMV, I import a virtual disk for network attached storage. This is used by other servers and clients in my house, and in some cases outside of my house. This is due to Proxmox having a less than ideal solution to network sharing, and can cause instability. OMV has a clean network GUI where I can configure network shares and expand their size on the fly, which is useful in a dynamic environment like this.

  • 4CPU, 30GB RAM

    Under this Ubuntu VM, I run a single node Docker stack for ~50 containers, including

    • NGINX WebServer & Proxy Manager
      For hosting web applications through a reverse proxy at a datacentre.
    • Authentik
      Provides Proxy, OAuth2 and LDAP configuration for web applications.
    • Gitea
      Hosts a personal Git repository for projects.
    • Grafana & InfluxDB
      Provides real-time monitoring and logging of device metrics.
    • Immich
      Google Photos alternative, entirely self-hosted and open source.
    • IPv6NAT
      Provides an address translation service to allow for a fully IPv6 docker stack.
    • VaultWarden
      Fully self-hosted, lightweight password manager.

  • 2CPU, 4GB RAM

    With HaOS, I have set up integrations with several IoT devices on my network, such as TP-Link Tapo bulbs, light strips, etc. I am also working on integration with Grafana, Frigate & CCTV cameras to provide a centralised app to control & monitor smart home devices. I used to run Home Assistant dockerised on my Docker VM, but I found the VM was much better supported and stable.

  • 1CPU, 4GB RAM

    While I already backup my Virtual Machines to an external server, using some storage on a friend's Proxmox node, using PBS locally, I can backup & snapshot my Virtual Machines to a different drive on my machine. This isn't ideal from a 3-2-1 perspective but having frequent local rolling backups can be incredibly useful if anything were to go wrong inside the VM itself. I am currently working on implementing a good local storage solution to store my images, so for now it is turned off.

  • 4CPU, 4GB RAM

    Using an evaluation release of Windows Server, I use this to perform any operations / run any programs needed on this node that cannot be done on linux. This is rare, but useful when required. I have also used this in the past to have a graphical Windows environment outside of my network to configure network settings, since my Proxmox panel is behind a reverse proxy.