[pve-devel] [PATCH v3 qemu-server++ 0/21] remote migration
Fabian Grünbichler
f.gruenbichler at proxmox.com
Thu Dec 23 14:56:01 CET 2021
some feedback/known issues/.. from Dominik's testing:
- there is some mishandling with the export/import (hash keys with '-'
vs '_') that breaks rename and qcow2 support (already fixed locally)
- we could probably drop the targetnode parameter and replace it with
localhost, if we punt the node -> endpoint selection to the client -
otherwise we need to do a lookup including IP in the remote migration
API call
- targetstorage should get an adapted description ('1' not valid)
- ceph plugin doesn't implement import/export (yet)
- plugins not implementing import/export should be handled with a good
error message and as early as possible (when scanning disks?)
- source being kept around locked if --delete is not passed might not be
the best solution - alternatives?
- mtunnel is missing a timeout for the initial connection/first read
thanks for testing and discussion (off-list)!
please add if I forgot anything ;)
On December 22, 2021 2:52 pm, Fabian Grünbichler wrote:
> 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(-)
>
>
> _______________________________________________
> pve-devel mailing list
> pve-devel at lists.proxmox.com
> https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
>
More information about the pve-devel
mailing list