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 23abb67dfa0..0ceae02a2fd 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 b1a33c0d31c..db24b17bbe1 100644 --- a/server/src/main/java/com/cloud/storage/StorageManagerImpl.java +++ b/server/src/main/java/com/cloud/storage/StorageManagerImpl.java @@ -3339,7 +3339,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); }