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 52B891FF170 for ; Mon, 2 Sep 2024 11:18:34 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 4551E80E7; Mon, 2 Sep 2024 11:19:04 +0200 (CEST) Message-ID: <2ada228a-4974-4743-8716-63223af2942c@proxmox.com> Date: Mon, 2 Sep 2024 11:15:18 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: pve-devel@lists.proxmox.com References: <20240829142633.158766-1-d.kral@proxmox.com> Content-Language: en-US From: Filip Schauer In-Reply-To: <20240829142633.158766-1-d.kral@proxmox.com> X-SPAM-LEVEL: Spam detection results: 0 AWL -0.051 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 RCVD_IN_VALIDITY_CERTIFIED_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_RPBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_SAFE_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record T_SCC_BODY_TEXT_LINE -0.01 - WEIRD_PORT 0.001 Uses non-standard port number for HTTP Subject: Re: [pve-devel] [PATCH qemu-server] fix #5284: diallow moving vm disks to storages not meant for images 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-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" I tried to move a VM disk from a directory storarge to another directory storage that does not support the content type 'images'. ``` $ qm disk move 103 efidisk0 local2 400 Parameter verification failed. storage: storage 'local2' does not support vm images qm disk move [] [OPTIONS] ``` As expected, it was prevented. Trying to move a VM disk to a Proxmox Backup Server now returns a more fitting error message. Before the patch: ``` $ qm disk move 103 efidisk0 store1 --delete create full clone of drive efidisk0 (local:103/vm-103-disk-0.qcow2) storage migration failed: can't allocate space in pbs storage ``` After the patch: ``` $ qm disk move 103 efidisk0 store1 --delete 400 Parameter verification failed. storage: storage 'store1' does not support vm images qm disk move [] [OPTIONS] ``` PS: The title has a typo: "diallow" Tested-By: Filip Schauer On 29/08/2024 16:26, Daniel Kral wrote: > Adds a check if the target storage of a VM disk move between two > different storages supports the content type 'images'. Without the > check, it will move the disk image to storages which do not support VM > images, which causes the VM to fail at startup (for any non-unused > disks). > > Signed-off-by: Daniel Kral > --- > There is a content type check for any used volume (e.g. 'scsi0', ...) at > PVE/QemuServer.pm:3964 in the subroutine `config_to_command` which will > (at least) make the VM fail to start unless the volumes are moved to a > storage that supports images again. > > Also, just as a note, moving the disk to storages that do not support > the `vdisk_alloc` method in the storage plugin (like PBS) also > rightfully fail before and after this change. > > PVE/API2/Qemu.pm | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/PVE/API2/Qemu.pm b/PVE/API2/Qemu.pm > index d25a79fe..b6ba9d21 100644 > --- a/PVE/API2/Qemu.pm > +++ b/PVE/API2/Qemu.pm > @@ -4409,6 +4409,9 @@ __PACKAGE__->register_method({ > ); > } elsif ($storeid) { > $rpcenv->check($authuser, "/storage/$storeid", ['Datastore.AllocateSpace']); > + my $scfg = PVE::Storage::storage_config($storecfg, $storeid); > + raise_param_exc({ storage => "storage '$storeid' does not support vm images" }) > + if !$scfg->{content}->{images}; > > $load_and_check_move->(); # early checks before forking/locking > _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel