SharePoint 2010 Small Farm Server Recommendations

image

Copyright 2010. John Stover

Microsoft has some pretty good information posted about the hardware and software requirements necessary for SharePoint 2010.  I still get asked for real world, or ‘best practices’, recommendations all the time.  Like everyone else, I want to get the best performance for the best price.  It’s difficult to strike the balance between ‘good enough’ and ‘optimized’.

A large majority of the SharePoint projects that I work on end up being small-ish SharePoint farms (between 2 and 8 servers).  Due to the licensing required for Windows, SQL Servers, and SharePoint servers, most organizations do try to get by with as few servers as possible, yet still want the best possible performance.  The most common configuration that I see in the SharePoint world involves a single dedicated SharePoint server and a single dedicated SQL Server.  From there, organizations usually first add another SharePoint server, then a 3rd SharePoint server, then a second SQL Server, and then the sky is literally the limit.

Is Virtualization supported for SharePoint?

Yes, virtualization is fully supported by Microsoft.  Virtualization is not at all new but is one of the biggest IT advancements, maybe ever.  I’m pretty sure that IBM was one of the earliest pioneers of this ‘pseudo machine’ concept in the mid 1960’s.  How’s that for a ‘new technology’ that is nearly 50 years old?  Virtualization for SharePoint isn’t new either, but it is still gaining a comparatively slower adoption than other systems.  Once you do decide that virtualization is the way for you, the next logical question should be ‘What virtualization platforms are supported for SharePoint 2010?’ 

Of course, Microsoft’s own virtualization platform is supported (Hyper-V).  Most people don’t realize that Microsoft will also provide support if you are running an approved virtualized environment.  The current vendors that have approved virtualized environments for running Windows 2008 Server R2 are (in no particular order):

  • VMWare (ESX and vSphere)
  • Cisco (WAAS Virtual Blades)
  • HITACHI (Virtualization Manager / Virtage)
  • Citrix Systems (XEN Server)
  • Red Hat (Virtualization Hypervisor)
  • Novell (SuSE)
  • Riverbed Technology (Steelhead Appliance)
  • Stratus Technologies (Stratus Avance)

Of course, you can also run Oracle VirtualBox (which is FREE), though this is not an officially supported virtualization vendor registered with Microsoft’s Windows Server Virtualization Validation Program (SVVP).

SharePoint 2010 Recommendations for installing on a Single Server

I get asked for SharePoint server recommendations nearly every day.  Like nearly all ‘best practices’, there is no single answer for perfect server recommendations.  The answer always seems to be, “It depends.”  What is your budget?  How many users?  What type of users?  What type of activity are the users doing?  What type(s) of SharePoint sites are you running?  Web Content Management sites?  Team Sites?  BI tools?   If you look online for SharePoint 2010 farm configurations, you will see incredible descriptions of server clusters, farms, SAN configurations, hundreds of GBs of memory, incredible RAID configurations, clusters of servers for every imaginable service and other configuration scenarios that most nonprofits could never afford.  If you want some great fun with environment configuration recommendations, download the HP Sizer for Microsoft SharePoint 2010.  I recently ran a scenario through the HP Sizer and got a recommendation for a 32 server environment with full details. 

Most of the nonprofits I work with don’t have the resources available for 32 new servers to run SharePoint.  Is there anything you can do on a shoestring budget to maximize performance with your SharePoint environment?  Absolutely!  You can run SharePoint on a single server.  It doesn’t matter which version of SharePoint, either.  You can run SharePoint 2010 Standard, SharePoint 2010 Enterprise, SharePoint Foundation, Windows SharePoint Services, and MOSS 2007 all on a single server.  Will it be the absolute best performing SharePoint environment ever?  Probably not.  But you can run an effective and efficient solution on a single server.

