Enterprise IT departments are using server virtualization to increase their responsiveness to business functions and help them be more flexible and nimble in reacting to rapidly shifting market and competitive dynamics. Cloud providers are using server virtualization to share compute resources across potentially thousands of subscribers. Ideally, in both cases, 100% of the server infrastructure would be virtualized with maximum virtual machine (VM) density per host allowing for the most efficiency. Such a densely packed, highly virtualized environment needs to provide secure resource sharing, granular delegation of management functions and specific service level agreements for each virtualized application at each level of the virtualized infrastructure.

The server and network level of the virtualized infrastructure can deliver this functionality in large part already. However the traditional storage infrastructure layer is lacking when it comes to these requirements. Most storage systems have limited, if any, functionality to provide secure, shared access in the virtual environment, to delegate storage management to business functions or to guarantee specific application service levels. A new paradigm for storage is needed, one that is better aligned with the virtual environment at the server and networking levels so that application requirements can be met on an end-to-end basis. That paradigm is the basis for multi-tenant storage.

Multi-tenant storage systems, like those offered by CloudByte, are systems that can create virtual storage controllers in the same way a hypervisor divides host compute resources through VMs. The storage manager of a multi-tenant storage system can keep VM or tenant data isolated, delegate management responsibilities and guarantee service levels (IOPS, throughput and latency) like a server virtualization administrator accomplishes this with the host and VMs that they manage.

Architecture of a Multi-Tenant Storage System

The multi-tenant storage system or controller acts in similar fashion to a large host in a virtual server environment. Storage is attached to the large physical controller and then divided into virtual controllers called “tenants”. Each of these tenants is mapped to one, or a group, of VMs. The tenants can also map to stand alone physical servers that are not part of the virtualized infrastructure. These tenants can then be assigned characteristics based on the needs of that VM, group of VMs or physical host(s).

In the same way that a virtual machine is protected from other virtual machines on the same hypervisor, the tenants are also protected from each other. A ‘misbehaving’ storage tenant wouldn’t impact another and cause data loss. The multi-tenant storage system also enables granular business line management or subscriber management of their specific storage resources.

A virtual controller could be created that would be set for a controlled amount of storage performance and capacity to be used from the primary storage controller. That tenant could then be assigned to the business line or subscriber enabling them to be responsible for their own storage resources.

Finally, the multi-tenant storage controller could create tenants that are dedicated to particular VMs, each guaranteed certain levels of performance. The storage administrator could design the system such that these tenants could be used elsewhere when not required by mission critical VMs, but be made instantly available to them when the need arises, thereby allowing maximum utilization. Alternatively, the tenants could be allocated to ensure continuous availability to mission critical VMs and guaranteeing performance and preventing users of less-critical VMs from getting accustomed to performance they were never intended to have.

Finally, one of the biggest challenges in providing consistent performance is the load placed on the controller when back-end data protection and backup jobs occur. Multi-tenant storage systems can manage these functions as well, making sure that their activity does not impact front-end performance.

Implementing A New Storage Dynamic into an Old Architecture

The problem for most data centers is that significant investments have been made in legacy storage systems that don’t provide this multi-tenant functionality. Therefore data center managers seeking multi-tenant storage solutions would be forced to wait until the next storage refresh or operate both systems in parallel, gradually migrating data and bringing up new VMs on the multi-tenant system. However it would increase costs, complexity and make it harder to realize the value of multi-tenancy.

An alternative would be to enable the multi-tenant controller to manage legacy storage systems. This approach would allow legacy storage to be consumed by the new multi-tenant primary storage controller and immediately gain the benefits of a multi-tenant architecture, without a costly storage refresh. This is the approach that CloudByte has taken. They provide a software storage controller that will run on X86 server-class hardware. Then, any storage assigned to that server is available to provide multi-tenant services, plus other, more traditional data services like snapshots. After the legacy storage is consumed all future storage purchases can be standard, less expensive arrays.

Use Cases For Multi-Tenant Storage

There are two primary use cases for multi-tenant storage, the first being the enterprise data center and the second cloud service providers. Enterprise environments are typically constructed with dedicated storage resources “siloed” by line of business and by performance requirements. While many enterprise IT teams have tried to consolidate their storage systems, they have struggled due to myriad unique security, management and SLA requirements. Multi-tenant storage as described above not only eliminates these concerns, but allows for the consolidation of all the various storage assets, virtualizing them behind a single primary storage controller or a series of such controllers.

The second use case is the Cloud Service Provider. Similar to the enterprise environment, these businesses have hundreds or thousands of subscribers that need varying amounts of storage resources, but also want assurances of security between subscribers, granular management and performance guarantees. A storage system with an underlying multi-tenant architecture simplifies their provisioning and management tasks to meet their subscriber requirements.

Server virtualization has brought great efficiency gains to the data center, but hasn’t decreased the number of servers that need to have storage assigned to them. The virtual machines in these environments may not physically be there but they need physical capacity. Those virtual servers do take up less data center floor space but the requirements to keep them secure, managed and performing correctly remain. Multi-tenant storage is not a revolution in storage but the obvious next step in its evolution. It better compliments the requirements of the increasingly virtualized data center to provide the key security, management and performance needs of the application.