Ideally, every IT department would have a dedicated environment for testing
new software versions. In reality, not everyone can afford to set aside test
systems, though few IT pros relish the idea of installing beta software on production
machines. But thanks to Microsoft's release of Virtual Server 2005 Release 2
(R2) as a free download (at http://www.microsoft.com/windowsserversystem/virtualserver/software/default.mspx),
you can easily and economically set up an isolated test bed and run beta or
brand-new software versions in a virtual machine (VM) environment. I recently
created such an environment to test Exchange Server 2007 Beta 1 and the new
version of Outlook Web Access (OWA), and I'll walk you through the basic steps
I followed to do so.
In the Web-exclusive sidebar " Creating the Basic Virtual Environment" (http://www.windowsitpro.com,
InstantDoc ID 53900), I explain the processes I followed to create the VMs and
virtual hard disks in Virtual Server and install the Windows OSs in the VMs.
Figure 1 shows the layout of my test environment.
Before you undertake your virtualization project, be sure to check with management
about your company's policies for installing beta software and running test
systems connected to the production network.
Collecting the Hardware
An advantage of testing under Virtual Server 2005 is that you probably won't
need to go out and buy any new hardware. Take a brief inventory of any spare
hardware you have available and see what you can put together.
You'll want to assemble a machine that has as much RAM as possible, and you'll also need enough disk space to hold all the virtual hard disks you'll create. The more—and faster—processors you have, the better your machine's performance, although that isn't your chief concern in a test environment.
I used a retired HP NetServer LH6000, a quad P3 550MHz Xenon server that had
dutifully served up several Microsoft SQL Server 2000 databases for four years.
I removed some RAM from another retired Net-Server to give my test machine a
total of 4GB of memory. For storage, I chose an 8GB SCSI hardware RAID 1 array,
which provides storage for the OS and program files, and a 170GB SCSI hardware
RAID 5 array, which provides storage for the virtual hard disks. Why use RAID
for a test system? To provide redundancy: You don't want to spend all day setting
up your VMs only to have a disk fail overnight and destroy all your work. Also,
a RAID array is likely to provide better I/O performance for the VMs than a
single large disk can.
I recommend that you completely isolate your VMs from both your production network and the Internet. Doing so removes the risk of the beta software affecting production and also avoids the need to install antivirus software on your VMs (one less application to run means better performance). The downside to this approach is that you'll need to install everything on your VMs from CDROM or DVD. Therefore, you'll definitely want to add a DVD-ROM drive to your test machine. A DVDROM/CD-RW drive is better; in fact, two drives—one CD/DVD reader and one CD/DVD burner—are ideal. After you've gathered all the components for your test machine, install the necessary RAM, processors, drives, and other hardware and set up your RAID hardware.
Isolate or Connect?
Make sure you have copies of all the applications you want to install on the
test system before you start. The sidebar, "Applications Installed on the Test
System," lists the software I installed on my test machine.
Now you're at a decision point. You can either connect the test machine to
your production network and possibly the Internet or leave it completely isolated.
Earlier, I advised you to isolate your VMs from the production network and the
Internet. However, I recommend you connect the physical test machine
to your production network and give the test system access to the Internet.
Doing so offers some key benefits:
- You can install the Virtual Machine Remote Control client (VMRC)—a
Virtual Server 2005 component that lets a client access VMs on a virtual server—on
any number of management workstations in your network, letting you control
the VMs from your office PC, your home PC over a VPN connection, or another
location.
- You can access your test machine via Remote Desktop.
- If you're sitting at the console of the test machine, you can download software
from the Internet and, if you installed a CD/DVD burner, use it to burn copies
of whatever you need. You can then mount the newly burned CD/DVD on your VMs.
Doing so can save you a lot of trips back and forth to your test machine.
- You can use your current backup solution to back up your virtual hard disks
over the network.
The downside to this approach is that it makes your test machine a first-class
citizen on your production network. If you do put your test system on the production
network, you'll want to treat it like any other production machine and keep
it up to date (e.g., by staying current on OS hotfixes and anitvirus updates).
Whatever you decide, your next steps are to do a clean install of Windows Server
2003 Service Pack 1 (SP1) on your test machine, then install Virtual Server
2005 R2, also on the test system. (See "Creating the Basic Virtual Environment"
for more information about performing these installations.) If the test machine
is on your production network, now's the time to install the VMRC on any management
workstations you want. Likewise, you'll want to make the Virtual Server Administration
Web site one of your Microsoft Internet Explorer (IE) Favorites because you'll
be accessing it often as part of the Virtual Server setup process. The Administration
Web site URL is typically http://servername:1024/, where servername is
the NetBIOS name of your test machine.
Installing Exchange 2007
Assuming you've already created the VMs and virtual hard disks you'll need and
installed the OSs you'll be using, you're ready to install Exchange 2007 Beta
1. To do so, insert the Exchange 2007 Beta 1 DVD into your test machine's CD/DVD
drive and start the setup process. You'll also need to install Microsoft .NET
Framework 2.0, which is included on the Exchange 2007 Beta 1 DVD.
The installer will tell you that you need to have Microsoft Management Console (MMC) 3.0 installed. Initially I elected not to install MMC 3.0 because it's included with Windows 2003 R2, which I'd already installed— but the installer wouldn't proceed without it.
After a bit of Google searching, I located the solution to this problem on
the Microsoft Exchange Team Blog (http://www.msexchangeteam.com).
The installer is looking for a Release Candidate 1 (RC1) Refresh pre-release
build of MMC 3.0. You can solve the problem by either installing that build
or adding a new registry subkey. I used the registry subkey workaround; after
exiting the installer, I created an empty subkey called HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\
MMC30Core. After I created this subkey, the installer proceeded. I elected to
install the Bridgehead Server, Mailbox Server, and Client Access Server Exchange
roles. (I didn't test the Unified Messaging role because I didn't have a test
PBX or the Gateway Server role because it wasn't applicable to my test environment.)
After you select the roles, the installation pre-checks begin. Mine failed initially on the Bridgehead Server, Mailbox Server, and Client Access roles because the domain was in Windows 2000 mixed mode, since I hadn't upgraded my Active Directory (AD) domain from Windows 2000 mixed to Windows 2003 native. I exited the installer and upgraded the domain. (I explain the procedure for doing so in "Creating the Basic Virtual Environment".)
The installation pre-check also complained that Microsoft IIS wasn't installed. After again exiting the installer, I fixed this problem by running the Add or Remove Programs applet's Add/Remove Windows Components option and selecting Application Server (IIS) to install IIS with defaults. After I did so, all my prechecks passed and installation began.
The installer's next step, called Organization Preparation, was to add the Exchange Attributes to AD. This step took slightly longer than one hour for me (your results might differ). Once Organization Preparation is complete, the actual Exchange 2007 installation starts.
The installation proceeded smoothly until the Mailbox Server role was installed,
when I got this error: An error occurred while performing operations on atom
from exsetdata.dll: Error HRESULT E_FAIL has been returned from a call to a
COM component.... Back at the Exchange Team Blog, I found that others had
experienced this problem. A couple of suggested solutions were to reinstall
Windows 2003 SP1 and to uninstall and reinstall Exchange 2007. I opted for the
uninstall/reinstall method. After removing Exchange 2007 and rebooting my EXCH
VM (the VM I created earlier, as described in "Creating the Basic Virtual Environment,"
which contains the Exchange application and data), I reran the installation
procedure and got no errors this time around. Note that uninstalling and then
reinstalling Exchange 2007 will create an additional Universal Security Group
(USG) in AD, called Exchange Server Administrators(servername)#, where servername
is your test machine's NetBIOS name and # is likely to increment
based on how many times you uninstall and reinstall.
Testing Exchange 2007
Of course, Exchange isn't much use without mailboxes, so my next step after
installing Exchange 2007 in the VM was to create some. Being an Exchange administrator
since the Exchange Server 5.5 days, my natural impulse was to log on as an Administrator
to XP1, the VM I'd created for Microsoft Office Outlook 2007 and OWA, and attempt
to access the OWA site at http://exch.incubator.local/ exchange. No dice. I
thought the Administrator account might not be mailbox-enabled, so I checked
the account via Exchange Management Console (EMC)—Exchange 2007's new
version of Exchange System Manager (ESM)—and it was indeed mailbox-enabled.
Searching Google and checking the Exchange Team Blog turned up no helpful information.
I reread the release notes. Nothing. I thought OWA might be disabled for this
user, but the ability to enable/ disable access to OWA on a per-user basis isn't
available in EMC in Beta 1. I suspected that you could probably enable/disable
OWA for a particular user in the Exchange Management Shell (EMS), but I wasn't
ready to tackle EMS yet. I finally decided to create a new user and try logging
on by using that account.
I created a user, TestUser1, on DC, the VM that's the domain controller (DC)
and includes AD. While I was in DC, I created a file share called ExDoc Access
so that I could test OWA Document Access, a new feature that lets you access
files stored on file shares on your internal network without requiring you to
establish a VPN connection or connect via Terminal Services. I also created
a text file and placed it in that share. Then, on EXCH, I mailbox-enabled the
new user without any trouble and was able to log on to OWA. After clicking the
Documents button in OWA, as Figure 2 shows,
I could open my file share and text file. Cool! I'd love to have this feature
available in production today.
I deleted TestUser1 on DC, and Exchange 2007 automatically deleted the user's
mailbox. I then created two new users, John Smith and Jenny Jones. On EXCH,
I mailbox-enabled both users, as Figure 3
shows. I logged on to XP1 as John Smith and XP2 (the VM I'd created for OWA
and Microsoft Office Outlook 2003) as Jenny Jones and was able to send messages
back and forth by using OWA and Outlook 2003, as Figure
4 shows.
Configuring Outlook 2007 went smoothly, via a wizard that runs the first time
you launch Outlook after installing it. All I needed to do to create an Outlook
profile was to select Microsoft Exchange Server as the account I wanted to connect
to; Outlook 2007 automatically created the profile. As Figure
5 shows, Outlook resolved my username (John Smith) and Exchange server and
connected right away. This feature, called Auto Account Setup—which is
new to Exchange 2007 and Outlook 2007 and requires both products—will
be another great addition to the production versions because it simplifies the
somewhat tricky process of profile creation.
What's Next?
If you ever want to (or have to) revert to an earlier version of Exchange, simply
shut down your VMs and restore from the backups of your virtual hard disk—and
optionally, your shared virtual networks and shared VMs— which you should
have made after you set up the VMs and installed Windows on them (see "Creating
the Basic Virtual Environment"). Other than that, the sky's the limit. One of
my coworkers equipped his test machine with Exchange Server 2003 and Exchange
5.5 so that he could practice migration scenarios. You might want to hold on
to those Exchange 5.5 CDROMs for a similar occasion.
As for me, my test machine will soon be hosting Exchange 2007 Beta 2, SQL Server
2005, System Center Configuration Manager 2007 (formerly code-named SMS v4)
Beta 1, Windows Vista Beta 2, and Windows Server Longhorn Beta 2. Good luck
with your test system, and don't be afraid to experiment!
Seeing as Virtual Server 2005, 64-bit, only supports 32-bit OS, how did you get Exchange 2007 to run on a 32-bit OS. My understanding is that it is only 64-bit and requires a like OS.
@ninja_rat: Exchange 2007 is 64-bit and requires a 64-bit OS for production use. A 32-bit version is available, however, that runs on 32-bit OSes that can be used for evaluation and testing ONLY. Thanks for reading and for the question!