... by directly calling lvcreate instead of using the LVM storage
plugin's helper sub.

Autoactivation is required for LVs used by Ceph OSDs, as Ceph
otherwise doesn't activate them by itself.

This is a regression from f296ffc4e4d in pve-storage [0].

[0]: 
https://git.proxmox.com/?p=pve-storage.git;a=commitdiff;h=f296ffc4e4d64b574c3001dc7cc6af3da1406441

Fixes: #6652
Signed-off-by: Max R. Carrara <m.carr...@proxmox.com>
---
 PVE/API2/Ceph/OSD.pm | 20 +++++++++++++++++++-
 1 file changed, 19 insertions(+), 1 deletion(-)

diff --git a/PVE/API2/Ceph/OSD.pm b/PVE/API2/Ceph/OSD.pm
index 23e187ce..4801f8dd 100644
--- a/PVE/API2/Ceph/OSD.pm
+++ b/PVE/API2/Ceph/OSD.pm
@@ -443,7 +443,25 @@ __PACKAGE__->register_method({
                 my $lv = $type . "-" . UUID::uuid();
 
                 
PVE::Storage::LVMPlugin::lvm_create_volume_group($dev->{devpath}, $vg);
-                PVE::Storage::LVMPlugin::lvcreate($vg, $lv, "${size}k");
+
+                my $cmd = [
+                    '/sbin/lvcreate',
+                    '-aly',
+                    '-Wy',
+                    '--yes',
+                    '--size',
+                    # size in kilobytes
+                    $size . "k",
+                    '--name',
+                    $lv,
+                    # explicitly enable autoactivation,
+                    # otherwise ceph-volume cannot bring the LV online
+                    '--setautoactivation',
+                    'y',
+                    $vg,
+                ];
+
+                run_command($cmd, errmsg => "lvcreate '$vg/$lv' error");
 
                 if (PVE::Diskmanage::is_partition($dev->{devpath})) {
                     eval { PVE::Diskmanage::change_parttype($dev->{devpath}, 
'8E00'); };
-- 
2.47.2



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to