SharePoint Backup & Recovery – Von RTO, RPO und RLO zum fertigen Desaster Recovery Plan (2/2)

SharePoint Adventskalender – 24. Türchen

Performance Tuning – Performance Monitoring – Best-Practices für SP-SQL-Konfigurationen – BLOB Management – Backup & Recovery

————————————————————-

Im zweiten Teil zu unserem Disaster Recovery Plan geht es um

  • Überwachung
  • Recovery Szenarios
  • Dokumentation

Überwachung:
Sind unsere regelmäßigen Backup-Pläne in Abstimmung auf die Unternehmens-SLAs eingerichtet und der benötigte Speicherplatz für die Backupdaten vorbereitet, so kann es nun losgehen. Es würde mich überraschen, wenn alles von Anfang an problemlos läuft.

Es können zum Besipiel plötzlich Ports geschlossen werden oder Datenbanken sind hinzu gekommen oder neue Lösungen wurden ausgerollt etc. Dies müssen wir für die Backup Jobs genau im Auge behalten und gegebenenfalls nachbessern. Denn ein fehlgeschlagenes Backup ist ebenso nutzlos, wie ein erfolgreiches, dass aber entscheidende Komponenten für eine Wiederherstellung nicht berücksichtigt hat. Auch das gestern angesprochene Szenario mit dem mangelnden Backupspeicherplatz führt mich ganz schnell an die Grenzen meiner SLAs. Überwachen Sie daher sehr genau alle Komponenten Ihres Backups und greifen Sie gegebenenfalls pro-aktiv ein.

Recovery Szenarios:
Angenommen, alle Backup Pläne werden stets erfolgreich ausgeführt, sodass wir sichere Backupdaten haben. Was passiert, wenn der Ernstfall eintritt? Wissen Sie sicher, dass die Wiederherstellung aus den Backupdaten reibungslos funktioniert? Wie lange dauert es? Reicht die Zeit aus, um meine RTO einzuhalten?

Um diese Fragen beantworten zu können, müssen Sie sich realistische Wiederherstellungsszenarien schaffen, die Sie auch in regelmäßigen Abständen testen. Ganz wichtig sind dafür standardisierte Prozesse und Verantwortlichkeiten. Beispielhaft möchte ich folgende Szenarien vorschlagen:

  1. Monatliche Tests:
  • Dokument / Listenelement
  • Spalte einer Liste / Dokumentbibliothek
  • Komplette Liste / Dokumentbibliothek
  • Komplette SharePoint Site (SubSite)
  • Eine gesamte Inhaltsdatenbank
  • Quartalstests:
  • Gesamte Web Application (inkl. Datenbanken, IIS, Authentifizierung, etc.)
  • Service Applications (z.B. Search, UPA, MMS, etc.)
  • Halbjährliche Tests:
  • Web Front End Server
  • Application Server
  • Index Server
  • Jährliche Tests:
  • Komplettes Desaster Recovery

Dokumentation:
Dieser Teil ist mit Sicherheit am unbeliebtesten, aber der wichtigste. Denn was bringen all die Bemühungen zuvor, wenn im Ernstfall niemand weiß, wer verantwortlich ist, weil der Administrator krank oder im Urlaub ist, welche Skripte oder Aktionen in welcher Reihenfolge auszuführen sind und was die Endbenutzer erwarten dürfen.

Eine klare Dokumentation – so aufwendig sie auch ist – nimmt diese Ängste und soll im Ernstfall das Handbuch sein, in dem die Antworten auf alle Wiederherstellungsfragen stehen. Im perfektesten Fall sollte man so einen Disaster Recovery Plan einem unbeteiligten in die Hand geben können und dieser weiß dann, was zu tun ist – auch wenn der Administrator im Urlaub ist. Innerhalb der Dokumentation müssen dafür klare und messbare Ziele definiert werden.

Nachfolgend ein paar Vorschläge, was zu den gestern und weiter oben erwähnten Punkten noch Teil eines Disaster Recovery Plans sein sollte:

  1. Stakeholder:
    1. Für welche Personen im Unternehmen hat das Dokument Relevanz
    2. Dies können Kunden, Endnutzer, Administratoren und auch das Management sein
  2. Aktueller Status:
  • Aktuelle Farm Topologie
  • Eingespielte Anpassungen und Einstellungen
  • Abhängigkeiten
  • Richtlinien:
  • RTO (in Abhänigkeit der RLO, denn eine Single-Item-Wiederherstellung kann schneller gehen, als ein komplettes Disaster Recovery)
  • RPO
  • RLO
  • SLA
  • Verantwortlichkeiten (SharePoint, SQL, Plattform, AD, Netzwerk, etc.):
  • Für Backup Pläne
  • Für Wiederherstellung
  • Backup Strategien:
  • Was ist alles Bestandteil (Scope) von konfigurierten Backup-Plänen
  • Für welche Komponenten werden native Werkzeuge, für welche Drittanbieter verwendet
  • Wiederherstellungsprozesse:
  • In welchen Szenarien soll die gesamte Farm wieder hergestellt werden
  • In welchen Szenarien ist eine Single-Item-Wiederherstellung zu verwenden
  • Für welches Szenario werden native, wann werden Drittanbieterlösungen verwendet
  • Schritt-für-Schritt Anleitungen für die wiederherstellung der einzelnen Komponenten
  • Gegebenenfalls Skripte und Konfigurationen
  • Regelmäßige Tests:
  • Idealerweise durchzuführen von Mitarbeitern, die nicht hauptverantwortlich sind und auch nicht den DR-Plan geschrieben haben – so können zusätzlich Ungenauigkeiten aufgedeckt werden
  • Festzuhalten sind:
    • Szenario
    • Zeitpunkt
    • Benötigte Zeit
    • Testergebnis
    • Kommentar

Und das wichtigste zum Schluss:

Ein Disaster Recovery Plan mit all den gestern und heute vorgestellten Komponenten ist ein “lebendes Dokument”! Genauso, wie sich Infrastrukturen, Backup- und Test-Szenarien sowie Ansprechpartner ändern, muss sich auch der DR-Plan anpassen, um stets auf dem aktuellen Stand zu sein. Wenn Sie all diese Tipps beherzigen, dann wird Ihnen ein Disaster Recovery keine Kopfschmerzen oder schlaflosen Nächte mehr bescheren.

Apro pros „bescheren“: Ich wünsche allen ein besinnliches Fest im Kreise Ihrer Liebsten, mit lecker Essen, vielen Geschenken und schönen Momenten auch mal ganz ohne SharePoint! 🙂

————————————————————-

Weitere Türchen:

SharePoint Backup & Recovery – Von RTO, RPO und RLO zum fertigen Disaster Recovery Plan (1/2)

SharePoint Adventskalender – 23. Türchen

Performance Tuning – Performance Monitoring – Best-Practices für SP-SQL-Konfigurationen – BLOB Management – Backup & Recovery

————————————————————-

Backup kann jeder! Nur bei der Wiederherstelung aus einem Backup wird es interessant. Was alles berücksichtigt werden muss und Best Practices für Backup & Recovery Strategien möchte ich Ihnen in den letzten beiden Türchen unseres SharePoint Adventskalenders mitgeben. Wir schauen uns dafür folgende Kategorien an:

Heute: Service Level Agreement (SLA)

  • Verstehen von RTO, RPO und RLO
  • Komponenten und Backup-Umfang
  • Kapazitätsplanung

Morgen: Disaster Recovery Plan

  • Überwachung
  • Recovery Scenarios
  • Dokumentation

