Web Abstract:
- A simple two-server SharePoint setup is ideal for server virtualization and offers security and cost benefits.
- Besides what server virtualization software you use, you'll need to consider processor memory, whether to use 32-bit or 64-bit versions of the applications, and more.
- To streamline the creation of a virtual server guest, you install a base image of Windows 2003 R2, then copy the disk image to a different folder.
- You'll want to run at least two virtual guests for SharePoint Server 2007.
|
A simple SharePoint configuration of two servers is an ideal candidate for
server virtualization. A setup of one Microsoft IIS Server system running SharePoint
as the Web front end and one server running Microsoft SQL Server as the database
back end, especially if you don't anticipate heavy usage, can be virtualized
using Microsoft Virtual Server 2005 or VMware Server (both free products), or
VMware ESX Server, and run on one physical server. Sound intriguing? Let's take
a look at why you would want to do such thing, and then consider what you'll
need to do to successfully implement server virtualization of your SharePoint
setup.
Benefits of Virtualizing a SharePoint Server 2007 Farm
You'll find several benefits in virtualizing a simple Microsoft Office SharePoint
Server 2007 server farm. These range from increased security, to better performance,
to lower costs.
Increased security. Virtualizing servers can help increase
security, especially if your SharePoint 2007 server is accessed from the Internet.
As you know, SharePoint Server 2007 data is typically stored on a SQL Server
back-end database. If both applications are installed on a single server, the
database server is also exposed to the Internet. However, if the servers are
virtualized, only the SharePoint Server 2007 front-end server is exposed to
the Internet, protecting the database on a separate virtual server not exposed
to the Internet.
No loss of fault tolerance. Running two virtual server
guests on the host server won't reduce your fault tolerance. This is because
the SharePoint Server 2007 server won't work without the database back end and
vice versa. In other words, if you lose either the SharePoint Server 2007 front-end
server or the back-end database server, the portal will go down. Easier bare-metal
restores. The virtual server guest configuration and logical disks are stored
as files on the virtual server host. Backing up these files is essentially the
same as performing a bare-metal backup of the virtual server guests. Moving
the virtual server guest to a different host simply means copying files to a
different host and starting the virtual server guest on the host server. You
can replicate virtual server guest files to a remote disaster recovery site
by using third-party server replication applications such as Neverfail's products
or by using Distributed File System Replication (DFSR), which is an integral
part of Windows Server 2003 R2. This greatly simplifies the recovery of the
SharePoint Server 2007 server farm.
Faster setup time. If you create a base image of the
virtual server guest, you can significantly reduce the time it takes to bring
up a new virtual server guest to 15 minutes or less, compared to two or more
hours to bring up a new physical server.
Reduced costs. It's usually less expensive to purchase
a large host server instead of two dedicated smaller servers. Hardware maintenance
costs are also potentially reduced, and fewer servers means lower electric and
cooling bills.
The 32- or 64-Bit Question
If you decide you'd like to try server virtualization, there's one thing you
need to consider before you even select your virtualization software platform—you
must decide whether to use the 32- or 64-bit versions of SharePoint Server 2007
and SQL Server 2005. If your hardware supports the x64 version of Windows Server
2003 R2 as a virtual server guest, I strongly suggest using the 64-bit versions
of SharePoint Server 2007 and SQL Server 2005. SQL Server 2005 and SharePoint
Server 2007's indexing functions are potentially intensive in terms of memory,
disk, and processor use, and using the 64-bit version of these software applications
can improve performance. One drawback of using the x64 version of SharePoint
is the inability to run iFilters from third-party sources. For example the PDF
iFilter doesn't work with the x64 version of Windows SharePoint Services 3.0
and SharePoint Server 2007.
Additionally, running the x64 versions
of SharePoint Server 2007 and SQL
Server 2005 in a virtual environment does
limit your choice of virtual server software
because only VMware Server and ESX
Server are capable of running x64-based
guest servers. Virtual Server 2005 supports 32-bit guests. If you use VMware
Server, your server hardware must be
capable of running both an x64 version of
Windows 2003 as the host software and
running x64 virtual server guests.
Even if your server supports x64 virtual server guests, for some processors,
such as the Intel model, you'll probably have to enable the support for this
feature by going into the server's BIOS, then restarting the host server. In
my experience, most servers ship with support for x64 guests disabled by default.
If you plan to use VMware Server, you'll need to see whether your server is
capable of running x64 guests. (To do so, you can download the Processor Check
Utility for 64-Bit Compatibility at http://www.vmware.com/download/server/drivers_tools.html.)
If you plan to use ESX Server, you'll
need to go to the VMware site to make
sure that your server (and SAN, if applicable) is listed as compatible. ESX Server
recently added support for Intel's new
quad-core processors. For the best performance of the virtual server guests, use
ESX Server as the host OS, because it
provides near-native hardware performance, requires less host memory, and
can provide as much as 16GB of RAM for
a virtual server guest. It's very Linux-like,
however, so if you're not familiar with Linux
or ESX Server, be prepared for a learning
curve.
If you're new to virtualization and the portal won't be used too heavily, consider
using VMware Server with Windows Server 2003 R2 x64 as the host OS, because
VMware Server is free and you're probably already familiar with the Windows
OS. VMware Server also has a wider range of virtual guest OS support than does
Virtual Server 2005.
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.
SharePoint Server 2007 Backup
One of the neat features of SharePoint Server 2007 is the addition of a Recycle
Bin, which gives you a safety net in case your users accidentally delete items
from the portal. As of this date, popular backup vendors such as Symantec and
CA are still working on their agent support for SharePoint Server 2007. If you're
running Virtual Server 2005 or VMware Server, one backup option is to shut down
the virtual server guests and back up all the virtual server guest files on
the host server. Doing so gives you an image backup of all the virtual server
guests running on the host. The main disadvantage to this approach is that you
can't perform a granular restore: You must restore the entire portal. If you're
running ESX Server, you can back up the virtual server guest files by using
software such as Vizioncore's esxRanger SE or VMware's Consolidated Backup while
the virtual server is still running. You can also use SharePoint Server 2007
Central Administration Backup or the command utilities smigrate or stsadm to
back up SharePoint Server 2007 to a file, then back up the file to tape or other
offline media.
For full granular backup and restore support, you might try third-party solutions
such as AvePoint's DocAve backup solution for SharePoint Server 2007, which
requires a dedicated backup server and is positioned for enterprise deployments.
The main advantage of this solution is the ability to back up and restore items
at the document level.
Make Server Virtualization Work for You
Depending on your experience with server virtualization and SharePoint, you'll
find there's a learning curve associated with server virtualization. Start slowly,
either in a test environment or on servers that will have limited use, until
you feel comfortable enough with the technology to use it in a production environment.
You'll find the payoff worth the effort.