In yesterday's post, I talked about Virtual PC. While this product absolutely has a place in most organizations, it's not always the ideal choice for your virtual machine needs. It is, as I said, a great end-user tool. It's good for demos, training, and a better solution for running multiple OSes than dual-booting. But if you wanted to virtualize some of your production servers, it is not the product that you want to turn to. Today, we're going to talk about just such a product -- Virtual Server 2005 R2. (As an aside, Hyper-V, which will be covered in the next post, is almost certainly a better solution for your organization. But, in the event you don't yet have access to Server 2008 (which is what you need to get your hands on Hyper-V), I'll discuss the second-best option, Virtual Server.)
Virtual Server 2005 R2 SP1 has the ability to function as a virtualization solution for the following OSes:
Windows Server 2003 Web/Standard/Enterprise Editions
Windows Small Business Server 2003 Standard/Platinum Editions
Windows 2000 Server/Advanced
Windows NT Server 4.0 with Service Pack 6a
Windows XP SP2
Windows Vista Ultimate/Business/Enterprise
Red Hat Enterprise Linux 2.1 (update 7)
Red Hat Enterprise Linux 3.0 (update 8)
Red Hat Enterprise Linux 4.0 (update 4)
Red Hat Enterprise Linux 5.0
SuSE Linux Enterprise Server 9.0/10.0
Red Hat Linux 9.0
SuSE Linux 9.3/10.0/10.1/10.2
It will run on a number of host OSes as well, including:
Most editions of Windows Server 2003, 2008
XP Professional and non-home versions of Vista (not supported in a production environment)
You can find the complete list here.
Virtual Server 2005 R2 SP1 (hereafter referred to simply as Virtual Server) offers some major advantages over Virtual PC. This tool is intended as a solution for virtualizing in your data center and accordingly, has enterprise-class features. Before we get into those, let's take a look at what Virtual Server can do for your organization. I was part of the Heroes Happen Here launch, introducing Windows Server 2008, Visual Studio 2008, and SQL Server 2008. During that launch, one of the things we focused heavily on was Infrastructure Optimization, or Core I/O. The basic premise of the Core I/O model is that basic systems (largely manually-based processes, management, etc.) cost significantly more to maintain than their dynamic (automated processes, self-managing systems, etc.) counterparts. Virtualization using Virtual Server and/or Hyper-V can help your organization move from a basic environment to a dynamic environment in several key areas, reducing overall cost to maintain, time to implement new solutions, and increasing your IT organization's agility. (You can expect future posts dedicated to the subject of optimization!)
To get a good idea of how virtualization can save your organization money, let's take a look at a typical IT infrastructure. A new solution is being rolled out to increase employee productivity. This is a server-based application and a request has been made from a project team to requisition a server with specific requirements. In many organizations, this is a manual process that kicks off another manual process -- procuring a server. This process could be as basic as Jane, an IT server admin, going to purchasing to get a new physical machine ordered, then waiting for that machine to arrive, then installing Windows Server on it, configuring the machine, putting it into the datacenter, configuring any networking requirements, installing the new application on it, then communicating its availability to the requesting party. This whole process could take days or even weeks to complete.
At this point, maybe you're saying to yourself, "Come on, Dan. We're not that basic. We have servers in-house waiting to be deployed. We have a master image we use to automate the configuration process. We could have a new server up and running with that application installed in a matter of a day or two." To that, I would respond, "Great! You are clearly not in the Basic category of the I/O model, but rather the Standardized or even Rationalized, depending on how much of the process is automated. But, what if I told you that using virtualization, you could have that solution rolled out in an hour or two instead of a day or two? You're listening, right? (well, reading, anyway?) What if I told you that you could automate most of the process so that IT involvement was minimal? And what if I kept going to explain that you could do it without spending money on more physical hardware (the cost of which really starts to add up over time as you have more and more under-utilized servers in your datacenter)? I most certainly have your attention now, right?
That's exactly what virtualization can do for you. You can use it to automate server deployments. Instead of Jane, the IT worker from the previous example, gets the request for a new server. Rather than going to purchasing to obtain a new physical machine, she simply looks at the current server pool, finds an appropriate place to house the Virtual Machine (VM), and launches the deployment process. (Which can be automated to meet your requirements.) Virtual Server creates a new guest machine, installs the OS image on it, and the machine is ready to go. Jane installs the new application on it and communicates to the requesting party that the server is now available for their use.
You can also decrease the amount of physical hardware you are using by taking advantage of physical hardware you currently have in place that is not being fully utilized. Take, for instance, a server that is running a Line of Business (LOB) application. This server, at its peak, is only hitting 30% utilization. But, you've been hesitant to install other applications on this machine, because you know at some future time, that LOB app is going to be more heavily utilized, causing a problem if there are other applications on that machine as well. This is where virtualization really shines! Using Virtual Server to create a new virtual machine on that under-utilized LOB server allows you to take advantage of that power that is going to waste right now. In the future, if that LOB app does become more heavily utilized, requiring more power on that server, you can simply shut down the virtual machine, move the Virtual Hard Disk file (VHD -- this is the file that comprises the virtual machine) to a different server which is being under-utilized, and start it back up. That's it. It really is that simple. Imagine trying to do that with a physical machine.
While the examples I used above focus on new server deployments, that is not a requirement. Think about your current organization. Do you have servers that are being under-utilized that are already in place? You can use Virtual Server to consolidate these machines in order to free up otherwise unavailable hardware.
Let's look at another feature in Virtual Server -- the ability to support clustered servers (clustered servers are identical servers configured to provide continuous uptime. In the event that one of the servers goes down, the other server will take its place with little/no disruption). What happens now when it is time to do maintenance on one of your LOB app servers? If you are like most organizations, you probably communicate to your users that Application X will be unavailable from Y to Z due to scheduled maintenance. Using the clustering features in Windows Server 2003, you can create a clustered solution which allows you to run identical VMs on separate physical servers. If one of them goes down (planned or unplanned), the other machine begins servicing the customers so that they see no downtime. Obviously, you can do this with physical machines as well, but imagine the possibilities when you can run more than one virtual machine per physical machine -- now you can use the same servers to create multiple VM clusters. (Clustering in Server 2008 becomes even easier and allows greater flexibility!)
Even if you don't use clustered servers, you now know that you can move a Virtual Machine from one server to another quite quickly. So, rather than communicating to your users that LOB Application X will be down from Y to Z due to maintenance, you can communicate that it will be down for <30 minutes while it is moved from Host Server A to Host Server B, drastically reducing employee downtime and ensuring that server maintenance can take place during normal business hours, rather than forcing IT people to come in at 3am on Saturday to perform server maintenance!!
The Virtual Server interface is necessarily more complex than the Virtual PC interface (as one is designed for end users to run multiple OSes on their desktop and the other is designed for enterprise-class server solutions). An administrative website is used to manage the servers running on the host machine. Here's a snapshot of one of my co-worker's Virtual Server admin window:
You can see it lists the virtual machines, shows a snapshot of their current state, and even shows important messages about the virtual machines. On the left, you can see all of the configuration options for using Virtual Server.
It is worth noting, too, that Virtual Server will run on a 64-bit host machine, but does not support 64-bit guest machines. It is intended to virtualize 32-bit machines, and does so quite well. If you do not yet have Server 2008, Virtual Server is a great way to get started with virtualization in your organization. Once you get Hyper-V installed, you can follow the instructions here to migrate your virtual machines from Virtual Server to Hyper-V.
In the next post, I'll discuss the features and advantages of using Hyper-V over Virtual Server. (It's a big list!)