Cloud Providers and enterprises must be able to guarantee performance to specific applications or groups of applications. They also need ways to distribute some of their storage management workload directly to the users or ‘interests’ they support. In the cloud provider use case this is typically divided up by subscriber. In the enterprise this may be divided up by line of business (finance) or by service type (Exchange group). In both cases the overall goal is to drive down the cost by making storage self-serviceable while assuring predictable application performance.
Multi-Tenant Storage is a way to address these challenges since it can isolate some or part of the storage resources to a specific interest. But systems that support this multi-tenancy often don’t provide the complete feature sets and availability that these organizations require, nor do they always provide adequate levels of separation. The industry needs an enterprise class storage system that can deliver complete multi-tenancy.
What is Multi-Tenant Storage?
Multi-tenant storage isolates subscribers, departments or even individual applications so that they always have access to specific levels of performance and capacity that they can change over time. In this report, we’ve referred to them as “interests”. Multi-Tenant storage should provide not only an assured level of performance but also the ability to have these interests manage the storage themselves, without impacting other interests that are using the same storage infrastructure. In essence, a multi-tenant architecture tries to make a shared storage system act like it has storage silos dedicated to each interest. Pushing storage management to these specific groups should drive down operational costs and potentially provide a more customized performance solution for each group. And it should do this better than can an overworked storage administrator who’s not an expert in each specific application. This also allows the storage team to be more available to support more complex use cases.
The first challenge with making a multi-tenant storage system truly enterprise-class is managing contention of the storage resources to make sure the storage infrastructure is able to provide predictable performance within a shared storage architecture. At risk for contention are the storage resources that the system typically delivers, including storage bandwidth, capacity and IOPS. A multi-tenant storage system should protect against a situation where contention allows a particular interest to consume more storage resources than expected, which then causes other interests to see a sudden drop in performance.
The level of isolation between users varies greatly for systems that claim to be multi-tenant and the buyer of these systems should clearly understand what that separation is. The goal of a multi-tenant system is not to solve this problem by treating all workloads the same and designing for the worst case workload. Most providers and enterprises don’t have the storage budget to design such a system. Nor should it just force users to accept inconsistent performance.
For example, many systems that claim to be multi-tenant can only dedicate LUNs or volumes to an interest instead of being more granular in what they dedicate. This does allow the interest to manage their LUN or Volume but it also means that everything else in the storage infrastructure is shared too. While this type of multi-tenancy does provide the ability to push out storage management tasks, it’s really just role-based administration.
A few systems provide their isolation based on a percentage of available resources. This means that performance can vary based on what the other tenants are doing, allowing storage management to be pushed out to each interest and providing some protection against resource contention. While better, this method can still result in unpredictable performance. For example, ‘bronze’ class groups may get ‘platinum’ type performance until other platinum groups start their tasks, at which point they’ll drop back to a bronze level. The interest should never be exposed to a performance level they do not need or are not paying for. Another challenge is if multiple platinum groups start tasks at the same time their overall performance will degrade since all the available performance is shared between them.
What’s needed is a level of multi-tenancy where isolation is provided by dedicating the available storage resources to each interest from a cluster of storage servers. While many of the above solutions that claim multi-tenancy also leverage a clustered configuration, what’s unique about solutions like Zadara Storage is being able to assign specific storage resources. In this design business groups or subscribers are hard-allocated specific CPU cores, DRAM, storage connectivity and even specific storage media (dedicated hard disk drives or flash drives) from the storage cluster.
At that point the resource belongs to that assignee exclusively, so performance is assured regardless of how many other interests of the same priority level are sharing those resources (they have their own dedicated resources as well). This multi-tenancy model more accurately reflects the way compute clusters work in large cloud providers by hard assigning – on demand – specific resources to specific interests.
Enterprise Capabilities – Block and File
Many multi-tenant storage systems are object based, a storage architecture that’s effective with the large unstructured data sets common in web-scale companies. While object storage and unstructured data are getting much of the attention in the move to the cloud, the workhorse applications of the enterprise like Oracle and Microsoft SQL are more important than ever. These applications count on traditional block based storage.
In the enterprise there are many unstructured workloads that require file storage instead of the cloud like object storage. This is because with object storage, files cannot be modified. Any change requires a complete rewrite of the object. As a result, object storage is great for static unstructured content (e.g., images for websites) and could be a poor fit for dynamic unstructured content (e.g., collaboration suites, document management, and media production).
Service providers courting businesses to host their applications in the cloud need to provide this level of compatibility for these applications. In the same way enterprises looking to take advantage of cloud scale architectures to better scale their IT services also need to provide traditional block and file capability. If not, all the performance and storage management gains of multi-tenant storage may be lost.
Enterprise Capabilities – Software Features
In addition to providing traditional block and file interfaces, an enterprise-class solution must also provide high-availability and data protection. But it must do so while using cloud-like commodity hardware.
Many cloud storage architectures are built using commodity servers loaded with hard disk or solid state storage. As servers or nodes are added to the cluster performance and capacity scale and, for the enterprise multi-tenant storage system, the ability to assign more processing cores, DRAM, storage media and network connectivity increases. These clustered designs also bring an extremely high level of redundancy.
To this enterprise class, multi-tenant storage, providers need to add enterprise features that users of that storage will expect. For example, Zadara’s solution provides space-efficient snapshots, clones, remote replication, tiered storage, data at rest encryption, data protection (RAID), and thin provisioning.
Enterprise Capabilities – High Availability
In the enterprise high availability is a given. The enterprise-class, multi-tenant storage system has to provide a similar level of assurance. And, basic capabilities like various forms of RAID and cluster node redundancy, plus multi-data center or availability-zone protection from failure are expected. The enterprise-class, multi-tenant storage system must also provide this functionality via simple, GUI driven selection, both for the primary storage administration team as well as the interests that are managing their given subset of storage resources. Since the availability needs of each interest will vary, the type of high availability should be customizable for each interest.
A one-size-fits-all approach will not work for the multi-tenant environment. For example solutions like Zadara provide both an API as well as command line-based access for expert administrators who want to write custom management scripts (this is often necessary for very large or complex environments where using the GUI is too time consuming).
Cloud Capabilities Too
In addition to all these advanced high availability and storage management features, enterprise-class, multi-tenant storage should still deliver a cloud-like experience. This is important to both the enterprise building a private cloud storage offering and the cloud provider looking to deliver enterprise-class storage services to their clients.
The ability to be elastic in the way storage is expanded and contracted is of course a key component and a properly designed scale-out storage cluster provides much of that. The cluster should be able to scale to nearly limitless capacity and performance and contract as needed.
Upgrades should no longer require a ‘herculean’ effort. Instead they should be done in a rolling manner. As faster nodes with faster and higher numbers of processing cores are added to the cluster the older nodes should be gradually phased out. No longer should a provider or enterprise be made to endure a migration event.
In addition, both types of users may be interested in metered billing that’s built-in. For the provider this is a key requirement; for the enterprise it may bring value just in providing awareness of which departments are consuming storage resources. But providing that visibility and awareness is key to organizational understanding of the costs associated with the management of digital assets.
Enterprises and cloud providers are looking to leverage cloud architectures to support business critical applications and to delegate storage management tasks. But they can’t adopt these platforms if it means sacrificing assured performance, enterprise features and enterprise availability. What’s needed is a system that provides truly isolated storage performance and a distributed management experience while leveraging all the benefits of a cloud storage infrastructure.
Zadara Storage is a client of Storage Switzerland