Verstehen von RTO, RPO und RLO:
Wenn wir mit SharePoint arbeiten als Kollaborationsportal arbeiten, so generieren wir darin viel Wissen (Intellectual Property – IP). Da immer mehr das IP den Wettbewerbsvorteil von Unternehmen definiert, muss es geschüzt und gesichert werden. Es sind aber häufig die selben Fragen, die mir bei Kunden begegnen:

  • Haben wir überhaupt ein Backup?
  • Wie lange brauchen wir, um ein einziges Objekt wieder herzustellen?
  • Erfüllen wir immer unsere SLAs?
  • Was ist unser Disaster Recovery Konzept?

All diese Fragen müssen in einem Disaster Recovery Plan beantwortet werden. Den Anfang machen die RTOs, RPOs und RLOs.

Recovery Time Objective (RTO):
Dies ist die Zeit, die benötigt wird, um alle Systeme nach einem Ausfall wieder zum Laufen zu bekommen. Darin fallen alle Verantwortlichkeiten und Prozesse, die durchlaufen werden müssen, um den letzten laufenden Zustand wieder herzustellen.

Recovery Point Objective (RPO):
Dies ist der maximal akzeptable Datenverlust und definiert damit, mit welcher Häufigkeit Backups durchgeführt werden müssen.

Addiert man die RTO und RPO, so erhalten wir die Zeitspanne, für die keine produktive Arbeit mit dem SharePoint möglich ist sowie bereits erledigte Arbeiten verloren gehen.

Recovery Level Objective (RLO)
Diese Deifnition wird oft vergessen, aber sie ist eine ganz Entscheidende, da sie die RTO und RPO beeinflusst. Die RLO soll bestimmen, mit welchem Granularitätslevel gesichert und wieder hergestellt werden kann. Sollen beispielsweise auch alle Metadaten, Berechtigungen, Nutzerdaten, etc. gesichert werden, so macht dies den Datenbestand komplexer. Dadurch können sich wiederum die Backupzeiten verlängern und ich muss vielleicht meine Backup-Fenster – das RPO – erweitern. Je komplexer die Daten sind, desto schwieriger wird in der Regel auch die Wiederherstellung. Besonders bei einer Single-Item-Wiederherstellung ist meine RTO unverhältnismäßig groß mit nativen Mitteln.

Somit müssen wir einen geeigneten Konsens finden, der zunächst niedrige RTOs und RPOs ermöglicht, aber idealerweise auch eine kleine Granularität erlaubt. Nähere ich mich diesen Zielen an, so steigen leider die Kosten auf der anderen Seite. Und genau diese Kosten stellen die nächste Variable in unserem Hebel für ein Backup Konzept dar. Eine allgemeingültige Regel über RTO, RPO und RLO, die für alle Unternehmen anwendbar ist, gibt es leider nicht. Die müssen Sie für Ihr Unternehmensrichtlinien selbst bestimmen.

 

Komponenten und Backup-Umfang:

Ein sharePoint besteht nicht nur aus den Inhaltsdatenbanken. Weiterhin sind die Service Applications zu betrachten, Farm-Solutions, InfoPath Formulare, IIS Settings, BLOB Storage und vielleicht noch weitere Anpassungen und Komponenten, wie z.B. Microsoft Project. Exemeplarisch sehen Sie in der Abbilding links die Komponenten einer SharePoint 2013 Farm. Es wird also schnell deutlich, was Ihnen alles fehlt, wenn Sie nur auf die Inhaltsdatenbanken schauen. Dennoch wäre ein nahezu vollständiger Wiederaufbau der Farm nach einem Disaster prinzipiell möglich. Da wir dafür jedoch unzählige (manuelle) Schritte benötigen, läge die RTO weit außerhalb eines akzeptablen Niveaus.

Weiterhin bestehen bei der Wiederherstellung verschiedenste Abhängigkeiten. Einfaches Beispiel: es müssen Farm Solutions ausgerollt werden, bevor die Datenbanken wieder an die Web Application angehängt werden. Wir sehen also, wie komplex so eine Backup Strategie ist. Es gibt Drittanbieter-Lösungen, die Ihnen dabei viel abnehmen, weil sie automatisch verschiedenste Komponenten sichern und wiederherstellen können. Achten Sie dabei besonders darauf, ob diese Lösung SharePoint wirklich „versteht“. Beispielsweise würden wir mit einer Wiederherstellung der Konfigurationsdatenbank einen Zustand erschaffen, der unvorhersehbare Folgen hätte. Zudem würden wir den Support mit Microsoft verlieren. Das Data Protection Modul der Firma AvePoint ist beispielsweise so ein Produkt, dass SharePoint versteht und all die angesprochen Komponenten sichern und wiederherstellen kann. Die Microsoft Support Richtlinien werden dabei nicht verletzt.

Kapazitätsplanung:
Ein Backup von SharePoint benötigt Platz, aber die Speicherlaufwerke haben nur begrenzte Kapazitäten. Daher ist auch die Kapazitätsplanung ein wichtiger Bestandteil von SLAs im Rahmen eines Disaster Recovery Plans. Ist beispielsweise nicht mehr genügend Speicherplatz für ein neues Backup vorhanden, dann befinde ich mich sehr schnell außerhalb der definierten SLAs, weil das RPO nicht mehr eingehalten werden kann. Folgende Punkte müsse für die Kapazitätsplanung berücksichtigt werden:

  1. Wie sichere ich?
    • Full Backup (alles wird zum eingestellten Zeitpunkt gesichert)
    • Differential (nur Änderungen seit dem letzten Full oder Differential werden gesichert)
    • Incremental (nur Änderungen seit dem letzten Full, Differential oder Incremental werden gesichert)
  2. Wie häufig sichere ich?
    • Es ist wichtig zu klären, in welchen Zyklen ich sichere. Ein Zyklus zählt von einem Full Backup zum nächsten. Legen Sie also fest, wie häufig Full Backups durchgeführt werden sollen und welche Art Backups (DIFF oder INCR) Sie dazwischen nutzen möchten.
  3. Wie lange halte ich die Sicherungen vor?
    • Dies hängt von Ihren Unternehmensvorgaben ab, bis zu welchem Zeitpunkt in die Vergangenheit Sie in der Lage sein müssen, Daten wieder herzustellen. Muss es z.B. möglich sein, Dateien wieder auf einen Zustand von vor 45 Tagen zu bringen, dann müssen die dazugehörigen Backups auch mindestens 45 Tage aufbewahrt werden.
  4. Wie hoch ist die Änderungsrate meiner Inhalte?
    • Durchschnittlich kann angenommen werden, dass sich 10% meines Datenbestandes pro Woche ändert. Dies kann aber in Ihrem Szenario auch deutlich mehr oder weniger sein. Auch dies muss für die Kapazitätsplanung geklärt werden.

Basierend auf obigen Annahmen und Erfahrungen bei Kunden kann folgende Allgemein-Regel angwendet werden:

Benötigter Speicherplatz = 1,5 x D x Z + D

D: Datenbestand der gesamten Farm (inkl. Service Datenbanken, etc.)
Z: Anzahl der Backup-Zyklen, die vorgehalten werden sollen

Wenn Sie diese drei Kategorien von heute berherzigen und Sie auf Ihr Unternehmen anwenden, sind Sie bereits sehr gut aufgestellt für das Durchführen von Backups. Damit haben Sie die „halbe Miete“. Noch wichtiger ist jedoch der Wiederherstellungsfall. Dies muss ebenso Teil eines Disaster Recovery Plans sein, was wir uns morgen als finalen Abschluss des SharePoint Adventskalenders genauer anschauen werden.

