From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id C2CE5C087D for ; Thu, 11 Jan 2024 16:04:18 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id A230F16ED3 for ; Thu, 11 Jan 2024 16:03:48 +0100 (CET) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [94.136.29.106]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS for ; Thu, 11 Jan 2024 16:03:44 +0100 (CET) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id AA093490D5 for ; Thu, 11 Jan 2024 16:03:44 +0100 (CET) From: Friedrich Weber To: pve-devel@lists.proxmox.com Date: Thu, 11 Jan 2024 16:03:32 +0100 Message-Id: <20240111150332.733635-3-f.weber@proxmox.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240111150332.733635-1-f.weber@proxmox.com> References: <20240111150332.733635-1-f.weber@proxmox.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL -0.105 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 T_SCC_BODY_TEXT_LINE -0.01 - URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [proxmox.com, lvmplugin.pm] Subject: [pve-devel] [PATCH storage 2/2] fix #4997: lvm: set "activation skip" flag for newly created LVs 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: , X-List-Received-Date: Thu, 11 Jan 2024 15:04:18 -0000 Activating an LV creates a device-mapper device. In a cluster with a shared LVM VG (e.g. on top of iSCSI) where an LV is active on nodes 1 and 2, deleting the LV on node 1 will not clean up the device-mapper device on node 2. If an LV with the same name is recreated later, the leftover device-mapper device will cause activation of that LV on node 2 to fail with: > device-mapper: create ioctl on [...] failed: Device or resource busy By default, LVM autoactivates all discovered LVs after boot, thus creating device-mapper device for all discovered LVs. As a result, certain combinations of guest removal (and thus LV removals) and node reboots can cause guest creation or VM live migration (which both entail LV activation) to fail with the above error message, see [1]. To avoid this issue in the future, adjust the LVM plugin to create new LVs with the "activation skip" flag. LVs with that flag are not activated unless `-K` is passed to the activation command. Consequently, new LVs will not be autoactivated after boot anymore, and removing LVs will not leave behind device-mapper devices on other nodes anymore. The LVM plugin is still able to activate LVs, as it already passes `-K` to all activation commands. Note that the flag is only set for newly created LVs, so LVs created before this patch can still trigger #4997. To avoid this, users can manually set the "activation skip" flag on existing LVs. [1] https://bugzilla.proxmox.com/show_bug.cgi?id=4997 Suggested-by: Fabian Grünbichler Signed-off-by: Friedrich Weber --- Notes: Should only be applied close to the next major release, see cover letter. src/PVE/Storage/LVMPlugin.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/PVE/Storage/LVMPlugin.pm b/src/PVE/Storage/LVMPlugin.pm index 66b42de..191e8d3 100644 --- a/src/PVE/Storage/LVMPlugin.pm +++ b/src/PVE/Storage/LVMPlugin.pm @@ -342,7 +342,7 @@ sub lvcreate { $size .= "k"; # default to kilobytes } - my $cmd = ['/sbin/lvcreate', '-aly', '-K', '-Wy', '--yes', '--size', $size, '--name', $name]; + my $cmd = ['/sbin/lvcreate', '-aly', '-K', '-ky', '-Wy', '--yes', '--size', $size, '--name', $name]; for my $tag (@$tags) { push @$cmd, '--addtag', $tag; } -- 2.39.2