The Pros and Cons of Running Virtual Server
With Microsoft’s Virtual Server 2005 due to be released soon, I wanted to take the opportunity to talk a little bit about this new product and some of the pros and cons associated with using it. In case you aren’t familiar with Virtual Server, it is a product that is designed to allow you to create multiple virtual servers on a single Windows Server 2003 box. Each of these virtual servers functions as an independent computer running its own operating system and individual set of applications. You can learn more about Virtual Server 2005 by visiting: http://www.microsoft.com/windowsserversystem/virtualserver/evaluation/vsoverview.mspx
Why is Virtual Server Beneficial?
Virtual Servers are handy for a variety of reasons. Primarily though they are used in development environments and are also used for server consolidation. The reason why Virtual Server works so well in development environments is because it allows developers to test potentially buggy software on a variety of different operating systems without having to worry about crashing the system.
While it’s true that the virtual machines are running on top of Windows, Virtual Server is designed in a way that isolates each virtual machine from the core operating system, and from other applications and virtual machines that might be running on the system. Therefore, if a buggy application were to crash, it might bring down the virtual machine, but it will not have any effect on the machine’s main operating system.
Virtual machines are stored as hard drive image files. This means that a developer can create a virtual machine that’s running a specific operating system and configuration. It is then possible to back up the virtual machine’s hard drive image file. That way, if the virtual machine were to be destroyed or if the configuration were altered, it would be possible to restore the virtual machine to its original state by simply restoring a single file.
Being able to quickly restore a specific configuration and not having to worry about a buggy application trashing a server’s operating system makes Virtual Server perfect for development environments, but Virtual Server is also ideal for server consolidations.
Imagine for instance that you have an old Windows NT Server that’s running a proprietary application that will not run under any other version of Windows. Now, imagine that one day the ancient hardware that the application is running on decides to give up the fight and die. You could go out and spend big bucks on a new server, but that might not be the best course of action to take. Think about it for a moment. Compared to today’s standards, Windows NT required very little computing power. You could install Windows NT and your proprietary application onto new hardware, but most of the new server’s power would be wasted. A better solution might be to create a Windows NT virtual machine on an existing server and run your proprietary application from there.
Obviously this solution saves you the expense of a new server, but it also reduces clutter in your server room. Furthermore, Windows NT will run exactly as it would if it were running on a dedicated server. This means that it won’t be any more difficult to install Windows onto a virtual machine than it would be to install it on a physical machine. Furthermore, you have the added assurance that because Windows NT and your application are running within a virtual machine, if there is ever a crash, the crash won’t take down the server that the virtual machine is running on.
As you can see, Virtual Server 2005 is an extremely useful product, but it does have some caveats that you need to know about. The first issue that you need to be aware of has to do with reliability. As I mentioned before, virtual Server is designed so that if one of the virtual servers were to fail it will not effect the physical hardware, the host operating system, or other virtual servers or applications running on the server. The problem is that a hardware failure or a failure in the host operating system can take down the virtual servers running on that machine. For example, if you had a Windows 2003 Server running five virtual servers and had a severe hardware failure, but the host operating system and the virtual servers running on it would become unavailable. Even though only one server has actually failed, your end users will have the perception that six different servers have failed.
Another issue that you need to be aware of is performance. To successfully run Virtual Server 2005, your physical server must have sufficient hardware to run the host operating system, plus any necessary virtual machines. Remember that each virtual machine has its own individual operating system and its own set of applications, and your server needs to be beefy enough to handle running all of this software simultaneously.
Unfortunately, I can’t tell you exactly what kind of hardware you will need because the required hardware varies greatly depending on the number of virtual machines that you are running and on the operating systems and applications running on each virtual machine. What I can tell you though is that from my experience you should plan on allocating a bare minimum of 128 MB of memory for each virtual machine that you will be running, plus the necessary hardware for the host operating system to run efficiently.
You also need to think about hard disk and processor utilization. In the example that I gave earlier in which a legacy system died of old age and is being resurrected within a virtual machine, hard disk space and processor utilization aren’t major concerns because the legacy operating system and application are not resource intensive. If however you plan on running newer operating systems, high demand applications, or large numbers of virtual machines then disk and CPU resources will become a major consideration. Virtual Server 2005 does allow you to limit the amount of resources that each individual virtual machine can consume, but even so you might consider giving your system a high performance RAID array and one processor for each virtual machine for ideal performance.
Another issue that you will need to consider in relation to running virtual servers is software licensing. While its true that running applications is a virtual server environment often saves money in hardware costs, you won’t save any money on software licensing. For example, imagine that you have a server that is running four virtual Windows 2003 Servers. You would actually need five separate licenses for Windows Server 2003, one for the host operating system and one for each of the four virtual machines. By the time you also throw in a Virtual Server 2005 license, you will have spent more money on software than you would have if all your virtual servers were running on separate hardware.
One last issue that I want to address is security. Suppose for a moment that a physical server is running four virtual servers and one of those servers gets a virus. The good news is that unless that virus has been specifically designed to attack Virtual Server 2005 (no such virus currently exists) then the virus will be isolated to the virtual server that contracted it. Remember that Virtual Server 2005 treats each virtual server as a completely separate machine, so a security breach on one virtual server will not directly effect other virtual machines running on the same system.
There are a couple of security related issues that you should be aware of though. For example, if the machine’s host operating system were brought down by a virus or other exploit, the virtual servers could potentially also crash since Virtual Server 2005 is dependant on the host operating system.
Another security issue that you need to be aware of is that virtual machines must be secured, patched, and maintained, just like any other server in your organization. It’s easy to think of a virtual server as not being a “real server”, especially in a development environment, and therefore not taking the security precautions that might be taken with a production server.
While lax security on a virtual machine shouldn’t directly cause problems for other virtual machines. It could allow the virtual machine to be more easily hacked. Hackers often use a machine with weak security as a platform for gaining access to the rest of the network. To prevent a virtual server from being used to compromise the rest of your network, you must insure that all servers (real and virtual) use the proper security.
In this article, I have explained that Microsoft’s Virtual Server 2005 will allow you to run multiple virtual machines on one physical server. I then went on to explain that there are a number of performance, security, and software licensing issues that you must address prior to deployment.