public abstract class PowerVmAllocationPolicyMigrationAbstract extends PowerVmAllocationPolicyAbstract
| Constructor and Description |
|---|
PowerVmAllocationPolicyMigrationAbstract(java.util.List<? extends Host> hostList,
PowerVmSelectionPolicy vmSelectionPolicy)
Instantiates a new power vm allocation policy migration abstract.
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
addHistoryEntry(HostDynamicWorkload host,
double metric)
Adds the history value.
|
protected boolean |
areAllVmsMigratingOutOrAnyVmMigratingIn(PowerHost host)
Checks whether all vms are in migration.
|
protected java.util.List<PowerHost> |
extractHostListFromMigrationMap(java.util.List<java.util.Map<java.lang.String,java.lang.Object>> migrationMap)
Extract host list from migration map.
|
PowerHost |
findHostForVm(Vm vm)
Find host for vm.
|
PowerHost |
findHostForVm(Vm vm,
java.util.Set<? extends Host> excludedHosts)
Find host for vm.
|
java.util.List<java.lang.Double> |
getExecutionTimeHistoryHostSelection()
Gets the execution time history host selection.
|
java.util.List<java.lang.Double> |
getExecutionTimeHistoryTotal()
Gets the execution time history total.
|
java.util.List<java.lang.Double> |
getExecutionTimeHistoryVmReallocation()
Gets the execution time history vm reallocation.
|
java.util.List<java.lang.Double> |
getExecutionTimeHistoryVmSelection()
Gets the execution time history vm selection.
|
protected double |
getMaxUtilizationAfterAllocation(PowerHost host,
Vm vm)
Gets the power after allocation.
|
java.util.Map<java.lang.Integer,java.util.List<java.lang.Double>> |
getMetricHistory()
Gets the metric history.
|
protected java.util.List<java.util.Map<java.lang.String,java.lang.Object>> |
getMigrationMapFromUnderUtilizedHosts(java.util.List<PowerHostUtilizationHistory> overUtilizedHosts)
Gets the migration map from under utilized hosts.
|
protected java.util.List<java.util.Map<java.lang.String,java.lang.Object>> |
getNewVmPlacement(java.util.List<? extends Vm> vmsToMigrate,
java.util.Set<? extends Host> excludedHosts)
Gets the new vm placement.
|
protected java.util.List<java.util.Map<java.lang.String,java.lang.Object>> |
getNewVmPlacementFromUnderUtilizedHost(java.util.List<? extends Vm> vmsToMigrate,
java.util.Set<? extends Host> excludedHosts)
Gets the new vm placement from under utilized host.
|
protected java.util.List<PowerHostUtilizationHistory> |
getOverUtilizedHosts()
Gets the over utilized hosts.
|
protected double |
getPowerAfterAllocation(PowerHost host,
Vm vm)
Gets the power after allocation.
|
protected java.util.List<java.util.Map<java.lang.String,java.lang.Object>> |
getSavedAllocation()
Gets the saved allocation.
|
protected java.util.List<PowerHost> |
getSwitchedOffHosts()
Gets the switched off host.
|
java.util.Map<java.lang.Integer,java.util.List<java.lang.Double>> |
getTimeHistory()
Gets the time history.
|
protected PowerHost |
getUnderUtilizedHost(java.util.Set<? extends Host> excludedHosts)
Gets the under utilized host.
|
java.util.Map<java.lang.Integer,java.util.List<java.lang.Double>> |
getUtilizationHistory()
Gets the utilization history.
|
protected double |
getUtilizationOfCpuMips(PowerHost host)
Gets the utilization of the CPU in MIPS for the current potentially allocated VMs.
|
protected PowerVmSelectionPolicy |
getVmSelectionPolicy()
Gets the vm selection policy.
|
protected java.util.List<? extends Vm> |
getVmsToMigrateFromHosts(java.util.List<PowerHostUtilizationHistory> overUtilizedHosts)
Gets the vms to migrate from hosts.
|
protected java.util.List<? extends Vm> |
getVmsToMigrateFromUnderUtilizedHost(PowerHost host)
Gets the vms to migrate from under utilized host.
|
protected abstract boolean |
isHostOverUtilized(PowerHost host)
Checks if is host over utilized.
|
protected boolean |
isHostOverUtilizedAfterAllocation(PowerHost host,
Vm vm)
Checks if is host over utilized after allocation.
|
java.util.List<java.util.Map<java.lang.String,java.lang.Object>> |
optimizeAllocation(java.util.List<? extends Vm> vmList)
Optimize allocation of the VMs according to current utilization.
|
protected void |
printOverUtilizedHosts(java.util.List<PowerHostUtilizationHistory> overUtilizedHosts)
Prints the over utilized hosts.
|
protected void |
restoreAllocation()
Restore allocation.
|
protected void |
saveAllocation()
Save allocation.
|
protected void |
setVmSelectionPolicy(PowerVmSelectionPolicy vmSelectionPolicy)
Sets the vm selection policy.
|
allocateHostForVm, allocateHostForVm, deallocateHostForVm, getHost, getHost, getVmTablegetHostList, setHostListpublic PowerVmAllocationPolicyMigrationAbstract(java.util.List<? extends Host> hostList, PowerVmSelectionPolicy vmSelectionPolicy)
hostList - the host listvmSelectionPolicy - the vm selection policypublic java.util.List<java.util.Map<java.lang.String,java.lang.Object>> optimizeAllocation(java.util.List<? extends Vm> vmList)
optimizeAllocation in class VmAllocationPolicyvmList - the vm listprotected java.util.List<java.util.Map<java.lang.String,java.lang.Object>> getMigrationMapFromUnderUtilizedHosts(java.util.List<PowerHostUtilizationHistory> overUtilizedHosts)
overUtilizedHosts - the over utilized hostsprotected void printOverUtilizedHosts(java.util.List<PowerHostUtilizationHistory> overUtilizedHosts)
overUtilizedHosts - the over utilized hostspublic PowerHost findHostForVm(Vm vm, java.util.Set<? extends Host> excludedHosts)
vm - the vmexcludedHosts - the excluded hostsprotected boolean isHostOverUtilizedAfterAllocation(PowerHost host, Vm vm)
host - the hostvm - the vmpublic PowerHost findHostForVm(Vm vm)
findHostForVm in class PowerVmAllocationPolicyAbstractvm - the vmprotected java.util.List<PowerHost> extractHostListFromMigrationMap(java.util.List<java.util.Map<java.lang.String,java.lang.Object>> migrationMap)
migrationMap - the migration mapprotected java.util.List<java.util.Map<java.lang.String,java.lang.Object>> getNewVmPlacement(java.util.List<? extends Vm> vmsToMigrate, java.util.Set<? extends Host> excludedHosts)
vmsToMigrate - the vms to migrateexcludedHosts - the excluded hostsprotected java.util.List<java.util.Map<java.lang.String,java.lang.Object>> getNewVmPlacementFromUnderUtilizedHost(java.util.List<? extends Vm> vmsToMigrate, java.util.Set<? extends Host> excludedHosts)
vmsToMigrate - the vms to migrateexcludedHosts - the excluded hostsprotected java.util.List<? extends Vm> getVmsToMigrateFromHosts(java.util.List<PowerHostUtilizationHistory> overUtilizedHosts)
overUtilizedHosts - the over utilized hostsprotected java.util.List<? extends Vm> getVmsToMigrateFromUnderUtilizedHost(PowerHost host)
host - the hostprotected java.util.List<PowerHostUtilizationHistory> getOverUtilizedHosts()
protected java.util.List<PowerHost> getSwitchedOffHosts()
protected PowerHost getUnderUtilizedHost(java.util.Set<? extends Host> excludedHosts)
excludedHosts - the excluded hostsprotected boolean areAllVmsMigratingOutOrAnyVmMigratingIn(PowerHost host)
host - the hostprotected abstract boolean isHostOverUtilized(PowerHost host)
host - the hostprotected void addHistoryEntry(HostDynamicWorkload host, double metric)
host - the hostmetric - the metricprotected void saveAllocation()
protected void restoreAllocation()
protected double getPowerAfterAllocation(PowerHost host, Vm vm)
host - the hostvm - the vmprotected double getMaxUtilizationAfterAllocation(PowerHost host, Vm vm)
host - the hostvm - the vmprotected double getUtilizationOfCpuMips(PowerHost host)
host - the hostprotected java.util.List<java.util.Map<java.lang.String,java.lang.Object>> getSavedAllocation()
protected void setVmSelectionPolicy(PowerVmSelectionPolicy vmSelectionPolicy)
vmSelectionPolicy - the new vm selection policyprotected PowerVmSelectionPolicy getVmSelectionPolicy()
public java.util.Map<java.lang.Integer,java.util.List<java.lang.Double>> getUtilizationHistory()
public java.util.Map<java.lang.Integer,java.util.List<java.lang.Double>> getMetricHistory()
public java.util.Map<java.lang.Integer,java.util.List<java.lang.Double>> getTimeHistory()
public java.util.List<java.lang.Double> getExecutionTimeHistoryVmSelection()
public java.util.List<java.lang.Double> getExecutionTimeHistoryHostSelection()
public java.util.List<java.lang.Double> getExecutionTimeHistoryVmReallocation()
public java.util.List<java.lang.Double> getExecutionTimeHistoryTotal()