Consider the following situation: You go to lunch with your good friends, John and Mary. Halfway through a rousing discussion of the latest Hollywood movie, Mary starts talking about the fantastic action sequences while John criticizes the romantic angle. You realize something mine-bending has happened: John now has Mary’s personality, and vice versa. It’s like they have switched brains or something!
This truly weird situation isn’t likely to happen in person, but occurs all the time in the data center. Virtualization of server, network, and storage services eliminates the fixed link between physical resources and functional applications. A running virtual machine can instantly move from one server, network adapter, HBA, or LUN to another. And when it happens, traditional components have no idea how to react.
The Challenges of Mobility
Mobility is perhaps the “killer app” of virtualization, but it is also the killer of traditional IT systems. Let’s consider the challenges of this “Twilight Zone” moment.
- The operating system expects a consistent hardware environment, which is exactly what the hypervisor creates
- The LAN must be prepared to redirect all network traffic instantly and seamlessly to one or more new physical interfaces
- The SAN similarly must be able to reroute all I/O to a new pair of HBA’s without missing a beat
- The storage array must be able to re-present capacity to a new physical device, and must maintain snapshots and other configurations
- The backup system must also be able to maintain consistency over time even as machines relocate to different server and storage locations
All of this must be done while maintaining quality of service (QoS), access control, reporting, and appropriate segmentation at all levels. This is an incredibly challenging task, and no conventional protocol (IP, Ethernet, NFS, SCSI, Fibre Channel, etc.) is anymore ready then you are when your good friends switch personalities.
Two Paths
So much of the development that is currently taking place in IT focuses on accommodating this “mobility issue”. Two key approaches have emerged to take on this challenge:
- “In a vacuum” technologies (like VXLAN) assume that no other changes will be made, so the focus is on maintaining complete compatibility in front and behind
- “Clean sheet” technologies (usually from startups) take a different approach, throwing out compatibility in favor of technical elegance
Both of these approaches have merit. Attempting to maintain compatibility only works so far (just ask a Windows API programmer), but it leverages the existing environment and recognizes that most people are not ready for wholesale change. Clean sheet designs always make more sense, but they rarely attain mass acceptance. Nearly every technology we rely on today is full of bolt-ons in the name of compatibility. Some, like Ethernet and x86, actually work pretty well, too.
The Stack of Lies
The difference between virtualization and cloud computing is exactly this same distinction. Hypervisors, NPV, NAT, thin provisioning, and so many other virtualization technologies exist mainly to maintain compatibility in a vacuum. In contrast, true cloud computing dispenses with the entire stack and creates a new platform for applications.
This is, perhaps, the reason that cloud computing is not taken off in the enterprise. Simply put, IT is not prepared to ditch everything they have ever used even in the face of a demonstrably superior alternative. Currently, the highest use of cloud is behind gateways and virtualization engines that bring it back down to earth.
This brings us to the stack of lies called server virtualization. Any “modern” virtualized data center is built on lie after lie, with each level telling the other what it wants to hear. The volume manager lies to the operating system; the hypervisor lies to the volume manager; and the storage array lies to the hypervisor. The same sad state of affairs allows networking and even memory to function in a virtual world.
But these shaky stacks of lies have difficulty adapting to motion, since no level truly “knows” the reality of the world around. The depressing truth is that a bowl of spaghetti like VXLAN is perhaps the highest form of art we can expect in a virtual data center.
Stephen’s Stance
As a techie, I am always drawn to clean sheet designs that offer technical elegance along with functionality. But I know that, realistically, products that assume nothing about the world around them and bend over backward to maintain compatibility are more likely to succeed. Still, I maintain hope that the issues of virtual machine mobility will be solved in an elegant way, rather than adding to the “stack of lies”.
cjinfantino says
I think one of the reasons we have so much lying going on is because the vastly different technologies that need to interact with eachother. Just try getting the OS guys with the virtual guys with the storage guys with the networkimg guys and come up with “truthful” soutions to the technology demands of the future.
I can barely get one other person to come to a conclusion about any one particular issue. One day hopefully the technology giants will get together and solve the current issues of today, and sip unicorn tears while they do it. Either way something has to give.
Anyway, I love the stack of lies analogy.
Jonathan Nichol says
Thank you for this blog. Thats all I can say. You most definitely have made this blog into something thats eye opening and important!
Sebastian Thaele says
Interesting view and a good blog nevertheless. But if you put it that way, virtualization – no matter where – is a form of lying. Is this “lie” a bad thing? If I eat a hamburger, because I’m hungry, my stomach doesn’t care for the name of the cow. It just has to serve a purpose and as long as it does, everything is fine for me. Of course it’s a complex industrial and logistical process to turn this cow into the burger and of course it would be a little bit more honest if I go to the farm myself and kill the cow in Zuckerberg-style – but does it make the hamburger a lie? Back to mobility: you are right with your concerns, but many users actually use VM mobility today and it doesn’t work in spite of virtualization but because of it.