Distributed Cache – Social in SharePoint 2013

Der Distributed Cache kommt erstmals mit Microsoft SharePoint 2013 und ist gleich wesentlicher Bestandteil. Denn gerade für das gern genutzte Feature wie den Newsfeed und alle Social Funktionen ist dieser Voraussetzung. Hier eine Auflistung der Funktionen für die der Cache verwendet wird:

  • Newsfeed
  • Authentisierung
  • OneNote Clientzugriff
  • Security Trimming
  • Page Load Performance

Dabei baut SharePoint auf die AppFabric Dienste, die als Systemvoraussetzung bereits mit dem Pre-Requisite Installer von SharePoint 2013 installiert werden. Eine grafische Oberfläche gibt es nicht, die Administration erfolgt zu 100% auf der PowerShell. Dieser Artikel beleuchtet die Grundlagen des Distributed Cache, sowie die Konfiguration des Distributed Cache per PowerShell.

Mysterium – wo werden die Inhalte im Newsfeed gespeichert?

Je nachdem wo der Newsfeed geöffnet wird, kommen die Inhalte z.B. aus der Site (Site Feed) oder aus dem User Profile Service resp. der MySite, damit auch aus verschiedenen Datenbanken. SharePoint zeigt standardmäßig ohnehin nur die letzten 7 Tage an.

Aus Sicht des Endbenutzers

Das was der Benutzer bereits beim Einstieg auf einer Seite erkennen ist sofort das Site Feed Webpart, was standardmäßig aktiviert ist: image Über den Aufruf aus dem Menü “Newsfeed” gelangt man auf die MySite: image Wird dieses nicht angezeigt ist entweder das Site Feature nicht aktiv oder es liegt ein Fehler im Distributed Cache vor. Das Site Feature kann über die Site Settings – Manage Site Feature aktiviert werden (Standardmäßig nach der Migration von 2010):

  • Following Content

image

  • Site Feed

image Alternativ geht das auch per PowerShell: enable-SPFeature -ident “SiteFeed” –URL http://intranet/sites/legal enable-SPFeature -ident “FollowingContent” –URL http://intranet/sites/legal Wobei http://intranet/sites/legal für eine Site steht. Der Benutzer kann innerhalb des Newsfeeds anschließend mit “@” Personen erwähnen. Per “#” können Stichworte vergeben werden, z.B. #SharePoint.

Planung

Dabei skaliert der Cache beliebig, denn man kann mit den richtigen PowerShell Befehlen weitere Server mit in einen Verbund einen sog. Cache Cluster aufnehmen. Normalerweise reichen 2-3 Cache Hosts, die einen Cache Cluster bilden.

  • Es muss mindestens 1 Cache Host geben.
  • Es darf maximal 16 Cache Hosts geben.

Für die Konfiguration dürfen nicht die Tools verwendet werden, die mit AppFabric mit installiert werden. Auch keine Tools wie die MMC um z.B. den Dienst neuzustarten. Angeblich kann es im schlimmsten Fall bis zum Ausfall der Farm führen – von daher nur PowerShell!

Arbeitsspeicher / RAM

Bereits bei der Skalierung ist wichtig, dass genügend RAM auf den Cache Hosts zur Verfügung steht und alle Cache Hosts gleich konfiguriert sind. Standardmäßig verwendet SharePoint nach der Installation 10% des insgesamt zur Verfügung stehenden Arbeitsspeichers.
Beispiel: Mein Cache Cluster besteht aus 2 Cache Hosts, Cache Host #1 und #2. Jeder Cache Host verfügt über 16 GB RAM. Der Distributed Cache auf jedem Cache Host ist mit einer maximalen Größe von 4 GB konfiguriert. Wird nun einer der Cache-Host #1 heruntergefahren (z.B. aus Wartungszwecken), übernimmt der Cache-Host #2 die Inhalte, d.h. ab dem Moment benötigt dieser 8 GB RAM. Der maximale Wert für den Distributed Cache darf 16 GB nicht überschreiten, da es sonst zu Problemen kommt und Antwortzeiten > 10 Sekunden entstehen. Stellen Sie bei virtuellen Maschinen sicher, dass dynamischer Arbeitsspeicher deaktiviert ist! Das ist von Microsoft nicht supported. Bei Hyper-V heißt diese Funktion z.B. Dynamic Memory.

Abhängigkeiten zu Dienstanwendungen / Service Applications