Viel Spaß beim „SharePointen“!

————————————————————-

Weitere Türchen:

SharePoint BLOB Management – Archivierung

SharePoint Adventskalender – 22. Türchen

Performance Tuning – Performance Monitoring – Best-Practices für SP-SQL-Konfigurationen – BLOB Management – Backup & Recovery

————————————————————-

In den letzten Tagen haben wir uns das BLOB Management von aktuellen Inhalten näher angeschaut und wie wir es optimieren können. Der Lebenszyklus von Inhalten sollte aber ebenso im BLOB Management berücksichtigt werden, weil der Datenbestand mit dem Alter des SharePoints exponentiell steigt. Besonders passive Daten beeinflussen diese Entwicklung.

Passive Daten sind beispielsweise Dateien, die veraltet und nicht mehr aktuell oder aus anderen Gründen nicht mehr relevant für die Aufbewahrung in SharePoint sind. Solche Dateien beeinflussen nicht nur die Performance, sondern tauchen auch immer wieder in den Ergebnislisten der SharePoint-Suche auf.

Sind die Daten im SharePoint nicht mehr aktuell, bzw. es ist aufwendiger für Endanwender, die aktuellen Daten zu finden, so sinkt auch die Nutzerakzeptanz. Dies ist neben der allgemeinen Geschwindigkeit des SharePoints ein sehr entscheidender Punkt.

Um die Daten nun aktuell zu halten, empfehle ich die Verwendung von Archiven. Dies kann mit dem SharePoint nativen Records Management realisiert werden. Dateien, die als Record markiert werden, können von einem Workflow „eingesammelt“ und zur Archivierung im Records Center abgelegt werden. Lösungen von Drittanbieter können noch weitere Funktionen in ein SharePoint-Archiv integrieren, sodass Dokumente, die beispielsweise seit drei Jahren nicht mehr bearbeitet oder gar geöffnet wurden, ganz automatisch in ein Archiv verschoben werden.

Auf diese Weise sehen Endnutzer auch stets nur die aktuellen Dokumenten in den Suchergebnislisten. Für den Administrator kann außerdem die Größe der Inhaltsdatenbanken reduziert werden und dies sorgt für eine schnellere Bearbeitungen der SharePoint-Anfragen an den SQL.

Das Archiv kann zusätzlich mit günstigeren Datenbanken betrieben werden, weil Microsoft geringere Anforderung an entsprechende Speicherlaufwerke stellt. Sie sehen also, wie viele Vorteile das Daten- und BLOB-Management über die Lebenszeit des SharePoint bringt. Machen Sie sich also bitte rechtzeitig Gedanken darüber, wie Dateien im SharePoint verwaltet werden sollen.

Viel Spaß beim „SharePointen“!

————————————————————-

Weitere Türchen:

SharePoint BLOB Management – Shredded Storage und RBS “Better Together”

SharePoint Adventskalender – 21. Türchen

Performance Tuning – Performance Monitoring – Best-Practices für SP-SQL-Konfigurationen – BLOB Management – Backup & Recovery

————————————————————-

In den letzten beiden Türchen hatten wir jeweils den RBS und Shredded Storage im Fokus. Da jede der beiden Technologien ihre Vorteile hat, können wir uns überlegen, wie wir sie gemeinsam nutzen und was es dabei zu beachten gibt.

Die verschiedenen Funktionsweisen sind deutlich voneinander zu unterscheiden. Kurz zusammengefasst, lagert der RBS Dateien aus SQL aus, um die Datenbankgröße zu verringern und eine verbesserte Performance zu erhalten. Der Shredded Storage hingegen optimiert lediglich den Speicher, in dem beispielsweise bei versionierten Dokumenten nur das Delta und nicht jeweils eine komplett neue Datei gespeichert werden muss. Die Daten bleiben jedoch im SQL! Dateien, die doppelt und dreifach über verschiedene Listen und Seiten gespeichert sind, belegen so auch mehrfach Speicherplatz. Durch Auslagerung kann diese „Dopplung“ jedoch durch den Windows Server Deduplication Service egalisiert oder zumindest minimiert werden.

Wir haben außerdem erfahren, dass jede Technologie auch ihre bestimmten Konfigurationen hat, um bestmögliche Ergebnisse zu erzielen. Das ist auf der einen Seite die Chunk-Größe des Shredded Storage und auf der anderen Seite der RBS-Grenzwert, also ab welcher Dateigröße ausgelagert werden soll. Und in der Tat, ist die Chunk-Größe geringer als der Grenzwert, so würde die Auslagerung nie aktiviert werden. Bitte beachten Sie daher diese Abhängigkeit, wenn Sie zum Shredded Storage auch eine Auslagerungen in Echtzeit nutzen möchten.

Da solche Echtzeitprozesse jedoch sehr ressourcenhungrig sind, werden sie nicht mehr von Microsoft empfohlen. Stattdessen kann man bei RBS Providern von Drittanbietern konfigurieren, dass die Datei als ganzes zählen soll und nicht nur die Fragmente betrachtet werden. Auch andere Regeln sind möglich, die nicht nur auf die Dateigröße abzielen.

Die Unterschiede und Funktionsweisen kennen wir nun. Aber für welche Szenarien ist welche Technologie am besten geeignet? Je nach dem, welche Fragen Sie in der folgenden Tabelle mit „Ja“ beantworten, umso mehr ist die entsprechende Technologie für Ihr Szenario besser geeignet. Können Sie Fragen in beiden Spalten mit „Ja“ beantworten, so wäre eine Kombination aus beiden Technologien das beste für Sie.

Shredded Storage? Antworten Sie mit Ja!

RBS? Antworten Sie mit Ja!

Gibt es viele Transaktionen?

Haben Sie viele große Dateien (> 1 MB)?

Nutzen Sie die Versionierung?

Sind diese Dateien versioniert?

Haben Sie viele Office und xml-basierte Dokumente?

Haben Sie ein SQL-Speicher-„Problem“ (Inhaktsdatenbanken von mehr als 100 GB)?

Nutzen Sie intensiv das Co-Authering Feature?

Sollen die Backups der Inhaltsdatenbanken beschleunigt werden?

Haben Sie I/Ops und Netzwerkprobleme?

Haben Sie (bewusst) viele Datei-Duplikate in verschiedenen SharePoint-Bibliotheken (und möchten Sie die Deduplication nutzen)?

 

Beide Technologien erzielen Geschwindigkeitsvorteile gegenüber der bisherigen nativen Mittel. Noch interessanter wird es jedoch, wenn wir beide Technologien aufeinander abstimmen, um so alle ihre Vorteile anwenden zu können. Besonders im Szenario mit großen Dateien können in Kombination zusätzlich bis zu etwa 80% verbesserte Downloadzeiten erreicht werden. Der Hintergrund ist die gestern angesprochene deutlich einfachere Verarbeitung von „vorgekürzten“ Fargmenten, als die gesamte Datei selbst in Pakete zerschneiden zu müssen.

Die allgemeinen Best Practices sind dafür 1250 KB als FileWriteChunkSize für den Shredded Storage und 1024 KB für den RBS Grenzwert. Microsoft MVP Chris McNulty zeigt auch sehr schön im Detail, dass diese Werte je nach Dateigröße und Umgebung etwas variieren. Bei Interesse empfehle ich Ihnen daher sehr seinen Vortrag von der SharePoint Konferenz 2014: https://channel9.msdn.com/Events/SharePoint-Conference/2014/SPC424.

