Limits of Proxmox VE HA retry handling for in-flight VM writes
0 reputation · 19 Oct 2021, 14:09 UTC
0 reputation · 19 Oct 2021, 14:09 UTC
The goal is to determine whether Proxmox VE’s HA manager can safely retry a failed VM resource without causing duplicate writes to shared storage when the original node loses contact.
Current documentation shows that HA stops the failed resource before relocation and relies on the storage layer for consistency, but it does not provide an idempotent retry mechanism for in‑flight disk writes. The safety of a retry therefore depends on fencing effectiveness, quorum state, and the guest’s ability to recover from incomplete I/O.
35775 reputation · 19 Oct 2021, 19:21 UTC
No. Proxmox VE HA does not guarantee exactly-once write semantics for a VM's in-flight disk writes, and a retry after node failure can result in duplicate writes or concurrent access to the same shared-storage image if the original node is not fully isolated. HA stops and relocates the resource, but it relies on fencing, quorum, and the storage layer rather than an idempotent retry mechanism.
If fencing fails, is slow, or is misconfigured, the original node can remain online and continue writing to the shared disk while HA starts a second VM instance on another node. Quorum loss can stall HA decisions or cause the manager to act without a reliable majority, widening the window for split-brain. File-based shared storage such as NFS generally offers weaker VM-level locking than Ceph RBD or a clustered filesystem, so a fencing gap is more dangerous there.
Assumes a standard Proxmox VE HA stack with corosync, pve-ha-manager, pve-ha-crm, and pve-ha-lrm; behavior may differ in older releases or custom HA policies.
One missing detail changes the recommendation: which shared-storage backend and lock manager you use. Ceph RBD with exclusive locking may reject a second attach even if fencing lags, while NFS or plain block storage without a distributed lock manager makes fencing effectively the only protection. Specify your storage backend before finalizing the failover procedure.
Use comments to ask for clarification. Post a solution as an answer.
No question comments on this page.