Skip to navigationSkip to content
libvirtd docs
InteractiveCommands

Manual nav

Search `/` · tty `~` · g top · G bottom

Portal

  • Manual index
  • Interactive lab
  • Command explorer
Foundations5 sections
  • libvirtd Overview1
  • Host & Installation2
  • Architecture & Concepts6
  • Domains2
  • Domain XML2
Subsystems6 sections
  • Daemons3
  • virsh3
  • Virtual Networking5
  • Virtual Storage4
  • Virtualization Security3
  • Remote libvirt1
Operations5 sections
  • Migration2
  • Snapshots & Backup2
  • Performance3
  • Troubleshooting2
  • Reference2
guidemigrationReviewed July 15, 2026

Live migration operator runbook

Run live migration as a gated change. Keep source ownership until destination state and application health are proven. Start and watch In a second session: Choose flags based on the preflight. copy storage all changes ba

live-migrationvirsh-migraterollbackrunbook

Run live migration as a gated change. Keep source ownership until destination state and application health are proven.

Start and watch

BASH
virsh migrate --live --persistent --undefinesource \
  guest01 qemu+ssh://target.example/system

In a second session:

BASH
virsh domjobinfo guest01
virsh domjobabort guest01

Choose flags based on the preflight. --copy-storage-all changes bandwidth, duration, and recovery characteristics and must not be added casually.

Completion proof

BASH
virsh -c qemu+ssh://target.example/system domstate guest01 --reason
virsh -c qemu+ssh://target.example/system domiflist guest01
virsh list --all

Then validate application health, monitoring, backup ownership, and the absence of a running source copy.

Abort boundary

Abort while source remains authoritative if convergence stalls or destination prerequisites fail. Once switchover completes, recovery is a new incident state, not simply a command reversal.

Related

  • Migration preflight and compatibility contract

On this page

  • Start and watch
  • Completion proof
  • Abort boundary