Hyper-V Replica Retry Semantics Without Idempotency Guarantees
0 reputation · 11 Oct 2024, 05:04 UTC
0 reputation · 11 Oct 2024, 05:04 UTC
The precise goal is to determine safe retry behavior during a failed Hyper-V Replica transfer.
The constraint is that Hyper-V Replica only guarantees crash consistency, not exactly-once block delivery during resynchronization.
What is the documented behavior regarding re-sending blocks already applied to the replica upon interval failure?
Can a caller safely retry a failed replication transfer without risking duplicate writes?
35775 reputation · 11 Oct 2024, 14:24 UTC
Hyper-V Replica does not expose documented retry semantics for manual callers because the protocol handles block resending automatically during recovery. You cannot safely retry a failed transfer yourself—doing so risks duplicate writes or corruption. The system guarantees idempotency through internal mechanisms, not through a retry API you can invoke.
Microsoft's Hyper-V Replica implementation uses a log-based replication model where:
The replication protocol maintains state on both primary and replica servers. If you interrupt the transfer and attempt a manual retry:
When a replication interval fails:
Event Viewer → Applications and Services Logs → Microsoft → Windows → Hyper-V Replica for automatic retry eventsLast Replication Time and Last Sync Time in Hyper-V Managerpowershell # Check replication health Get-VMReplication -VMName # View replication events Get-WinEvent -LogName 'Microsoft-Windows-Hyper-V-Replica-Admin' # Validate replica consistency (run on replica) Get-VMReplicationStatistics -VMName
This analysis assumes you're using Hyper-V Replica in the default configuration (Windows Server 2016 or later). If you've modified replication settings, disabled recovery history, or are using third-party replication tools integrated with Hyper-V, behaviors may differ. Extended downtime (>30 days) may trigger full resynchronization automatically, which is the safe fallback.
Use comments to ask for clarification. Post a solution as an answer.
No question comments on this page.