From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id 6B9FA8650E for ; Thu, 23 Dec 2021 14:56:46 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 16D1522D11 for ; Thu, 23 Dec 2021 14:56:16 +0100 (CET) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [94.136.29.106]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS id 1601D22D06 for ; Thu, 23 Dec 2021 14:56:15 +0100 (CET) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id E275346ABA for ; Thu, 23 Dec 2021 14:56:08 +0100 (CET) Date: Thu, 23 Dec 2021 14:56:01 +0100 From: Fabian =?iso-8859-1?q?Gr=FCnbichler?= To: Proxmox VE development discussion References: <20211222135257.3242938-1-f.gruenbichler@proxmox.com> In-Reply-To: <20211222135257.3242938-1-f.gruenbichler@proxmox.com> MIME-Version: 1.0 User-Agent: astroid/0.15.0 (https://github.com/astroidmail/astroid) Message-Id: <1640267363.1hi5p4g4vb.astroid@nora.none> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-SPAM-LEVEL: Spam detection results: 0 AWL 0.225 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [qemuserver.pm, tunnel.pm, storagetunnel.pm, qemumigratemock.pm, abstractmigrate.pm, qemu.pm, qemumigrate.pm, proxmox.com, storage.pm] Subject: Re: [pve-devel] [PATCH v3 qemu-server++ 0/21] remote migration X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 23 Dec 2021 13:56:46 -0000 some feedback/known issues/.. from Dominik's testing: - there is some mishandling with the export/import (hash keys with '-'=20 vs '_') that breaks rename and qcow2 support (already fixed locally) - we could probably drop the targetnode parameter and replace it with=20 localhost, if we punt the node -> endpoint selection to the client -=20 otherwise we need to do a lookup including IP in the remote migration=20 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=20 error message and as early as possible (when scanning disks?) - source being kept around locked if --delete is not passed might not be=20 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=C3=BCnbichler wrote: > this series adds remote migration for VMs. >=20 > both live and offline migration including NBD and storage-migrated disks = should > work. groundwork for extending to pve-container and pvesr already laid. >=20 > new in v3: lots of refactoring and edge-case handling >=20 > new in v2: dropped parts already applied, incorporated Fabian's and > Dominik's feedback (thanks!) >=20 > new in v1: explicit remote endpoint specified as part of API call instead= of > remote.cfg >=20 > overview over affected repos and changes, see individual patches for > more details. >=20 > proxmox-websocket-tunnel: >=20 > new tunnel helper tool for forwarding commands and data over websocket > connections, required by pve-guest-common on source side >=20 > pve-guest-common: >=20 > new/refactored generic WS/SSH tunnel fork/read/.. helpers > new storage migration over WS tunnel helpers >=20 > pve-storage: >=20 > refactor storage_migrate to make code-reuse possible >=20 > qemu-server: >=20 > 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? >=20 > as usual, some of the patches are best viewed with '-w', especially in > qemu-server.. >=20 > required dependencies are noted >=20 > pve-guest-common: >=20 > Fabian Gr=C3=BCnbichler (3): > migrate: handle migration_network with remote migration > add tunnel helper module > add storage tunnel module >=20 > 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 >=20 > proxmox-websocket-tunnel: >=20 > Fabian Gr=C3=BCnbichler (4): > initial commit > add tunnel implementation > add fingerprint validation > add packaging >=20 > qemu-server: >=20 > Fabian Gr=C3=BCnbichler (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 >=20 > 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(-) >=20 > pve-storage: >=20 > Fabian Gr=C3=BCnbichler (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 >=20 > PVE/Storage.pm | 205 ++++++++++++++++++++++++++++++++++++------------- > 1 file changed, 153 insertions(+), 52 deletions(-) >=20 >=20 > _______________________________________________ > pve-devel mailing list > pve-devel@lists.proxmox.com > https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel >=20