Skip to content

fix(v2k): stabilize libvirt cutover defaults for live migration#19

Merged
dhslove merged 1 commit intoablecloud-team:mainfrom
dhslove:fix/v2k-libvirt-live-migration
Apr 10, 2026
Merged

fix(v2k): stabilize libvirt cutover defaults for live migration#19
dhslove merged 1 commit intoablecloud-team:mainfrom
dhslove:fix/v2k-libvirt-live-migration

Conversation

@dhslove
Copy link
Copy Markdown
Contributor

@dhslove dhslove commented Apr 10, 2026

Summary

This PR fixes a v2k cutover issue where KVM guests created from migrated VMs could fail live migration due to unstable libvirt/QEMU device defaults, especially around virtio-balloon.

It also refreshes the ablestack_v2k CLI help and CLI guide so defaults and examples match the current implementation more closely.

Changes

  • disable memballoon in generated libvirt XML for v2k guests
  • add explicit virtio-serial guest agent channel
  • use a non-deprecated default video model
  • stop forcing NIC link state to down in generated XML
  • add a smoke-test case that verifies --compat-profile defaults to auto even when omitted
  • refresh CLI --help output with:
    • default values for parameters that already have implementation defaults
    • command examples for each major command
    • notes for options accepted by cutover but not yet reflected in generated XML
    • fleet-style status --vm ... / --watch usage
  • refresh docs/v2k/v2k_cli_guide.md to match the updated help and current behavior

Root Cause

v2k was generating a minimal libvirt domain XML and relying on libvirt defaults for several devices. In the failing case, live migration consistently failed while restoring virtio-balloon state on the destination host.

This PR removes the balloon device from generated v2k guest XML and makes the resulting domain definition more predictable for migration.

Files Changed

  • lib/v2k/target_libvirt.sh
  • tests/v2k_compat_installer_runtime_smoke.sh
  • bin/ablestack_v2k.sh
  • docs/v2k/v2k_cli_guide.md

Validation

Validated in code by:

  • reviewing generated XML logic against the failing migration logs
  • adding a regression-style smoke-test path for implicit compat-profile=auto
  • checking branch state against upstream/main

Environment limitation:

  • bash-based test execution was not run in this session due to local shell/runtime restrictions

@dhslove dhslove merged commit 919140a into ablecloud-team:main Apr 10, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant