public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: "Fabian Grünbichler" <f.gruenbichler@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [pve-devel] [PATCH-SERIES v6 0/13] remote migration
Date: Wed, 28 Sep 2022 14:50:46 +0200	[thread overview]
Message-ID: <20220928125059.1139296-1-f.gruenbichler@proxmox.com> (raw)

this series adds remote migration for VMs and CTs.

both live and offline migration of VMs including NBD and
storage-migrated disks should work, containers don't have any live
migration so both offline and restart mode work identical except for the
restart part.

groundwork for extending to pvesr already laid.

uncovered (but still not fixed)
https://bugzilla.proxmox.com/show_bug.cgi?id=3873
(migration btrfs -> btrfs with snapshots)

dependencies/breaks:
- qemu-server / pve-container -> bumped pve-storage (taint bug
  storage migration)
- qemu-server / pve-container -> bumped pve-access-control (new priv)
- qemu-server -> bumped pve-common (moved pve-targetstorage option)
- pve-common -BREAKS-> not-bumped qemu-server (same)

follow-ups/todos:
- implement disk export/import for shared storages like rbd
- implement disk export/import raw+size for ZFS zvols
- extend ZFS replication via websocket tunnel to remote cluster
- extend replication to support RBD snapshot-based replication
- extend RBD replication via websocket tunnel to remote cluster
- switch regular migration SSH mtunnel to version 2 with json support
  (related -> s.hanreichs pre-/post-migrate-hook series)

new in v6:
- --with-local-disks always set and not a parameter
- `pct remote-migrate`
- new Sys.Incoming privilege + checks
- storage export taintedness bug fix
- properly take over pve-targetstorage option (qemu-server ->
  pve-common)
- review feedback addressed

new in v5: lots of edge cases fixed, PoC for pve-container, some more
helper moving for re-use in pve-container without duplication

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.

pve-access-control:

Fabian Grünbichler (1):
  privs: add Sys.Incoming

 src/PVE/AccessControl.pm | 1 +
 1 file changed, 1 insertion(+)

pve-common:

Fabian Grünbichler (1):
  schema: take over 'pve-targetstorage' option

 src/PVE/JSONSchema.pm | 7 +++++++
 1 file changed, 7 insertions(+)

pve-container:

Fabian Grünbichler (3):
  migration: add remote migration
  pct: add 'remote-migrate' command
  migrate: print mapped volume in error

 src/PVE/API2/LXC.pm    | 635 +++++++++++++++++++++++++++++++++++++++++
 src/PVE/CLI/pct.pm     | 124 ++++++++
 src/PVE/LXC/Migrate.pm | 248 +++++++++++++---
 3 files changed, 965 insertions(+), 42 deletions(-)

pve-docs:

Fabian Grünbichler (1):
  pveum: mention Sys.Incoming privilege

 pveum.adoc | 1 +
 1 file changed, 1 insertion(+)

qemu-server:

Fabian Grünbichler (6):
  schema: move 'pve-targetstorage' to pve-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/API2/Qemu.pm   | 709 ++++++++++++++++++++++++++++++++++++++++++++-
 PVE/CLI/qm.pm      | 113 ++++++++
 PVE/QemuMigrate.pm | 590 ++++++++++++++++++++++++++++---------
 PVE/QemuServer.pm  |  48 ++-
 debian/control     |   5 +-
 5 files changed, 1299 insertions(+), 166 deletions(-)

pve-storage:

Fabian Grünbichler (1):
  (remote) export: check and untaint format

 PVE/CLI/pvesm.pm | 6 ++----
 PVE/Storage.pm   | 9 +++++++++
 2 files changed, 11 insertions(+), 4 deletions(-)

-- 
2.30.2





             reply	other threads:[~2022-09-28 12:51 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-28 12:50 Fabian Grünbichler [this message]
2022-09-28 12:50 ` [pve-devel] [PATCH v6 access-control 1/1] privs: add Sys.Incoming Fabian Grünbichler
2022-11-07 15:38   ` [pve-devel] applied: " Thomas Lamprecht
2022-09-28 12:50 ` [pve-devel] [PATCH v6 common 1/1] schema: take over 'pve-targetstorage' option Fabian Grünbichler
2022-11-07 15:31   ` [pve-devel] applied: " Thomas Lamprecht
2022-09-28 12:50 ` [pve-devel] [PATCH v6 container 1/3] migration: add remote migration Fabian Grünbichler
2022-10-03 13:22   ` [pve-devel] [PATCH FOLLOW-UP " Fabian Grünbichler
2022-09-28 12:50 ` [pve-devel] [PATCH v6 container 2/3] pct: add 'remote-migrate' command Fabian Grünbichler
2022-09-28 12:50 ` [pve-devel] [PATCH v6 container 3/3] migrate: print mapped volume in error Fabian Grünbichler
2022-09-28 12:50 ` [pve-devel] [PATCH v6 docs 1/1] pveum: mention Sys.Incoming privilege Fabian Grünbichler
2022-11-07 15:45   ` [pve-devel] applied: " Thomas Lamprecht
2022-09-28 12:50 ` [pve-devel] [PATCH v6 qemu-server 1/6] schema: move 'pve-targetstorage' to pve-common Fabian Grünbichler
2022-11-07 15:31   ` [pve-devel] applied: " Thomas Lamprecht
2022-09-28 12:50 ` [pve-devel] [PATCH v6 qemu-server 2/6] mtunnel: add API endpoints Fabian Grünbichler
2022-09-30 11:52   ` Stefan Hanreich
2022-10-03  7:11     ` Fabian Grünbichler
2022-10-03 13:22   ` [pve-devel] [PATCH FOLLOW-UP " Fabian Grünbichler
2022-10-18  6:23   ` [pve-devel] [PATCH " DERUMIER, Alexandre
2022-09-28 12:50 ` [pve-devel] [PATCH v6 qemu-server 3/6] migrate: refactor remote VM/tunnel start Fabian Grünbichler
2022-09-28 12:50 ` [pve-devel] [PATCH v6 qemu-server 4/6] migrate: add remote migration handling Fabian Grünbichler
2022-09-28 12:50 ` [pve-devel] [PATCH v6 qemu-server 5/6] api: add remote migrate endpoint Fabian Grünbichler
2022-09-28 12:50 ` [pve-devel] [PATCH v6 qemu-server 6/6] qm: add remote-migrate command Fabian Grünbichler
2022-10-17 14:40   ` DERUMIER, Alexandre
2022-10-18  6:39     ` Thomas Lamprecht
2022-10-18  6:56       ` DERUMIER, Alexandre
2022-10-17 17:22   ` DERUMIER, Alexandre
2022-09-28 12:50 ` [pve-devel] [PATCH v6 storage 1/1] (remote) export: check and untaint format Fabian Grünbichler
2022-09-29 12:39   ` [pve-devel] applied: " Thomas Lamprecht
2022-10-04 15:29 ` [pve-devel] [PATCH-SERIES v6 0/13] remote migration DERUMIER, Alexandre

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220928125059.1139296-1-f.gruenbichler@proxmox.com \
    --to=f.gruenbichler@proxmox.com \
    --cc=pve-devel@lists.proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal