Allow placing a group of VMs into the same Host #90
If VMs into a group are inter-communicating VMs that are supposed to be placed into the same Host to reduce network traffic and communication delay, this is not ensured.
Even if VMs are not intercommunicating, group placement may be more efficient in some situations.
Best Fit VM Placement
If it's used a Best Fit allocation policy (which selects the Host with less available PEs which fits the VM, maximizing resource usage), the allocation may be:
If these 3 VMs are supposed to be a clone of each other, running some service such as a Web Server, and they used to balance workload, the presented allocation is the best, since it has a failure tolerance level of 2 (if 2 Hosts fail, one VM will continue to run in the third Host and the service is not stopped).
However, if these are VMs from different customers, doesn't matter if they are placed into the same of different Hosts. In this case, the presented placement just increases the number of used Hosts, which may lead to increased energy consumption.
Worst Fit VM Placement
If it's used a Worst Fit allocation policy (which selects the Host with more available PEs with fits the VM, maximizing resource idleness), all VMs may be allocated to Host 4.
As discussed above, if those VMs belong to the same customer and are used for workload balance, this placement doesn't enable fault tolerance and one VM may interfere with other one's performance. On the other hand, if they belong to different customers, this placement maximizes resource usage and minimize energy consumption.
Problems with presented policies
As can be seen, the kind of policy to be used depends on the desired goal.
The Best Fit placement used 2 Hosts when it could be selected only the Host 3 to place all VMs and reduce the number of active Hosts.
This way, if a VmAllocationPolicy considered placing a group of VMs together, a Best Fit placement would be able to select Host 3 to place all these VMs.
A brief explanation of why you think this feature is useful
It will give more flexibility for the developer to implement and assess different placement policies, considering distinct scenarios and goals.
Features not Implemented
The text was updated successfully, but these errors were encountered:
Is it possible to allocate VMs to hosts based on heuristics like Simuated Annealing?
Would this be easier to implement in the original CloudSim?
You can adapt the mentioned example to place VMs into Hosts. The logic is the same, you are just changing the kind of objects to deal with. After implementing your Simulated Annealing algorithm based on the provided example, you can create a subclass of VmAllocationPolicyAbstract and override the
For sure, anything that you try to implement in CloudSim will be way more difficult due to the narrow documentation, excessive code duplication and lack of organization.
If you have any further question, please subscribe to the forum.
PS: If you haven't given CloudSim Plus a star, we appreciate if you do that.