From a8cc2611434b17803bd9b50cc3f986f22d0552c7 Mon Sep 17 00:00:00 2001 From: Pearl Dsilva Date: Fri, 25 Feb 2022 15:45:10 +0530 Subject: [PATCH] [vmware, ssvm] Scale down of ssvm (#6042) * [vmware, ssvm] Scale down of ssvm * address comments - change variable name --- .../src/main/java/com/cloud/storage/StorageManager.java | 3 +++ .../src/main/java/com/cloud/storage/StorageManagerImpl.java | 3 ++- .../secondarystorage/PremiumSecondaryStorageManagerImpl.java | 4 +++- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/engine/components-api/src/main/java/com/cloud/storage/StorageManager.java b/engine/components-api/src/main/java/com/cloud/storage/StorageManager.java index a62876aeff0..c00273ee762 100644 --- a/engine/components-api/src/main/java/com/cloud/storage/StorageManager.java +++ b/engine/components-api/src/main/java/com/cloud/storage/StorageManager.java @@ -143,6 +143,9 @@ public interface StorageManager extends StorageService { ConfigKey SecStorageMaxMigrateSessions = new ConfigKey("Advanced", Integer.class, "secstorage.max.migrate.sessions", "2", "The max number of concurrent copy command execution sessions that an SSVM can handle", false, ConfigKey.Scope.Global); + ConfigKey SecStorageVMAutoScaleDown = new ConfigKey("Advanced", Boolean.class, "secstorage.vm.auto.scale.down", "false", + "Setting this to 'true' will auto scale down SSVMs", true, ConfigKey.Scope.Global); + ConfigKey MaxDataMigrationWaitTime = new ConfigKey("Advanced", Integer.class, "max.data.migration.wait.time", "15", "Maximum wait time for a data migration task before spawning a new SSVM", false, ConfigKey.Scope.Global); ConfigKey DiskProvisioningStrictness = new ConfigKey("Storage", Boolean.class, "disk.provisioning.type.strictness", "false", diff --git a/server/src/main/java/com/cloud/storage/StorageManagerImpl.java b/server/src/main/java/com/cloud/storage/StorageManagerImpl.java index a0b5406d01c..400f9534996 100644 --- a/server/src/main/java/com/cloud/storage/StorageManagerImpl.java +++ b/server/src/main/java/com/cloud/storage/StorageManagerImpl.java @@ -3331,7 +3331,8 @@ public class StorageManagerImpl extends ManagerBase implements StorageManager, C SecStorageMaxMigrateSessions, MaxDataMigrationWaitTime, DiskProvisioningStrictness, - PreferredStoragePool + PreferredStoragePool, + SecStorageVMAutoScaleDown }; } diff --git a/services/secondary-storage/controller/src/main/java/org/apache/cloudstack/secondarystorage/PremiumSecondaryStorageManagerImpl.java b/services/secondary-storage/controller/src/main/java/org/apache/cloudstack/secondarystorage/PremiumSecondaryStorageManagerImpl.java index 74d1b509e21..23b4e30f28c 100644 --- a/services/secondary-storage/controller/src/main/java/org/apache/cloudstack/secondarystorage/PremiumSecondaryStorageManagerImpl.java +++ b/services/secondary-storage/controller/src/main/java/org/apache/cloudstack/secondarystorage/PremiumSecondaryStorageManagerImpl.java @@ -184,7 +184,9 @@ public class PremiumSecondaryStorageManagerImpl extends SecondaryStorageManagerI return new Pair(AfterScanAction.expand, SecondaryStorageVm.Role.commandExecutor); } - scaleDownSSVMOnLoad(alreadyRunning, activeCmds, copyCmdsInPipeline); + if (StorageManager.SecStorageVMAutoScaleDown.value()) { + scaleDownSSVMOnLoad(alreadyRunning, activeCmds, copyCmdsInPipeline); + } return new Pair(AfterScanAction.nop, null); }