As we have discussed, the role of shared storage is changing. VMware has supported vMotion without shared storage for a while now, software defined storage is enabling shared compute and storage virtualization, and for the past year or so, we have been hearing more about the concept of vVols. I am certainly not the first to talk about this, there are a number of blogs on this, my personal favorite being The future of VMware storage – vVol demo by @hpstorageguy.
As always, in the interests of full disclosure, I do work for HP, but this is my personal blog, and I write about things I think are interesting. I am not going into great detail on how vVol’s work, but I do want to show a few diagrams to differentiate current architecture from what we MAY see in the future.
So looking at the current and legacy architecture of VMware storage, we typically present storage to all hosts in the cluster in the form of a shared LUN or Volume. This is very simple, the VMware admin asks the storage admin for a number of volumes of a specific size, in our example below, let’s say they are 2TB volumes and they request 2 of them. The VMware administrator then creates datastores, which formats them with the VMFS file system and allows virtual machines to be created within it. Of course this whole process can be done through the VMware GUI using the vSphere storage API’s, but the net effect is the same. We still create another layer in the storage stack which is not the most efficient way of handling this.
vVols are VMwares new way of handling storage which resolves this problem in a rather unique way. Currently we can bypass the datastore concept and do a raw disk map or RDM, which allows us to present a raw disk device to the virtual machine itself. Unfortunately this does not give us a measurable difference in performance, and can become tedious to manage. vVols on the other hand, appear to be datastores, but really pass through the individual volumes to the individual VM’s. In the drawing below, the individual volumes appear to the VM administrator as Datastores, but they are broken out on the storage array. This removes the performance layer, and enables a more policy based storage interface for the VMware administrator. This is critical to note, policy based storage at a VMware level. This brings us closer to self service in a virtualized environment. I don’t yet have a full handle on how this will be managed, but I think it is safe to say the storage administrator will create a container giving the VMware admin a specific amount of storage with specific characteristics. In the case of our example, 2TB containers.
Note above the volumes are of varying sizes, but what is not shown is the volumes or luns are individual disks presented directly to the virtual machine itself. This is important to remember since we are offloading the performance of each individual disk presented to the virtual machine to the storage array, but we are still able to manage it as a datastore or a container on the VMware side.
Coming back to the policy based storage thought, this is not dissimilar to how the HP 3Par storage operates, volumes within common provisioning groups which are containers. The policy is set on the container in both cases, so it isn’t a stretch to see how this will work well together. Again I don’t have any inside information, but if you look at the post from referenced above, Calvin does an excellent job of showing us what is coming. This, combined with VMware’s VSAN announcements recently, seem to show that there is going to be a role for the traditional storage array in addition to software defined storage in the software defined datacenter at least for now.