Viel Spaß beim “SharePointen”!

————————————————————-

Weitere Türchen:

SharePoint BLOB Management – Shredded Storage

SharePoint Adventskalender – 20. Türchen

Performance Tuning – Performance Monitoring – Best-Practices für SP-SQL-Konfigurationen – BLOB Management – Backup & Recovery

————————————————————-

Seit Microsoft den Shredded Storage für SharePoint 2013 herausgegeben hat, kursieren verschiedene Mythen und Gerüchte über Best Practices und die kombinierte Anwendung mit dem Remote BLOB Storage (RBS) bei IT-Administratoren. So habe ich bei Kunden bereits gehört, dass RBS als Synonym für Shredded Storage verwendet wurde. Außerdem hört man, dass aufgrund der kleinen Datei-Chunks, der RBS-Grenzwert nie berührt wird, oder aber, dass Shredded Storage den RBS sogar obsolet macht.

Um mit diesen Mythen aufzuräumen und Best Practice Empfehlungen geben zu können, besonders in der Kombination des Shredded Storage mit RBS, konzentrieren wir uns heute zunächst auf die Spezialitäten des Shredded Storage.

Abstrakt betrachtet macht der Shredded Storage Algorithmus folgendes:


Technisch sieht dies aber natürlich etwas anders aus. Einfach gesprochen ist der Shredded Storage die Aufteilung einer Datei in viele kleine Teile, sogenannte Chunks. Die „FileWriteChunkSize“ ist dabei der Wert, der angibt, wie groß die Fragmente beim Schreiben in den SQL sein dürfen. Es sind jedoch nicht alle Teile gleich groß, denn z.B. der Header und Footer der Datei kann eine andere Größe haben. Diese Architektur lässt somit auch erahnen, dass eine Datei im Shredded Storage Konzept zunächst etwas größer ist, als im alten Format, da mehr Informationen gespeichert werden müssen, um die einzelnen Chunks am Ende wieder zusammensetzen zu können. Sobald jedoch erste Änderungen einer Datei mit Versionierung gespeichert werden, wird dieser anfängliche Mehrbedarf an Speicher wieder egalisiert.

Der Algorithmus macht auch keine Unterschiede mehr zwischen Office Dokumenten, Bildern oder anderen Dateitypen. Er versucht grundsätzlich jedes Dokument in Chunks zu zerlegen. Je nach Dateityp und Komplexität der Datei kann dies besser oder schlechter funktionieren. Zum Beispiel: Bei einem meiner Kunden hat eine neue Version einer PowerPoint-Datei fast die gleiche Größe gehabt, wie die Erstversion. Normalerweise sollte mit dem Shredded Storage aber nur das Delta, also beispielsweise die kleine Änderung im Titel, neu gespeichert werden und nicht das gesamte Dokument. Offensichtlich konnte der Algorithmus die Datei aber nicht in kleinere Chunks zerlegen.

Ziele des Shredded Storage:
Während das Hauptziel des gestern vorgestellten RBS die Auslagerung von großen Dateien ist, so verfolgte Microsoft bei der Entwicklung des Shredded Storage folgende vier Ziele:

  1. Bandbreitenoptimierung
    • nur noch Teile einer gesamten Datei müssen gesendet werden
    • dies ermöglicht und verbessert auch das Co-Authoring bei Office-Dokumenten
  2. I/Ops optimieren
    • durch kleinere Datenpakete werden die I/O Muster geglättet
    • es wird realisiert, dass Schreibkosten proportional zur Größe der Änderungen sind
    • es müssen weniger Änderungen an den SQL gesendet werden (nur Delta, nicht gesamte Datei). Dies verkleinert die Transaction Logs und erhöht damit auch die Backup-Performanc
  3. Storage reduzieren
    • es werden nur noch die Änderungen gespeichert, nicht erneut die gesamte Datei
  4. Sicherheit
    • es ist nun schwieriger eine gesamte Datei mit einem PowerShell-Befehl auszulesen
    • mit aktivierter Verschlüsselung kann jedes Datei-Chunk einzelnd verschlüsselt werden

Best Practice:
Basierend auf mehreren Tests mit unterschiedlichen Dateigrößen hat sich ergeben, dass eine FileWriteChunkSize von 1250 KB die beste Performance für Up- und Downlaods erzielt. Je nach Umgebung sowie Art und Größe der Daten, kann auch ein etwas höherer Wert Sinn machen. Als Beispiel, beim Microsoft Cloud-Storage OneDrive werden 2 MB verwendet. Allerdings sollte der Wert nicht größer als 4 MB sein. Warum? Der Hintergrund ist, dass viele System-Operationen Änderung in 4 MB Paketen verarbeiten. Kommt nun ein größeres Datenpaket, so wird dies nur in 4 MB Schritten gelesen – also in 4 MB Pakete „zerschnitten“. Das verursacht einen signifikanten Anstieg der I/Ops. Stattdessen sind zuvür „gekürzte“ Fragmente durch den Shredded Storage deutlich einfach zu verarbeiten.

„For Your Information:“

  • Zusätzlich zu der FileWriteChunkSize gab es auch noch die FileReadChunkSize. Diese Variable sollte zusätzlich die Größe der Pakete definieren, in denen die Daten ausgelesen werden. Da dies aber keine entscheidenen Vorteile brachte, wurde diese Einstellung wieder abgekündigt und man verwendet nur noch die FileReadChunkSize.
  • In SharePoint 2016 wird der Shredded Storage nicht mehr mit dem Cobalt, sondern mit dem BITS (Background Intelligent Transfer Service) Protokoll arbeiten. Damit sind zusätzliche Vorteile möglich, wie z.B. das Unterbrechen und Fortsetzen von Übertragungen (für mehr Stabilität) oder die Verwendung von ungenutzten Netzwerkresourcen zur Übertragung (um nicht andere Netzwerkaktivitäten negativ zu beeinflussen)

Zur Vollständigkeit hier noch die PowerShell Befehle, um den Shredded Storage zu konfigurieren. Achten Sie darauf, dass der Wert nur für die gesmate Farm konfiguriert werden kann, auch wenn der allgemeine PS-Ansatz etwas anderes vermuten lässt. Dies liegt daran, dass der Shredded Storage ein Web Service ist. Sollten Sie also den Shredded Storage im „gewöhnlich“ Fall mit einer bestimmten Web Application konfigurieren, behalten Sie im Hinterkopf, dass die anderen Web Applications dieses Wert auch übernehmen. Die folgenden Befehle machen diesen Sachverhalt deutlich:

Casual:
$webapp = Get-SPWebApplication http://WebAppUrl
webapp.WebService.FileWriteChunkSize =
chunk size in Bytes
$webapp.webservice.update()

Formal :
[void][System.Reflection.Assembly]::LoadWithPartialName(„Microsoft.SharePoint“)
$service = [Microsoft.SharePoint.Administration.SPWebService]::ContentService
$service.FileWriteChunkSize = 1280000
$service.Update()

Viel Spaß beim „SharePointen“

————————————————————-

Weitere Türchen:

SharePoint BLOB Management – BLOB Storage (EBS und RBS)

SharePoint Adventskalender – 19. Türchen

Performance Tuning – Performance Monitoring – Best-Practices für SP-SQL-Konfigurationen – BLOB Management – Backup & Recovery

————————————————————-

