So in the VMware Community podcast this week we got to talking a post that Massimo wrote about how he sees the storage path of the future. You should and can check it out here. I understand it’s a general interpretation of something that is not yet something we can implement as he lays it out but it shows that he is thinking outside the box. I really like where his head. While I read the post it got me to thinking as well but it was too much to comment on his post so I decided to do a post as well on pretty much the same topic but with my own spin on it.
So Massimo left off with a design that depicted what I read as a single commodity server/node which was comprised of the hypervisor for virtualizing infrastructure and managing storage io all the way down to it’s lowest level that is either local or direct attached storage (DAS). This would also be scalable and redundant by adding additional nodes which synced it’s storage. For more details on this read his post.
I like this approach and future vision he has but I do have some thoughts about it that hopefully doesn’t offend. While I like the design I’m not sure that collapsing everything is the best way to go for all situations because I don’t think it lend to flexibility when scaling up or out in large environments. So resource utilization for virtualizing services and infrastructure will greatly differ from storage io management. A purpose built system is not a bad thing. And if you think about we architects purposely build everything for particular use cases and that would change in this future look for storage.
I’m assuming to that with the “storage sync” all nodes needs to be uniform in storage capacity. Plus there is something to be said about shared storage versus syncing/replicating everything on all storage nodes. It’s complex, plus it uses bandwidth and compute resources where shared storage doesn’t have the overhead but it’s not that taxing in a LAN.
Now if the hypervisor could be made to service both storage io and virtualization of the infrastructure, in my vision I would have the flexibility of turning either role on or off at well. This way I could size and configure certain nodes for the storage hypervisor role and others for the virtualization host role leading to more flexibility. Plus, I could use both roles on the same system when the configuration warrants it but have the flexibility to change when requirements or the environment changes. The storage hypervisor would allow for iSCSI or NFS plus support Flash cards like FusionIO and external NFS, iSCSI as well so customers could use their current investments but no FC giving the additional complexities. Ethernet based storage would of course make Nodes would have the option for network RAID similar to HP Lefthand arrays too not just a “sync” or mirror.
So scaling then changes because I’m not forced to scale up or out for both storage and virtualization roles which I think would be costly once you reach a certain point. My though is that it shouldn’t matter what the storage is JBOD, DAS, local, flash cards, or SAN. Neither should it care about what vendor it is but the storage/virtualization hypervisor should virtualize all storage media even cloud storage all from the same solution. So whether I have a complex environment which has multiple storage vendors and multiple storage tiers or a simple setup of DAS, as the user theres only a single interface where i define policies, thresholds, etc. Not vendor specific software plugins or solutions.
I know I may be missing some things here as it’s getting late. Plus, I did make some assumptions about what Massimo wrote so please correct me if I misunderstood something. And again, this was not to written bash the post that Massimo had done.