THE SQL Server Blog Spot on the Web

Welcome to - The SQL Server blog spot on the web Sign in | |
in Search

Merrill Aldrich

Technical content about Microsoft data technologies. All opinions expressed are purely my own and do not reflect positions of my employer or associates.

Scandalous I: Virtualization is a Workaround <duck>

Awwlright, both of you, my dear readers. I should not be writing this post, but I have to get it off my chest. This is part I of two Scandalous posts. Unfollow me now, before it’s too late.

I have been around so many people lately who are loving, fawning over, peddling, drooling over and otherwise talking up virtualization, that I have to remind all of us:

Virtualization is a workaround. Necessary, perhaps desirable in the real world where we work every day, but a workaround none the less.

Why is it a workaround? Because it avoids, that is allows us not to face, some of the profound sucking sounds generated by today’s operating systems. Frankly, if operating systems and software were better, these sucking sounds issues would not need working around so urgently, and we would not need virtualization quite so much.

What sucking sounds? Consider the reasons why you are trying to run those 500 vm’s on a chassis of blades in the first place. I bet, at the end of the day, it’s just to make an end run around things that the virtualized OS’s can’t handle on their own.

  1. Resource management. One key function that virtualization supplies that the OS doesn’t is the ability to regulate the amount of disk space, cpu utilization, memory and so on that the applications and services we use consume. If the OS actually did that in a meaningful way, the hypervisor would not need to. To wit: where’s the dial that says “limit process x to 20% of the total CPU and 50% of the memory on this machine.”
  2. Security. Multiple VM’s provide, at least so far, some added isolation between processes and security context that might be hard to manage on a single server in, say, Windows.
  3. Software Conflicts. Even if there were a powerful enough server, could you install all the services required for your organization under one Windows operating system on one server? Yeah, that. That’s what I’m talking about. Most operating systems are, today, still terrible at hosting a bunch of heterogeneous services. Miserable at it. It’s not wise, it’s not safe, it’s not practical.
  4. Reboots. Nearly every installation or removal of a service or application requires a reboot. A better OS would limit reboots just in the way the host system does not need to be rebooted when a single VM is rebooted. Sure, some progress has been made, but there’s no pressure, really, to make a system that stays up for years at a time.
  5. Portability of Services. So, it’s really cool to move a running process from one host to another. Cool and amazing, but only because the OS can’t do that. If the OS could, that would also be cool, amazing, and potentially simpler and easier.

“Back in the day,” as they say, it was the job of an OS like Unix to provide a multiple-service, multiple-user environment that would host all the processes you needed to run, and stay up. Today, especially in Windows, it seems like we’ve essentially given up on that idea altogether. Virtualization is practical, viewed in this light, but it’s also an enabler. It allows operating systems to suck more and more, and continue to ignore whole vital feature sets, because they’ll just be hosted in (baby-sat by?) some “meta OS” that makes up for their deficiencies. Today, nobody is going to invest a bunch of money making Windows better at hosting heterogeneous services, because now those people are all busy working on Hyper-V, avoiding the problem.

And, consider the down side – how many copies of, for example, the Windows core services are running on those hard-working CPUs in your virtualized environment? What for? Now we need expensive deduplicated storage(?!) because of all the redundant files we have. Some folks are even running all those redundant processes from the redundant files directly out of deduplicated storage so they can run side by side on a farm of very powerful machines. That’s actually a whole lot of worthless computing, no?

I know, it’s the real world, and this is the only available solution. We all need to virtualize. It’s a requirement. I can live with it, as a necessary evil. I’ll sit back down now.

Still, isn’t it spectacularly wasteful?

<Commence tomato throwing>

Published Friday, March 25, 2011 5:34 PM by merrillaldrich

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS



Jason said:

I love it!  The same things I've been saying for a couple of years!  The only benefit I really see out of it is one-off work and DR with the ability to spin up a cloned VM in seconds or minutes.

March 25, 2011 9:39 PM

Jay Allen said:

Was this article meant for the Onion News?

March 26, 2011 4:06 PM

merrillaldrich said:

That'd be awesome. I'm willing to publish it if they are...

March 26, 2011 6:35 PM

Stephen Munson said:

Finally...  someone bold enough to tell the truth and expose the emperor's lack of clothing...   Unfortunately, doing the right thing became passe a rather long time ago, and pursuit of the dollar has taken it's place, and as long as that continues to remain the primary goal of a business, this is only one of many dozens of inefficiencies that society will have no viable alternative but to live with.   Interesting that children have parents to "do the right thing", but businesses have no better than government, and clearly, government is largely ineffective at any form of "doing the right thing", as it serves mainly as a means of approving corruption through obscure legislation rather than a means of keeping such at bay...

Bravo, Mr. Aldrich - someone needed to say it...

March 26, 2011 7:10 PM

merrillaldrich said:

I had an interesting conversation with a friend of mine about this, who asked me why I was miffed about this. "What's the big deal?" in other words. And I found a simpler way to express it: when I imagined that more powerful servers would provide us with consolidation, I thought we'd go from running 500 servers with 500 operating systems to 200 servers and maybe 250 operating systems. Not 200 servers running 900 operating systems. That's basically my issue.

Note, too, that I am not saying virtualization doesn't provide advantages. It absolutely does provide advantages.

March 26, 2011 8:38 PM

Ben Thul said:

