From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id EAB3C1FF168 for ; Tue, 4 Mar 2025 11:44:48 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 7B77D1B2ED; Tue, 4 Mar 2025 11:44:24 +0100 (CET) From: Fiona Ebner To: pve-devel@lists.proxmox.com Date: Tue, 4 Mar 2025 11:44:01 +0100 Message-Id: <20250304104413.38638-1-f.ebner@proxmox.com> X-Mailer: git-send-email 2.39.5 MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL -0.043 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy 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] Subject: [pve-devel] [PATCH-SERIES guest-common/manager/qemu-server/container 00/12] backup/restore: improve missing drive and owned CD-ROM handling 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: , Reply-To: Proxmox VE development discussion Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" Missing drive handling during restore: Currently, the configuration line for a drive that is marked for backup (i.e. 'backup' flag not explicitly set to 0), but missing from the restore map will be added verbatim to the restored configuration. As reported in the community forum [0], this can cause issues with a VM with a configured EFI disk, but not using OVMF BIOS. In such a case, the EFI disk is not backed up, see the get_backup_volumes() helper in QemuConfig.pm. Writing out references to non-existent volumes to the restored config will lead to issues starting the VM. Write such references as comments instead, like is already done for volumes explicitly excluded from backup. But add a warning since this is not expected, and info for the EFI disk case. Owned CD-ROM handling: Currently, all volumes with a 'media=cdrom' marker are excluded from backup. For owned volumes, this is very surprising. Treat owned CD-ROM volumes like other volumes and consider the 'backup' marker instead. Cloud-init volumes are owned, but still skipped, because they are generated from the configuration/snippets. Add a reminder to start removing owned CD-ROMs with PVE 9 when destroying a VM. The first 5 qemu-server patches are improvements that make sense even if we don't go for the rest. The get_backup_volumes() patches belong together and are a prerequisite for qemu-server patch "backup: include owned CD-ROM volumes". No hard dependency bumps, but optionally pve-manager -> pve-guest-common -> qemu-server,pve-container for the get_backup_volumes() signature change and to make the change from "backup: include owned CD-ROM volumes" take effect. guest-common: Fiona Ebner (1): abstract config: make get_backup_volumes() method more flexible src/PVE/AbstractConfig.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) manager: Fiona Ebner (1): api: backup: adapt to new get_backup_volumes() signature PVE/API2/Backup.pm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) qemu-server: Fiona Ebner (9): cloudinit: avoid undefined value warning when no searchdomain is defined drive: move vm_is_volid_owner() and try_deallocate_drive() helpers to Drive module test: restore config: use diff to make failure human-readable test: restore config: add config with missing disks test: restore config: test behavior for disks with absolute paths backup restore: improve missing drive handling backup: adapt to new get_backup_volumes() signature backup: include owned CD-ROM volumes destroy vm: add reminder to also remove owned CD-ROMs starting with PVE 9 PVE/API2/Qemu.pm | 8 +++- PVE/QemuConfig.pm | 12 +++++- PVE/QemuServer.pm | 55 ++++++++------------------- PVE/QemuServer/Cloudinit.pm | 2 +- PVE/QemuServer/Drive.pm | 38 ++++++++++++++++++ PVE/VZDump/QemuServer.pm | 2 +- test/restore-config-expected/110.conf | 16 ++++++++ test/restore-config-expected/140.conf | 17 +++++++++ test/restore-config-input/110.conf | 18 +++++++++ test/restore-config-input/140.conf | 18 +++++++++ test/run_qemu_restore_config_tests.pl | 13 +++++-- 11 files changed, 149 insertions(+), 50 deletions(-) create mode 100644 test/restore-config-expected/110.conf create mode 100644 test/restore-config-expected/140.conf create mode 100644 test/restore-config-input/110.conf create mode 100644 test/restore-config-input/140.conf container: Fiona Ebner (1): backup: adapt to new get_backup_volumes() signature src/PVE/LXC/Config.pm | 2 +- src/PVE/VZDump/LXC.pm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) Summary over all repositories: 15 files changed, 154 insertions(+), 55 deletions(-) -- Generated by git-murpp 0.5.0 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel