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.

Comments

Related Posts

Virtualization - Old Hat?

Although humans in general and members of its subspecies “marketing manager” in particular tend to treat currently “hot” topics as new and revolutionary, they only rarely are. In fact, “new” should be considered as in “new wine in old bottles” rather than in “did not exist before”. Take virtualization. Although the topic of the day seems to be cloud computing, virtualization can probably still be called “hot” (especially since a cloud also is a kind of virtualization). But is it new? Judge for yourself: Below I have compiled a list of boring old technologies that employ virtualization.
Virtualization & Containers

Latest Posts

Scripted WordPress to Hugo Migration

Scripted WordPress to Hugo Migration
After having published in WordPress for almost 20 years, it was time for a change. This site is now rendered by Hugo, a static website generator built for Markdown content hosted in a Git repository. The migration from WordPress (HTML) to Hugo (Markdown) was far from trivial. Since I couldn’t find any tool for the job, I developed my own set of migration scripts that fully automate the migration process. You can find them on GitHub along with extensive documentation.
Website