From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gate001.proxmox.com (gate001.proxmox.com [45.144.208.40]) by lore.proxmox.com (Postfix) with ESMTPS id 70CA01FF142 for ; Fri, 03 Jul 2026 17:31:49 +0200 (CEST) Received: from gate001.proxmox.com (localhost.localdomain [127.0.0.1]) by gate001.proxmox.com (Proxmox) with ESMTP id 1B5AA214FB; Fri, 03 Jul 2026 17:31:00 +0200 (CEST) From: Thomas Lamprecht To: pve-devel@lists.proxmox.com Subject: [PATCH v2 storage 05/13] lvm: allow a multipath storage as the base device Date: Fri, 3 Jul 2026 14:46:05 +0200 Message-ID: <20260703124707.1172980-7-t.lamprecht@proxmox.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260703124707.1172980-2-t.lamprecht@proxmox.com> References: <20260703124707.1172980-2-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: 1783092615913 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.010 Adjusted score from AWL reputation of From: address DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment (newer systems) 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: VPL7Q2QTG7V67ZF6CWX5ANZ4YF7GOH5O X-Message-ID-Hash: VPL7Q2QTG7V67ZF6CWX5ANZ4YF7GOH5O 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 --- No changes since v1. 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