All of these criticisms sound like they come from the Windows side of the world.  And that makes sense given the subject matter of your blog.  However, do you find that these same things are true of *nix systems?  In my experience, you rarely need to reboot a unix server, let alone for something as trivial as an application install/upgrade.  Just curious what your experiences are in that arena.

March 27, 2011 10:25 PM

merrillaldrich said:

You are right, but - oh boy - I don't want any OS flame war up in here :-). So I will answer carefully, honestly. As you point out, I am mainly a Windows Server guy professionally (being a SQL Server DBA, that's inevitable I think). In my private and past lives I was a graphics guy, which back then was Mac OS and Irix on Silicon Graphics machines, and some Windows too. For my own use, I've only purchased Macs, going back to 1988. I know, I'm crazy like that.

That means I have only anecdotal experience. I will say these things have been true in my experience:

1. The usability of Windows has been a driving force in the platform selection everywhere I have worked. It's a pretty overwhelming force in small/medium business. People are willing to trade a lot for that.

2. Many applications that these businesses want to purchase are Windows-based (follows from #1). SQL Server, for example :-), but also many smaller, more specific apps.

3. Each place I have been has had a few *nix servers for specific, universal functions like mail, Oracle, web servers, and so on. Everything else has been Windows Server.

4. The *nix systems have been more stable in the ways you describe, but there are also far fewer demands, in terms of change, put on them. At the same time Windows has certainly improved in reliability from NT to 2003 to 2008.

5. The combination of those factors has made sprawling Windows virtual environments very common, less so for other operating systems.

Still, I think, at a high level, that OS development has stalled relative to other areas today. If you think of something amazing and useful like live migration of a whole virtual server from one host to another - what on the OS side (any OS) compares? Why can't we move a service, for example, from one machine to another?

March 27, 2011 11:38 PM

Ben Thul said:

Starting an OS holy war wasn't my intent, either.  I was just wondering if your observations were based mostly in the Windows world or if there was a broader experience from which you were drawing.  Thanks!

March 28, 2011 8:17 AM

BS_Over_S said:

Bring back time-shared computers like the old IBM 360 and the DEC VAX!

March 28, 2011 11:11 AM

Old School said:

How many people are doing a TCO cost/benefit analysis between large farms of virtualized blade systems... and midrange (iSeries)/mainframe (zSeries) systems (which can also run Windows nodes)?

March 28, 2011 12:04 PM

Mark Broadbent said:

This is an awesome awesome post. As much as I love virtualization and it certainly has it's place, it has definitely become an easy bandage to what is a much deeper issue.

April 15, 2011 3:51 PM

merrillaldrich said:

Thanks, Mark - I'm sure many people will just think I'm a crank :-)

April 17, 2011 11:33 AM

Pablo Mugica said:

I have virtual SQL Server systems that run better than real ones and there are many reasons for it, i.e. they have a completely isolated virtual 10 Gb network to communicate among them and the virtual app servers; wanna calculate the cost for a real network and physical setup like that? And don't get me started on consolidation and power consumption :)

Still I see your point and i think virtualization is not the right answer for every problem.

April 22, 2011 2:56 PM

merrillaldrich said:

Pablo - I think, with all respect, that we agree. I'm not saying virtualization is bad, it is a sorely needed workaround for real OS limitations. If I may, let's unpack what you said: a. You need a fast network connection between multiple OS's. Why? Well, so the different components can communicate quickly, because they must run on separate "machines."

Why? I mean that as a serious question. Why do they need to be separated? I would expect they *do* need to be on separate machines in today's world, and you would be crazy to put them on one machine, because hosting them together would make them unstable. But why is that a given today?

b. You point out it would be expensive to build a real network and physical machines that 1:1 mimics the virtual servers, which is certainly true. But my point is that you shouldn't have to do that. If all the vms can be hosted on one physical host machine, then one physical machine *has* enough compute power to run the whole mess, and you should only need *one* server running one OS.

But we take our situation for granted - in fact, the only reason functions need to be separated so thoroughly is to overcome problems with the operating system (security, stability, resource management). And virtualization is so effective at avoiding those problems that no-one is really working to solve them any longer.

Imagine how fast your system would run with NO network requirement between components (shared memory) on ONE host (now let's talk about power consumption) and without all the overhead of running multiple OSs in the first place :-). One 12 core commodity box would be SO much more effective, and so much faster.

The problem is that all our assumptions are build around an OS that is so brittle we have to repeat it over and over and over even for a simple system. And virtualization is so common, and so good at avoiding these questions, that we never even ask any more.

April 23, 2011 12:03 AM

Merrill Aldrich said:

This is part II of two Scandalous posts . Watch, mouth agape, as I run with scissors, right up against

April 23, 2011 1:01 AM

Pablo Mugica said:

Well from that point of view We do agree, a lot :)

Let me add a little amount of fuel to the fire saying that is not the OS who's guilty for this, i think *architects* are to blame when they stand for multi-tier, layered design for every solution instead of having a monolithic one (like the one you have described), when it suits perfectly a number of common scenarios.

Perhaps the technical reason why virtualization has become so popular is a moving target, but we know the reasons why it's used are comfort and because it works.

PS. You are not a crank and I enjoy very much this conversation.

April 24, 2011 3:34 PM

merrillaldrich said:

October 27, 2014 11:55 AM

Leave a Comment


This Blog


Privacy Statement