Hyperconvergence Is More Than Just Software-Defined Storage
There are many companies claiming to offer Hyperconverged Infrastructure (HCI) appliances or installable software solutions. The diversity of options in this segment means solutions claiming to be HCI can look radically different. So just what is HCI?
At its most basic HCI is a solution wherein storage is placed into individual servers, clustered into a unified storage pool and then presented back to those same servers as shared storage. Typically, HCI is used in combination with x86 virtualization, though solutions exist that offer it with bare metal servers and containerization platforms. This dry, technical explanation misses the history that led to the creation of HCI. That history is important, as is the interrelationship it has with other categories of storage.
HCI in the Wider Storage Context
The abridged history of storage goes something like this: once, long ago, servers only had access to the storage that was installed inside them. Eventually, demand for failover clustering and virtualization meant that servers needed access to shared storage. The centralized storage array solved this problem.
The centralized storage array, however, was expensive and needed specialists to run it. It was also one more step in the provisioning chain that slowed down getting new workloads set up. Software-Defined Storage (SDS) emerged as a broad category of solutions aimed at displacing the traditional storage array.
In general, SDS is any storage solution whose provisioning can be automated or incorporated into the management layer of another solution. The most popular example would be the ability to provision a virtual machine without having to first provision storage.
Scale-out storage is a specific type of SDS where the storage in question consists of whitebox x86 servers filled with disks clustered together to present a shared storage. In some ways, HCI is a lot like a scale-out storage solution where the individual nodes in the storage cluster have enough spare compute power to run workloads.
SDS aimed to solve the problem of needing a storage administrator to provision storage. Scale-out storage aimed to solve the problem of the cost of storage arrays. HCI solves both problems.
No True Scotsman
Broad generalizations get messy quickly. Depending on your point of view, a traditional storage array might qualify as SDS if it easily integrates with virtualization management platforms. VMware's VVols, for example, can eliminate the need for storage administrators to be in the provisioning loop.
By the same token, scale-out storage solutions exist that don't integrate into anything. They simply lash a bunch of disk-laden nodes together and present that storage for consumption. Similarly, HCI solutions exist that will create a clustered storage solution and present it to hypervisor as shared storage, but don't integrate into the hypervisor management in any meaningful way.
Some HCI solutions are embedded into the kernel of the hypervisor. Other HCI solutions exist inside virtual machines that execute on each node in the cluster, use hypervisor pass-through to consume the drives installed in the nodes, and make the shared storage available to the hypervisor via the hypervisor's internal virtual switch.
Still other HCI (or at least HCI-like) solutions are part of more complicated fabrics. Here, storage is again presented to the hypervisor via virtual machines that live on each node, however, the storage involved may not include more than just storage installed into each of the nodes in the cluster. Virtual fabrics may pull in public cloud storage or consume storage from storage arrays and add that to the fabric in addition to the storage installed on the nodes themselves.
The storage industry is complicated, and the incredible variety of offerings has led to some spectacular arguments over nomenclature. What counts as "true" HCI? And does it really matter?
Once you get past the tendency of nerds to argue endlessly about every topic in existence the real debate about "what is HCI" boils down to software intelligence and integration. "Dumb" HCI lashes together some storage and presents it to the hypervisor, usually via NFS. There is no further integration, and most likely it offers a simple replication for workloads. One copy of the workload will exist on the node upon which it is executing, and another copy will exist on another node.
"Smart" HCI has more features and generally requires more integration. Here we see things like the ability for some workloads to have more than two copies throughout the cluster, rapid snapshot and cloning capabilities, and even integrated disaster recovery. Some smart HCI solutions even integrate alerting, monitoring, and reporting into the same UI used to manage VMs.
Dumb HCI solutions rely on the hypervisor to provide features and functionality. Smart HCI allows the hypervisor to offload tasks to the storage layer where appropriate. Any VMware administrator who has experienced the difference between a hypervisor-only snapshot and a snapshot using storage that integrates into vSphere knows that the difference is night and day.
This has led some to make a firm distinction between HCI that is deeply integrated into the workload management software and HCI that isn't. One is designed to be a holistic solution that automates as much as possible and provides a noticeable ease of use improvement. The other is just storage that's slightly less awful than that which came before.
Is HCI Just About How Storage is Done?
The argument is far from academic. The public cloud has shown organizations what's possible, and the pressure is on to deliver a similar experience on-premises.
It has become clear that the way data centers were designed and operated 10 years ago isn't going to provide organizations with a competitive advantage. Software-defined storage and scale-out storage both have their disadvantages, and HCI is increasingly becoming the de facto standard for new deployments.
Achieving that cloud-like IT nirvana requires more than dumb HCI. The whole point of cloud computing is to eliminate the need to expend human resources on the mundane tasks of keeping the lights on.
The integration, automation, and ease of use that smart HCI provides is a critical to enabling those organizations invested in their on-premises IT to compete with organizations who are "all-in" on the cloud. HCI is a broad and growing category. Smart HCI that helps companies effectively prepare for the future, however, remains a relatively exclusive club.