Can OpenStack Nova live migration move a small application with zero user-visible downtime?
0 reputation · 24 Aug 2024, 05:48 UTC
Goal
Move a small, running application between OpenStack compute hosts using Nova live migration while avoiding any user-visible downtime.
Constraints and uncertainty
Nova live migration pre-copies memory and state, then pauses the instance briefly during cutover to transfer remaining dirty pages. The application must tolerate that pause or recover TCP connections automatically. Shared storage such as Ceph, NFS, or Cinder is typically required for instance disks; local ephemeral storage relies on slower block migration. Libvirt/KVM computes must share network segments, CPU features, and compatible libvirt versions. CPU pinning, PCI passthrough, SR-IOV, GPU passthrough, or pinned MAC addresses can block migration or break layer-2 connectivity afterward.
Assume an OpenStack deployment using Nova with Libvirt/KVM. Whether the cutover pause is short enough to appear as zero downtime depends on the application's memory dirty rate, network speed, and connection handling, which remains unresolved without production-like testing.
Questions
- Can Nova live migration preserve active TCP sessions through the cutover pause without application-level reconnection logic?
- Does shared storage make the cutover pause imperceptible for a small, mostly read-only workload?
- Which instance configurations, such as CPU pinning or PCI passthrough, definitively prevent live migration in this scenario?