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 4. 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 OS and software that are running on a virtual machine effectively behave as though they were running on a physical computer. The OS and software are installed and configured just as they would be on a physical computer. The virtual machine gets its own IP address, sees its own drives, and so forth. Virtual machines can exchange data through networks by using standard protocols, such as HTTP, FTP, and SMB. Virtual machines that are running Microsoft Internet Information Services (IIS) appear on the network as any other Web server, and virtual machines that have SQL Server installed on them appear on the network as any other SQL Server. Legacy applications that are running on virtual machines can connect to databases, Web sites, network shares, or any other resources, without requiring any modification to the legacy application.
The following table shows an example of the hardware on a host computer, and how that host hardware might be represented in the virtual machine (the actual hardware that is seen by the virtual machine can be controlled by the administrator).
|
Physical hardware in host computers
|
Hardware seen by virtual machine
|
|---|
|
Quad core processor
|
Single processor
|
|
32 gigabytes (GB) of physical memory
|
2 gigabytes (GB) of physical memory
|
|
Four 250-GB hard drives
|
One 80-GB hard drive (implemented as a .vhd file that resides on one of the physical drives)
|
|
1-GB Ethernet adapter
|
1-GB Ethernet adapter (provides direct access to the physical adapter)
|
|
One DVD/CD-ROM drive
|
Emulated CDROM drive mapped to an .ISO image residing on one of the physical disks
|
When a virtual machine accesses hardware, requests are routed through a virtualization layer that is called Virtual Machine Monitor (VMM). The VMM translates calls to virtual hardware into calls to physical hardware. There are two kinds of VMM:
-
Hosted VMMs that run on an existing OS—This is the approach that is used by Microsoft Virtual Server 2005 running on Windows Server 2003 software, and Microsoft Virtual PC 2007 running on Windows XP or Windows Vista.
-
"Hypervisors" that run directly on the hardware—Instead of the computer starting a traditional OS, such as Windows, the computer instead starts the hypervisor. All other operating systems run on top of the hypervisor as virtual machines. (This kind of VMM is coming in Window Server 2008, with the code name "Hyper-V" technology.)
If multiple virtual machines are running on a single physical server, they are isolated from each other. Any event that happens inside one virtual machine (for example, a virtual machine restarts, or its OS crashes) does not affect other virtual machines or the host computer.
The hard drive for a virtual machine is simply 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.
Hardware Virtualization for Legacy Applications
If, for whatever reason, a legacy application is not compatible with a new OS (for example, Windows Vista or Windows Server 2008), you can create a virtual machine, install a compatible OS in the virtual machine, and then install the legacy application. This allows the application to run in an isolated and completely compatible environment, even as your IT organization upgrades to the latest hardware and rolls forward to the latest operating systems. Hardware virtualization is the easiest and most certain way to preserve legacy applications and make them available.
Microsoft provides three hardware-virtualization products:
-
Virtual PC 2007
-
Virtual Server 2005 R2
-
Windows Server Virtualization (currently, in beta and code-named "Hyper-V")
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. It offers performance improvements, such as support for 64-bit virtualization hosts and for first-generation virtualization enhancements that are built into the newer AMD and Intel processors.
Figure 5. Legacy application running locally on a virtual machine
Figure 5 illustrates how Virtual PC 2007 can keep available a legacy application that depends on Windows XP and Office XP, 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 machine. If the legacy application requires an earlier version of Microsoft Office, this earlier version also runs inside of the virtual machine, and is isolated from the daily productivity suite of the user.
Virtual PC 2007 provides good integration between the host and guest OS. 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. It supports both 32-bit and 64-bit hosts, and 32-bit guest operating systems. On 64-bit hosts, it can scale up to 512 virtual machines—addressing up to 256 GB of memory. It also supports virtualization enhancements that are included in AMD and Intel processors, which further improves performance.
Typically, Virtual Server is the best choice for preserving legacy-application investment. If you have legacy applications that require a certain OS, 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 OS.
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 OS, 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 6.
Figure 6. Accessing an application that is running on a remote virtual machine
Each virtual machine can have up to 3.6 GB of RAM and up to four network interfaces. Virtual Server 2005 R2 SP1 ensures that virtual workloads do not affect each other (or affect the host OS), as Virtual Server allows you to throttle the amount of CPU that is used by any given virtual machine.
Virtual Server 2005 R2 SP1 also features Undo and Differencing Disks, which let you back-out changes that are made to the virtual machine.
Last, but not least, Virtual Server 2005 R2 SP1 can apply existing security models to every virtual machine, thanks to its tight integration with Microsoft Active Directory.
Microsoft offers Virtual Server 2005 R2 SP1 free of charge. It can be downloaded from http://www.microsoft.com/technet/virtualserver/software/default.mspx.
Windows Server Virtualization (Code-Name "Hyper-V")
Windows Server 2008 will bring a new form of hardware virtualization to the Microsoft product line. Unlike Virtual Server 2005, "Hyper-V" is a bare-metal VMM that will provide better performance and scalability. Thanks to a new virtualized I/O architecture, pass-through access to storage devices, and support for the latest virtualization features that are included in AMD and Intel processors, "Hyper-V" will reduce the typical virtualization overhead and offer substantially better performance.
At the same time, "Hyper-V" will become the solution of choice for running the most complex and resource-intensive applications. "Hyper-V" will support 64-bit guest operating systems and virtual symmetric multiprocessing (vSMP), and will allow you to allocate more memory to virtual machines than Virtual Server 2005 and Virtual PC 2007 allowed.
"Hyper-V" will further extend the Undo and Differencing Disks concept that was introduced in Virtual Server 2005—allowing you to taking snapshots of running virtual machines, and quickly revert to those snapshot points.
"Hyper-V" will be tightly integrated with Microsoft Active Directory, to allow granular assignment of virtual machines to specific domain groups and users.
Microsoft will offer "Hyper-V" as an integrated component in every Windows Server 2008 installation, and will allow a smooth transition for its customers who currently are implementing Virtual Server 2005 R2 SP1.
Like Virtual Server, "Hyper-V" focuses on server OS support, including the Windows 2000, Windows Server 2003, and Windows Server 2008 families. It is slated to ship as beta technology in Windows Server 2008 and to be finalized within 180 days of the release of Windows Server 2008.