Microsoft's Virtual Server 2005

Using virtual machine technology, Microsoft's VS cost-effectively distributes applications and their resource loads across multiple VMs running on a single host.

September 24, 2004

6 Min Read
Network Computing logo

Let's Get Virtual

I installed Microsoft VS Enterprise Edition on a Windows 2003 Server with IIS 6. At minimum, the host server requires a 550-MHz processor, 256 MB of RAM and 2 GB of disk space. You'll need more memory and disk space for each VM you run.

Microsoft VMs support only Windows OSs, but other x86 OSs like BSD and Linux can run in VMS. After all, the VMs have Intel inside. But you can't synchronize time between the host computer and non-Windows VMs, or integrate mouse controls with an Active X component.

The host server I tested had dual Pentium 4 (2.4-GHz) processors with 2 GB of RAM and more than 400 GB of disk space formatted for NTFS. Microsoft VS uses ACLs (access-control lists) that require NTFS, so a FAT or FAT32 volume can't securely manage a VM environment. Also, some VMs use dynamically expanding hard disks (virtual files) that can grow larger than 4 GB--a volume only NTFS can support.The installation included a Virtual Server Service (vssrvc.exe) to run VMs, a VMRC client to access the VMs and a Virtual Server Web Application (vswebapp.exe) that enabled an Administration Web Server under IIS. I ran all the Microsoft VS components on one server, but these apps can run on separate servers.

I logged on to the Administration Server as a local administrator. Using a Web form, I created multiple Microsoft VMs with configurable memory, disk and network parameters to run Windows (2003, 2000 and NT 4.0 Servers), Linux (Mandrake 10.0) and FreeBSD 5.2.1.

The Web form included sections to configure the VM name, memory, virtual hard drive and virtual network adapter. Available memory for each VM depends on the host's physical memory. For the 2,048 MB in my test host, Microsoft VS reserved 200 MB for the Windows 2003 Server OS and its own needs, allowing an 1,848-MB aggregate pool to be assigned to individual VMs. I assigned 128 MB to each VM so I could simultaneously run as many as possible without exhausting physical memory.

The virtual hard disks for each VM are actually virtual files located on a physical hard disk. Each file can be formatted with a fixed size, or configured to expand dynamically. You can also create a linked virtual hard disk to access not only the physical hard disk and host OS, but also a space-saving differencing disk from which multiple VMs can be generated. I configured the test VM hard disks with fixed file sizes, because I was dealing with application, not file, servers.

For network resources, each VM can be assigned to an internal network confined to the host or an external network using the physical network interface to access the LAN and WAN/Internet. Microsoft VS also supplies its own DHCP server to configure TCP/IP communication between VMs. Within a few hours, I was up and running with an internal network of servers and clients dedicated to development, as well as two Windows 2000 Servers facing the external network.Allocation Time

Scaling applications in to one box requires a CPU resource-allocation tool, without which chaos would ensue as each VM competed for CPU time. With Microsoft VS, I prioritized some VMs by assigning them a greater weight. I also allocated the minimum and maximum percentage of CPU time any one VM could use.



Microsoft Virtual Server 2005, contact vendor for pricing. Microsoft, (425) 882-8080.

The CPU configurations were tested by guaranteeing a minimum rate of 12.5 percent of physical CPU resources per VM. I also set a ceiling per VM so each would not exceed 23.75 percent of total CPU resources. Our test machine with dual Intel P4s supported hyperthreading. Even though Microsoft VS allocated resources based on the four logical CPUs rather than the two physical CPUs, Microsoft recommends that you disable hyperthreading. Under heavy workloads, it can cause performance problems when you start to add VMs with increasing user loads.

After the CPU rules were in place, I ran the Windows Resource Kit's CPU Stress utility on one of the Windows 2000 servers facing the external network. Over time, I added as many as four running threads, and increased thread priorities and activity levels from low to high. Once I had reached the maximum number of threads at their highest priority and activity level, the VM did not exceed an average of 25 percent of total CPU resources. But when I tested the host computer in the same manner, CPU resources were saturated in no time.

Microsoft VS supplies WMI (Windows Management Instrumentation) counters for individual VMs in the host system's Performance Monitor. It also displays VM events on the Administration Web Server pages and in the host system event log, and lets you save the state of the machine to debug an error long after the fact. Later this year, a management pack for Microsoft Operations Manager 2005 should be ready to integrate the VM counters into MOM (Microsoft Operations Manager) or export them to a third-party management solution.

With its CPU resource-allocation tool and centralized, Web-based administration, Microsoft VS makes a strong case for server consolidation. Remember to apply it in a distributed-application environment where low-end services can leverage a database or other centralized resource.Sean Doherty is a technology editor and lawyer based at our Syracuse University Real-World Labs®. Write to him at [email protected].

Each virtual machine presents the same virtualized resources to x86-based operating systems like Windows, Linux and BSD. VMs emulate an Intel 440BX chipset with a PIIX4 chip and an AMI BIOS. The emulation includes all the usual PC components like CMOS, RAM, VRAM, DMA controller, a real-time clock, and a PCI and ISA bus.

One physical CPU is automatically associated with each VM, and up to 3.6 GB of memory per VM can be manually assigned. Each VM can emulate a maximum of 4 IDE resources, such as hard drives, CD/DVD-ROM drives and ISO images.

For SCSI support, VMs emulate a multiport Adaptec 7870 SCSI controller with four virtual buses. VM resources also include an S3 Trio64 graphics card with 4 MB of VRAM and a multiport Intel 21141 10/100-TX Ethernet controller with four virtual buses. VMs currently don't support sound cards.

Stay informed! Sign up to get expert advice and insight delivered direct to your inbox

You May Also Like

More Insights