If you are running SharePoint on a single server, there are some things that you should take into account.

  1. Dedicate your server to running SharePoint.  I’ve seen a variety of configurations where a single server was used to run custom apps, ColdFusion, PHP, Media Streaming Services, Exchange, and a host of other things.   Sure you can do this, but should you?
  2. Stop unused services.  Do you really need the audio services running on Server? Stop and disable any of the services that you are not using.
  3. Add RAM.  RAM is cheap.  Whether virtual or physical – allocate memory to your server.  I run 6GB dedicated to the VM on my laptop – and I’m the only user. 
  4. Plan you drives and partitions.  There are heated debates over partitions, RAID systems and drive configurations on the web.  Like RAM – more is better.  If you are purchasing a single machine to run SharePoint – hardware is cheaper than software at this level.  Purchasing a flexible server with multiple SAS drive controllers and fast drives gives you flexibility to run different RAID configurations (RAID 10 is faster than RAID 5).  Running 3 partitions on the same physical drive is slower than running 3 separate drives.  Want to know something interested – partitioning segments of a drive and leaving the drive largely empty often gives the best performance.  If you have a 1TB drive and put a 250GB partition on it and ONLY use the 250GB – you will get better performance than if you use the whole drive.   Sure you are ‘wasting’ 750GB worth of space, but this recommendation is about getting optimal performance from a single server – not conserving drive space.
  5. Plan SQL.  If you are using SQL Server Express (which is the default version used during a stand-alone install), then there is very little configuration control you have using the install wizard.   If you are using a Standard version of SQL Server 2008, then you have a ton of control over configuration options.  You can split data, logs, temp db, OS, and page files all to different drive arrays.  If you dedicate controllers/drive arrays to each of these operations then you will gain significant performance gains from SQL.

As you can see, there are tons of things you can do to optimize performance for a single server environment.  All of these steps should be considered with multi-server environments as well.

To paraphrase (and completely rewrite an old saying), your environment is only as fast as the most restrictive bottleneck.

Microsoft Search Server 2010 Express Part 1: Installation 101

I am a huge fan of free software.  I think that there are tons of great free software packages available: WordPress, Ubuntu, Microsoft SharePoint Foundation, Microsoft SQL Server 2008 R2 ExpressPicasa, TeraCopy and many more.  When most people hear FREE software, they hear Open Source.  However, not all free software is open source.  One of the absolute greatest free software packages available for you to use today is Microsoft Search Server 2010 Express.  Any association, nonprofit, charity, school or company can use this software to significantly improve their search capabilities.  Internally searching the S:\ drive or externally on you existing public facing website – Microsoft Search Server 2010 brings a lot of great capabilities to the table – for free.

This is just a series of screen caps of the vanilla install environment.  Keep in mind the requirements for Search Server 2010 Express are similar to those of Search Server 2010 and SharePoint 2010: 64-bit edition of Windows Server 2008 Standard, Enterprise, Data Center, or Web Server with Service Pack 2 (SP2) or 64-bit Windows Server 2008 R2 (various flavors).

I’ve installed this on 64-bit Windows Server 2008 R2.

After downloading and launching the executable, you should see:
Search Server 2010 Express Splash Screen 

There are various links in the splash screen, but basically under Install, you can let the wizard install all of the prerequisites needed (including IIS).  If you want, you can manually download and install all prereqs to ensure they are installed exactly how you want, see http://technet.microsoft.com/en-us/library/bb905370.aspx.

Search Server 2010 Express Prerequisites

Even if you install the prereqs manually, it’s still a pretty good idea to run the wizard to validate your environment.  The wizard will check that everything is right as rain before installing.

Search Server 2010 Express Install

After accepting the Ts & Cs, the prereq wizard will run through…

Search Server 2010 Express Install

Search Server 2010 Express Install Complete 

Complete!  The prerequisites are now installed (or validated) and you can run the actual Search Server 2010 Express install.

Search Server 2010 Express Install Product

There are two modes for installing Search Server 2010 Express:

  • Complete – allows you to specify a SQL Server installation
  • Stand-alone – automatically installs and configures an instance of Microsoft SQL Server 2008 Express (which is also free!)

Search Server 2010 Express Server Type

I’ve selected Stand-alone which should go through and configure absolutely everything I need to have Search Server 2010 Express running.

Search Server 2010 Express Installation Progress

The actual install goes fairly quickly.  The installation provides an opportunity to run the Configuration Wizard immediately or not. 

Search Server 2010 Express Run Config Wizard

With Search Server 2010 Express in Stand-alone mode, the configuration wizard is pretty straightforward. 

Search Server 2010 Express Welcome

Simple dialog making sure you know that some services may be restarted.

