Back to Basics — First Server Virtualization
In IT, we tend to use the word “server” loosely. In one sense, a server is a computer hardware system, i.e. a physical box with CPU(s), motherboard, memory, network cards/connections, etc. In another sense, a server is a computer program that responds to the requests of other programs. These other programs are called clients, hence the concept of the client-server paradigm. In traditional models, each physical server ran one OS and one application supporting a specific process. The introduction of the server hypervisor changed that paradigm.
A server hypervisor is a virtual machine manager (VMM) which enables multiple instances of operating systems (homogeneous — all the same, such as Windows, or a heterogeneous — a mix, such as Windows and Linux) to operate concurrently as "guest" virtual machines (VMs) on a single host physical computer. The hypervisor provides the necessary isolation for each OS and its associated applications, as well as making sure resources (such as memory and CPU cycles) are allocated without conflict among the VMs.
The basic premise for going to the extra work of installing a hypervisor and managing the herd of VM cats is that the CPU resources of many physical servers are greatly under-utilized. Consolidating multiple VMs, applications and workloads on a single physical server initially means that no longer used servers can be redeployed, decommissioned, or held in inventory to meet future needs, thus reducing the demand to buy new servers. Overall, the cost economics of IT on the server side are improved. But if that were the entire story, we wouldn’t have learned anything new. However, there is a saying that you can’t ever do just one thing. In this case, too much of a good thing (server consolidation) can lead to a bad thing — storage-related performance, capacity utilization, and manageability issues. Let’s see why.
Back to Basics — Second, Server Virtualization’s Negative Impact Upon Storage
Now instead of one OS with its associated applications reading and writing to storage, virtualized systems support multiple instances of OSs and their attendant applications, all of which need I/O access to storage. If that happens without any coordination among the various VMs, then I/Os are heavily randomized in that no one has knowledge of which disk spindles are going to be hit harder than others and when. That means that storage performance (i.e., perceived user response time) can become degraded to the point of being unacceptable, as some disk spindles are overloaded, whereas others are twiddling their thumbs, so to speak.
Of course, IT has a standard solution to this problem, which is to throw more hardware (in this case storage) at it. That leads to over-provisioning (which is a polite way of saying that you spent too much money on too much of something) of storage, in that extra spindles, which help address the performance issue, are used. However, much of the disk space that was intended to store data (and is what you theoretically pay for) is left emptier than is preferable. If the net result of server virtualization is an overly expensive storage infrastructure, that obviously undermines the core benefits of server virtualization.
Virsto’s Storage Hypervisor — Balances without Over-Provisioning
Is there a solution to this problem? SSD vendors would raise their right hands and say that they have one way to deal with the problem. However, let’s explore another possible solution (noting that SSDs may play a complementary role): Virsto, a Silicon Valley-based company that says it wants to become the “VMware of storage,” believes that its storage hypervisor solves this problem.