Farm Topology Gotcha... Query server caution!
In a previous post I mentioned the WFE/Index role and how making the index server have a WFE (Use a Dedicated WFE for Indexing) role can optimize your traffic and throughput (less hops) as well since the requests can be made locally. I still think it's a great recommendation, but I want to provide some caution on mixing roles where you may run into some trouble.
Here's the gotcha! If you're trying to do a high availability scenario for your WFE and Query (which is common). (Query role is the server that takes the search requests and has a copy of the propegated index) You should *NEVER* have the index server be the same as the Query in a high availability scenario. Why? When an Index server is also a Query server it won't know that it needs to propegate the index.
Note: It's fine on a 1 or 2 server box where query is not offloaded.
What this means...
- In a 5 server farm (2 WFE/Query, 1 Index, 2 SQL) do not have the "Services on Server" have Query. (WFE on Index is ok)
- In a 4 Server farm (1 WFE/Query/Index, 1 WFE/Query, 2 SQL) This won't work effectively. Query will be broken on the 2nd WFE. The index won't propegate to the other WFE!!
- In a 4 Server farm (2 WFE/Query, 1 Index, 1 SQL) This is ok. (WFE on Index is ok)
So what does a high availability farm look like, and what is going to be the most common farm beyond the single box or 2 box farm?
You guessed it. The typical medium farm: 2 WFE/Query, 1 Index (may include WFE if they're smart), 2 SQL (clustered or some other high availability scenario... Database mirroring/SQL log shipping, etc...)
<Update> Brenda from UA pointed me to the TechNet high availability doc where they outline in the 4 Server Farm this same gotcha. Note the recommendations on the index server in the 5 server farm.
Snippet from high availability doc:
Four-server farm
The smallest server farm that builds in availability consists of four servers:
|
- Servers one and two: Web servers and query role installed on both computers. Additional application server roles, such as Excel Calculation Services, can be installed on one or both servers. |
|
- Servers three and four: clustered or mirrored database server. |
The caveat with this farm size, however, is the choice of where to deploy the index server role.If the index role is installed on the same server computer as the query role, the index role no longer propagates content indexes to external query servers. Consequently, if you install the index server role to one of the Web servers, you lose the ability to host the query role on both Web servers. You can install the index role on the database server, achieving availability of the query role on the Web servers.However, the performance of the database server will be affected.
Comment from Joel: Putting the Index on a SQL cluster is a bad idea for a few reasons. 1) It's not cluster aware, and 2) You're going to be competing for resources. Having SQL installed with the SharePoint bits and IIS is ok in the small business, but not desirable in a more resource intensive scenario. (Index really is the first box you're going to want to offload off the FE.)
</update>