mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
fix allocation of vmfs storage pools (#10201)
This commit is contained in:
parent
641a60670e
commit
a335feab6a
@ -126,18 +126,24 @@ public abstract class AbstractStoragePoolAllocator extends AdapterBase implement
|
||||
protected List<StoragePool> reorderPoolsByCapacity(DeploymentPlan plan, List<StoragePool> pools) {
|
||||
Long zoneId = plan.getDataCenterId();
|
||||
Long clusterId = plan.getClusterId();
|
||||
short capacityType;
|
||||
|
||||
if (CollectionUtils.isEmpty(pools)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (pools.get(0).getPoolType().isShared()) {
|
||||
short capacityType = Capacity.CAPACITY_TYPE_LOCAL_STORAGE;
|
||||
String storageType = "local";
|
||||
StoragePool storagePool = pools.get(0);
|
||||
if (storagePool.isShared()) {
|
||||
capacityType = Capacity.CAPACITY_TYPE_STORAGE_ALLOCATED;
|
||||
} else {
|
||||
capacityType = Capacity.CAPACITY_TYPE_LOCAL_STORAGE;
|
||||
storageType = "shared";
|
||||
}
|
||||
|
||||
s_logger.debug(String.format(
|
||||
"Filtering storage pools by capacity type [%s] as the first storage pool of the list, with name [%s] and ID [%s], is a [%s] storage.",
|
||||
capacityType, storagePool.getName(), storagePool.getUuid(), storageType
|
||||
));
|
||||
|
||||
List<Long> poolIdsByCapacity = capacityDao.orderHostsByFreeCapacity(zoneId, clusterId, capacityType);
|
||||
|
||||
s_logger.debug(String.format("List of pools in descending order of available capacity [%s].", poolIdsByCapacity));
|
||||
@ -223,6 +229,8 @@ public abstract class AbstractStoragePoolAllocator extends AdapterBase implement
|
||||
}
|
||||
|
||||
List<StoragePool> reorderStoragePoolsBasedOnAlgorithm(List<StoragePool> pools, DeploymentPlan plan, Account account) {
|
||||
s_logger.debug(String.format("Using allocation algorithm [%s] to reorder pools.", allocationAlgorithm));
|
||||
|
||||
if (allocationAlgorithm.equals("random") || allocationAlgorithm.equals("userconcentratedpod_random") || (account == null)) {
|
||||
reorderRandomPools(pools);
|
||||
} else if (StringUtils.equalsAny(allocationAlgorithm, "userdispersing", "firstfitleastconsumed")) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user