A dynamic Tenant-Defined Storage system for efficient resource management in cloud applications. (1st September 2017) - Maenhaut, Pieter-Jan; Moens, Hendrik; Volckaert, Bruno; Ongenae, Veerle; De Turck, Filip
Abstract: Software-Defined Storage (SDS) is an evolving concept for the management of data storage from the software's perspective. Multi-tenant applications running on the cloud can benefit from the concepts introduced by SDS by managing the allocation of data storage from the tenant's perspective. A multi-tenant application should guarantee both data separation and performance isolation towards every tenant, and migration of tenant data over time should be minimized as this is both an expensive and time consuming operation. Furthermore, with cloud computing compliance with regulatory policies regarding the storage of data remains a key hurdle, as end users often have no way to specify their requirements. In this article, we present a dynamic and extensible system for the management of storage resources in multi-tenant cloud applications. In the presented approach, tenants are hierarchically clustered based on multiple scenario-specific characteristics, and allocated to storage resources using a hierarchical bin packing algorithm (static allocation). As the load changes over time, the system corresponds to these changes by reallocating storage resources when required (dynamic reallocation). We evaluate both the static and dynamic behavior of our system. Experiments confirm that the system achieves good results regarding the average bin usage, migrations over time and clustering of related tenants. On average, less than 0.01% of the total amount of data is reallocated during each migration using the dynamic Hierarchical First-Fit Decreasing (dHFFD) algorithm while achieving an average bin usage similar to First-Fit Decreasing (FFD). The dynamic Hierarchical Greedy Decreasing (dHGD) algorithm reduces the number of migrations by a factor 100 compared to dHFFD, but at the cost of provisioning additional storage instances.