Vorbereitung für SharePoint 2016 MinRoles: Suchkomponenten manuell verschieben

Nach der Installation des “Feature Pack 1” (sprich dem November 2016 CU) für SharePoint 2016 ist es jetzt auch für kleinere Farmen möglich das MinRole-Konzept zu fahren.

Oft wurden diese Farmen aber mit der “traditionellen” Herangehensweise aufgesetzt. So kommt es beispielsweise häufig vor, dass meine Kunden eine Verteilung von Suchkomponenten vorfinden. Auf Frontend-Servern habe ich klassischerweise bisher die Query- und Index-Komponenten platziert, während auf den App-Servern die Analytics, Crawl, Content Processing und Admin Komponente ihre Dienste verrichtet haben.

Bei der Konvertierung zu MinRoles gibt es daraufhin natürlich Probleme. Im Kern geht es darum, dass die Suchkomponenten jetzt überhaupt nicht mehr auf Frontend-Servern, sondern auf dedizierten Search Servern oder kombinierten Application and Search Servern zu platzieren sind.

Folgende Meldung bekam also mein Kunde:

“Sie müssen Suchkomponenten manuell verschieben, bevor Sie die Suchserverrolle in eine andere Rolle konvertieren.”

Verschieben der Suchkomponenten

Suchkomponenten im SharePoint zu verschieben oder auch zu erweitern folgt immer einem gleichen Prozess:

  1. Vorhandene Suchtopologie klonen
  2. Änderungen der Komponenten am Klon vornehmen
  3. Neue Suchtopologie aktivieren
  4. Alte Suchtopologie löschen

Bei der Verschiebung in diesem Fall ist aber daran zu denken, dass der Index nicht einfach gelöscht werden kann, sondern repliziert und dann vom alten Server entfernt werden muss. Faktisch habe ich dies bei dem Kunden mit allen Komponenten getan. Unser Plan lief also folgendermaßen:

  1. Vorhandene Suchtopologie klonen
  2. Neue Komponenten für Administration, Crawling, Analyse und Inhaltsverarbeitung auf dem App-Server erstellen
  3. Neue Suchtopologie aktivieren
    (An dieser Stelle gibt es die Komponenten von Web-Frontend-Server doppelt. Unter anderem wird aber auch der Suchindex repliziert – was mir sehr entgegenkommt)
  4. Nochmals die Topologie klonen
  5. Alle Komponenten auf dem Web-Frontend-Server entfernen
  6. Diese neue Topologie aktivieren
  7. Alle alten Topologien löschen

Mein PowerShell für diesen Fall (Die Servernamen sind natürlich zu ersetzen):


asnp *share*
$wfeServerName = "SP2016-1"
$appServerName = "SP2016-2"
$ssa = Get-SPEnterpriseSearchServiceApplication
$active = Get-SPEnterpriseSearchTopology -SearchApplication $ssa -Active
$clone = New-SPEnterpriseSearchTopology -SearchApplication $ssa -Clone –SearchTopology $active
$wfeServer = Get-SPEnterpriseSearchServiceInstance -Identity $wfeServerName
$appServer = Get-SPEnterpriseSearchServiceInstance -Identity $appServerName
# Neue Komponenten (Admin, Crawler, ContentProcessing, AnalyticsProcessing)
New-SPEnterpriseSearchAdminComponent -SearchTopology $clone -SearchServiceInstance $appServer
New-SPEnterpriseSearchCrawlComponent -SearchTopology $clone -SearchServiceInstance $appServer
New-SPEnterpriseSearchAnalyticsProcessingComponent -SearchTopology $clone -SearchServiceInstance $appServer
New-SPEnterpriseSearchContentProcessingComponent -SearchTopology $clone -SearchServiceInstance $appServer
# in unserem Fall nicht notwendig:
#New-SPEnterpriseSearchQueryProcessingComponent
#New-SPEnterpriseSearchIndexComponent
Set-SPEnterpriseSearchTopology -Identity $clone
# Nochmals klonen ————————————-
$ssa = Get-SPEnterpriseSearchServiceApplication
$active = Get-SPEnterpriseSearchTopology -SearchApplication $ssa -Active
$clone = New-SPEnterpriseSearchTopology -SearchApplication $ssa -Clone –SearchTopology $active
$oldComponents = Get-SPEnterpriseSearchComponent -SearchTopology $clone | ? { $_.ServerName -eq $wfeServerName }
# Alte Komponenten entfernen
foreach ($component in $oldComponents) {
Remove-SPEnterpriseSearchComponent -SearchTopology $clone -Identity $component.ComponentId.Guid
}
# Neue Topologie aktivieren
Set-SPEnterpriseSearchTopology -Identity $clone
# Alte Topologien löschen
$inactiveSearchTopologies = Get-SPEnterpriseSearchTopology -SearchApplication $ssa | ? { $_.State -eq "Inactive" }
foreach ($topology in $inactiveSearchTopologies) {
Remove-SPEnterpriseSearchTopology -SearchApplication $ssa -Identity $topology.TopologyId.Guid
}
Get-SPEnterpriseSearchTopology -SearchApplication $ssa

Danach finden sich alle Suchkomponenten auf dem App-Server.

Das ist Schritt 1 für diesen Kunden gewesen. Schritt 2 war die Verschiebung des Distributed Cache. Danach konnte die Konvertierung zu MinRoles durchgeführt werden.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.