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
-
Configure BIOS settings
- Ensure “SATA Operation” is set to “AHCI”
- Enable virtualization features (VT-x/AMD-V)
-
Create bootable Proxmox installation media
- Download the Proxmox VE ISO from proxmox.com/downloads
- Create a bootable USB drive using Rufus or Etcher
-
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
-
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
- Open a web browser and navigate to
-
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
-
Update Proxmox
Terminal window apt update && apt upgrade -y -
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 theGRUB_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-grubnext, add modules to the
/etc/modules
file:Terminal window nano /etc/modules- Add the following lines:
# Modules required for PCI passthroughvfiovfio_iommu_type1vfio_pcivfio_virqfd- reboot
- For Intel CPUs, add
-
** Add NFS share for backups**
- Datacenter > Storage > Add > NFS Id: backups Server: ip of your NFS server Export: nfs share path Content: backup
-
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
-
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
-
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
-
Verify Cluster Status
- On any node, go to
Datacenter
>Cluster
- Ensure all nodes are listed and show status as “Online”
- On any node, go to