Heute und in den nächsten Kalendertürchen widmen wir uns dem BLOB Management für optimierte Speicherlaufwerke und der daraus resultierenden Verbesserung unserer SharePoint Performance.

Im gestrigen Kalendertürchen sprachen wir noch vom BLOB Caching, um in bestimmten Szenarien die Performance für eine bessere Nutzererfahrung zu steigern. Leider optimiert dies in keinster Weise die Speicherlaufwerke, denn die BLOBs liegen witerhin wie bisher als „Image“ mit einem Dateilimit von 2 GB in den Datentabellen des SQL. Der SQL Server-Storage ist aber sehr ressourcenhungrig und damit teuer. Die Reduzierung der Datenbankgröße durch Auslagerung von Daten und die damit einhergehende Performance-Verbesserung waren daher Ziele bei der Einführung von EBS und RBS. (Die Performance-Verbesserung durch Auslagerung ist auf die Limitationen der Datenbankalgorithmen für große Dateien zurückzuführen, wie gestern bereits erwähnt.)

Der für SharePoint 2007 eingeführte External BLOB Storage (EBS) konnte auf Farmebene angewendet werden. Anhand konfigurierbarer Regeln konnten so große Dateien aus der SQL Datenbank auf einen günstigeren Storage ausgelagert werden. Dafür verwendetet man nun nicht mehr das Image, sondern das VARBINARY Format. Ein Größenlimit gibt es damit theoretisch zwar nicht mehr, aber aus Performance-Gründen behielt Microsoft weiterhin die 2 GB-Limits für SharePoint Datenbanken bei. Mit SharePoint 2016 ist dieses Limit nun endlich auf (aktueller Stand) 10 GB pro Datei angehoben worden.

Da schnell die Grenzen des EBS deutlich wurden, kündigte Microsoft dieses Feature in SharePoint 2010 wieder ab und führte den Remote BLOB Storage (RBS) ein. Dieser kann pro Datenbank angewendet werden und ist somit deutlich flexibler einsetzbar für SharePoint Farm Administartoren.

Ziele und Funktionsweise des RBS

