Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
VM vertical scaling #7
Detailed information about how the feature should work
The VM should have a property to enable vertically scaling RAM, CPU and BW.
This can be tricky in real cloud environments, once both hypervisor and guest operating systems may have to support hot adding resources such as RAM and CPU. For instance, it is reported that KVM and Microsoft Hyper-V support such a feature.
There are two different ways to vertically scale a specific resource, by:
Vertical scaling of RAM, Storage and BW follows the 1st approach, by resizing the resource to scale it up or down.
Vertical scaling of PEs uses the 2nd approach. Since the VM doesn't have a List of PE objects, but just stores the number of PEs and MIPS capacity of each one, the scaling is performed by just increasing or decreasing the numberOfPes attribute to simulate the addition of a virtual CPU core.
The Processor class is currently being used in the Vm class to put together the numberOfPes and MIPS. Since the Processor implements the ResourceManageable interface, this approach enabled to detect under and overload in a polymorphic way, but the actual scaling of CPU is not implemented polymorphically, due to some design issues.
An example scenario where this feature should be used
A brief explanation of why you think this feature is useful
It allows physical resources to be used in a more granular and efficient way, reducing resource wastage and VM migrations.
This is my top priority. After that, I will analyse the next feature to work on.