From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id 78AEE1FF13C for ; Thu, 19 Mar 2026 17:40:44 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id EAD9358AA; Thu, 19 Mar 2026 17:40:55 +0100 (CET) From: Daniel Kral To: pve-devel@lists.proxmox.com Subject: [PATCH-SERIES ha-manager v2 00/10] include non-HA resources in usage accounting Date: Thu, 19 Mar 2026 17:33:50 +0100 Message-ID: <20260319164047.642936-1-d.kral@proxmox.com> X-Mailer: git-send-email 2.47.3 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1773938407732 X-SPAM-LEVEL: Spam detection results: 0 AWL -1.014 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment RCVD_IN_VALIDITY_CERTIFIED_BLOCKED 0.408 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_RPBL_BLOCKED 0.819 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_SAFE_BLOCKED 0.903 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Message-ID-Hash: LBKGFC2LROCZF5YBYANZ2NUC72Y2Z532 X-Message-ID-Hash: LBKGFC2LROCZF5YBYANZ2NUC72Y2Z532 X-MailFrom: d.kral@proxmox.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox VE development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: This series is split out from [0] to make the static/dynamic load balancer series a little more straight forward to reason through. This series adds any running non-HA resource into the existing basic and static usage scheduler accounting to base decisions on the usage of the whole cluster instead of just the HA resources. For clusters where every guest is configured as a HA resource nothing should change. I tested a few simple cases in a 3 node cluster for both the basic and static usage which are variations of: - 1 running HA resource on each node, starting them on any node (with homogeneous nodes and guests) will rebalance them on the alphabetically first node as before - 1 running HA resource on node1, running 3 non-HA resources on node2, starting another HA resource on node1 will rebalance it to node3 - 3 non-HA resources on node1, starting a HA resource on node1 will rebalance it to node2 - non-running HA and non-HA resources are excluded from the usage accounting - starting non-HA resources doesn't have any effect obviously [0] https://lore.proxmox.com/pve-devel/20260217141437.584852-1-d.kral@proxmox.com/ Daniel Kral (10): rename static node stats to be consistent with similar interfaces resources: remove redundant load_config fallback for static config remove redundant service_node and migration_target parameter factor out common pve to ha resource type mapping derive static service stats while filling the service stats repository test: make static service usage explicit for all resources make static service stats indexable by sid move static service stats repository to PVE::HA::Usage::Static usage: augment service stats with node and state information include running non-HA resources in the scheduler's accounting src/PVE/HA/Config.pm | 8 +- src/PVE/HA/Env.pm | 16 ++-- src/PVE/HA/Env/PVE2.pm | 81 +++++++++++++------ src/PVE/HA/Manager.pm | 16 +++- src/PVE/HA/Resources.pm | 4 +- src/PVE/HA/Resources/PVECT.pm | 7 +- src/PVE/HA/Resources/PVEVM.pm | 7 +- src/PVE/HA/Sim/Env.pm | 16 ++-- src/PVE/HA/Sim/Hardware.pm | 56 ++++++++----- src/PVE/HA/Sim/Resources.pm | 17 ---- src/PVE/HA/Tools.pm | 23 ++++-- src/PVE/HA/Usage.pm | 12 ++- src/PVE/HA/Usage/Basic.pm | 6 +- src/PVE/HA/Usage/Static.pm | 43 +++------- .../hardware_status | 6 +- .../hardware_status | 6 +- .../hardware_status | 10 +-- .../hardware_status | 6 +- .../static_service_stats | 52 +++++++++++- .../hardware_status | 6 +- .../static_service_stats | 9 ++- src/test/test-crs-static1/hardware_status | 6 +- src/test/test-crs-static2/hardware_status | 10 +-- src/test/test-crs-static3/hardware_status | 6 +- src/test/test-crs-static4/hardware_status | 6 +- src/test/test-crs-static5/hardware_status | 6 +- 26 files changed, 260 insertions(+), 181 deletions(-) -- 2.47.3