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 DCFCD1FF14C for ; Fri, 26 Jun 2026 14:11:13 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 8F837F5D9; Fri, 26 Jun 2026 14:10:53 +0200 (CEST) From: Thomas Lamprecht To: pve-devel@lists.proxmox.com Subject: [PATCH storage 05/13] lvm: allow a multipath storage as the base device Date: Fri, 26 Jun 2026 14:07:35 +0200 Message-ID: <20260626121000.2095591-6-t.lamprecht@proxmox.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260626121000.2095591-1-t.lamprecht@proxmox.com> References: <20260626121000.2095591-1-t.lamprecht@proxmox.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1782475801499 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.005 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 Message-ID-Hash: ZOV5Y2PE2FTYJ4CWJ2J7NINQD7XJB237 X-Message-ID-Hash: ZOV5Y2PE2FTYJ4CWJ2J7NINQD7XJB237 X-MailFrom: t.lamprecht@proxmox.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox VE development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: on_add_hook only accepted an iscsi base when creating the volume group. Accept the new multipath type as well, so a shared VG can sit on a multipath LUN and inherit its path redundancy. The map device is assembled on demand by multipathd, so activate the base volume to ensure the map is present before pvcreate runs on it. Signed-off-by: Thomas Lamprecht --- src/PVE/Storage/LVMPlugin.pm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/PVE/Storage/LVMPlugin.pm b/src/PVE/Storage/LVMPlugin.pm index a313ecc..433c942 100644 --- a/src/PVE/Storage/LVMPlugin.pm +++ b/src/PVE/Storage/LVMPlugin.pm @@ -485,13 +485,14 @@ sub on_add_hook { my $basecfg = PVE::Storage::storage_config($cfg, $baseid, 1); die "base storage ID '$baseid' does not exist\n" if !$basecfg; - # we only support iscsi for now - die "unsupported base type '$basecfg->{type}'" - if $basecfg->{type} ne 'iscsi'; + die "unsupported base type '$basecfg->{type}'\n" + if $basecfg->{type} ne 'iscsi' && $basecfg->{type} ne 'multipath'; my $path = PVE::Storage::path($cfg, $base); PVE::Storage::activate_storage($cfg, $baseid); + # the multipath map must be assembled before we can pvcreate on it + PVE::Storage::activate_volumes($cfg, [$base]) if $basecfg->{type} eq 'multipath'; lvm_create_volume_group($path, $scfg->{vgname}, $scfg->{shared}); } -- 2.47.3