Enabling Cost-Effective Resource Leases with Virtual Machines

Leasing resources for short periods of time can be of great value to many applications. Applications consisting of workflows of small tasks (such as Montage [5], GADU [6] or fMRI [7]), can be more efficiently scheduled by a workflow engine (e.g., Pegasus [8] or Swift [9]) when using leased resources than when each request must pass via a traditional scheduler. Interactive applications (where the user must use the application at a specific time), real-time applications, or applications requiring resource coscheduling (e.g., to provision resources for a parallel job running across several sites) may further require an advance reservation capability [18]. While the first group of requirements can be addressed to some extent by using multi-level scheduling (e.g., as implemented by Condor [10], MyCluster [12], and Falkon [13]), or task clustering [11], achieving stricter lease semantics (such as advance reservations) is typically difficult. This is because advance reservations often lead to utilization problems in the scheduler caused by the need to “drain” jobs off of a group of resources before the job/reservation starts. We argue that the use of virtualization can help overcome those problems. The ability of virtual machines (VMs) to seamlessly suspend and resume computations can enable a scheduler to use batch computations, which have loosely defined availability requirements, to backfill around leases with strict availability requirements, such as advance reservations. Providing cost-effective leasing mechanisms, which would also use VMs to allow deployment of arbitrary software environments, would increase the usefulness of short-term leases to clients and make providing them more attractive to the resource provider. We also argue that, by making leasing more costeffective, we can support a multi-level scheduling model, by decoupling resource provisioning from execution management [1]. The ability to provision short-term leases creates an opportunity for scientific applications that require multi-level scheduling to support application-specific scheduling (e.g., a Swift [9] workflow where groups of tasks are managed by the Falkon [13] execution framework, not by a site-specific scheduler). Thus, we propose an architecture that uses VMs to make on-demand short-term leasing of resources costeffective. This architecture allows resource providers to satisfy short-term leasing requests while continuing to support existing workloads (i.e., batch processing). We show via experiment that using virtualization for this purpose can achieve improved performance, both from the provider's perspective (throughput) and the user's perspective (running time), even in the presence of overhead incurred by using VMs. Our approach also allows a provider to both offer leases and run jobs associated with a particular execution environment (implemented by a VM) and rapidly switch between such software environments, providing added incentives for resource leasing. This work is done in the context of our research into virtual workspaces [1, 2]. We represent and manage short-term leases as VM-based virtual workspaces. Our results build upon previous work that explored the combination of workspaces with traditional batch computation [3, 4].