55 Commits

Author SHA1 Message Date
gyptazy
e6ae357838 fix(calculations): Fix PSI based balancing which resulted in a Python KeyError
Fixes: #420
2026-01-13 08:24:50 +01:00
Florian Paul Azim Hoberg
34e340c25c feature: Add new option to enforce node/guest pinning even when cluster is balanced from a resource perspective.
Fixes: #414
2026-01-08 16:50:06 +01:00
gyptazy
f11ca263b8 Add support for configuring node-pinning strictness (default: true) within pools
Fixes: #406
2025-12-30 08:52:55 +01:00
gyptazy
a9d11daf40 Change balancing and sorting behaviour of guests
- Sort to be balanced guests first by size of affinity group (ASC)
  - Sort to be balanced guests afterwards by used memory size (ASC/DESC)
  - Validate if lowest used node is still the lowest one

Fixes: #378
Fixes: #390
2025-12-29 12:44:58 +01:00
gyptazy
e841481fdd Fix that ignored VMs/CTs got moved to another node when being ignored.
Fixes: #408
2025-12-24 16:43:12 +01:00
gyptazy
e0331e83e1 Adjust the integration of node resource reservation
- Renamed to set_node_resource_reservation
  - Immediately apply the values as maxmem for a node
    - Avoid recalculating percentage values
  - Simplified code
  - Adjusted debug logging