Search Server 2010 Express Stop Service Dialog

After clicking Yes, sit back and relax for a bit.  I have a pretty fast virtual environment and the configuration screens take about ten minutes.

Search Server 2010 Express Progress Bar

And…

Search Server 2010 Express Install Successful

After the configuration wizard finishes, you should automatically be taken to the Central Administration screen with a few steps listing how to begin configuration of your specific search implementation.

Search Server 2010 Express Configuration Wizard

You should also notice that you now have some new Administrative shortcuts installed, namely a folder with shortcuts to the SharePoint 2010 Central Administration, SharePoint 2010 Products Configuration Wizard, and the SharePoint 2010 Management Shell and a second folder called Microsoft SQL Server 2008.  What?  SharePoint 2010?  SQL Server 2008?  But I thought I installed Search Server 2010 Express.  Several Microsoft products utilize SharePoint as the interface for the applications.  SharePoint uses SQL Server.  SharePoint Foundation is free and provides a great user interface experience, security components, an application development framework, a deployment framework, and so much more.  SQL Server 2008 Express is free and is, well, SQL Server – arguably one of the strongest database management platforms on the market. Once any developer learns to leverage the SharePoint framework, the time and effort required to write a web based application can be significantly shortened.  After all, that’s what frameworks and APIs provide – the ability to leverage existing ‘stuff’ and not having to write everything from scratch every time.

Search Server 2010 Express Programs Added

Get more info directly from Microsoft.
Marketing site: http://www.microsoft.com/enterprisesearch/searchserverexpress/en/us/default.aspx
Download site: http://www.microsoft.com/enterprisesearch/searchserverexpress/en/us/download.aspx
TechNet site: http://technet.microsoft.com/en-us/enterprisesearch/ee263912.aspx#tab=1

RENDOM Thoughts on Renaming your AD or ADDS domain name

Accordion Street Musician
Originally uploaded by
JohnStover

Renaming an Active Directory Domain Services domain name can be a daunting task, but it doesn’t have to be.  I went through the steps of renaming an existing AD domain today.  I did quite a bit of research beforehand but found the thought of rebuilding an entire new domain structure and then rejoining machines into the new domain to be a much more daunting idea! Enter RENDOM.  For information on the Active Directory renaming tool, visit http://technet.microsoft.com/en-us/library/cc786120(WS.10).aspx
 

Step 1.  Backup.  You should already have EVERYTHING backed up, but chances are you don’t.  Or you don’t trust what you do have.  Or you haven’t tested your backups.  So, backup your domain controllers PRIOR to any major changes.

Step 2.  Generate the current FOREST description XML file called domainlist.xml.  This XML file contains a textual description of your domain.   At the command prompt, enter:  RENDOM /LIST

Step 3.  Edit domainlist.xml.  You can make a backup copy of the file first, but basically open the file up directly and edit it.  You only need to change the domain name portions.    My file sample is below.  Change only the items that I have in BOLD

<?xml version ="1.0"?>
<Forest>
    <Domain>
        <!– PartitionType:Application –>
        <Guid>6d44b011-f29f-4455-9ae8-becca5ed6cc7</Guid>
        <DNSname>ForestDnsZones.NAME.ORG</DNSname>
        <NetBiosName></NetBiosName>
        <DcName></DcName>
    </Domain>
    <Domain>
        <!– PartitionType:Application –>
        <Guid>199b277c-49f8-4909-8fbc-615f287fdfaf</Guid>
        <DNSname>DomainDnsZones.NAME.ORG</DNSname>
        <NetBiosName></NetBiosName>
        <DcName></DcName>
    </Domain>
    <Domain>
        <!– ForestRoot –>
        <Guid>9a142cae-6b56-485c-85bf-06e3978271cb</Guid>
        <DNSname>NAME.ORG</DNSname>
        <NetBiosName>NAME</NetBiosName>
        <DcName></DcName>
    </Domain>
</Forest>

Step 4.  Upload the instructions.  Using RENDOM to generate and upload the instruction list is as simple as: RENDOM /UPLOAD

Step 5.  Verify readiness by using: RENDOM / PREPARE

Step 6.  Let it rip with: RENDOM /EXECUTE

Step 7.  Restart your domain controller and test, test, test, test, and then test some more…