[pve-devel] [PATCH v4 guest-common 0/22] remote migration

Fabian Grünbichler f.gruenbichler at proxmox.com
Thu Feb 3 13:41:21 CET 2022


this series adds remote migration for VMs.

both live and offline migration including NBD and storage-migrated disks
should work. groundwork for extending to pve-container and pvesr already
laid.

new in v4: lots of small fixes, improved bwlimit handling, `qm` command
(thanks Fabian Ebner and Dominik Csapak for the feedback on v3!)

new in v3: lots of refactoring and edge-case handling

new in v2: dropped parts already applied, incorporated Fabian's and
Dominik's feedback (thanks!)

new in v1: explicit remote endpoint specified as part of API call
instead of
remote.cfg

overview over affected repos and changes, see individual patches for
more details.

proxmox-websocket-tunnel:

new tunnel helper tool for forwarding commands and data over websocket
connections, required by pve-guest-common on source side

pve-guest-common:

new/refactored generic WS/SSH tunnel fork/read/.. helpers
new storage migration over WS tunnel helpers

pve-storage:

refactor storage_migrate to make code-reuse possible

qemu-server:

some refactoring, new mtunnel endpoints, new remote_migration endpoints,
new `qm` command
TODO: handle pending changes and snapshots
TODO: improve handling of C^c
TODO: strict parser for FW config as well?

as usual, some of the patches are best viewed with '-w', especially in
qemu-server..

required dependencies are noted, patch overview follows..

pve-guest-common:

  migrate: handle migration_network with remote migration
  add tunnel helper module
  add storage tunnel module

proxmox-websocket-tunnel:

  initial commit
  add tunnel implementation
  add fingerprint validation
  add packaging

qemu-server:

  refactor map_storage to map_id
  schema: use pve-bridge-id
  parse_config: optional strict mode
  update_vm: allow simultaneous setting of boot-order and dev
  nbd alloc helper: allow passing in explicit format
  migrate: move tunnel-helpers to pve-guest-common
  mtunnel: add API endpoints
  migrate: refactor remote VM/tunnel start
  migrate: add remote migration handling
  api: add remote migrate endpoint
  qm: add remote_migrate command

pve-storage:

  volname_for_storage: parse volname before calling
  storage_migrate: pull out snapshot decision
  storage_migrate: pull out import/export_prepare
  add volume_import/export_start helpers





More information about the pve-devel mailing list