Als weitere Voraussetzung sind folgende Service Applications notwendig. Viele Funktionen greifen darauf zurück:

  • User Profile Service
  • My Site Host
  • Managed Metadata

Konfiguration

Die Installation der AppFabric Dienste erfolgt bereits mit dem Pre-Requisite Installer von SharePoint 2013. Wichtig ist, dass dieser auch unbedingt von dem Pre-Requisite Installer konfiguriert wird und nicht manuell, ansonsten ist er nicht für den korrekten Betrieb konfiguriert! Im weiteren gilt, bevor einer der Befehle im Zusammenhange mit *Cache* ausgeführt wird, muss immer vorab folgender PowerShell Befehl abgesetzt werden (ohne Variablen, Parametern): Use-CacheCluster

Status anzeigen

Um sich die aktuelle Konfiguration der Cache Host Mitglieder anzeigen zu lassen, geht folgendermaßen: Use-CacheCluster Get-CacheHost image Hierbei ist wichtig, dass bei allen Cache Hosts der “Service Status” immer auf “UP” steht. Details für einen Einzelnen können weiter angezeigt werden: Get-CacheHostConfig -HostName LAB-SP2013-prod.contoso.com -CachePort 22233 image Ein kleines Monitoring gibt es auch, das man folgendermaßen abrufen kann (Ein Wert von 10.00 bei Healthy ist der Optimalwert): Get-CacheClusterHealth image

Cache neu starten

Gerade wenn viel mit Berechtigungen getestet wird oder sich viele ändern, werden diese oftmals erst nach einem Neustart des Distributed Caches wirksam: Restart-CacheCluster Bzw. gibt es das auch als Start und Stop: Stop: Stop-CacheCluster Start: Start:CacheCluster

Arbeitsspeicher setzen

Dieser Befehl muss auf jedem Cache Host ausgeführt werden. Denken Sie daran zuvor das obligatorische Use-CacheCluster auszuführen. z.B. wird das Limit hier auf 2 GB gesetzt:
Update-SPDistributedCacheSize –CacheSizeInMB 2048 Auslesen geht wieder per: Get-CacheHostConfig -HostName LAB-SP2013-prod.contoso.com -CachePort 22233

Cache Host neu starten

Ein ordnungsgemäßer Neustart des Windows Betriebssystems wird auf einem Cache-Host entsprechend vorbereitet. Nur dadurch stellt man sicher, dass der Betrieb nicht gefährdet wird und alle Inhalte zu jeder Zeit zur Verfügung stehen. Dabei spricht man von einem “graceful” Shutdown, das dem Cache die Möglichkeit gibt, seine Inhalte auf einen anderen Cache Host zu übertragen: Stop-CacheHost –computername $env:computername -cacheport 22233 –Graceful

  • Der Cache Port muss dabei immer mit angegeben werden: 22233
  • Computername “$env:computername” = lokaler Host auf dem die PowerShell ausgeführt wird

Starten: Start-CacheHost –computername $env:computername -cacheport 22233 –Graceful Neustart: Restart-CacheHost –computername $env:computername -cacheport 22233 –Graceful

Cache Host dem Cache Cluster hinzufügen

Add-SPDistributedCacheServiceInstance Damit aktiviert fügt SharePoint einen Cache Host dem Cache Cluster hinzu. Die Konfiguration der AppFabric wird neu geschrieben und der Windows Dienst gestartet.

Cache Host aus dem Cache Cluster entfernen

Remove-SPDistributedCacheServiceInstance Damit wird auch der Windows Dienst deaktiviert. SharePoint entfernt die Konfiguration der AppFabric.

Referenz

0 0 vote
Article Rating
Teilen

Autor: Dennis Hobmaier

Dennis Hobmaier ist Consultant - Digital Workspace bei Insight Technology Solutions GmbH. Er hat über 15 Jahre Erfahrung in IT-Enterprise Umgebung aller Größenordnungen und bedient Kunden aus den unterschiedlichsten Branchen. Als MCSE SharePoint hat er tiefgreifende Kenntnisse in den Bereichen Microsoft Active Directory, Windows, Azure, SharePoint und Office 365. Gerne teilt er seine Projekterfahrung mit Ihnen.

Subscribe
Notify of
guest

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahren Sie mehr darüber, wie Ihre Kommentardaten verarbeitet werden .

0 Comments
Inline Feedbacks
View all comments