all lists on lists.proxmox.com
 help / color / mirror / Atom feed
From: "Fabian Grünbichler" <f.gruenbichler@proxmox.com>
To: Proxmox VE development discussion <pve-devel@lists.proxmox.com>
Cc: Thomas Lamprecht <t.lamprecht@proxmox.com>
Subject: Re: [pve-devel] [PATCH-SERIES v7 pve-storage/qemu-server] add external qcow2 snapshot support
Date: Fri, 4 Jul 2025 13:58:38 +0200 (CEST)	[thread overview]
Message-ID: <1861462900.2272.1751630318843@webmail.proxmox.com> (raw)
In-Reply-To: <mailman.950.1751611517.395.pve-devel@lists.proxmox.com>


> Alexandre Derumier via pve-devel <pve-devel@lists.proxmox.com> hat am 04.07.2025 08:44 CEST geschrieben:
> This patch series implement qcow2 external snapshot support for files && lvm volumes
> 
> The current internal qcow2 snapshots have bad write performance because no metadatas can be preallocated.
> 
> This is particulary visible on a shared filesystem like ocfs2 or gfs2.
> 
> Also other bugs are freeze/lock reported by users since years on snapshots delete on nfs
> (The disk access seem to be frozen during all the delete duration)
> 
> This also open doors for remote snapshot export-import for storage replication.

sent some feedback, mostly for the storage and qemu-server <-> storage interface parts,
haven't yet done an in-depth pass over qemu-server or end-to-end.

in particular, the rename_volume vs rename_snapshot and the Plugin snapshot file name/..
questions should probably be solved before the next version 

it would also be great if you could add a patch bumping API version and age and
documenting the changes/new parameters/interfaces - also so that we can ensure
we are on the same page and haven't overlooked anything. AFAICT it should all be
new opt-in or backwards compatible changes, once the feedback is incorporated.

> 
> Changelog v7:
>     - rebased on fiona blockdev work 
> 
> MAIN TODO:
>     - add snapshots tests in both pve-storage && qemu-server
>     - better handle snapshot failure with multiple disks
> 
> pve-storage:
> 
> Alexandre Derumier (10):
>   tests: add lvmplugin test
>   common: add qemu_img_create an preallocation_cmd_option
>   common: qemu_img_create: add backing_file support
>   rename_volume: add source && target snap
>   common: add qemu_img_info helper
>   common: add qemu-img measure
>   storage: volume_snapshot: add $running param
>   qcow2: add external snapshot support
>   lvmplugin: add qcow2 snapshot
>   storage : add volume_support_qemu_snapshot
> 
>  src/PVE/Storage.pm                   |  34 +-
>  src/PVE/Storage/Common.pm            | 116 ++++++
>  src/PVE/Storage/DirPlugin.pm         |  11 +
>  src/PVE/Storage/ESXiPlugin.pm        |   2 +-
>  src/PVE/Storage/ISCSIDirectPlugin.pm |   2 +-
>  src/PVE/Storage/LVMPlugin.pm         | 519 ++++++++++++++++++++----
>  src/PVE/Storage/LvmThinPlugin.pm     |   2 +-
>  src/PVE/Storage/PBSPlugin.pm         |   2 +-
>  src/PVE/Storage/Plugin.pm            | 376 ++++++++++++-----
>  src/PVE/Storage/RBDPlugin.pm         |   8 +-
>  src/PVE/Storage/ZFSPoolPlugin.pm     |   2 +-
>  src/test/Makefile                    |   5 +-
>  src/test/run_test_lvmplugin.pl       | 577 +++++++++++++++++++++++++++
>  13 files changed, 1465 insertions(+), 191 deletions(-)
>  create mode 100755 src/test/run_test_lvmplugin.pl
> 
> qemu-server:
> 
> Alexandre Derumier (3):
>   qemu_img convert : add external snapshot support
>   blockdev: add backing_chain support
>   qcow2: add external snapshot support
> 
>  src/PVE/QemuConfig.pm                         |   4 +-
>  src/PVE/QemuServer.pm                         | 132 +++++--
>  src/PVE/QemuServer/Blockdev.pm                | 345 +++++++++++++++++-
>  src/PVE/QemuServer/QemuImage.pm               |   6 +-
>  src/test/cfg2cmd/simple-backingchain.conf     |  25 ++
>  src/test/cfg2cmd/simple-backingchain.conf.cmd |  33 ++
>  src/test/run_config2command_tests.pl          |  47 +++
>  src/test/run_qemu_img_convert_tests.pl        |  59 +++
>  src/test/snapshot-test.pm                     |   4 +-
>  9 files changed, 620 insertions(+), 35 deletions(-)
>  create mode 100644 src/test/cfg2cmd/simple-backingchain.conf
>  create mode 100644 src/test/cfg2cmd/simple-backingchain.conf.cmd
> 
> -- 
> 2.39.5


_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


  reply	other threads:[~2025-07-04 11:58 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-07-04  6:44 Alexandre Derumier via pve-devel
2025-07-04 11:58 ` Fabian Grünbichler [this message]
2025-07-04 12:10   ` DERUMIER, Alexandre via pve-devel
     [not found]   ` <a1b7140a1c715ce9506f9956c296138b2373cf6b.camel@groupe-cyllene.com>
2025-07-07  7:49     ` Fabian Grünbichler

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=1861462900.2272.1751630318843@webmail.proxmox.com \
    --to=f.gruenbichler@proxmox.com \
    --cc=pve-devel@lists.proxmox.com \
    --cc=t.lamprecht@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal