An interface that represents the policy used by a Virtual Machine Monitor (VMM) to share processing power of a PM among VMs running in a host. Each host has to use is own instance of a VmScheduler that will so schedule the allocation of host’s PEs for VMs running on it.
Author: Rodrigo N. Calheiros, Anton Beloglazov, Manoel Campos da Silva Filho
Releases PEs allocated to all the VMs of the host the VmScheduler is associated to. After that, all PEs will be available to be used on demand for requesting VMs.
Gets the total amount of MIPS that is currently free. If there are VMs migrating into the Host, their requested MIPS will already be allocated, reducing the total available MIPS.
Gets the maximum available MIPS among all the host’s PEs.
Gets the max percentage of CPU a VM migrating out of this Host can use. Since there may be an overhead associated to the migration process (if the
CPU overhead for VM migrationis greater than 0), during the migration, the amount of MIPS the VM can use is reduced due to this overhead.
Returns: the max percentage of CPU usage during migration (in scale from [0 to 1], where 1 is 100%)
Gets the actual total allocated MIPS for a VM along all its allocated PEs. If the VM is migrating into the Host, then just a fraction of the requested MIPS is actually allocated, representing the overhead of the migration process.
The MIPS requested by the VM are just actually allocated after the migration is completed.
- vm – the VM to get the total allocated MIPS
Defines the percentage of Host’s CPU usage increase when a VM is migrating in or out of the Host. The value is in scale from 0 to 1 (where 1 is 100%).
Returns: the Host’s CPU migration overhead percentage.
Checks if the PM using this scheduler has enough MIPS capacity to host a given VM.
- vm – the vm to check if there is enough available resource on the PM to host it
true, if it is possible to allocate the the VM into the host; false otherwise
isSuitableForVm(Vm vm, List<Double> requestedMips)¶
Checks if a list of MIPS requested by a VM is allowed to be allocated or not. Depending on the
VmSchedulerimplementation, the return value of this method may have different effects:
- true: requested MIPS can be allocated, partial or totally;
- false: requested MIPS cannot be allocated because there is no availability at all or there is just a partial amount of the requested MIPS available and the
VmSchedulerimplementation doesn’t allow allocating less than the VM is requesting. If less than the required MIPS is allocated to a VM, it will cause performance degradation. Such situation defines an over-subscription situation which just specific
- vm – the
Vmto check if there are enough MIPS to allocate to
- requestedMips – a list of MIPS requested by a VM
true if the requested MIPS List is allowed to be allocated to the VM, false otherwise
Sets the host that the VmScheduler get the list of PEs to allocate to VMs. A host for the VmScheduler is set when the VmScheduler is set to a given host. Thus, the host is in charge to set itself to a VmScheduler.
- host – the host to be set