Compute Resource Lending Across Multiple Clusters
This thesis investigates the problem of sharing resources between different compute clusters by lending them. In order to solve the problem, a software architecture in the form of a framework is provided. The central mechanism to manage the borrowing of resources consists of an offers and demands based approach. Each cluster can provide offers and demands to the framework. These get matched using a strategy and made into a contract. When the contract gets executed, in order to transfer the resources between compute clusters of different types, an abstraction mechanism for node transfer is introduced. This entire mechanism considers costs to the resource’s operator, which means that the borrowing is cost-based. Since this cost value is supported throughout the entire architecture (resources, offers, and contracts), the resources to borrow can be selected by cost and borrowed resources can be exchanged if cheaper resources are available. To evaluate this software architecture, an implementation is provided. Additionally, there is a cluster simulation, which is used in order to test different scenarios. Using the simulation and the framework, some scenarios are tested. It is concluded that the proposed architecture is indeed a way to share compute resources by borrowing resources.