[pve-devel] [PATCH v3 qemu-server++ 0/21] remote migration
Fabian Grünbichler
f.gruenbichler at proxmox.com
Wed Dec 22 14:52:36 CET 2021
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 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
TODO: handle pending changes and snapshots
TODO: proper CLI for remote migration
TODO: handle C^c
TODO: strict parser for FW config as well?
potential TODO: precond endpoint?
as usual, some of the patches are best viewed with '-w', especially in
qemu-server..
required dependencies are noted
pve-guest-common:
Fabian Grünbichler (3):
migrate: handle migration_network with remote migration
add tunnel helper module
add storage tunnel module
src/Makefile | 2 +
debian/control | 1 +
src/PVE/AbstractMigrate.pm | 37 ++--
src/PVE/StorageTunnel.pm | 231 ++++++++++++++++++++++++
src/PVE/Tunnel.pm | 356 +++++++++++++++++++++++++++++++++++++
5 files changed, 611 insertions(+), 16 deletions(-)
create mode 100644 src/PVE/StorageTunnel.pm
create mode 100644 src/PVE/Tunnel.pm
proxmox-websocket-tunnel:
Fabian Grünbichler (4):
initial commit
add tunnel implementation
add fingerprint validation
add packaging
qemu-server:
Fabian Grünbichler (10):
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
PVE/API2/Qemu.pm | 721 ++++++++++++++++++++++++-
PVE/QemuMigrate.pm | 738 ++++++++++++++++----------
PVE/QemuServer.pm | 100 ++--
debian/control | 2 +
test/MigrationTest/QemuMigrateMock.pm | 28 +-
5 files changed, 1240 insertions(+), 349 deletions(-)
pve-storage:
Fabian Grünbichler (4):
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
PVE/Storage.pm | 205 ++++++++++++++++++++++++++++++++++++-------------
1 file changed, 153 insertions(+), 52 deletions(-)
More information about the pve-devel
mailing list