Skip to content

Setting Up a Proxmox Cluster

Proxmox Cluster Setup

This guide walks you through setting up a Proxmox cluster using three nodes, providing virtualization infrastructure for your homelab.

Hardware Requirements

For each of the 3 cluster nodes:

  • Mini PC: GMKtec G3 Plus
  • Memory: Corsair Vengeance SODIMM 32 GB (1 x 32 GB) DDR4 3200
  • System Drive: Transcend MTS420 120GB M.2 SSD
  • Storage Drive: LEXAR SSD M.2 2TB PCIe Gen 4X4 NM790 NVMe

Initial Preparation

  1. Configure BIOS settings

    • Ensure “SATA Operation” is set to “AHCI”
    • Enable virtualization features (VT-x/AMD-V)
  2. Create bootable Proxmox installation media

    • Download the Proxmox VE ISO from proxmox.com/downloads
    • Create a bootable USB drive using Rufus or Etcher
  3. Install Proxmox on each node

    • Boot from the USB drive
    • In the installation wizard:
      • Select the system disk (Transcend MTS420 120GB M.2 SSD)
      • Configure unique hostnames (e.g., pve1.peerlab.local, pve2.peerlab.local, pve3.peerlab.local)
      • Configure appropriate network settings
      • Set a strong password for the root user
    • Complete the installation and reboot each node

Post-Installation Configuration

  1. Access Proxmox Web Interface

    • Open a web browser and navigate to https://{node-ip}:8006
    • Log in with the root user and password set during installation
  2. Configure Repositories

    • Disable the enterprise repository, as it requires a subscription
    • Go to Updates > Repositories and disable the enterprise repository
    • Add the no-subscription repository
  3. Update Proxmox

    Terminal window
    apt update && apt upgrade -y
  4. Add PCI passthrough To pass through devices from the host to the VM, you need to enable IOMMU in the BIOS and configure it in Proxmox.

    Terminal window
    nano /etc/default/grub
    • For Intel CPUs, add intel_iommu=on to the GRUB_CMDLINE_LINUX_DEFAULT line.
    • For AMD CPUs, add amd_iommu=on. you should have a line like this:
    Terminal window
    GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"
    • Update the GRUB configuration:
    Terminal window
    update-grub

    next, add modules to the /etc/modules file:

    Terminal window
    nano /etc/modules
    • Add the following lines:
    # Modules required for PCI passthrough
    vfio
    vfio_iommu_type1
    vfio_pci
    vfio_virqfd
    • reboot
  5. ** Add NFS share for backups**

    • Datacenter > Storage > Add > NFS Id: backups Server: ip of your NFS server Export: nfs share path Content: backup
  6. Schedule backups

    • Datacenter > Backup > Add
    • Select the storage (e.g., backups)
    • Set the schedule (e.g., daily at 2 AM)
    • Select the backup mode (e.g., snapshot)
    • Select the VMs to back up

Cluster Setup

  1. Create the Cluster on the First Node

    • Log in to the Proxmox web interface of the first node (e.g., pve1.peerlab.local)
    • Go to Datacenter > Cluster
    • Click Create Cluster
    • Enter a cluster name (e.g., peerlab-cluster)
    • Click Create
  2. Join Additional Nodes to the Cluster

    • On each additional node (e.g., pve2.peerlab.local, pve3.peerlab.local):
    • Log in to the Proxmox web interface
    • Go to Datacenter > Cluster
    • Click Join Cluster
    • Enter the IP address of the first node and the cluster join token
    • Click Join
  3. Verify Cluster Status

    • On any node, go to Datacenter > Cluster
    • Ensure all nodes are listed and show status as “Online”