From ab997d5f7fb62537e27d845c2ff360a3a38734ca Mon Sep 17 00:00:00 2001 From: Pearl Dsilva Date: Thu, 24 Feb 2022 12:09:24 +0530 Subject: [PATCH 1/2] [vmware, ssvm] Scale down of ssvm --- .../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 a62876aeff0a..5a52993c8734 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 SecStorageVMScaleDown = new ConfigKey("Advanced", Boolean.class, "secstorage.vm.auto.scale.down", "false", + "Setting this to 'true' will auto scale down SSVMs when there are no active commands” ", 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 a0b5406d01c7..394ca9fc0b11 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 ConfigKey[] getConfigKeys() { SecStorageMaxMigrateSessions, MaxDataMigrationWaitTime, DiskProvisioningStrictness, - PreferredStoragePool + PreferredStoragePool, + SecStorageVMScaleDown }; } 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 74d1b509e21f..fcb0b1118526 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 @@ else if (!copyCmdsInPipeline.isEmpty() && copyCmdsInPipeline.size() >= halfLimi return new Pair(AfterScanAction.expand, SecondaryStorageVm.Role.commandExecutor); } - scaleDownSSVMOnLoad(alreadyRunning, activeCmds, copyCmdsInPipeline); + if (StorageManager.SecStorageVMScaleDown.value()) { + scaleDownSSVMOnLoad(alreadyRunning, activeCmds, copyCmdsInPipeline); + } return new Pair(AfterScanAction.nop, null); } From 4c82e7770e386517530061d16e3e868eb6407835 Mon Sep 17 00:00:00 2001 From: Pearl Dsilva Date: Thu, 24 Feb 2022 18:16:50 +0530 Subject: [PATCH 2/2] address comments - change variable name --- .../src/main/java/com/cloud/storage/StorageManager.java | 4 ++-- .../src/main/java/com/cloud/storage/StorageManagerImpl.java | 2 +- .../secondarystorage/PremiumSecondaryStorageManagerImpl.java | 2 +- 3 files changed, 4 insertions(+), 4 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 5a52993c8734..c00273ee762a 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,8 +143,8 @@ 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 SecStorageVMScaleDown = new ConfigKey("Advanced", Boolean.class, "secstorage.vm.auto.scale.down", "false", - "Setting this to 'true' will auto scale down SSVMs when there are no active commands” ", true, 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); diff --git a/server/src/main/java/com/cloud/storage/StorageManagerImpl.java b/server/src/main/java/com/cloud/storage/StorageManagerImpl.java index 394ca9fc0b11..400f95349969 100644 --- a/server/src/main/java/com/cloud/storage/StorageManagerImpl.java +++ b/server/src/main/java/com/cloud/storage/StorageManagerImpl.java @@ -3332,7 +3332,7 @@ public ConfigKey[] getConfigKeys() { MaxDataMigrationWaitTime, DiskProvisioningStrictness, PreferredStoragePool, - SecStorageVMScaleDown + 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 fcb0b1118526..23b4e30f28cc 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,7 @@ else if (!copyCmdsInPipeline.isEmpty() && copyCmdsInPipeline.size() >= halfLimi return new Pair(AfterScanAction.expand, SecondaryStorageVm.Role.commandExecutor); } - if (StorageManager.SecStorageVMScaleDown.value()) { + if (StorageManager.SecStorageVMAutoScaleDown.value()) { scaleDownSSVMOnLoad(alreadyRunning, activeCmds, copyCmdsInPipeline); } return new Pair(AfterScanAction.nop, null);