2025-12-24 09:06:39 +01:00
gyptazy
89ad425243 Add config exmaples to README for resource reservations on node level
Fixes: #373
2025-12-23 15:30:15 +01:00
Chipmonk2
2ce3d73262 Feature/resource reservation (#380)
Add resource reservation of memory for nodes
2025-12-23 15:08:29 +01:00
Florian Paul Azim Hoberg
d7631ef8f5 feature: Add HA job validation for migration jobs
Fixes: #402
2025-12-16 20:38:35 +01:00
gyptazy
09b5b83c24 fix: HA affinity/anti-affinity rules can only be evaluated on PVE9+ nodes
Fixes: #391
2025-12-14 09:34:21 +01:00
gyptazy
b39c13e2a5 fix: Fix crashing on non-existent pools
Fixes: #395
2025-12-13 20:05:11 +01:00
Florian Paul Azim Hoberg
22406e3628 fix: Fixed pool and ha-rules based node pinning of guests.
* Fixed pool based node pinning (@gyptazy). [#395]
  * Add support for Proxmox's native HA (node-affinity) rules for pinning guests to nodes (@gyptazy). [#391]

Fixes: #395
Fixes: #391
2025-12-11 14:43:44 +01:00
Florian Paul Azim Hoberg
c133ef1aee feature: Add support for Proxmox's native HA (affinity/anti-affinity) rules.
* Add support of native rules for affinity/anti-affinity types in Proxmox VE
  * Streamline affinity/anti-affinity rules by Tags, Pools and native Proxmox rules

Fixes: #391
2025-12-10 09:11:28 +01:00
Florian Paul Azim Hoberg
5101202f72 feature: Add possibility to sort and select balancing workloads by smaller/larger guest objects
- Allows operators to select if first larger or smaller workloads should be migrated

Fixes: #387
2025-12-08 15:44:38 +01:00
gyptazy
3d9f0eb85e fix(calculations): Add safety guard to avoid overprovisioning of nodes by memory.
Fixes: #275
2025-12-02 09:59:51 +01:00
James Riley
a70330d4c3 Fix enforce_affinity boolean inversion
During runs in which affinity checks determine balancing actions,
there was a small error in a boolean calculation that caused
ProxLB to always rebalance, as it exited the verification loop with
a failure the first time it saw a VM that actually passed affinity
checks.
2025-11-26 07:06:28 -07:00
Florian Paul Azim Hoberg
dd13181cf9 fix(pools): Fixes a crash during PVE resource pool enumeration by skipping
members not having a 'name' property (i.e. 'storage' members)

Fixes: #368
Sponsored-by: Stefan Oettl <stefan.oettl@isarnet.de> (@stefanoettl)
2025-11-18 13:08:23 +01:00
gyptazy
fe333749ce feature: Prevent unnecessary rebalancing by validating existing affinity enforcement before taking actions.
Fixes: #335
2025-11-12 10:03:28 +01:00
gyptazy
ff5fd2f7f1 fix: Add safety-guard for PVE 8 users when activating conntrack-aware migrations mistakenly.
Fixes: #359
2025-11-11 19:40:13 +01:00
gyptazy
6a91afd405 fix: Adjust quoting of f-strings
Fixes: #352
2025-10-30 17:18:17 +01:00
Florian Paul Azim Hoberg
7fa110e465 fix: Make pool based configuration more robust
Fixes: #343
2025-10-27 14:49:40 +01:00
gyptazy
016378e37c feature(Pools): Add affinity/anti-affinity support by pools
Fixes: #343
2025-10-27 09:37:12 +01:00
gyptazy
30e3b66be9 feature(balancing): Add an optional threshold in percent for balancing
Fixes: #342
2025-10-23 12:10:01 +02:00
Florian Paul Azim Hoberg
581d6d480b feature(balancing): Add pressure (memory, cpu, disk) based balancing
Fixes: #337
2025-10-23 11:32:25 +02:00
Florian Paul Azim Hoberg
7b6db9cfdd fix(balancing): Fix API errors when using conntrack aware migration with older PVE versions.
Fixes: #318
2025-09-25 06:59:54 +02:00
Florian Paul Azim Hoberg
ba388dfd7c fix: Add missing new lines 2025-09-19 07:39:42 +02:00
Florian Paul Azim Hoberg
99fefe20bf fix: Fix guest object names are not being evaluated in debug log.
Fixes: #310
2025-09-15 09:48:59 +02:00
Florian Paul Azim Hoberg
88b3288eb7 fix: Fix crash when validating absent migration job ids
Fixes: #308
2025-09-15 09:26:01 +02:00
Florian Paul Azim Hoberg
bf393c6bbf feature: Add conntrack state aware migrations of VMs.
Fixes: #305
2025-09-15 06:59:41 +02:00
gyptazy
b48ff9d677 fix: Validate for node presence when pinning VMs to avoid crashing
Fixes: #296
2025-09-04 17:31:24 +02:00
gyptazy
f5d073dc02 fix: Validate for node presence when pinning guests to avoid crashing
Fixes: #296
Fixes: #271
2025-08-29 11:26:15 +02:00
MiBUl-eu
c9855f1991 Added changeloge and fixed typo 2025-08-26 10:34:48 +00:00
MiBUl-eu
9bd29158b9 fix: overprovisioning first node if anti_affinity group has only one member 2025-08-25 10:11:45 +02:00
Florian Paul Azim Hoberg
f36d96c72a fix: Fix balancing evaluation of guest types (e.g., VM or CT).
Fixes: #268
2025-07-17 11:41:00 +02:00
pmarasse
c78def3919 Fix loglevels (#255)
* Modified some loglevels to make output lighter at INFO level

Co-authored-by: Philippe MARASSE <philippe@marasse.fr>
2025-06-27 15:10:57 +02:00
Florian Paul Azim Hoberg
1fe8f703cc feature: Allow pinning of guests to a group of nodes
* You can now simply define multiple tags with plb_pin_node names
    where nodes are being evaluated and the one with the lowest
    resource usage will be taken.

Fixes: #245
2025-06-26 13:54:05 +02:00
gyptazy
7cb5a31b89 feature: Make the amount of parallel migrations configurable
Fixes: #241
2025-06-05 16:12:47 +02:00
gyptazy
89102d517e feature: Use the average CPU consumption of a guest within the last 60 minutes instead of the current CPU usage
- Using the current CPU consumption of a guest object is too volatile and does not represent
    the real usage. Therefore, we use the average consumption of the cpu values within the
    last 60 minutes.

Thanks-to: @philslab-ninja
Fixes: #94
2025-05-24 09:17:14 +02:00
Florian Paul Azim Hoberg
1cbda2e2f9 feature: Align maintenance mode with Proxmox HA maintenance mode
Fixes: #232
2025-05-21 18:19:50 +02:00
gyptazy
b372d361e7 fix: Force type cast guest cpu count to int where in some corner cases a str got returned.
Fixes: #222
2025-05-03 08:53:56 +02:00
Florian Paul Azim Hoberg
33784f60b4 feature: Add possibility to pin guests to a specific hypervisor node.
Fixes: #218
2025-04-24 08:54:58 +02:00
gyptazy
5884d76ff4 tecdebt: Adjust code style. 2025-04-18 16:52:59 +02:00
Florian
7cc59eb6fc Merge pull request #202 from glitchvern/fix/200-requery-zero-guest-cpu-used2
fix: Requery a guest if that running guest reports 0 cpu usage
2025-04-18 16:38:17 +02:00
gyptazy
24b3b35640 fix: Fix the guest type relationship in the logs when a migration job failed (by @gyptazy) [#204]
feature: Providing the API upstream error message when migration fails in debug mode (by @gyptazy) [#205]

Fixes: #204
Fixes: #205
2025-04-18 16:35:02 +02:00
glitchvern
bd1157127a fix: limit to 10 requerys per a guest 2025-04-17 16:13:28 +00:00
glitchvern
be6e4bbfa0 fix: Requery a guest if that running guest reports 0 cpu usage 2025-04-16 18:42:27 +00:00
Florian
40f848ad7f Merge pull request #198 from glitchvern/fix/197-remove-hard-coded-memory-usage-from-lowest-usage-node
fix: Use method/mode in configuration to calculate lowest_usage_node
2025-04-15 19:08:52 +02:00
glitchvern
34b1d72e40 fix: Use method and mode specified in configuration to calculate lowest_usage_node 2025-04-15 16:27:08 +00:00
glitchvern
ca7db26976 fix: set cpu_used to be cpu usage times number of cpu cores 2025-04-14 21:23:05 +00:00
Michael Prokop
1402ba9732 Minor typo fixes
s/connectoing/connecting/
s/furhter/further/
s/interating/iterating/
s/ist/is/
s/maintence/maintenance/
s/performt/performed/
s/ressources/resources/
s/sucessfully/successfully/
s/the the/the/
s/timout/timeout/
s/wether/whether/
2025-04-13 10:48:23 +02:00