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 storage/qemu-server 0/5] avoid absolute qcow2 references
Date: Tue, 29 Jul 2025 09:38:39 +0200	[thread overview]
Message-ID: <20250729073844.185466-1-f.gruenbichler@proxmox.com> (raw)

we don't want qcow2 files to reference their backing chains via
absolute paths, as that makes renaming the base dir or VG of the storage
impossible. in most places, qemu already allows simply passing a
filename as backing-file reference, which will be interpreted as a
reference relative to the backed image.

I haven't found any further code paths that trigger absolute references,
but I might have missed some. the full backing chain should show
relative backing-file members when queried via

qemu-img info --output json --format qcow2 --backing-chain /path/to/main/image.qcow2

such, as:

        "full-backing-filename": "/var/lib/extsnap/images/210/snap-test2-vm-210-disk-0.qcow2",
        "backing-filename": "snap-test2-vm-210-disk-0.qcow2",

note that full-backing-filename will always contain the resolved,
absolute path and that is okay. we could warn about both members
containing full paths in `volume_snapshot_info`.

for existing "broken" images, an "unsafe" rebase with

qemu-img rebase -u -f qcow2 -F qcow2 -b <relative backing file path> <absolute backed filed path>

should just rewrite the qcow2 header to replace the backing file
reference - this should of course not be run while the image is being
written by other process or QEMU.

pve-storage:

Fabian Grünbichler (4):
  plugin: fix typo in rebase log message
  lvm plugin: fix typo in rebase log message
  plugin: use relative path for qcow2 rebase command
  lvm plugin: use relative path for qcow2 rebase command

 src/PVE/Storage/LVMPlugin.pm | 5 +++--
 src/PVE/Storage/Plugin.pm    | 6 +++---
 2 files changed, 6 insertions(+), 5 deletions(-)

qemu-server:

Fabian Grünbichler (1):
  blockdev-stream/-commit: make backing file relative

 src/PVE/QemuServer/Blockdev.pm | 19 +++++++++++++++++--
 1 file changed, 17 insertions(+), 2 deletions(-)

-- 
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-29  7:37 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-07-29  7:38 Fabian Grünbichler [this message]
2025-07-29  7:38 ` [pve-devel] [PATCH storage 1/5] plugin: fix typo in rebase log message Fabian Grünbichler
2025-07-29  8:09   ` Fiona Ebner
2025-07-29  7:38 ` [pve-devel] [PATCH storage 2/5] lvm " Fabian Grünbichler
2025-07-29  8:09   ` Fiona Ebner
2025-07-29  7:38 ` [pve-devel] [PATCH storage 3/5] plugin: use relative path for qcow2 rebase command Fabian Grünbichler
2025-07-29  9:01   ` Fiona Ebner
2025-07-29  7:38 ` [pve-devel] [PATCH storage 4/5] lvm " Fabian Grünbichler
2025-07-29  9:04   ` Fiona Ebner
2025-07-29  7:38 ` [pve-devel] [PATCH qemu-server 5/5] blockdev-stream/-commit: make backing file relative Fabian Grünbichler
2025-07-29  9:17   ` Fiona Ebner
2025-07-29 12:02 ` [pve-devel] superseded: [PATCH storage/qemu-server 0/5] avoid absolute qcow2 references 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=20250729073844.185466-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