Column
Microsoft: Under the Hood
Imaginary Servers
Don Jones on using products like Microsoft Virtual Server and GSX Server to take your network beyond the physical.
by Don Jones
8/4/2004 -- Unless you've been hiding under a rock, you're familiar with Microsoft's buyout earlier this year of Connectix Virtual PC, and EMC's acquisition of VMWare, Inc. Many of you are probably familiar with Virtual PC and VMWare Workstation; both are great virtual computing tools that let you run multiple "guest" operating systems inside a window that essentially represents a complete, imaginary computer. Both VMWare and Virtual PC perform a level of hardware emulation, so that the operating system running inside the window thinks that it's running on a standalone, dedicated piece of hardware.
But Microsoft and EMC didn't spend big bucks acquiring technologies that are more or less limited to developers, testers, trainers, and hobbyists. They're perfectly happy selling these "imaginary workstation" products, but the big bucks are in selling imaginary servers.
The Year of the Virtual Computer
Why did Gartner name 2004 the "year of the virtual computer?" One reason is server consolidation. Here's a scenario: Imagine you have a half-dozen old Windows NT 4.0 servers. I don't have to imagine very hard; I have a client right down the street from my house in this exact situation. Suppose these servers are running hardware which isn't, by today's standards, especially powerful, making an in-place upgrade to Win2000 or Win2003 impractical. Also suppose you don't especially want to buy new hardware to replace these six servers, because one server could really take their place. Suppose, too, that the servers aren't doing anything especially strenuous — maybe running an application that's NT-specific, and won't run on anything later. In my client's case, it’s a software application that collects statistics from slot machines (I live in Las Vegas, by the way), and that application will not run on Win2000 for some reason. Also suppose that you have a couple of thousand users (or, in my case, slot machines) that have been trained (hardcoded) to talk to these servers by name. Consolidating them into one server would therefore be difficult and expensive, if not impossible.
It's getting hard to find parts for these old servers, and you're sick to death of babysitting them. Easy enough to imagine. Virtual computing would let you consolidate them without, it seems, consolidating them. In other words, you go buy one big box. It runs six virtual servers, each of which contains an NT 4.0 server representing one of your original six old servers. The actual physical NT servers are in the trash. Boom, instant consolidation, but your six original servers still "exist," sort of, so you don't have to change any of your clients (slot machines).
Lots of Choice
There are a number of virtual server products out there; probably you've heard of Microsoft Virtual Server 2004, which now seems to be Microsoft Virtual Server 2005. VMWare has GSX Server, which is similar in scope to the Microsoft product: Both run atop Windows (or Linux if you prefer, in GSX's case), and both offer the ability to allocate the host computer's resources -- memory, processor, and so forth -- to the virtual computers however you want. VMWare also offers a scaled-up product named ESX Server, which is an operating system.
GSX Server is really cool. If you've seen VMWare Workstation 4.5, then GSX Server's UI, shown below will look really familiar. You get a list of servers in the left-hand pane, and a tabbed interface that displays the virtual computers' desktops. Each tab represents one running virtual computer. The cool part of GSX is that the virtual computer is actually executing on a remote machine; only the UI is actually being displayed on your client computer. You can think of it as a kind of Remote Desktop capability, I suppose, only you're looking right at the server's console, not a virtual desktop. Plus, you can still RDP into these virtual servers, since they're just Windows servers and have all the features that Windows has (GSX can host more than just Windows, of course; Linux and any other x86-based operating system is fair game).
|
Figure 1. GSX Server Interface (Click image to view larger version.) |
Under the Hood
There are some common misconceptions about how VMWare and Virtual PC (or Virtual Server) achieve their magic. The most prevalent is that each is emulating the entire microprocessor in software. That would cause performance to suck. While it's true that Virtual PC for the Mac (which runs on a non-Intel processor) does a decent degree of processor emulation (or at least translation), both VMWare and Virtual PC/Server emulate very little of the processor; most processor instructions are simply passed through to the processor for execution. The exception are privileged Ring 0 instructions: Because these products are running atop Windows, they can't access the physical processor's Ring 0. Only the Windows kernel can do that. So any Ring 0 instructions executed inside the virtual machines must be emulated by the virtual computing software.
Other hardware is usually emulated in the same halfway method. In fact, for the most part, hardware operations are executed by the actual physical hardware, with the virtual computing software acting only as an arbiter to help prevent resource contention. Some hardware operations — notably the motherboard BIOS — are entirely emulated, using real BIOS binary code licensed from real BIOS manufacturers like Award and Phoenix.
Things do get tricky with video. The virtual machine believes it has the entire display area to work with; that might not be the case. When I run a virtual machine in 800x600 mode, and display it on a 1024x768 monitor, the virtual machine is only getting a fraction of the display space. So both VMWare and Microsoft emulate the video hardware and provide custom SVGA drivers, allowing them to intercept the video calls and map them onto the physical display in the appropriate location. This doesn't really impact performance much unless you're trying to play Halo or something inside the virtual machine; I've not been able to get that running really well, but for most other applications video isn't a problem.
Tools and Utilities
One cool part about virtual machines is that the virtual machine hardware is standardized. It doesn't matter what kind of host computer you're running GSX Server on, for example; every "guest" operating system inside a virtual machine will be running on the standard emulated virtual machine hardware (with some exceptions; the processor of the host machine is usually exposed to the guest). This means that in most cases you can move a virtual machine's configuration and virtual disk files to another host computer and boot the virtual machine up without having Windows Product Activation wig out on you. WPA might notice the change in processors, but it'll still see the same memory allotment, the same MAC addresses on the NICs, and so forth, so it won't realize its been moved. In fact, VMWare provides a management tool that lets you bounce virtual servers from host to host, allowing you to more easily take hosts offline for maintenance without impacting the end server of the virtual servers the host was running.
Other tools include imaging and migration tools that allow you to suck a physical server into a virtual server. VMWare has a P2V Assistant, and Virtual Server will ship with a similar migration tool. The idea behind these tools is to quickly migrate a physical server into a virtual one for consolidation purposes, providing minimal downtime for end users and minimal effort for yourself.
Because VMWare Workstation and VMWare GSX Server use essentially the same virtualization software, you can easily move virtual machines between the two. Imagine being able to "copy a server" from a GSX host onto your laptop, and then run it inside VMWare Workstation for testing and experimentation purposes! You can modify the networking layer of the virtual machine so that the copy on your laptop uses "local only" networking, thus preventing it from being seen on your network and having a server naming conflict with the copy running under GSX. This is an incredibly cool way to test new applications and stuff using an actual copy of a production server, without touching the production server itself. I'm not certain if Virtual PC/Server will have this interchangeability; Virtual Server is implementing stuff like virtual SCSI disks which the current version of Virtual PC doesn't support. It's possible, though, that some future version of Virtual PC will incorporate the new stuff in Virtual Server and bring the two to a similar level of functionality.
Go Get Virtual
Microsoft recently released a Release Candidate of Virtual Server 2005 available for download, and you can contact VMWare for a trial of GSX Server. Check 'em out. Who knows, the next server you install could be all in your mind.
Don Jones is the owner and operator of ScriptingAnswers.com, a speaker at national technical IT conferences, and the author of nearly twenty books on information technology. His latest book is "Managing Windows with VBScript and WMI" (Addison-Welsey) and he's completing "Windows Administrator's Automation Toolkit" (Microsoft Press). You can reach Don at his Web site or at .
|