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:
-
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.
-
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.
-
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:
- Configuri ProxLB nel cluster, scegliendo il metodo “memoria” come metrica principale.
- Fissi un’operazione periodica (daemon mode) ogni X ore per controllare il bilanciamento.
- 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.
- Se una delle VM ha tag “plb_ignore_dev”, la escludi dalle migrazioni automatiche (per esempio ambienti di sviluppo che vuoi siano stabili).
- 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: