Administer Virtual Machines like “real” hardware

Yesterday, I had a conversation with an IT Manager who was trying to figure out how to set up, allocate, and administer a new VM Server. He's drinking the VM Koolaid, so he went out and bought a nice, big server with lots of storage and RAM and room for expansion. When it came to setting it up and getting VM's running on it, though, he was thinking way too hard.
The VM server in this case is Microsoft's Virtual Server 2005, but the problem and the solution are identical for VMWare. I needed to speak with this IT Manager because I needed access to one of the machines we're supposed to be setting up. As we talked about setup of these machines, however, it became clear that he was trying to factor the VM and the host into every setup and administration decision, and it was making all of these decisions very complicated.

For example, the first problem he brought up was access to the individual machines. He had a mental picture of a user connecting and logging onto the host server, and then gaining access to the consoles of VMs by using Remote Desktop via the host. He correctly anticipated a bottleneck here, as this would get pretty crowded in a hurry.

I pointed out to him that the VMs were going to operate as "real" machines for all intents and purposes, and that if console access to any of these machines was really needed, it could be had by connecting Remote Desktop directly to the VM -- not by going through the host. Of course, I also pointed out that in many cases, these VMs were going to play a role where desktop access wouldn't really be necessary or appropriate. If you wouldn't expect someone to march into your server room and pound on the keyboard in front of a physical machine, there's probably no need to support desktop access to a VM, either.

The same priniple applies to other aspects of management, too. The IT Manager pondered creation of one or more sub-domains to help administer the machines. I pointed out tha the decision about what tools and techniques to use for these machines should be made without regard for whether the machines are physical or virtual. In other words, if a sub-domain is the right way to administer physical servers, then it probably makes sense for VMs, too.

That's the beauty of VMs these days, really -- you can treat these machines just like real hardware (think of them as a rack full of servers or blades), but they are a piece of cake to create, move, and destroy, and you can share some big-time horsepower much more efficiently than you ever could have before. So relax and soak up the benefits, and stop trying to treat them differently. You'll make better, easier decisions and end up with a better overall environment.