Abstract
1- Introduction
2- Related work
3- Preemptible instances design
4- Evaluation
5- Exploitation and integration in existing infrastructures
6- Conclusions
References
Abstract
Maximizing resource utilization by performing an efficient resource provisioning is a key factor for any cloud provider: commercial actors can maximize their revenues, whereas scientific and non-commercial providers can maximize their infrastructure utilization. Traditionally, batch systems have allowed data centers to fill their resources as much as possible by using backfilling and similar techniques. However, in an IaaS cloud, where virtual machines are supposed to live indefinitely, or at least as long as the user is able to pay for them, these policies are not easily implementable. In this work we present a new scheduling algorithm for IaaS providers that is able to support preemptible instances, that can be stopped by higher priority requests without introducing large modifications in the current cloud schedulers. This scheduler enables the implementation of new cloud usage and payment models that allow more efficient usage of the resources and potential new revenue sources for commercial providers. We also study the correctness and the performance overhead of the proposed scheduler against existing solutions.
Introduction
Infrastructure as a Service (IaaS) Clouds make possible to provide computing capacity as a utility to the users following a payper-use model. This fact allows the deployment of complex execution environments without an upfront infrastructure commitment, fostering the adoption of the cloud by users that could not afford to operate an on-premises infrastructure. In this regard, Clouds are not only present in the industrial ICT ecosystem, and they are being more and more adopted by other stakeholders such as public administrations or research institutions. Indeed, clouds are nowadays common in the scientific computing field [1–4], due to the fact that they are able to deliver resources that can be configured with the complete software needed for an application [5]. Moreover, they also allow the execution of nontransient tasks, making possible to execute virtual laboratories, databases, etc. that could be tightly coupled with the execution environments. This flexibility poses a great advantage against traditional computational models – such as batch systems or even Grid computing – where a fixed operating system is normally imposed and any complimentary tools (such as databases) need to be selfmanaged outside the infrastructure. This fact is pushing scientific datacenters outside their traditional boundaries, evolving into a mixture of services that deliver more added value to their users, with the Cloud as a prominent actor. Scientific cloud resource providers must face different resource scheduling challenges when compared with commercial providers. One important aspect is that normally, science cloud users do not usually pay for these resources – or at least they are not charged directly – for their consumption, and normally resources are paid via other indirect methods (like access grants), with users tending to assume that resources are for free. On the one hand traditional scientific computing facilities tend to work on a fully saturated manner, aiming at the maximum possible resource utilization level. However, on the other hand, cloud promises on-demand and interactive access to the resources, and as a matter of fact, this is being considered as one of the post promising facts of the cloud computing model [4]. These two aspects seem to be contradictory, as a saturated infrastructure cannot react to on-demand requests with ease. In this context, scheduling mechanisms and strategies that allow for a mixed allocation model become fundamental [6].