Hauptziel des RBS ist die Auslagerung von entweder großen Dateimengen oder bestimmten Daten anhand definierter Regeln. Hinsichtlich SharePoint-Limitationen werden diese Daten zwar weiterhin zu einer Datenbank hinzugezählt, sie befinden sich jedoch auf einem anderen Storage. Dadurch kann SQL deutlich schneller und effizienter arbeiten, weil keine Table-Queries mehr mit großen BLOBs, sondern nur noch mit kleinen Stubs(Referenz auf den tatsächlichen Speicherort), durchgeführt werden müssen. Außerdem können so auch die erweiterten Datenbankgrenzwerte angewendet werden. Microsoft unterstützt z.B. in SharePoint 2013 Inhaltsdatenbanken mit bis zu 4 TB und einem Disk Subsystem von mindestens 0,25 I/Ops pro GB. Da durch die Auslagerung beispielsweise keine 4 TB, sondern effektiv nur 150 GB in der Datenbank liegen, kann man so auch mit günstigen Laufwerken die erforderten 0,25 I/Ops pro GB erreichen (empfohlen sind 2 I/Ops pro GB – https://technet.microsoft.com/de-de/library/cc262787.aspx).

Beispielrechnung:

Effektive Daten in der Datenbank

Erforderliche I/Ops für das Disk Subsystem

4 TB        (à 0,25 I/Ops * 1024 * 4)

1024

150 GB  (à 0,25 I/Ops * 150)

37,5

Sollten Sie also dieses Szenario verfolgen und mit RBS die 200 GB „virtuell“ überschreiten, bedenken Sie Situationen, in denen die BLOBs wieder zurück in den Datenbanken müssen, z.B. bei Migrationen. Auch dafür gibt es zwar Lösungen, z.B. Migrationssoftware von Drittanbietern wie AvePoint. Ich möchte an dieser Stelle aber lediglich darauf hinweisen, dass im RBS-Fall bestimmte Dinge zu berücksichtigen sind.

Die Auslagerung von Daten als Hauptziel ermöglicht zudem weitere Nebenziele:

Performance:
Die Downloadzeiten, also die Dauer bis ein Dokument oder allgemein ein BLOB gerendert ist, wird deutlich reduziert aufgrund der gestern erwähnten Limitation.

Der RBS-Provider kann also deutlich mehr Daten direkt vom Storage in der gleichen Zeit lesen, als es SQL allein aus seinen Datenbanken kann. Diese Unterscheide sind natürlich abhängig von dem Speicher-Subsystem des SQL sowie vom RBS Storage und der Netzwerkgeschwindigkeit (sollte diese eine andere und langsamere als zum SQL sein). Um das BLOB vom Storage zu lesen und zu rendern, muss der Browser für gewöhnlich folgende Schritte unternehmen:

  1. DNS Lookup
  2. Initiale Verbindung
  3. Warten
  4. Daten erhalten
  5. Verbindung schließen

Das Warten auf Daten wird als sogenannte TTFB (Time To First Byte – Zeit bis zum ersten Byte) bezeichnet. 100-200 ms sind grundsätzlich gute Werte. Möchten Sie jedoch einen NAS als RBS-Storage nutzen, erfordert Microsoft eine TTFB von unter 20 ms (https://technet.microsoft.com/de-de/library/Ff628583.aspx).

Deduplication:
Auf dem RBS-File-System kann die Deduplication (ein Windows Service) genutzt werden. Ist also ein Dokument doppelt und dreifach in mehreren Bibliotheken abgelegt, so erkennt dies der Deduplication-Algorithmus und komprimiert alle Duplikate in ein einziges und verweist dies in einem Index – einfach ausgedrückt.

In Tests hat sich herausgestellt, dass die beste Performance grundsätzlich mit einem RBS-Grenzwert von 1024 KB erreicht wird. Bei kleineren Dateien ist der SQL Algorithmus schneller. Der Wert kann aber auch minimal abweichen, je nach dem, für welches Szenario Ihre Farm eingesetzt wird und somit welche Dateigrößen hauptsächlich gespeichert sind. Dazu aber morgen mehr in Form von Informationen und Mythen zum Shredded Storage.

Hinweis: Auslagerung kann nicht von SharePoint erfolgen. Stattdessen müssen entsprechende RBS Provider installiert werden. Der Microsoft-eigene Provider, genannt FILESTREAM, erfüllt das Grundgerüst, also das Auslagern von Dateien anhand einer kofigurierten Größe x. Leider kann der FILESTREAM auch nur lokale Laufwerke des SQLs als Auslagerungs-Storage verwenden. Wenn Sie Daten auch auf andere Storages, wie z.B. einen SAN oder Cloud-Speicher, bringen oder weitere Auslagerungsregeln, z.B. per Dokumentenversionen oder bestimmte Spaltenwerte, verwenden möchten, dann kann dies nur eine Drittanbieterlösungen ermöglichen. Exemplarisch möchte ich auch hier AvePoint mit dem „Storage Manager“ nennen.

Viel Spaß beim „SharePointen“

————————————————————-

Weitere Türchen:

SharePoint BLOB Management – BLOB Cache

SharePoint Adventskalender – 18. Türchen

Performance Tuning – Performance Monitoring – Best-Practices für SP-SQL-Konfigurationen – BLOB Management – Backup & Recovery

————————————————————-

Heute und in den nächsten Kalendertürchen widmen wir uns dem BLOB Management für optimierte Speicherlaufwerke und der daraus resultierenden Verbesserung unserer SharePoint Performance.

Nach einer Umfrage der AIIM (Association for Information and Image Management) verzeichnen Firmen ein Datenwachstum von 50-75% pro Jahr. Durchschnittlich sind dabei von allen Daten 20% strukturiert und 80% unstrukturiert oder semi-strukturiert. Der nicht strukturierte Anteil wird in den meisten Fällen von BLOBs (Binary Large Objects) repräsentiert.

Leider ist aber die Funktionsweise eines Datenbanksystems und damit auch SQL dafür optimiert, kleine Informationspakete aus den verschiedenen Datenbanken und Tabellen zu kummulieren. Dies würd über „Queries“ realisiert und die Ergebnisse an den „Anfrager“ zurück geschickt. Die dazugehörigen Algorithmen können jedoch gar nicht gut mit großen Dateien (BLOBs) umgehen. Eine Anfrage auf eine einzige Datei mit einer Größe von 10 MB wird besipielsweise von SQL langsamer bedient, als würde ich sie direkt über das Netzwerk von einem File-Share laden. Somit ist klar, warum ein optimiertes BLOB Management große Performance-Verbesserungen für die Endnutzer bringt.

Beginnen wir mit dem vermutlich bekanntesten Ansatz, dem SharePoint BLOB Cache. Dieser speichert Dateien auf den WFEs, sodass SQL diese nicht bei einer erneuten Anfrage laden muss. Den Vorgang kann man sich vereinfacht folgendermaßen vorstellen:

 

Wie man sieht, ist auch hier der „frühe Vogel“ etwas langsamer unterwegs, weil er zunächst durch seinen Request den Cache des Servers „füttert“. Wird er bei einer Aktualisierung auf einen anderen WFE durch den Load Balancer geroutet, so muss auch da der Cache zunächst befüllt werden. Bei kleinen Bildern ist der Cache-Vorteil kaum zu spüren. Aber wenn wir von Dateien jenseits der 10 MB-Grenze reden, dann werden die Geschwindigkeitsunterschiede schnell deutlich.

Damit die jeweilige Datei zum Rendern schnell wieder gefunden werden kann, wird ein BLOB Cache Index erzeugt. Der Umfang dieses Index kann bei extrem vielen verschiedenen Dateien im Cache auch durchaus etwas größer werden. Im RAM-Speicher werden dafür etwa 800 Bytes pro Eintrag benötigt. Achten Sie daher darauf, welche Werte Sie für den BLOB Cache in der web.config-Datei der jeweiligen Web Application IIS-Webseiten konfigurieren. Sie können dabei definieren, welche Dateien ge-cached werden sollen und wie groß der Cache maximal werden darf (Angabe ist in GB! – standard sind 10 GB). Der ObjectCache definiert hingegen, wie viel vom Arbeitsspeicher für das Caching maximal verwendet werden darf (Standard = 100 MB!).

Der BLOB Cache ist jedoch nicht für alle Szenarien gut geeignet. Entscheiden Sie selbst, welche der beiden folgenden Szenarien bei Ihnen zu finden ist und werden Sie entsprechend tätig.

BLOB Caching besonders nützlich

BLOB Caching weniger nützlich

Seiten und deren Inhalte werden häufig besucht Weniger häufig genutzte Dateien
Vor allem “Rich Media”, also größere Dateien, wie Videos, sind solche Inhalte Dateien, die häufig geändert werden

Viel Spaß beim „SharePointen“!

————————————————————-

Weitere Türchen:

SharePoint Configuration Best Practices – Request Management Service

SharePoint Adventskalender – 17. Türchen

Performance Tuning – Performance Monitoring – Best-Practices für SP-SQL-Konfigurationen – BLOB Management – Backup & Recovery

————————————————————-

Bei dem heutigen Thema schauen wir uns einen weniger bekannten Service an, der jedoch sehr interessante Funktionen für uns bereit hält. Die Rede ist vom Request Management Service. Dies ist eine Art Load Balancer hinter dem Load Balancer. Damit kann SharePoint selber bei ankommenden Anfragen entscheiden, ob wirklich der vom Load Balancer zugewiesene WFE die Anfrage bearbeitet, oder ob noch einmal zu einem anderen WFE geroutet wird.

Ein Load Blanacer, wie der F5, arbeitet für ein Netzwerk-Load-Balancing während das Request Management (RM) auf Application-Eben die Last verteilt. Dazu können Throttling Regeln zum „bremsen“ und Routing Regeln zum priorisieren verwendet werden. Der Service ist standardmäßig ausgeschaltet, aber kann pro Web Application über PowerShell konfiguriert werden.

Funktionsweise:
Jedem Server kann über PowerShell ein statischer „Health“-Wert gesetzt werden. Zusätzlich prüft SharePoint alle 5 Sekunden die dynamische „Health“ jedes WFE Servers. Die Skala geht von 0 („am gesündesten“) bis 10. Bekommt ein Server drei mal hintereinander den Wert 10 (z.B. weniger als 20 MB RAM verfügbar), drosselt das RM die Anfragen auf diesem Server. Damit kann verhindert werden, dass ein Routing vom Load Balancer zu einem hängenden Server keine Fehlermeldung beim Endnutzer generiert. Stattdessen wird die Anfrage neu geroutet. Der Request Service fungiert praktisch als Proxy und erstellt eine neue Anfrage, die der alten zwar gleicht, jedoch zu einem neuen WFE geht.

Ablauf:

Zunächst kommt eine Abfrage vom Endnutzer oder vom Load Balancer am SharePoint an.

  1. Dieser evaluiert den Request anhand definierter Regeln. Diese können Eigenschaften (Url, UrlReferrer, UserAgent, Host, IP, HttpMethod, SoapAction, CustomHeader) oder Methoden (StartsWith, EndsWith, Equals, RegEx) überprüfen.
  2. Mögliche Server werden anhand der Regelkriterien und/oder der Server-Gesundheit identifiziert (siehe Bild unten)
  3. Nach Identifizierung des Servers wird der Request dorthin geroutet (bzw. gebremst, bei Throttling Regel).

Regeln werden innerhalb von drei Gruppen (Execution Groups 0 bis 2) zusammengefasst und entsprechend priorisiert. Diese Gruppen repräsentieren Servergruppen, zu denen geroutet werden soll.

  1. Gruppe 0 wird als erste geprüft.
  2. Gibt es keinen Match, werden die Regeln von Gruppe 1 geprüft.
  3. Gibt es ein Match, werden alle Regeln einer niedrigeren Priorität (Execution Group 2) verworfen und der Request direkt bearbeitet.

Gäbe es auch in Gruppe 2 keinen Match, dann wird der Request zu irgendeinem Server geleitet – aber nur dann, wenn ich mindestens in die letzte Gruppe auch eine Art „Catch-All“ Regel definiere, die alle nicht geregelten Anfragen abarbeitet (sollten keine weiteren „freien“ WFE außerhalb der Execution Gruppen existieren).

Vorteile:

  • Ablehnen gefährlicher Anfragen (z.B. von bestimmten Quellen)
  • Priorisieren von Anfragen basierend auf Server-Health und Regeln (z. B OneNote Verkehr immer über Server1; Search Crawler immer auf Server4; neuere Server mit mehr Resourcen können mehr Anfragen übernehmen, etc.)
  • Anfragen können „umgeschrieben“ werden mit beispielsweise sogar einem anderen Port
  • Traffic Isolierung zur Fehleranalyse (z.B. von einer bestimmten Site Collection zu einem bestimmten Server)
  • Regeln kann man auch ein Ablaufdatum mitgeben, sodass spezielle Routings automatisch enden

Nachteile:

  • Zusätzliche Last auf den WFE-Servern durch den RM Service
    Oder besser: Den RM Service auf einem dedizierten Server laufen lassen, z.B. gemeinsam mit einem Distributed Cache Service

Beispiele:

Erstellen einer Routing Regel, um alle Anfragen für Word Dokumente für Web Application http://intranet.contoso.com zum WFE „Server1“ zu leiten.

  1. Request Manager Service auf den WFEs aktivieren:
    1. Central Administration im Browser öffnen
    2. Zu Manage Services navigieren
    3. Request Management Service starten
  2. Scope der Web Application referenzieren
    • $WebApp = Get-SPWebApplication -identity http://intranet.contoso.com
  3. RM Service auf die Web Application referenzieren
    • $RM = $WebApp | Get-SPRequestManagementSettings
  4. Erstellen eines neuen Filter-Kriteriumsmit der “Url” Eigenschaft und RegEx für alle Dokumente vom Typ DOCX
    • $Krit = New-SPRequestManagementRuleCriteria -Property Url -Value „.*\.docx“ -MatchType Regex
  5. Sollte dies die erste Regel sein, die wir erstellt haben, müssen wir auch einen Server-Pool erstellen, zu dem diese Anfragen geroutet werden sollen.
    • $Pool = Add-SPRoutingMachinePool -RequestManagementSettings $RM -Name AdventsPool -MachineTargets ($RM | Get-SPRoutingMachineInfo -Name Server1)
  6. Nun kann die Routing-Regel mit obigen Server-Pool und Filter-Kriterium angelegt werden
    • $RM | Add-SPRoutingRule -Name „DOCX Regel“ -Criteria $Krit -MachinePool $Pool
  7. Fertig und testen! (ULSViewer is your friend…)

Erstellen einer Throttling Regel, um Anfragen von OneNote auf die Web Application http://intranet.contoso.com zu bremsen, wenn der Health-Wert 8 ist.

  1. Scope der Web Application referenzieren
    • $WebApp = Get-SPWebApplication -identity http://intranet.contoso.com
  2. RM Service auf die Web Application referenzieren
    • $RM = $WebApp | Get-SPRequestManagementSettings
  3. Hinzufügen eines neuen Kriteriums für OneNote 2010 Anfragen. Dies kann über den UserAgent im Request realisiert werden.
    • $Krit = New-SPRequestManagementRuleCriteria -Property UserAgent -Value „.*Microsoft Office OneNote 2010*“ -MatchType Regex
  4. Nun fügen wir die Throttling Regel für die Server-Health 8 hinzu.
    *Hinweis: Throttling Regeln gelten im Gegensatz zu Routing Regeln für die gesamte Farm und nicht für einzelne Server(-Pools). Daher müssen wir hier keinen Server-Pool mit angeben.

    • $RM | Add-SPThrottlingRule -Name „OneNote Throttle Rule“ -Criteria $Krit –Threshold 8

Viel Spaß beim „SharePointen“

————————————————————-

Weitere Türchen:

SharePoint Configuration Best Practices – Distributed Cache Service

SharePoint Adventskalender – 16. Türchen

Performance Tuning – Performance Monitoring – Best-Practices für SP-SQL-Konfigurationen – BLOB Management – Backup & Recovery

————————————————————-

Heute wenden wir uns dem in SharePoint 2013 neu eingeführten Distributed Cache Service zu. Dieser basiert auf dem „AppFabric Distributed Caching“ Dienst, der unter der Windows Service Konsole läuft. Er wurde dazu konzipiert, unter anderem Authentifizierungs-Tokens vom Security Token Service (STS) für den „sozialen“ Teil der MySite zu speichern. Diese zwischengespeicherten Daten sind über alle Cache-Server verteilt.

Der Vorteil dieser Technologie ist, dass Daten schnell aus dem Cache geladen werden können. Die Nachteile:

  1. Die Daten sind leider genau so alt, wie die letzte „Cache-Fütterung“. Nämlich der Timer Job mit dem Namen “User Profile Service – Feed Cache Repopulation Job” ist dafür zuständig, den Cache mit aktuellen Feeds zu füttern. Unabnhängig davon wird dieser Vorgang auch immer dann getriggert, wenn auf entsprechende Seiten zugegriffen wird. Gehe ich also auf meine MySite, so wird diese schnell aus dem Cache gerendert. Aber im Hintergrund fragt SharePoint erneut an, ob denn nicht schon aktuellere Daten für die Feeds vorhanden sind. Ist dies der Fall, wird der Cache damit versorgt und bei einem Refresh, bzw. beim nächsten Aufruf der MySite, werden dann eben diese aktualisierten Cache-Daten gerendert. Hinweis: Der Feed-Cache Timer Job läuft zusätzlich alle 5 Minuten nach Standardeinstellung.
  2. Geht ein Cache Server vom Netz, fehlen die dort gespeicherten Daten und müssen erst erneut geladen werden. Den Nachladeprozess all dieser Daten kann man folgendermaßen beschleunigen:
  • Den User Profile Service – Feed Cache Repopulation Job manuell starten oder
  • Folgende PowerShell-Befehle verwenden:
    – Clear-SPDistributedCacheItem
    – Update-SPRepopulateMicroblogLMTCache
    – Update-SPRepopulateMicroblogFeedCache

Sollte einmal bewusst geplant sein, einen solchen Server vom Netz zu nehmen, kann man auch pro-aktiv die gespeicherten Daten auf die anderen Server verteilen:

  • Stop-SPDistributedCacheServiceInstance -Graceful

Infrastrukturplanung:
Zu jeder SharePoint Farm muss auch mindestens ein Cache Host existieren, also ein Server, der den Distributed Cache Service hosted. Der – bzw. in einer größeren Farm mindestens ein – Cache Service sollte auch auf dem gleichen Server laufen, wo die User Profile Application (UPA) läuft. Andernfalls kann es vorkommen, dass sich der oben erwähnte “User Profile Service – Feed Cache Repopulation Job” nicht mit der UPA verbinden kann.

Zudem sollten Sie bei Farmen mit mehr als vier Servern explizit den Distributed Cache Service auf einem oder mehr Servern stoppen. Eine Verteilung von Cache-Daten auf zu viele verschiedene Server würde nämlich im Endeffekt die Performance negativ beeinflussen.

Weiterhin gibt es zur Planung des Distributed Cache Service folgendes zu beachten. Jeder Cache Server benötigt etwa 50% seiner Leistung für einen sogenannten RAM-Speicher-Overhead. Also administrative Aufgaben, um die tatsächlich gecachten Informationen zu verwalten. Damit wird empfohlen, Server mit maximal 16 GB RAM als Cache Server zu hosten. Prinzipiell sind auch größere Speicher möglich, aber durch den Overhead würde es bei einem Cache-Flushing so wirken, als sei der Server „eingefroren“. Dies ist nicht optimal für die „Nutzererfahrung“.

Neben den max. 16 GB RAM sollten auch etwa 2 GB für das Betriebssystem reserviert werden. Als Grundlage haben wir somit 14 GB für den Cache, wovon die eine Hälfte (7 GB) tatsächlich für den Cache und die andere Häfte für den administrativen Overhead genutzt werden soll. Somit teilen wir die gesamte benötigte Cache-Kapazität durch 7 und erhalten die Anzahl für die benötigten Cache Server.

Cache Bedarf / 7 GB = Anzahl nötiger Cache Server

Den Cache Bedarf gibt Microsoft anhand der Nutzer pro Farm mit folgender Tabelle an:

Bereitstellungsgröße Kleine Farm Mittlere Farm Große Farm
Gesamtzahl der Benutzer < 10.000 < 100.000 < 500.000
Empfohlene Cachegröße für den verteilten Cachedienst 1 GB 2,5 GB 12 GB
Gesamtspeicherzuordnung für den verteilten Cachedienst (doppelter Wert der oben empfohlenen Cachegröße, plus Reserve von 2 GB für das Betriebssystem) 2 GB 5 GB 34 GB
Empfohlene Architekturkonfiguration Dedizierter Server oder auf einem Front-End-Server Dedizierter Server Dedizierter Server
Mindestanzahl von Cachehosts pro Farm 1 1 2

Quelle: https://technet.microsoft.com/de-de/library/jj219572.aspx

Berechtigungen:
Weiterhin zu beachten ist die Berechtigung des Service Acconts, unter dem der Distributed Cache Service läuft. Ähnlich wie beim User Profile Service sind temporär erhöhte Berechtigungen (Local Admin) für das Einrichten erforderlich, um die Tokens vom STS ziehen zu können. Danach können diese Berechtigungen wieder genommen werden. Da es beispielsweise hin und wieder vorkommt, dass der Service neu gestartet werden muss oder andere administrative Eingriffe erforderlich sind, empfehle ich, die erhöhten Berechtigungen dauerhaft zu belassen. Dies widerspricht zwar dem „Least-Privilege“ Ansatz von Microsoft, erleichtert aber die Administration und Fehelerbehebung im Störungsfall.

Viel Spaß beim „SharePointen“

Hinweis:
– Die MySite wurde von Microsoft wieder abgekündigt und wird in O365 bereits durch Delve ersetzt.
– Weitere Informationen zum Distributed Cache Service finden Sie hier: https://technet.microsoft.com/de-de/library/jj219613.aspx?f=255&MSPPError=-2147217396

————————————————————-

Weitere Türchen:

SharePoint Configuration Best Practices – Super User und Super Reader

SharePoint Adventskalender – 15. Türchen

Performance Tuning – Performance Monitoring – Best-Practices für SP-SQL-Konfigurationen – BLOB Management – Backup & Recovery

————————————————————-

Besondere Funktionen erfordern besondere Einstellungen. Bei einem Feature ist das besonders wichtig. Die Rede ist von dem „SharePoint Server Publishing Infrastructure“ Feature oder auf deutsch, der „SharePoint Server-Veröffentlichungsinfrastruktur“.

Was ist an dieser Funktionalität so besonders? Die Veröffentlichungsinfrastruktur ist dazu gedacht, den SharePoint auch dafür zu nutzen, um reine Intranet- oder sogar Internetseiten zu hosten. Wichtig dabei ist, dass der Inhalt stets auf dem aktuellen Stand ist. Für Aktualisierungen werden von Dateien (Seiten) Zwischenversionen erstellt. Die Änderungen werden erst nach Veröffentlich einer neuen Hauptversion für alle Nutzer sichtbar. Dies ist natürlich auch für normale Kollaborationsszenarien denkbar, aber der Hauptfokus dieses Features liegt auf dem Veröffentlichen von Intranet- oder Internetseiten.

Das wichtigste Kriterium für eine erfolgreiche Intranetpräsenz ist ein schneller Seitenaufbau. Die Veröffentlichungsinfrastruktur nutzt dafür einen dedizierten Objekt-Cache. Wenn nun jeder Besucher durch den Aufruf einer entsprechenden Seite eine Anfrage an den SQL sendet, muss dieser auch jede einzelne bedienen. Erst bei jeder zweiten Anfrage der gleichen Seite würde der Cache tatsächlich greifen. Und dies gilt nun für jeden einzelnen Nutzer. Die Last auf dem SQL ist somit hoch und die Performance dadurch nicht optimal. Außerdem wächst der Cache schnell an, weil Dateien theoretisch doppelt und dreifach zwischengespeichert werden müssten.

Die Lösung liefern der Super User und der Super Reader Account. Bei einem Seitenaufruf werden so nur zwei Anfragen im jeweiligen Kontext der beiden Nutzer an den SQL gesendet. Der Super User („Full Control“) bekommt als Ergebnis auf diese Abfrage alle Entwürfe von Dateien, also die Zwischenversionen. Der Super Reader („Full Read“) bekommt alle veröffentlichten Versionen. Die Dateien aus beiden Abfragen landen im Cache. Für den eigentlichen Endnutzer werden dann die Berechtigungen aus den Zugriffssteuerungslisten (Acces Control List – ACL) geladen und dementsprechend nur die Informationen (aus dem Cache) gerendert und angezeigt, die er mit seinen Berechtigungen sehen darf. Der Vorteil dieses Verfahrens ist der schnelle Cache und es müssen nur die Ergebnisse für zwei Anfragen darin gespeichert werden. Dies ist also eine Performance- und Cache-Speicheroptimierung.

Nun kann es aber bei der Verwendung der Standardeinstellungen, nämlich des Systemkontos einer Website als „Portal Super User“ und des „NT Authority\Local Service“ als „Portal Super Reader“, zu Problemen kommen. Kurz: mit dem Systemkonto als „Portal Super User“ kann es zu Performance-Einbußen kommen, da hierbei manche „Entwurfsdateien“ doppelt abgefragt werden müssen. Da der „Local Service“ hingegen nicht explizit auf die jeweiligen veröffentlichten Seiten berechtigt ist, bekommt auch der Endnutzer eine Zugriffsverweigerung. Eine detailliertere Beschreibung finden Sie hier: https://technet.microsoft.com/de-de/library/ff758656.aspx)

Worauf ich aber eigentlich hinaus möchte, das ist die Authentifizierungsmethode. Microsoft änderte diese von SharePoint 2010 (Classic) zu SharePoint 2013 (Claims). Nun migrieren wir in SP2013 eine Classic-WebApplication zu Claims.

Convert-SPWebApplication -Identity „http://YourWebApp:80“ -To Claims -RetainPermissions -Force

Dies migriert auch alle berechtigten Benutzer dieser WebApplication zu Claims. Dennoch bekommen anschließend alle Nutzer – inklusive der Administratoren – einen „Zugang verweigert“ beim Zugriff auf die Seite. Besonders bei öffentlichen Seiten macht dies sehr viel „Spaß“.

Der Hintergrund ist einfach, dass bei der Classic zu Claims Migrations, auch inklusive der Benutzer, eben nicht der Super User und Super Reader mitgenommen werden. Diese verbleiben mit ihrem Classic Account und können sich daher nicht mehr authentifizieren. Sie müssen daher diese Konten erneut mit ihrer Claims-Nutzerkennung anlegen, um das Problem zu lösen. Bitte denken Sie auch daran, wenn Sie Farmlösungen oder ähnliche Programme nutzen, dass diese entsprechend mitgenommen werden müssen und sich in Zukunft über Claims authentifizieren.

Der Vollständigkeit halber hier noch die PowerShell Befehle, um die User mit Windows-Claims anzulegen:

$webapp = Get-SPWebApplication “http://WebAppURL”
$webapp.Properties[“portalsuperuseraccount”] = “i:0#.w|domain\SuperUser”
$webapp.Properties[“portalsuperreaderaccount”] = “i:0#.w|domain\SuperReader”
$webapp.Update()

Viel Spaß beim „SharePointen“!

————————————————————-

Weitere Türchen: