Hardware-virtualization technologies allow you to run multiple "virtual machines" on a single physical computer by abstracting the computing hardware—including CPU, memory, mass storage, network interface cards, and so forth.
Figure 2. Multiple virtual machines running simultaneously on a single physical computer
Each virtual machine provides a basic set of virtual hardware that mimics, or passes through, to the physical hardware. Software that is running inside of a virtual machine sees a CPU, memory, disk drives, network adapters, and other hardware—just as software that is running on a physical computer would.
The operating system and software that are running in a virtual machine effectively behave as though they were running on a physical computer. The operating system and software are installed and configured just as they would be on a physical computer. Virtual machines that have SQL Server installed on them appear on the network as any other SQL Server. Legacy applications that are running in virtual machines can connect to databases, Web sites, network shares, or any other resources, without requiring any modification to the legacy application.
If multiple virtual machines are running on a single physical server, they are isolated from each other. Any event that happens inside of one virtual machine (for example, a virtual machine restarts, or its operating system crashes) does not affect other virtual machines or the host computer.
The hard drive for a virtual machine is just a file that has a .vhd extension. To back up the virtual machine, you just make a copy of the file to another disk, or tape. To move the virtual machine, you just copy the file to another computer.
Microsoft Hardware-Virtualization Technologies
Microsoft provides two primary hardware-virtualization products: Microsoft Virtual PC 2007 and Microsoft Virtual Server 2005 R2.
Virtual PC 2007
Virtual PC allows you to run virtual machines on your local desktop. Specifically designed to support older desktop operating systems on newer operating systems and hardware, Virtual PC 2007 is available for Windows XP and Windows Vista host operating systems.
Figure 3. Legacy application running locally on a virtual machine
Figure 3 illustrates how Virtual PC 2007 can keep available a legacy application that depends on Windows XP and Microsoft Office 2007, in an environment in which Windows Vista and Office 2007 are the corporate standard. When the user wants to use the legacy application, they first start a Windows XP virtual machine, and then they run the application within the virtual computer.
Virtual PC 2007 provides good integration between the host and guest operating systems. For example, you can perform copy-and-paste operations between the host and guest computers. You can also drag files from the host computer and drop them into the guest computer. Shared Folders also provide an easy mechanism for moving data into and out of the virtual machine.
Virtual PC 2007 focuses on desktop operating systems, including Windows 98, Windows ME, Windows 2000 Professional, Windows XP Home Edition, Windows XP Professional, Windows Vista Enterprise, Windows Vista Enterprise Business, and Windows Vista Enterprise Ultimate.
Virtual PC 2007 is available free of charge. It can be downloaded from https://www.microsoft.com/downloads/details.aspx?FamilyId=04D26402-3199-48A3-AFA2-2DC0B40A73B6&displaylang=en.
Virtual Server 2005 R2 Service Pack 1
Where Virtual PC allows you to run virtual machines on your local desktop, Virtual Server allows you to run virtual machines on server-class hardware. Virtual Server 2005 R2 Service Pack 1 is the Microsoft flagship product for server virtualization. It is available for the Windows 2000, Windows Server 2003, and Windows Server 2008 host operating systems, and is designed with scalability in mind.
Typically, Virtual Server is the best choice for preserving legacy-application investment. If you have legacy applications that require a certain operating system, you can configure a server with Windows Server 2003 R2 and Virtual Server 2005 R2. On that server, you then create a virtual machine that has the required operating system.
For example, if your Visual Basic 6.0 application requires Windows 2000 Workstation, or even Windows NT 4.0, you could create a virtual machine with that operating system, and then install your application on that virtual machine. Users could make a remote-desktop connection to the virtual machine and run the application, as shown in Figure 4.
Figure 4. Accessing an application that is running on a remote virtual machine
Microsoft offers Virtual Server 2005 R2 SP1 free of charge. It can be downloaded from http://www.microsoft.com/technet/virtualserver/software/default.mspx.