Skip to main content
RunBook Academy

Proxmox VEXXI · Migration to ProxmoxRunning the migration

Rehearsing a migration and keeping a way back

Advanced⏱ ~28 minqmpvesh

What you'll learn

  • Build an isolated network for rehearsal and explain each thing it prevents
  • Write cutover success criteria that a rehearsal can actually fail
  • Identify the point of no return for a given workload, and say what changes at it
  • Size and cost a rollback window, and decide when it closes
  • Distinguish what a rehearsal proves from what it cannot prove

Prerequisites

Verified against Proxmox VE 9.2.4 · Proxmox Backup Server 4.2.5 · Ceph Squid / Tentacle · Debian 13 (Trixie) · Linux kernel 7.0 (PVE 9.2 default) · 2026-08-12

Not yet marked complete on this device.

The previous lesson made importing a virtual machine easy. This one is about the part that stayed hard, which is everything either side of the copy.

Two questions decide whether a migration goes well, and neither is technical. How do we know it worked? and until when can we change our mind?

Rehearse in isolation, or do not rehearse

A rehearsal is a real migration of a real guest, run early, to find out what breaks. Its entire value depends on the copy not being able to talk to anything the original talks to.

Building the isolated network

The mechanism is a network with no uplink. An SDN simple zone is the cleanest way: it creates isolated VNet bridges that are not attached to a physical interface, which is precisely what you want.

Configuration changecreate an isolated rehearsal network
pvesh create /cluster/sdn/zones --zone rehearse --type simple

pvesh create /cluster/sdn/vnets --vnet rehearsenet --zone rehearse

pvesh set /cluster/sdn

pvesh get /cluster/sdn/vnets --output-format json | jq -r '.[] | [.vnet, .zone] | @tsv'
Configuration changeattach the rehearsal guest, and belt-and-braces it
VMID=310

qm config "$VMID" | grep '^net'

qm set "$VMID" --net0 virtio,bridge=rehearsenet,link_down=1

qm start "$VMID"
qm terminal "$VMID"

Success criteria that can fail

“It booted and looks fine” is not a criterion. A criterion is something a rehearsal can fail, written down before it runs, by the people who will be asked whether the migration worked.

What a rehearsal proves, and what it cannot

It proves: the guest boots on the new hypervisor; drivers, firmware and machine type are right; the application starts and functions; licensing survives the hardware change; your import procedure is correct and how long it takes.

It cannot prove: that the data will be current at cutover, because the rehearsal copy is already stale; that the cutover will go well under time pressure with an audience; that DNS, routing and firewall changes will work, because those are exactly what the isolation prevented; that integrations against production systems work, for the same reason; or that performance under real concurrent load is acceptable.

The point of no return

Every migration has an hour after which rollback stops being free. Naming it, per workload, is the single most useful thing in the plan.

Before that moment, rollback means: power the source back on, and everyone carries on. After it, rollback means losing whatever was written since.

The rollback window

After the point of no return, rollback is expensive but should still be possible for a defined period. That period is the rollback window, and it has a cost that has to be budgeted rather than assumed.

What the window costsWhy
Source capacityThe ESXi hosts and their storage cannot be reclaimed
Source licensingThe hypervisor licence and support contract keep running
Operational attentionThe source estate still needs patching, monitoring and backups
Cognitive loadTwo places to look during any incident
Read-only / Safeprove the rollback path before you need it
VMID=310
STORE=pbs-primary

pvesm list "$STORE" --vmid "$VMID"

pvesh get /cluster/backup --output-format json \
| jq -r '.[] | [.id, (.vmid // "all"), .schedule, .storage] | @tsv'

Key takeaways

  • A rehearsal guest is a duplicate identity — hostname, addresses, host keys, directory account, licence, cluster membership. Started on a production network it damages the original as often as the copy.
  • Rehearse on an isolated network. An SDN simple zone creates VNet bridges with no physical uplink, which is exactly the required property. Boot with link_down=1 and bring the link up deliberately.
  • Write success criteria that can fail, before the rehearsal, with the people who will judge the migration. Include an executed rollback as a criterion.
  • Measure the source before migrating it. Without a pre-migration number, a performance complaint is unfalsifiable and unwinnable.
  • A rehearsal proves boot, drivers, firmware, application function, licensing and procedure timing. It cannot prove data currency, integrations, DNS and routing, or behaviour under real load — those need a controlled connectivity test with a changed identity, and a pilot wave.
  • The point of no return is the first user write on the migrated system, not the cutover. It is a time you can compute in advance and it belongs in the change record.
  • The rollback window costs capacity, licensing, patching and attention. Give it a closing date, a named owner and a closing procedure whose third step is a final archival backup — that is what makes closing it safe.
  • If you must roll back after the point of no return, stop writes and capture the divergent data first. That step is the difference between a rollback and a data-loss incident.

Knowledge check

Knowledge check · 5 questions

  1. Q1. A rehearsal copy of a production file server is booted on the normal server VLAN so that the team can test the directory join. What is the most serious consequence?

  2. Q2. When exactly is the point of no return for a workload migrated at 03:00 on a Monday, with users arriving at 08:00?

  3. Q3. Which of these can an isolated rehearsal genuinely prove? Select all that apply.

  4. Q4. Closing a rollback window is safe once the migrated workload has survived a business cycle and a restore from its new backups has been tested, provided a final archival backup of the source is taken and retained.

  5. Q5. A rollback is called two days after cutover. What is the first action, and which step do teams most often skip?

Passing score: 75%. Answers are checked in this browser.