public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
* [pve-devel] [PATCH-SERIES v8 pve-storage/qemu-server] add external qcow2 snapshot support
@ 2025-07-09 16:21 Alexandre Derumier via pve-devel
  2025-07-10 15:09 ` [pve-devel] [PATCH FOLLOW-UP storage 1/3] helpers: make qemu_img* storage config independent Fabian Grünbichler
  2025-07-10 15:13 ` [pve-devel] [PATCH-SERIES v8 pve-storage/qemu-server] add external qcow2 snapshot support Fabian Grünbichler
  0 siblings, 2 replies; 28+ messages in thread
From: Alexandre Derumier via pve-devel @ 2025-07-09 16:21 UTC (permalink / raw)
  To: pve-devel; +Cc: Alexandre Derumier

[-- Attachment #1: Type: message/rfc822, Size: 7826 bytes --]

From: Alexandre Derumier <alexandre.derumier@groupe-cyllene.com>
To: pve-devel@lists.proxmox.com
Subject: [PATCH-SERIES v8 pve-storage/qemu-server] add external qcow2 snapshot support
Date: Wed,  9 Jul 2025 18:21:45 +0200
Message-ID: <20250709162202.2952597-1-alexandre.derumier@groupe-cyllene.com>

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.

Changelog v8:
    storage :
     - fix Fabian comments
     - add rename_snapshot   
     - add qemu_resize
     - plugin: restrict volnames
     - plugin: use 'external-snapshots' instead 'snapext'
    qemu-server:
     - fix efi test with wrong volnames vm-disk-100-0.raw
     - use rename_snapshot
MAIN TODO:
    - add snapshots tests in both pve-storage && qemu-server
    - better handle snapshot failure with multiple disks


pve-storage:

Alexandre Derumier (13):
  plugin: add qemu_img_create
  plugin: add qemu_img_create_qcow2_backed
  plugin: add qemu_img_info
  plugin: add qemu_img_measure
  plugin: add qemu_img_resize
  rbd && zfs : create_base : remove $running param from volume_snapshot
  storage: volume_snapshot: add $running param
  storage: add rename_snapshot method
  storage: add volume_support_qemu_snapshot
  plugin: fix volname parsing
  qcow2: add external snapshot support
  lvmplugin: add qcow2 snapshot
  tests: add lvmplugin test

 ApiChangeLog                         |  15 +
 src/PVE/Storage.pm                   |  45 ++-
 src/PVE/Storage/BTRFSPlugin.pm       |   6 +
 src/PVE/Storage/CIFSPlugin.pm        |   1 +
 src/PVE/Storage/Common.pm            |  33 ++
 src/PVE/Storage/DirPlugin.pm         |  11 +
 src/PVE/Storage/ESXiPlugin.pm        |   8 +-
 src/PVE/Storage/ISCSIDirectPlugin.pm |   2 +-
 src/PVE/Storage/LVMPlugin.pm         | 571 +++++++++++++++++++++-----
 src/PVE/Storage/LvmThinPlugin.pm     |   8 +-
 src/PVE/Storage/NFSPlugin.pm         |   1 +
 src/PVE/Storage/PBSPlugin.pm         |   2 +-
 src/PVE/Storage/Plugin.pm            | 518 +++++++++++++++++++++---
 src/PVE/Storage/RBDPlugin.pm         |  18 +-
 src/PVE/Storage/ZFSPlugin.pm         |   4 +-
 src/PVE/Storage/ZFSPoolPlugin.pm     |   8 +-
 src/test/Makefile                    |   5 +-
 src/test/run_test_lvmplugin.pl       | 577 +++++++++++++++++++++++++++
 18 files changed, 1662 insertions(+), 171 deletions(-)
 create mode 100755 src/test/run_test_lvmplugin.pl

qemu-server :

Alexandre Derumier (4):
  qemu_img convert : add external snapshot support
  blockdev: add backing_chain support
  qcow2: add external snapshot support
  tests: fix efi vm-disk-100-0.raw -> vm-100-disk-0.raw

 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/efi-raw-old.conf             |   2 +-
 src/test/cfg2cmd/efi-raw-old.conf.cmd         |   2 +-
 src/test/cfg2cmd/efi-raw-template.conf        |   2 +-
 src/test/cfg2cmd/efi-raw-template.conf.cmd    |   2 +-
 src/test/cfg2cmd/efi-raw.conf                 |   2 +-
 src/test/cfg2cmd/efi-raw.conf.cmd             |   2 +-
 src/test/cfg2cmd/efi-secboot-and-tpm-q35.conf |   2 +-
 .../cfg2cmd/efi-secboot-and-tpm-q35.conf.cmd  |   2 +-
 src/test/cfg2cmd/efi-secboot-and-tpm.conf     |   2 +-
 src/test/cfg2cmd/efi-secboot-and-tpm.conf.cmd |   2 +-
 src/test/cfg2cmd/sev-es.conf                  |   2 +-
 src/test/cfg2cmd/sev-es.conf.cmd              |   2 +-
 src/test/cfg2cmd/sev-std.conf                 |   2 +-
 src/test/cfg2cmd/sev-std.conf.cmd             |   2 +-
 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 +-
 23 files changed, 634 insertions(+), 49 deletions(-)
 create mode 100644 src/test/cfg2cmd/simple-backingchain.conf
 create mode 100644 src/test/cfg2cmd/simple-backingchain.conf.cmd


-- 
2.39.5



[-- Attachment #2: Type: text/plain, Size: 160 bytes --]

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

^ permalink raw reply	[flat|nested] 28+ messages in thread
[parent not found: <20250709162202.2952597-1-alexandre.derumier@groupe-cyllene.com>]

end of thread, other threads:[~2025-07-17 16:04 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-07-09 16:21 [pve-devel] [PATCH-SERIES v8 pve-storage/qemu-server] add external qcow2 snapshot support Alexandre Derumier via pve-devel
2025-07-10 15:09 ` [pve-devel] [PATCH FOLLOW-UP storage 1/3] helpers: make qemu_img* storage config independent Fabian Grünbichler
2025-07-10 15:09   ` [pve-devel] [PATCH FOLLOW-UP storage 2/3] helpers: move qemu_img* to Common module Fabian Grünbichler
2025-07-10 15:09   ` [pve-devel] [PATCH FOLLOW-UP storage 3/3] rename_snapshot: fix parameter checks Fabian Grünbichler
2025-07-14  6:34   ` [pve-devel] [PATCH FOLLOW-UP storage 1/3] helpers: make qemu_img* storage config independent DERUMIER, Alexandre via pve-devel
     [not found]   ` <6b7eaeb6af6af22ebdd034236e9e88bc1b5e1e3f.camel@groupe-cyllene.com>
2025-07-14 11:02     ` Fabian Grünbichler
2025-07-10 15:13 ` [pve-devel] [PATCH-SERIES v8 pve-storage/qemu-server] add external qcow2 snapshot support Fabian Grünbichler
2025-07-10 15:46   ` DERUMIER, Alexandre via pve-devel
     [not found]   ` <c6c3457906642a30ddffc0f6b9d28ea6a745ac7c.camel@groupe-cyllene.com>
2025-07-10 16:29     ` Thomas Lamprecht
2025-07-11 12:04       ` DERUMIER, Alexandre via pve-devel
2025-07-14  6:25   ` DERUMIER, Alexandre via pve-devel
2025-07-14  8:18   ` DERUMIER, Alexandre via pve-devel
2025-07-14  8:42   ` DERUMIER, Alexandre via pve-devel
     [not found]   ` <26badbf66613a89e63eaad8b24dd05567900250b.camel@groupe-cyllene.com>
2025-07-14 11:02     ` Fabian Grünbichler
2025-07-15  4:15       ` DERUMIER, Alexandre via pve-devel
     [not found]   ` <719c71b1148846e0cdd7e5c149d8b20146b4d043.camel@groupe-cyllene.com>
2025-07-14 11:04     ` Fabian Grünbichler
2025-07-14 11:11       ` Thomas Lamprecht
2025-07-14 11:15         ` Fabian Grünbichler
2025-07-14 11:27           ` Thomas Lamprecht
2025-07-14 11:46             ` Fabian Grünbichler
2025-07-14 15:12   ` Tiago Sousa via pve-devel
     [not found] <20250709162202.2952597-1-alexandre.derumier@groupe-cyllene.com>
2025-07-16 15:15 ` Thomas Lamprecht
2025-07-17  8:01   ` DERUMIER, Alexandre via pve-devel
2025-07-17 14:49     ` Tiago Sousa via pve-devel
     [not found]     ` <1fddff1a-b806-475a-ac75-1dd0107d1013@eurotux.com>
2025-07-17 15:08       ` DERUMIER, Alexandre via pve-devel
     [not found]       ` <47b76678f969ba97926c85af4bf8e50c9dda161d.camel@groupe-cyllene.com>
2025-07-17 15:42         ` Tiago Sousa via pve-devel
     [not found]         ` <58c2db18-c2c2-4c91-9521-bdb42a302e93@eurotux.com>
2025-07-17 15:53           ` DERUMIER, Alexandre via pve-devel
2025-07-17 16:05           ` DERUMIER, Alexandre via pve-devel

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