Login

Development of KVM API to regulate virtual machine resource access

BA
State: completed by Andreas Gruhler

Cloud computing allows for large scale sharing of computing resources in a technically and administratively scalable manner. It is, therefore, quickly adopted by a large number of companies (not limited to the IT sector) also resulting in a high end-user adoption. While cloud computing already enabled a plethora of new applications and business models, expertise to exploit its full potential is still vastly missing [1]. While companies search for cloud experts this topic is not always covered in academia. To bridge this gap, this thesis focuses on a fundamental aspect of cloud computing, thereby allowing the student to gain industry-relevant competence.

In clouds resources are deployed by virtual machines (VMs), i.e., if a cloud customer wants to run a job in a cloud, he starts an according VM that executes the jobs. In case cloud resources, or rather resources of a physical machine (PM) in the cloud, become scarce, elaborated resource reallocation between the PM's VMs is necessary to ensure performance goals of VMs. This reallocation has to be enforced by the PM's hypervisor, as it controls how physical resources are allocated to the hosted VMs. For the KVM hypervisor, such reallocation may, for example, be implemented by assigning the VM processes to according cgroups, while also methods, such as ballooning, may be used to reallocate resources between VMs.

This thesis shall compile an overview of methods available in KVM to reallocate resources between VMs. Subsequently, an API for KVM shall be developed to trigger according reallocations (if no such API exists already). The API must not deploy all reallocation methods available in KVM, if certain methods, e.g., cgroups, allows to sufficiently regulate access to all resources (that is CPU, RAM, disk space, bandwidth). Depending on the type of thesis, the overview of methods to reallocate resources between VMs shall not be limited to KVM cover all common hypervisors (e.g., ESXi, Hyper-V).

[1] L. Schubert and K. Jeffery. Advances in Clouds. European Commission, Publications Office of the European Union, Luxembourg, 2012.

Final Report

15% Design, 70% Implementation, 15% Documentation
Experience with linux

Supervisors: Dr. Thomas Bocek, Patrick Poullie

back to the main page