Virtualization? Nothing But Lies!
With virtualization, lying has become respectable. Processors lie to user mode processes about memory addresses. Computers lie to operating systems about installed hardware. Storage systems lie to everybody about the location of data. The virtualization hype transforms honest down-to-earth systems into lying medusas.
Virtualization = Lying
This sounds frightening, and it probably is to old school IT pros who are used to doing everything by hand. So let me put it differently: virtualization is the art of lying according to pre-defined rules.
Take the popular example of virtual machine software, e.g. VMware ESX, Microsoft Hyper-V or Citrix XenServer. When you install a guest operating system, it thinks it the machine it is running on has a certain amount of RAM, say 1 GB. That is not true. The host most likely has much more RAM, but the virtualization software lies about this fact to the guest operating system.
Every good liar chooses a story and sticks to it. In other words, he implicitly defines rules to which he adheres. Otherwise it would be easy to see through the lie because the liar would contradict himself constantly. The result would be chaos – both in real life and in IT.
Going back to the virtual machine example, it is easy to see the simple truth of this. If the VM host did not stick to one story (i.e. the exact hardware specification to present to the guest) the whole concept of virtualizing an entire computer would fail miserably. After all, which (guest) OS would tolerate frequent and major hardware changes – online while running?
Why Lie At All?
There is an inherent power to lying: by hiding reality behind a set of lies, what is real becomes interchangeable. If an OS inside a virtual machine knows nothing about real hardware, it is possible to recreate the same set of lies on an entirely different host computer and transfer the guest over without it knowing about the process. It will happily go on “living” without ever knowing that its “soul” has been moved to a different body.
Wow. If we could only do stuff like that outside of IT…
Back to computers, what is the benefit? Why, flexibility, of course! Virtualization decouples applications from the OS, the OS from the hardware, storage from disk drives, and so on. With virtualization, you can move each piece around individually, without affecting other components in the system.
Migrations become a piece of cake. Increasing capacity is suddenly possible without overtime and admins get to see their family even if they have to upgrade critical systems. Brave new world!
The Cost of Lying
Everything comes at a cost. Even (or especially) lying. As anyone who ever got entangled in a web of lies knows, it can greatly increase complexity.
If you employ virtualization in your network, you not only need to know the (simple?) truth, but also the lie. There are always some components that see the truth and deal with reality (e.g. your hypervisor), whilst many others are happy believing the lie. But you, as an administrator, have to understand both. You need a mental mapping between fact and fiction, and on many levels: apps, storage, hardware, memory, to name a few.
We IT people need to play along with the lie, but know the truth.
Many thanks to Joe Nord from Citrix who planted the idea of “virtualization = lying” in my head.
2 Comments
hahaah good angle to look at.
But basically you are replacing the IT terms for that, by the word “lie” :-)
But that is interesting, with virtualization, nothing seems to be what it really is.
In my humble opinion, \"Lying\" is too extreme to use for Virtual Machines. As a matter of fact, virtualization is not lying at all but changing the context of speech; the truth is still told, but application does not understand.
For instance, when someone tells you about his plans for gaining world-wide market share or about the entire world getting dangerously warmer, you perfectly know that he or she is definitely taking about planet Earth only, not the entire galaxy. You know his or her context of speech; perhaps you don\’t know but do not care.
Likewise, virtual machines are told the truth but in a different context. They are told that \"1GB\" of RAM is available. They do not care whether there is more RAM in your entire building or even in your entire server rack; all they care about is that there is no more than 1GBs of RAM available to them.
In way, virtualization is an act of managing careless and foolish applications and operating systems without giving them a too difficult a riddle to solve. But in any case, it is definitely lying.