From 2729ee110eba9a7ba3117af3b8033bdf2032585b Mon Sep 17 00:00:00 2001 From: Daniel Augusto Veronezi Salvador <38945620+GutoVeronezi@users.noreply.github.com> Date: Fri, 9 Feb 2024 05:35:34 -0300 Subject: [PATCH 1/2] Enable over provisioning for SharedMountPoint primary storages (#8481) * Enable over provisioning for SharedMountPoint primary storages * Fix unit tests * Fix typos and small adjusts --------- Co-authored-by: Daniel Augusto Veronezi Salvador --- api/src/main/java/com/cloud/storage/Storage.java | 16 +++++++++------- .../test/java/com/cloud/storage/StorageTest.java | 4 ++-- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/api/src/main/java/com/cloud/storage/Storage.java b/api/src/main/java/com/cloud/storage/Storage.java index c6dee56fa22..ad04a7a5fb2 100644 --- a/api/src/main/java/com/cloud/storage/Storage.java +++ b/api/src/main/java/com/cloud/storage/Storage.java @@ -138,7 +138,7 @@ public class Storage { LVM(false, false, false), // XenServer local LVM SR CLVM(true, false, false), RBD(true, true, false), // http://libvirt.org/storage.html#StorageBackendRBD - SharedMountPoint(true, false, true), + SharedMountPoint(true, true, true), VMFS(true, true, false), // VMware VMFS storage PreSetup(true, true, false), // for XenServer, Storage Pool is set up by customers. EXT(false, true, false), // XenServer local EXT SR @@ -152,12 +152,12 @@ public class Storage { StorPool(true, true, true); private final boolean shared; - private final boolean overprovisioning; + private final boolean overProvisioning; private final boolean encryption; - StoragePoolType(boolean shared, boolean overprovisioning, boolean encryption) { + StoragePoolType(boolean shared, boolean overProvisioning, boolean encryption) { this.shared = shared; - this.overprovisioning = overprovisioning; + this.overProvisioning = overProvisioning; this.encryption = encryption; } @@ -166,14 +166,16 @@ public class Storage { } public boolean supportsOverProvisioning() { - return overprovisioning; + return overProvisioning; } - public boolean supportsEncryption() { return encryption; } + public boolean supportsEncryption() { + return encryption; + } } public static List getNonSharedStoragePoolTypes() { - List nonSharedStoragePoolTypes = new ArrayList(); + List nonSharedStoragePoolTypes = new ArrayList<>(); for (StoragePoolType storagePoolType : StoragePoolType.values()) { if (!storagePoolType.isShared()) { nonSharedStoragePoolTypes.add(storagePoolType); diff --git a/api/src/test/java/com/cloud/storage/StorageTest.java b/api/src/test/java/com/cloud/storage/StorageTest.java index 951ee9fe76a..76fd5c5d3a4 100644 --- a/api/src/test/java/com/cloud/storage/StorageTest.java +++ b/api/src/test/java/com/cloud/storage/StorageTest.java @@ -52,7 +52,7 @@ public class StorageTest { } @Test - public void supportsOverprovisioningStoragePool() { + public void supportsOverProvisioningTestAllStoragePoolTypes() { Assert.assertTrue(StoragePoolType.Filesystem.supportsOverProvisioning()); Assert.assertTrue(StoragePoolType.NetworkFilesystem.supportsOverProvisioning()); Assert.assertFalse(StoragePoolType.IscsiLUN.supportsOverProvisioning()); @@ -63,7 +63,7 @@ public class StorageTest { Assert.assertFalse(StoragePoolType.CLVM.supportsOverProvisioning()); Assert.assertTrue(StoragePoolType.RBD.supportsOverProvisioning()); Assert.assertTrue(StoragePoolType.PowerFlex.supportsOverProvisioning()); - Assert.assertFalse(StoragePoolType.SharedMountPoint.supportsOverProvisioning()); + Assert.assertTrue(StoragePoolType.SharedMountPoint.supportsOverProvisioning()); Assert.assertTrue(StoragePoolType.VMFS.supportsOverProvisioning()); Assert.assertTrue(StoragePoolType.PreSetup.supportsOverProvisioning()); Assert.assertTrue(StoragePoolType.EXT.supportsOverProvisioning()); From 393f3d7727a8f8b2f19114ea439ed03653485146 Mon Sep 17 00:00:00 2001 From: Rene Peinthor Date: Fri, 9 Feb 2024 11:49:20 +0100 Subject: [PATCH 2/2] linstor: use relative hostname path (#8633) As described in issue #8310 some older distributions don't have hostname in /usr/bin so rely on PATH resolving --- .../cloud/hypervisor/kvm/storage/LinstorStorageAdaptor.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/storage/volume/linstor/src/main/java/com/cloud/hypervisor/kvm/storage/LinstorStorageAdaptor.java b/plugins/storage/volume/linstor/src/main/java/com/cloud/hypervisor/kvm/storage/LinstorStorageAdaptor.java index 426145d9dcc..87746447188 100644 --- a/plugins/storage/volume/linstor/src/main/java/com/cloud/hypervisor/kvm/storage/LinstorStorageAdaptor.java +++ b/plugins/storage/volume/linstor/src/main/java/com/cloud/hypervisor/kvm/storage/LinstorStorageAdaptor.java @@ -72,7 +72,7 @@ public class LinstorStorageAdaptor implements StorageAdaptor { private String getHostname() { // either there is already some function for that in the agent or a better way. - ProcessBuilder pb = new ProcessBuilder("/usr/bin/hostname"); + ProcessBuilder pb = new ProcessBuilder("hostname"); try { String result; @@ -88,7 +88,7 @@ public class LinstorStorageAdaptor implements StorageAdaptor { return result.trim(); } catch (IOException | InterruptedException exc) { Thread.currentThread().interrupt(); - throw new CloudRuntimeException("Unable to run '/usr/bin/hostname' command."); + throw new CloudRuntimeException("Unable to run 'hostname' command."); } }