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:
- Vorhandene Suchtopologie klonen
- Änderungen der Komponenten am Klon vornehmen
- Neue Suchtopologie aktivieren
- 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:
- Vorhandene Suchtopologie klonen
- Neue Komponenten für Administration, Crawling, Analyse und Inhaltsverarbeitung auf dem App-Server erstellen
- 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) - Nochmals die Topologie klonen
- Alle Komponenten auf dem Web-Frontend-Server entfernen
- Diese neue Topologie aktivieren
- Alle alten Topologien löschen
Mein PowerShell für diesen Fall (Die Servernamen sind natürlich zu ersetzen):
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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.