Server Host Configuration
Although you could get SharePoint Server 2007 up and running with virtual server
guests on an older server, the performance is going to suffer; realistically,
running virtual servers for SharePoint Server 2007 means purchasing a new server.
The latest generation of servers is significantly faster than the previous generation,
especially the servers with quad-core processors and SAS hard disks.
Even if you acquire new server hardware, you'll need to verify that you have
adequate memory on your host server to support your virtual server guests. For
a SharePoint Server 2007 production portal, you should typically configure the
host server with 8GB of memory to start. This amount gives you room to run additional
virtual server guests on the host, if necessary. If you use VMware Server with
Windows 2003 as the host OS, ensure that the version of Windows 2003 can support
the amount of memory installed in the server. Table
1 shows the different versions of Windows 2003 R2 and the maximum amount
of memory each version supports.
I don't recommend using the 32-bit Standard version of Windows 2003 R2 as the
host OS because its memory support is insufficient. You could use the 32-bit
Enterprise version of Windows 2003 R2, but to take advantage of the new server
hardware you really should consider running an x64 version of Windows 2003,
whether the Standard or the Enterprise edition. The Enterprise version of the
Windows 2003 license lets you run as many as four instances of the OS as virtual
server guests on a single host, regardless of the virtual server software you
use.
Anti-Malware Considerations
Install antivirus software on the host OS, but exclude all virtual server guest
files from antivirus scanning to improve the performance of all the virtual
servers running on the host. Also consider installing an antivirus/antispyware
solution specific to SharePoint Server 2007, such as Microsoft Forefront Security
for SharePoint or a third-party solution. In addition to the SharePoint Server
2007 antivirus/antispyware software, you should install file-level antivirus
and antispyware software on all your virtual server guests.
SharePoint Server 2007 and Virtual Server Guests
To streamline the creation of a virtual server guest, install a base image of
Windows 2003 R2, then copy the disk image to a different folder when you want
to create a new virtual server guest. For the base image, install the OS, virtual
server add-ons, and latest service packs and
hot fixes, then copy the amd64 and/or i386 setup files to the virtual server
guest and leave the server in a workgroup. The x64 version has both the amd64
and i386 setup folders. The i386 setup files are used to run Windows on Windows
(WOW) 32-bit programs on the x64 version of Windows 2003. When you need to set
up a new virtual server guest, you can copy the hard disk file to a different
folder and create a new virtual server, using the base image hard disk. When
you start the server, rename it, set the IP address, and join the domain. By
using this method to create a new virtual server, you can save at least an hour
of setup time for each new virtual server guest.
How many virtual guest servers should you run? For SharePoint Server 2007,
I typically set up just two: one virtual guest that will run SQL Server 2005
and one virtual guest that will run SharePoint Server 2007, including the IIS,
Application, and Indexing services. You might have to run at least one 32-bit
guest for backup or other server functions that won't run on the x64 version
of Windows 2003 R2, because some programs don't support the installation of
the backup software directly on an x64 server or have problems even if they
do support x64. For example, although Symantec Backup Exec 11d supports an installation
on a Windows x64 version, I found it buggy and therefore unreliable. Backup
Exec 10d does support a remote backup of an x64 Windows server.
In a virtual environment, it really doesn't make sense to create separate guests
on the virtual server host for a separate indexing server or other SharePoint
Server 2007 services, because separate guests just create more overhead and
potentially slow down the server. To create a portal that can support as many
as 100 users, consider configuring the virtual server guests as follows:
- SharePoint Server front-end and application server: 2GB memory; 20GB C drive;
40GB D drive; one processor
- SQL Server 2005 server: 3.8GB memory (64-bit version of SQL Server) or more
if you're running ESX Server; 3GB memory (32-bit version of SQL Server); 20GB
C drive; 100GB D drive; one processor
The virtual server guest files are installed on the host server's RAID 5 or
RAID 10 array or on a 4GBps Fibre Channel SAN. I haven't seen any performance
increase from assigning more than a single processor to each virtual guest server.
After the servers are up and running for a while, you can adjust these parameters
as necessary. Probably the biggest adjustment to make will be the amount of
memory you allocate to each virtual server guest. For the virtual server guest
disk drives, I suggest not preallocating the space for these disks. Although
it's true that you'll have better performance if you preallocate the space,
the virtual disk files will be smaller on the host if you don't preallocate
the space, which makes them easier to deal with, especially when you're performing
backups. I found that in most SharePoint Server 2007 deployments, disk space
gets used very slowly—typically less than a few MB per day. So I'd sacrifice
performance for faster recovery of the virtual server guest files, less disk
space usage on the host, and faster backup times.
Be sure to configure each guest to automatically start up when the host server
boots; otherwise, you'll have to start each guest server manually whenever the
host server is rebooted. Although the virtual servers' states are saved by default,
it's always a good idea to shut down the virtual servers before restarting or
shutting down the host server. Ensure that all network administrators are aware
of the virtual server configuration and train them to shut down all virtual
guests before shutting down the host server.