
Remember when Dad told you there's no such thing as a free lunch? He was right--there isn't. It's particularly so with virtualization. Every time you hear the term applied to a new technology, your first question should be, What will this new virtual benefit cost me?
In a steady state, virtualization is almost always a bad thing. Virtual memory is the original form of virtualization as applied to computers, and it effectively revolutionized how computers do their jobs, but at a significant cost. Virtual memory lets every program view its memory as one contiguous space, with no gaps and no holes. The space can even stretch beyond the physical memory. Before virtual memory, program loaders had to find a section of memory that suited the app's needs. After running a few apps at once, memory became fragmented and the loader couldn't find available memory slots big enough for applications. Then it was reboot time--DOS, anyone?
Virtual memory is a good thing today because we take for granted that we'll be starting, stopping and moving programs all the time--the OS does it thousands of times per second (and hence no steady state condition ever exists). But we pay for virtual memory in performance. To virtualize memory, the OS builds a map that correlates physical memory to the virtual space the application sees. Every memory access requires a map lookup, which takes both time and hardware circuitry.
It's similar with storage and processor virtualization. If we never needed to move or grow storage volumes, storage virtualization would be an unnecessary encumbrance. But needs change and volumes must move or grow. The trick is to find the storage virtualization technology that gives you mobility at the lowest possible cost, in terms of both complexity and performance.