ProxLB: Intelligent Resource Scheduling for Proxmox Clusters
ProxLB (Proxmox Load Balancer) is a high-performance, open-source Distributed Resource Scheduler (DRS) designed specifically for Proxmox VE environments. It automates the distribution of Virtual Machines (VMs) and Containers (CTs) across cluster nodes to ensure optimal hardware utilization and eliminate performance bottlenecks. Beginning with version 1.1.12, ProxLB now also supports Proxmox's native HA rules for defining affinity and anti-affinity rules.
By interfacing directly with the Proxmox API, ProxLB analyzes real-time metrics—including CPU load, memory pressure, and local disk I/O—to make intelligent migration decisions that maintain cluster equilibrium. ProxLB became quickly a very important role for Proxmox VE environemnts where I even got invited to present this project at the Dutch Proxmox Day 2025 by the Tuxis.nl team.
Key Capabilities
- Automated Rebalancing: Dynamically moves workloads based on real-time resource consumption (CPU, RAM, Disk).
- Advanced Affinity Rules: Support for VM-to-VM and VM-to-Node affinity/anti-affinity using Tags, Pools, or native Proxmox rules.
- Maintenance Mode: Gracefully evacuate nodes for updates without manual intervention.
- Infrastructure as Code (IaC) Integration: Provides target node suggestions for Ansible, Terraform, and CI/CD pipelines.
- Operational Transparency: Comprehensive dry-run modes and detailed logging for risk-free testing.
How ProxLB Works
ProxLB functions as an intelligent orchestration layer. It continuously monitors the cluster state, comparing current node utilization against user-defined thresholds. When a node exceeds these limits, the scheduler calculates the most efficient target node and initiates a live migration.
Installation & Deployment
ProxLB is designed for seamless integration. It can be deployed natively on Debian-based systems or via containerized environments.
Method 1: Debian Repository (Recommended)
Standard installation provides full systemd integration and automatic updates via apt.
# Add the official repository
curl https://git.gyptazy.com/api/packages/gyptazy/debian/repository.key -o /etc/apt/keyrings/gyptazy.asc
echo "deb [signed-by=/etc/apt/keyrings/gyptazy.asc] https://packages.gyptazy.com/api/packages/gyptazy/debian trixie main" | sudo tee -a /etc/apt/sources.list.d/gyptazy.list
apt-get update
# Install ProxLB
apt-get install -y proxlb
# Configuration
cp /etc/proxlb/proxlb_example.yaml /etc/proxlb/proxlb.yaml
vi /etc/proxlb/proxlb.yaml
# Enable and Start
systemctl enable --now proxlb
Method 2: Debian Package Download
Alternatively, download the latest .deb package directly from the CDN and install it manually via apt or dpkg. You can find the latest packages at https://cdn.gyptazy.com/debian/proxlb/.Method 3: Docker / Container Image
For isolated environments, use the official image from the Gyptazy registry. This mirror is hosted on packages.gyptazy.com and fully supports IPv4 and IPv6.
docker pull packages.gyptazy.com/gyptazy/proxlb:latest
docker run -d \
--name proxlb \
-v $(pwd)/proxlb.yaml:/etc/proxlb/proxlb.yaml:ro \
packages.gyptazy.com/gyptazy/proxlb:latest
Configuration Example
Define your balancing strategy in a simple YAML structure. Below is a standard configuration for memory-based balancing.
proxmox_api:
hosts: ['virt01.example.com']
token_id: 'proxlb@pve!tokenname'
token_secret: 'your-api-token-secret'
ssl_verification: true
balancing:
enable: true
method: memory
mode: used
balanciness: 10
service:
daemon: true
schedule:
interval: 12
format: hours
Development & Community
ProxLB is an active open-source project. Community contributions, feature requests, and bug reports are welcomed via GitHub.
| Resource | Link |
|---|---|
| Source Code | GitHub Repository |
| Documentation | Project Website |
| Video Overview | Watch Technical Talk |
| Artifacts | CDN Downloads |
Developed by gyptazy. Distributed under the GPLv3 license.