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) {
|
protected List<StoragePool> reorderPoolsByCapacity(DeploymentPlan plan, List<StoragePool> pools) {
|
||||||
Long zoneId = plan.getDataCenterId();
|
Long zoneId = plan.getDataCenterId();
|
||||||
Long clusterId = plan.getClusterId();
|
Long clusterId = plan.getClusterId();
|
||||||
short capacityType;
|
|
||||||
|
|
||||||
if (CollectionUtils.isEmpty(pools)) {
|
if (CollectionUtils.isEmpty(pools)) {
|
||||||
return null;
|
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;
|
capacityType = Capacity.CAPACITY_TYPE_STORAGE_ALLOCATED;
|
||||||
} else {
|
storageType = "shared";
|
||||||
capacityType = Capacity.CAPACITY_TYPE_LOCAL_STORAGE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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);
|
List<Long> poolIdsByCapacity = capacityDao.orderHostsByFreeCapacity(zoneId, clusterId, capacityType);
|
||||||
|
|
||||||
s_logger.debug(String.format("List of pools in descending order of available capacity [%s].", poolIdsByCapacity));
|
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) {
|
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)) {
|
if (allocationAlgorithm.equals("random") || allocationAlgorithm.equals("userconcentratedpod_random") || (account == null)) {
|
||||||
reorderRandomPools(pools);
|
reorderRandomPools(pools);
|
||||||
} else if (StringUtils.equalsAny(allocationAlgorithm, "userdispersing", "firstfitleastconsumed")) {
|
} else if (StringUtils.equalsAny(allocationAlgorithm, "userdispersing", "firstfitleastconsumed")) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user