Marvin Pascale

[B.Log]

24 Settembre 2025

ProxLB

ProxLB

ProxLB (Prox Load Balancer) è uno strumento open-source che serve a riequilibrare automaticamente carichi di macchine virtuali (VM) e container (CT) in un cluster Proxmox. È pensato per ovviare all’assenza in Proxmox di un DRS (“Dynamic Resource Scheduler”) come quello che puoi trovare in ambienti VMware.

Le funzioni principali:

  • bilanciamento basato su CPU, memoria o disco locale;
  • supporto per VM e container;
  • affinity e anti-affinity rules: ovvero puoi raggruppare VM che devono stare insieme o separarle;
  • modalità manutenzione: puoi segnare uno o più nodi in manutenzione, e ProxLB migrerà carichi su altri nodi per permettere interventi hardware/software senza impattare il servizio;
  • nessuna dipendenza da SSH o autenticazioni extra; interagisce tramite l’API di Proxmox utilizzando il sistema utenti/permessi già presente.

Perché potrebbe servirti

Se gestisci uno o più cluster Proxmox che ospitano VM/CT, è facile che alcuni nodi siano sovraccarichi mentre altri restano sotto-utilizzati. Questo genera:

  • spreco di risorse (uno o più nodi “tirano il carro”);
  • rischio di instabilità se un nodo sovraccarico deve fare troppi swap o entra in collo di bottiglia disco / CPU;
  • difficoltà nella manutenzione: aggiornamenti, reboot, ecc.

ProxLB aiuta a distribuire il carico più “equa-mente”, alleggerire i nodi più affollati e permettere manutenzioni senza troppe sorprese.

Come installarlo

Requisiti

  • Un cluster Proxmox (versioni compatibili: 7.x, 8.x, 9.x).
  • Python3 e alcune librerie: proxmoxer, requests, urllib3, pyyaml per l’installazione da sorgente.
  • Accesso API a Proxmox (user, token o simili) con permessi adeguati.

Modalità di installazione

puoi scegliere tra:

  1. Pacchetto Debian (.deb) o repository Aggiungi la repository stabile, installi proxlb, copi il file di configurazione d’esempio, lo adatti e avvii il servizio via systemd.

  2. Container / Docker / Podman Pull dell’immagine ufficiale, montaggio del file di config, lancio del contenitore. Utile se vuoi tenere ProxLB isolato o non vuoi mescolare le dipendenze sul nodo.

  3. Sorgenti Cloni il repository GitHub, installi le dipendenze, configuri, e lo lanci con Python. Utile per chi vuole modifiche, test, o contribuire.

Configurazione di base

Nel file proxlb.yaml puoi configurare:

  • quali nodi includere nel cluster, quali ignorare o mettere in manutenzione;
  • soglie di bilanciamento (“balanciness”) che definiscono quanto il carico tra nodo più carico e meno carico può differire prima che ProxLB attivi le migrazioni;
  • metodo di bilanciamento: basato su quante risorse assegnate o quante effettivamente usate, ovviamente parliamo di CPU, RAM e disco
  • se le migrazioni devono essere live o no, se parallelizzare, se considerare dischi locali, stato conntrack, ecc.

Limiti e avvertenze

Importante sapere anche cosa ProxLB non è, o dove può dare problemi:

  • le migrazioni consumano risorse di rete e magari influenzano le prestazioni se molte VM vengono spostate contemporaneamente;
  • compatibilità con HA (High Availability) in alcune situazioni può essere complicata: i gruppi HA di Proxmox possono avere regole proprie, e ProxLB deve rispettarle/evitare conflitti;
  • se usi dischi locali (non storage distribuito), lo spostamento diventa più lento e costoso;
  • devi fare attenzione alle VM che hanno vincoli speciali (licenze, hardware fisico, etc.), che magari non possono essere spostate liberamente;
  • se sbagli configurazione “affinity / anti-affinity” puoi generare effetti indesiderati: troppe VM messe tutte sullo stesso nodo, se il numero di nodi è basso, oppure interdipendenze non soddisfatte.

Un flusso possibile di utilizzo

Ecco un esempio di come potresti usarlo giorno per giorno:

  1. Configuri ProxLB nel cluster, scegliendo il metodo “memoria” come metrica principale.
  2. Fissi un’operazione periodica (daemon mode) ogni X ore per controllare il bilanciamento.
  3. Quando devi fare manutenzione hardware su un host, lo inserisci nella lista maintenance_nodes via config, e ProxLB migra le VM/CT lontano da quell’host.
  4. Se una delle VM ha tag “plb_ignore_dev”, la escludi dalle migrazioni automatiche (per esempio ambienti di sviluppo che vuoi siano stabili).
  5. Se hai gruppi di VMs che comunicano molto o hanno latenza sensibile, usi affinity per tenerle insieme; oppure anti-affinity per distribuire ridondanza.

Conclusioni

ProxLB è un tool molto utile se gestisci cluster Proxmox e vuoi automazione nel bilanciamento delle risorse. Non è perfetto (nessuno lo è), ma:

  • ti permette di risparmiare risorse
  • riduce i problemi di sovraccarico improvviso
  • facilita manutenzioni

Le opinioni in quanto tali sono opinabili e nulla ti vieta di approfondire l’argomento.

Risorse: