Cold Migration¶
A cold migration moves a stopped guest between hypervisors. It is the fallback when live migration is not possible or not required.
When to use it¶
- The target does not advertise
live_migrationandLIVE_REQUIREDis not set. - The guest has host-bound resources (host-passthrough CPU, GPU/PCI passthrough, strict NUMA/hugepage requirements) that block a live move.
- A maintenance window allows a short outage.
Behaviour¶
- The source stays authoritative until the commit; nothing is released or destroyed early.
- The same lifecycle, lease and recovery rules apply as for live migration (see Migration).
- Failures before the point of no return roll back; failures at or after it
surface as
RECOVERY_REQUIRED.
Run it¶
php artisan pterocloud:migration:start <instance_uuid> --target=<hv_uuid> --mode=COLD
Preflight first (read-only):
php artisan pterocloud:migration:preflight <instance_uuid> --target=<hv_uuid> --mode=COLD --json
Honesty¶
Disk transfer and route moves are not tested on physical hardware in this build. Treat cold migration as orchestration-complete but hardware-unproven.