Scale out Search index in SharePoint Server

In order to scale out SharePoint search index component, first make sure to have an existing search topology already configured and deployed then for scaling there is two options as following:

  1. Add an index replica to an existing index partition in order to achieve fault tolerance for an existing index partition (place it on separate servers)
  2. Add a new index partition for scaling (Recommended is 10M items for each index partition)

Steps to add an index replica:

  1. Open SharePoint Management Shell with SharePoint farm account
  2. Start a search service instance on the server that you want to create the index replica
    $hostA = Get-SPEnterpriseSearchServiceInstance -Identity “Server1”
    Start-SPEnterpriseSearchServiceInstance -Identity $hostA
  3. Wait until the search service instance is running, you can check the status by
    Get-SPEnterpriseSearchServiceInstance -Identity $hostA
  4. Clone the current active search topology
    $ssa = Get-SPEnterpriseSearchServiceApplication
    $active = Get-SPEnterpriseSearchTopology -SearchApplication $ssa -Active
    $clone = New-SPEnterpriseSearchTopology -SearchApplication $ssa -Clone -SearchTopology $active
  5. Add a new index component and associate it with a partition
    New-SPEnterpriseSearchIndexComponent -SearchTopology $clone -SearchServiceInstance $hostA -IndexPartition 0
  6. Where “0” is is the number of the existing index partition that you are creating a replica of
  7. Finally, Activate the clone topology
    Set-SPEnterpriseSearchTopology -Identity $clone
  8. Monitor the distribution of the existing index to the new replica. The added index replica will have the state Degraded until the distribution is finished

 

Steps to Add a new index partition:

  1. Open SharePoint Management Shell with SharePoint farm account
  2. Start a search service instance on all the servers where you want to add an index replica for the new index partition
    $hostC = Get-SPEnterpriseSearchServiceInstance -Identity “Server2”
    Start-SPEnterpriseSearchServiceInstance -Identity $hostC
    $hostD = Get-SPEnterpriseSearchServiceInstance -Identity “Server3”
    Start-SPEnterpriseSearchServiceInstance -Identity $hostD
  3. Wait until the search service instance is running, you can check the status by
    Get-SPEnterpriseSearchServiceInstance
  4. Clone the active search topology
    $ssa = Get-SPEnterpriseSearchServiceApplication $active = Get-SPEnterpriseSearchTopology -SearchApplication $ssa -Active $clone = New-SPEnterpriseSearchTopology -SearchApplication $ssa -Clone -SearchTopology $active
  5. Add a new index partition by adding one or more index components and associate them with the new index partition, For example, if you have an existing index partition 0 with index replicas on Host A and Host B, and you want to add a new index partition with index replicas on Host C and Host D:
    New-SPEnterpriseSearchIndexComponent -SearchTopology $clone -SearchServiceInstance $hostC -IndexPartition 1 New-SPEnterpriseSearchIndexComponent -SearchTopology $clone -SearchServiceInstance $hostD -IndexPartition 1
  6. Verify that the Search service application is running
    $ssa.IsPaused() -ne 0
  7. If the Search service application is paused, find out why and if you have to wait for any operation to complete before you can continue
  8. Start the activation of the clone topology
    $ssa.PauseForIndexRepartitioning()
    Set-SPEnterpriseSearchTopology -Identity $clone
  9. Monitor the progress of the index repartitioning process
  10. Resume the Search service application
    $ssa.ResumeAfterIndexRepartitioning()

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s