Software Downloads im Zusammenhang mit SharePoint 2010


Microsoft hat sich die Mühe gemacht, alle in Zusammenhang mit SharePoint 2010 stehenden Softwareprodukte zu sammeln und die Links dazu zur Verfügung zu stellen. Diese Zusammenstellung möchte ich euch nicht vorenthalten:

· Testversion für SharePoint Server 2010 Standard (http://go.microsoft.com/fwlink/?linkid=197413&clcid=0x407)

· Testversion für SharePoint Server 2010 Enterprise (http://go.microsoft.com/fwlink/?linkid=197414&clcid=0x407)

· 2010-Sprachpakete für SharePoint Server 2010, Project Server 2010, Search Server 2010 und Office Web Apps 2010 (http://go.microsoft.com/fwlink/?linkid=197415&clcid=0x407)

· Windows Server 2008 R2 und SharePoint Server 2010: Besser zusammen (Whitepaper)

· Optimale Produktivität: Microsoft Office und Microsoft SharePoint (Whitepaper)

· Windows Server 2008 (http://go.microsoft.com/fwlink/?linkid=197426&clcid=0x407)

· Windows Server 2008 R2 (http://go.microsoft.com/fwlink/?linkid=197428&clcid=0x407)

· SQL Server 2008 R2 (http://go.microsoft.com/fwlink/?linkid=197429&clcid=0x407)

· SQL Server 2008 (http://go.microsoft.com/fwlink/?linkid=179611&clcid=0x407)

· SQL Server 2005 (http://go.microsoft.com/fwlink/?linkid=197431&clcid=0x407)

· Microsoft SQL Server 2008 SP1 (http://go.microsoft.com/fwlink/?linkid=166490&clcid=0x407)

· Kumulatives Updatepaket 2 für SQL Server 2008 Service Pack 1 (http://go.microsoft.com/fwlink/?linkid=165962&clcid=0x407)

· Kumulatives Updatepaket 5 für SQL Server 2008 (http://go.microsoft.com/fwlink/?linkid=197434&clcid=0x407). Laden Sie die Datei SQL_Server_2008_RTM_CU5_SNAC herunter.

· Microsoft SQL Server 2005 SP3 (http://go.microsoft.com/fwlink/?linkid=166496&clcid=0x407)

· Kumulatives Updatepaket 3 für SQL Server 2005 Service Pack 3 (http://go.microsoft.com/fwlink/?linkid=165748&clcid=0x407)

· Microsoft Windows Server 2008 SP2 (http://go.microsoft.com/fwlink/?linkid=166500&clcid=0x407)

· Windows Server 2008 mit SP 2 FIX: Für .NET Framework 3.5 SP1 ist ein Hotfix verfügbar, durch den eine Methode zur Unterstützung der Tokenauthentifizierung ohne Transportsicherheit oder Nachrichtenverschlüsselung in WCF bereitgestellt wird (http://go.microsoft.com/fwlink/?linkid=160770&clcid=0x407)

· Windows Server 2008 R2 FIX: Für .NET Framework 3.5 SP1 ist ein Hotfix verfügbar, durch den eine Methode zur Unterstützung der Tokenauthentifizierung ohne Transportsicherheit oder Nachrichtenverschlüsselung in WCF bereitgestellt wird (http://go.microsoft.com/fwlink/?linkid=166231&clcid=0x407)

· Microsoft .NET Framework 3.5 Service Pack 1 (http://go.microsoft.com/fwlink/?linkid=131037&clcid=0x407)

· Microsoft SQL Server 2008 Express Edition Service Pack 1 (http://go.microsoft.com/fwlink/?linkid=166503&clcid=0x407)

· Windows Identity Foundation für Windows Server 2008 (http://go.microsoft.com/fwlink/?linkid=160381&clcid=0x407)

· Windows Identity Foundation für Windows Server 2008 R2 (http://go.microsoft.com/fwlink/?linkid=166363&clcid=0x407)

· Microsoft Sync Framework 1.0 (http://go.microsoft.com/fwlink/?linkid=141237&clcid=0x407)

· Microsoft Office 2010 Filter Packs (http://go.microsoft.com/fwlink/?linkid=191851&clcid=0x407)

· Microsoft Chart Controls für Microsoft .NET Framework 3.5 (http://go.microsoft.com/fwlink/?linkid=141512&clcid=0x407)

· Windows PowerShell 2.0 (http://go.microsoft.com/fwlink/?linkid=161023&clcid=0x407)

· Microsoft SQL Server 2008 Native Client (http://go.microsoft.com/fwlink/?linkid=166505&clcid=0x407)

· Microsoft SQL Server 2008 Analysis Services ADOMD.NET (http://go.microsoft.com/fwlink/?linkid=160390&clcid=0x407)

· KB979917 – QFE für Probleme mit SharePoint – Korrektur für Leistungsindikator und Benutzeridentitätswechsel (http://go.microsoft.com/fwlink/?linkid=192577&clcid=0x407)

· Laden Sie für Windows Server 2008 SP2 die Datei Windows6.0-KB979917-x64.msu (Vista) herunter.

· Laden Sie für Windows Server 2008 R2 die Datei Windows6.1-KB979917-x64.msu (Win7) herunter.

· ADO.NET Data Services Update für .NET Framework 3.5 SP1 (http://go.microsoft.com/fwlink/?linkid=163519&clcid=0x407) für Windows Server 2008 SP2

· ADO.NET Data Services Update für .NET Framework 3.5 SP1 (http://go.microsoft.com/fwlink/?linkid=163524&clcid=0x407) für Windows Server 2008 R2 oder Windows 7

· Microsoft Silverlight 3 (http://go.microsoft.com/fwlink/?linkid=166506&clcid=0x407)

· Microsoft Office 2010 (http://go.microsoft.com/fwlink/?linkid=195843&clcid=0x407)

· SQL Server 2008 R2 Reporting Services-Add-In für Microsoft SharePoint-Technologien 2010 (http://go.microsoft.com/fwlink/?linkid=192588&clcid=0x407)

· Installationspaket für den SQL Server-Remote BLOB-Speicher aus dem Feature Pack für Microsoft SQL Server 2008 R2. Rufen Sie zum Herunterladen das Download Center (http://go.microsoft.com/fwlink/?linkid=177388&clcid=0x407) auf.

· Microsoft Server Speech Platform (http://go.microsoft.com/fwlink/?linkid=179612&clcid=0x407)

· Sprache für die Spracherkennung für Englisch (http://go.microsoft.com/fwlink/?linkid=179613&clcid=0x407)

· Sprache für die Spracherkennung für Spanisch (http://go.microsoft.com/fwlink/?linkid=179614&clcid=0x407)

· Sprache für die Spracherkennung für Deutsch (http://go.microsoft.com/fwlink/?linkid=179615&clcid=0x407)

· Sprache für die Spracherkennung für Französisch (http://go.microsoft.com/fwlink/?linkid=179616&clcid=0x407)

· Sprache für die Spracherkennung für Japanisch (http://go.microsoft.com/fwlink/?linkid=179617&clcid=0x407)

· Sprache für die Spracherkennung für Chinesisch (http://go.microsoft.com/fwlink/?linkid=179618&clcid=0x407)

· Office Communicator 2007 R2 (http://go.microsoft.com/fwlink/?linkid=196930&clcid=0x407)

· Microsoft SharePoint Designer 2010 (32-Bit) (http://go.microsoft.com/fwlink/?linkid=196931&clcid=0x407)

· Microsoft SharePoint Designer 2010 (64-Bit) (http://go.microsoft.com/fwlink/?linkid=196932&clcid=0x407)

SQL Script für die Erstellung von Best Practice SharePoint Datenbanken


Na dass wird aber auch Zeit. Endlich poste ich auch hier zur Vollständigkeit den Post, welchen ich im SharePointAdvent gepostet habe. Er ist die Fortsetzung vom Post Best Practice SQL Setup.

Wie in meinem letzten Post erläutert, macht es durchaus Sinn, sich im Bereich SharePoint auch über das Backend Gedanken zu machen. Ein Teil davon ist die Erstellung der Datenbanken. Eigentlich sollte es den Button "Add new Content Database" in SharePoint gar nicht geben.

addcontentdb1

Warum? Hier sind die Gründe:

SharePoint erstellt eine neue Datenbank ab der Model und diese ist von Natur aus so konfiguriert:

  • 2MB gross (oder besser gesagt klein)
  • Ein einzelnes File in der Primary Filegroup
  • Growth ist auf 1 MB Unlimited Growth
  • Logfile ist 1MB gross
  • Growth ist 10%

model

Nach dem Erstellen einer leeren SharePoint Datenbank ist diese 2o MB gross, das heisst, sie ist bereits 18x gewachsen. Durch das Wachstum einer DB wird sie fragmentiert und wie man weiss, ist alles was fragmentiert ist langsamer, da die Datenstücke nicht aneinander hängen, sondern verteilt sind. Diese Verteilung muss vom DB Management System aufgefangen werden. Dieser Reibungsverlust schlägt sich in der Performance nieder.

DiskSpaceGrowth

Wenn ich nun die DB Stats abfrage, bekomme ich den Fragmentierungslevel der neuen Datenbank mitgeteilt, ACHTUNG: Es handelt sich notabene um eine leere SharePoint Datenbank, die noch überhaupt keinen Content enthält. SELECT * FROM sys.dm_db_index_physical_stats (DB_ID(‚DB Name‘), Null, Null, Null, Null);

DBStats

Ich erhalte hier 230 Rows, jede Row enthält den Hinweis auf einen Index. Meine Datenbank ist also schon sehr stark fragmentiert, obwohl sie leer ist. Da kann man sich vorstellen, dass dies an der Performance nagt.

Ein weiterer Punkt ist, dass allea auf einem Datenfile abgeht. Heute haben Prozessoren mehrere Kerne, und jeder hackt auf dem armen File rum. Viel besser ist es, wenn jeder Kern sich auf ein anderes File konzentrieren kann. Wenn eine DB in mehrere Files unterteilt ist, so wird abwechselnd auf die Files eingedroschen, was sich wiederum positiv auf die Performance auswirkt. Die Fausregel sagt, dass pro Prozessorkern 0.25 bis 0.5 Files angelegt werden sollten, mindestens aber 4. Bei mehr als 8 Files ist dann kein grosser Unterschied mehr spürbar. Beachten Sie folgendes:

  • Berechnen Sie vorab, wie viel Content später mal in die DB rein soll
  • Erstellen Sie die initiale DB Grösse entsprechend ein (wir sprechen von GB nicht von BYTES)
  • Stellen Sie das Wachstum auf eine vernünftige Grösse ein
  • Stellen Sie das LOG auch auf 1GB oder teilbar durch 8GB

Hier kommt der Script vorher noch im SQL Mgmt Studio unter "Query" den "SQL CMD Mode" aktivieren, alles was rot ist muss von euch noch customized werden (auch der User ganz am Ende, da kommt der Farm Admin rein:

/*—————————————————————————————
  Disclaimer – Thoroughly test this script, execute at your own risk.
  —————————————————————————————
 
  set variables (Filesizes in MB)*/
:setvar DBName MyAdventDB
:setvar LoginitialMB 1024
:setvar LoggrowMB 1024
:setvar DatainitialMBperFile 341
:setvar DatagrowMBperFile 341
:setvar DataPath “C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA”
:setvar LogPath “C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA”
 
CREATE DATABASE [$(DBName)] ON  PRIMARY
/*no grow on Primary-File (its only for sys tables and Service Broker Queues)*/
( NAME = N’$(DBName)Data01′, FILENAME = N’$(DataPath)\$(DBName)Data01.mdf‘ , SIZE = 128MB , FILEGROWTH = 0),
/* 0.25-1 file per cpu core (each with same initial and grow size)*/
( NAME = N’$(DBName)_Data02′, FILENAME = N’$(DataPath)\$(DBName)_Data02.ndf‘ , SIZE = $(DatainitialMBperFile)MB , FILEGROWTH = $(DatagrowMBperFile)MB ),
( NAME = N’$(DBName)_Data03′, FILENAME = N’$(DataPath)\$(DBName)_Data03.ndf‘ , SIZE = $(DatainitialMBperFile)MB , FILEGROWTH = $(DatagrowMBperFile)MB ),
( NAME = N’$(DBName)_Data04′, FILENAME = N’$(DataPath)\$(DBName)_Data04.ndf‘ , SIZE = $(DatainitialMBperFile)MB , FILEGROWTH = $(DatagrowMBperFile)MB ),
( NAME = N’$(DBName)_Data05′, FILENAME = N’$(DataPath)\$(DBName)_Data05.ndf‘ , SIZE = $(DatainitialMBperFile)MB , FILEGROWTH = $(DatagrowMBperFile)MB )
LOG ON
/* place tlog on another diskarray, use best practice size for optimal vlf handling (1GB/8GB)*/
( NAME = N’$(DBName)_log‘, FILENAME = N’$(LogPath)\$(DBName)_log.ldf‘ , SIZE = $(LoginitialMB)MB , FILEGROWTH = $(LoggrowMB)MB )
/* collation for database */
COLLATE Latin1_General_CI_AS_KS_WS
GO
/* 90=2005/100=2008*/
ALTER DATABASE [$(DBName)] SET COMPATIBILITY_LEVEL = 100
GO
ALTER DATABASE [$(DBName)] SET ANSI_NULL_DEFAULT OFF
GO
ALTER DATABASE [$(DBName)] SET ANSI_NULLS OFF
GO
/* set ANSI_PADDING True, refer to BOL for more information, not default setting*/
ALTER DATABASE [$(DBName)] SET ANSI_PADDING ON
GO
ALTER DATABASE [$(DBName)] SET ANSI_WARNINGS OFF
GO
ALTER DATABASE [$(DBName)] SET ARITHABORT OFF
GO
ALTER DATABASE [$(DBName)] SET AUTO_CLOSE OFF
GO
ALTER DATABASE [$(DBName)] SET AUTO_CREATE_STATISTICS ON
GO
/* never use AUTO_SHRINK on a production DB*/
ALTER DATABASE [$(DBName)] SET AUTO_SHRINK OFF
GO
ALTER DATABASE [$(DBName)] SET AUTO_UPDATE_STATISTICS ON
GO
ALTER DATABASE [$(DBName)] SET CURSOR_CLOSE_ON_COMMIT OFF
GO
ALTER DATABASE [$(DBName)] SET CURSOR_DEFAULT  GLOBAL
GO
ALTER DATABASE [$(DBName)] SET CONCAT_NULL_YIELDS_NULL OFF
GO
ALTER DATABASE [$(DBName)] SET NUMERIC_ROUNDABORT OFF
GO
ALTER DATABASE [$(DBName)] SET QUOTED_IDENTIFIER OFF
GO
ALTER DATABASE [$(DBName)] SET RECURSIVE_TRIGGERS OFF
GO
ALTER DATABASE [$(DBName)] SET  DISABLE_BROKER
GO
ALTER DATABASE [$(DBName)] SET AUTO_UPDATE_STATISTICS_ASYNC OFF
GO
ALTER DATABASE [$(DBName)] SET DATE_CORRELATION_OPTIMIZATION OFF
GO
ALTER DATABASE [$(DBName)] SET PARAMETERIZATION SIMPLE
GO
ALTER DATABASE [$(DBName)] SET  READ_WRITE
GO
/* use same recovery model for each db in an instance (exceptions in olap environments)*/
ALTER DATABASE [$(DBName)] SET RECOVERY FULL
GO
ALTER DATABASE [$(DBName)] SET  MULTI_USER
GO
/* change all dbs to checksum since 2005*/
ALTER DATABASE [$(DBName)] SET PAGE_VERIFY CHECKSUM
GO
 
/* change db owner*/
USE [$(DBName)]
GO
EXEC dbo.sp_changedbowner @loginame = N’domain\user‘, @map = false
GO

 

Am Ende noch mit Powershell an SharePoint anhängen und gut ist.

New-SPContentDatabase -Name <ContentDbName> -WebApplication <WebApplicationName>

So long, Samuel

Best Practice SQL Setup in einer SharePoint Umgebung


Diesen Post habe ich heute auf www.sharepointadvent.de gepostet, ein Gemeinschaftsprojekt der deutschsprachigen MVPs. Ich will ihn euch nicht vorenthalten Zwinkerndes Smiley

Sehr oft wird SharePoint eingesetzt, ohne dass durchwegs bekannt wäre, welche Komponenten alle berücksichtigt werden müssen. Mit dem Begriff “SharePoint” wird dann vor Allem eine Office ähnliche Software gemeint, mit welcher man zusammenarbeiten kann.

Nicht weniger oft wird dann SharePoint mit weiter, weiter, Fertigstellen installiert, und damit hat sich’s dann. Best Practices werden zwar im Bereich AD, Windows Server usw. bereits vielerorts angewandt, aber SharePoint ist oft ein Buch mit sieben Siegeln. Auch dafür gibt es ganz viele Grundlagen, die man berücksichtigen muss. Auf eine dieser Grundlagen will ich heute eingehen.

Es gibt eine ganz einfache Grundregel im Bereich Performance und die heisst SQL Server langsam = SharePoint langsam. SharePoint ist eine Webapplikation und von dieser erwartet der Enduser eine Klick and Run Experience. Wenn er diese nicht erhält, dann wird sofort auf SharePoint geschimpft, obwohl das Problem in den meisten Fällen an einem anderen Ort liegt. Ein Frontend kann 15 bis 20’000 User bedienen mit einer 10% Concurrency. Heisst, alle Kleinen und mittleren Unternehmen könnten mit einem starken Frontend auskommen. Das zweite Frontend wird meist nur für die Ausfallsicherheit eingesetzt.

Wo liegt also oft das Problem? Primär an zwei Orten:

  1. Dem SQL Server
  2. Dem Disksubsystem

Es gibt Regeln, wie ein SQL Server aufgesetzt werden sollte, um die Performance zu erhöhen. Auch gibt es Regeln, wie ein Disksubsystem sein sollte, wenn man SharePoint Datenbanken darauf hosten will.

Der SQL Server

Hier ein paar Grundregeln, wie der SQL Server konfiguriert werden muss:

Beginnen wir einmal bei der Aufteilung der Datenbanken. Wir unterscheiden High und Low Traffic Datenbanken, verschiedene Zugriffsmuster und die Logfiles.

Die Suchdatenbank ist grundsätzlich die User DB mit dem grössten Traffic Read und Write. In grösseren Umgebungen macht es sinn, diese komplett in eine eigene Instanz auszulagern, um die restliche SharePoint Installation nicht zu gefährden. In kleinen bis mittleren Farmen kann diese auch in die normale SharePoint Instanz integriert sein. Grundsätzlich sollte aber in einer SharePoint Instanz nichts anderes laufen als SharePoint.

Stellen Sie sicher, dass Transaction Log, User DBs und die Temp DB auf eigenen LUNs in ihrem SAN liegen, d diese ein komplett unterschiedliches Zugriffsmuster haben. T-Log ist Sequential Write, User DBs sind verschieden: Content DBs sind Moderate Read und die Search ist Heavy Read/Write. Die Temp DB ist die schlimmste und ist Heavy Read/Write. Wenn nicht zumindest die Aufteilung wie oben erwähnt gemacht wird, werden sich die verschiedenen Daten gegenseitig ausbremsen.

Kommen wir zu den Einstellungen auf dem SQL Server:

Multiple Datafiles

Stellen Sie sicher, dass alle Datenbanken auf mehrere Datenfiles aufgeteilt sind. Dies erhöht die Performance erheblich. Erstellen Sie die DBs per Script und nicht per “Create New Content DB” Button. Details dazu in meinem nächsten Post später im Advent.

Fill Factor auf 70% setzen

Diese Einstellung stellt sicher, dass Ihr Index weniger schnell fragmentiert. Wenn neue Datensätze eingefügt werden müssen, so werden diese in die leeren 30% eingefügt. Normalerweise ist der Fillfactor auf 100% und somit fragmentiert der Index beim ersten Insert. Jede Fragmentierung verlangsamt den SQL Server

T-Log Backup alle 15min bis max. 24h

Dies ist weniger ein Performance Issuer als ein Platzfresser. SharePoint Datenbanken sind per Standard auf Fullrecovery Mode eingestellt. Wenn Sie keine Log Backups machen, wird Ihnen das Logfile unter Umständen immer weiter wachsen. Ein Logbackup stellt sicher, dass alles in die DB geschrieben wurde und gibt das Log frei zum überschreiben. Zudem haben Sie eine zusätzliche Sicherheit zu Ihren Backups im Desasterfall.

Disable Boost SQL Server Priority

Diese Einstellung verleitet oft zum einschalten, ist aber im SharePoint Umfeld aufgrund der speziellen Konstellation von SharePoint eher hinderlich.

Max Degree of Parallelism 1 (für SharePoint only Instanzen)

Hier wird geregelt, wie viele Threads gleichzeitig für eine Query auf die Prozessoren verteilt werdne. Normalerweise ist die Einstellung auf 0, und der SQL entscheidet. Für SharePoint ist es besser, wenn eine Query immer nur auf eine Thread läuft, dies hat sich in Tests gezeigt.

Min und Max Memory konfigurieren

Stellen Sie sicher, dass der SQL Server genügend Memory bekommt, dass das Betriebssystem aber nicht zu leiden beginnt. Faustregel ist Memory Installed – 3GB = Max Memory. Wenn man die automatische Einstellung lässt, nimmt sich SQL was er bekommt. Wenn das Betriebssystem anfängt zu schreien, gibt er nach und nach frei, doch dann ist es meist bereits zu spät.

Temp DB auf 10GB und 4 Files verteilen, Autogrowth 1GB

Die Temp DB ist die meist belastete DB bei SharePoint, da jede Liste die in irgendeiner Art gruppiert oder sortiert ist, zuerst durch die Temp DB läuft. Machen Sie diese genug gross und verteilen Sie die DB auf mehrere Datenfiles. So wird die DB beim Start immer 10GB sein und wird somit durch die Wachserei und dadurch die Fragmentierung nicht langsam.

Lock Pages in Memory (für SQL Std. –T845) und Perform Volume Maintennance Tasks für SQL Account setzen

Lock Pages in Memory erlaubt dem SQL Server direkt Memory zu allozieren. Perform Volume Maintennance Tasks gibt SQL das Recht, beim Erstellen der DB Start und Endpunkt auf der Disk zu setzen, die Erstellung wird dadurch erheblich schneller. wird der Diskspeicher mit lauter Nullen aufgefüllt.

Traceflag 1117 (-T1117) für gleichmässigen Filegrowth

Dies ist ein Undocumented Flag und wird in den Startup Parametern der SQL Instanz gesetzt. Es garantiert den gleichzeitigen Growth mehrerer Datenfiles. Warum man mehrere Datenfiles machen sollte und wie, dazu später im Adventsblog. Wird dieses Flag nicht gesetzt, so füllt SQL alle Files gleichzeitig, wenn alle voll sind wächst File 1 und wird zuerst wieder gefüllt dann wächst File 2 etc… Das ist gerade nicht der Effekt, den man sich von mehreren Datenfiles erhofft.

Backupcompression einschalten

Das Backup wird schneller und kleiner. Was will man mehr? Dies geht zu Lasten der CPU, doch das ist vernachlässigbar.

Index Maintennance <=30% Reorganisation, sonst Rebuild

Der Index trägt nachhaltig zur Geschwindigkeit der Datenbanken bei. Man sollte darauf achten, dass periodisch die Indizes geprüft werden. Unter 30% Fragmentierung ist eine Reorganisation möglich, sonst muss der Index rebuildet werden.

Für den Indexrebuild empfhiehlt es sich, Max Degree of Parallelism wieder auf 0 zu stellen, da die Reorganisation bzw. der Rebuild schneller über die Bühne geht. Danach wieder zurück auf 1.

Update Statistics täglich, DBCC Checkdb vor Fullbackup

Mit Update Statistics wird der Einstiegspunkt festgelegt, damit nicht immer ein Fulltablescan gemacht werden muss. DBCC Checkdb verifiziert die Datenbanken auf ihre Konsistenz. ACHTUNG Repair with Dataloss ist im SharePoint nicht supportet!

To BLOB or not to BLOB

Zu guter letzt sollte man sich auch Gedanken über RBS machen. Es gab eine Studie, wonach Files < 1MB schneller vom SQL und >1 MB schneller vom Filesystem gestreamt werden. Auch kann der RBS auf günstigeren Disks liegen, was die Gesamtkosten der Infrastruktur senkt. Bitte aber genau prüfen, bevor man da einsteigt. Die Backup Restore Szenarien verkomplizieren sich nämlich durch RBS 😉

Und noch was zum Schluss: Never Virtualize an SQL Server (meine persönliche Meinung, die ein paar Cracks der Microsoft Consulting Services mit mir teilen…)

Das Disksubsystem

Disk Alignement

Auch auf dem Disksubsystem gibt es einiges zu beachten. Wenn nämlich mal der SQL mal sauber aufgesetzt und konfiguriert ist, kommt noch das Disksubsystem, auf welchem die Daten liegen. Of wird dies als “Grosser Kübel” hingestellt und gut ist. Dass sich aber Threads gegenseitig ausbremsen, daran denkt niemand. Beginnen wir mal ganz unten, nämlich beim Disk Alignement. Wurde das Disk Alignement falsch gemacht, verursachen sie dem Disksubsystem Schmerzen, da es defakto die selbe Info zweimal schrieben muss. Einmal auf die Partition und dann noch auf die physische Disk. Stellen Sie sicher, dass die Partitionierung mit einer Blockgrösse von 64KB gemacht wurde. Ältere Systeme haben eine Blockgrösse von 4KB was denkbar schlecht ist.

Hier die Performanceunterschiede mit Aligned und Unaligned Disks:

DiskPartitionAlignmentFig1.jpg

Microsoft hat ein Whitepaper zum Disk Alignement und SQL Server 2008 bereitgestellt, welches exakt zeigt, wie man es einstellt, prüft und korrigiert. Auch werden die Auswirkungen detailiert aufgezeigt.
Hier der Link: http://download.microsoft.com/download/C/E/7/CE7DA506-CEDF-43DB-8179-D73DA13668C5/DiskPartitionAlignment.docx

Performance, IOPS und Anzahl Disks

Es gibt ganz viele Hersteller, die behautpen, das beste Disksubsystem für SharePoint zu haben. Ich sage dazu nur eines: Kein RAID10, kein gutes Disksubsystem für SharePoint. Grundsätzlich geht es um Performance, und da ist RAID10 nicht zu überbieten, auch wenn es notabene das verschwenderischste ist, da die zwei Platten welche zusammen mehr performance ergeben und zusätzlich noch gespiegelt werden. Man kann also genau 50% des eingekauften Speicherplatzes effektiv nutzen, was eigentlich eine schlechte Ausbeute ist.

Wir wollen aber Performance und daher wird auch von Microsoft dringend RAID10 empfohlen. Dann können Sie auch als Grundregel nehem, was unter 140 MB/s Throughput hat ist zu langsam. Diese Rechenmethode hat ihre Grenzen, denn sie sagt alleine nicht viel aus.

Sicherer ist mit IPOS zu rechnen. Hier ist die Faustregel 2 IOPS pro GB Daten. Da wird schnell klar, dass wir schnell mal ein paar IOPS auf unserem Disksubsystem brauchen.

Wichtige Grundregel beim Disksubsystem ist auch die Anzahl Disks, nicht nur der benötigte Platz sonder die Anzahl Spindeln, welche den IO verarbeiten sind hier die wichtigen Faktoren.

Es empfiehlt sich, einige Tests mit SQLIO zu machen.
Zum Tool: http://www.microsoft.com/download/en/details.aspx?id=20163
zur Beschreibung: http://technet.microsoft.com/en-us/library/cc966412.aspx

So, nun habe ich erstmal genug losgelassen, ich lass euch das ganze erst mal verdauen.

So long, Samuel

Präsentation SharePoint 2010 Best Practice Setup


Was ja bei mir bereits voraussehbar gewesen ist…

Hier natürlich noch die Präsentation, welche ich anlässlich des ShareTrain vom Juni 2011 gehalten habe. Inhalt waren Vorgehensweisen und Tipps für ein Best Practice Setup von SharePoint 2010. Auf der Tonspur gab es natürlich noch viiieeelll mehr, doch auch in der Präsentation sind viele nützliche Tipps und Blogposts hinterlegt.

So long, Samuel

FAST Search Server Evaluation Guide


FAST wird zu einem immer wichtigeren Thema. Microsoft hat einen Evaluation Guide herausgegeben, der Ihnen helfen soll, Ihre Search Strategie festzulegen. Hier der Link zum Dokument:

FASTSearchServer2010_SearchEvalGuide

Contents

Abstract ………………………………………………………………………………………………………………………………………. 1
How to Use This Document……………………………………………………………………………………………………….. 2
Introduction …………………………………………………………………………………………………………………………………. 3
Technical Problems Solved by SharePoint Server 2010 Enterprise Search …………………….. 3
Search Terminology ………………………………………………………………………………………………………………… 4
Microsoft Enterprise Search Products Overview …………………………………………………………………….. 9
Microsoft Server-Side Search Products ……………………………………………………………………………….. 9
Content Source Repositories …………………………………………………………………………………………… 10
Indexing Scale ……………………………………………………………………………………………………………………. 11
Developer Information ……………………………………………………………………………………………………… 12
Enterprise Search Features in FAST Search Server 2010 for SharePoint …………………………… 13
End-User Perspective …………………………………………………………………………………………………………….. 13
IT Professional Perspective …………………………………………………………………………………………………… 14
Developer Perspective…………………………………………………………………………………………………………… 14
FAST Search Server 2010 for SharePoint ……………………………………………………………………………….. 15
Enterprise Search Enhancements in FAST Search Server 2010 for SharePoint …………….. 15
Visual Search Capabilities …………………………………………………………………………………………………….. 15
Document Thumbnails ……………………………………………………………………………………………………… 15
Scrolling PowerPoint previews ………………………………………………………………………………………… 15
Visual Best Bets ………………………………………………………………………………………………………………….. 16
Conversational Search Capabilities …………………………………………………………………………………….. 16
Sort Results on Managed Properties ……………………………………………………………………………… 16
Deep Results Refinement …………………………………………………………………………………………………. 16
Similar Results ……………………………………………………………………………………………………………………. 17
Result collapsing ……………………………………………………………………………………………………………….. 17
Contextual Search Capabilities …………………………………………………………………………………………….. 17
2 http://www.microsoft.com/sharepoint
Relevancy Tuning by Document or Site Promotions …………………………………………………… 17
Synonyms ……………………………………………………………………………………………………………………………. 18
Managed Properties and Metadata creation ………………………………………………………………… 18
Property Extraction ……………………………………………………………………………………………………………. 18
Rank Profiles ………………………………………………………………………………………………………………………. 19
Linguistics …………………………………………………………………………………………………………………………… 20
FAST Search Server 2010 for SharePoint for End Users ………………………………………………………. 21
End-User Search Experience ………………………………………………………………………………………………… 21
Social Search …………………………………………………………………………………………………………………………… 25
Finding People …………………………………………………………………………………………………………………… 25
Mining and Discovering Expertise ………………………………………………………………………………….. 26
Improving Search based on Social Behavior …………………………………………………………………. 26
FAST Search Server 2010 for SharePoint User Experience ………………………………………………. 27
Enhanced Search Results ………………………………………………………………………………………………………. 29
FAST Search Server 2010 for SharePoint for IT Professionals …………………………………………….. 31
FAST Search Server 2010 Architecture Overview ……………………………………………………………… 31
Modular and Scalable Architecture ………………………………………………………………………………… 32
Integration with Search Center ……………………………………………………………………………………….. 32
IT Professional Experience ……………………………………………………………………………………………….. 33
Windows PowerShell Support …………………………………………………………………………………………. 33
Categories of cmdlets ……………………………………………………………………………………………………….. 34
Developer Experience ……………………………………………………………………………………………………….. 34
FAST Search Server 2010 for SharePoint —Services and Components ………………………… 35
FAST Search Connector ……………………………………………………………………………………………………. 35
Web Link Analysis (Web Analyzer) ………………………………………………………………………………….. 36
Item Processing …………………………………………………………………………………………………………………. 36
Indexing ………………………………………………………………………………………………………………………………. 37
Query Matching …………………………………………………………………………………………………………………. 37
3 http://www.microsoft.com/sharepoint
Query Processing ………………………………………………………………………………………………………………. 38
Connector Framework …………………………………………………………………………………………………………… 38
New Connector Features ………………………………………………………………………………………………….. 38
Creating Connectors …………………………………………………………………………………………………………. 39
Search Administrator Walkthroughs …………………………………………………………………………………… 39
Search Administration at the Search Service Application Level for SharePoint Server 2010. ……………………………………………………………………………………………………………………………………. 39
Crawler Settings …………………………………………………………………………………………………………………. 40
Queries and Results Settings …………………………………………………………………………………………… 42
Search Reports …………………………………………………………………………………………………………………… 48
Administering FAST Search Server 2010 for SharePoint Managed Properties ………… 50
Search Administration at the Site Collection Level ………………………………………………………. 52
FAST Site Collection Settings …………………………………………………………………………………………… 58
Appendix A: Resources Available for Evaluating SharePoint Server 2010 ………………………… 62

Aus dem Alltag: Popup Fenster beim öffnen von Dateien


Problem

Wenn Sie PDF Dateien aus dem Internet Explorer öffnen wollen, erscheint eine Meldung, ob Sie die Datei bearbeiten oder schreibgeschützt öffnen wollen. Es macht hier natürlich keinen Sinn, da PDF Dateien so wie so nicht bearbeitet werden.

image

In das selbe Schema fällt die Meldung, dass einige Dateien auf dem Computer Schaden anrichten können. Sie erhalten dann die folgende Meldung:

Einige Dateien können auf dem Computer Schaden anrichten. Öffnen Sie die Datei nicht, wenn Ihnen die Dateiinformationen verdächtig vorkommen oder Sie die Herkunft als nicht vertrauenswürdig einstufen.

image

Ursache

Jedes Dokument wird standardmässig mit dem AddOn “SharePoint OpenDocuments Class” geöffnet, was diese Sicherheitswarnung bzw. die Frage nach “Bearbeiten oder Schreibgeschützt” auslöst.

image

Lösung

Um diese Meldungen zu vermeiden, muss man das jeweilige Dateiformat anweisen, NICHT durch dieses AdOn geöffnet zu werden. Dies tut man auf dem Frontend Server (bei Multi-Frontend-Server Szenarios auf jedem Frontend-Server) im 14 Hive.

Navigieren Sie auf dem Frontend-Server zum Pfad: C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\XML

Öffnen Sie die Datei DOCICON.XML und fügen Sie den Dateitypen, welche Sie direkt ohne Meldung öffnen wollen, den folgenden Text hinten an: OpenControl=“”

image

Übrigens: Genau hier geben Sie den Dateiendungen auch ihre ICONS, wenn Sie PDF Dateien oder LNK bzw. URL Dateien freigeben, können Sie hier die Bilder hinterlegen.

  • Bildgrösse 16×16 px
  • Pfad, unter dem die Bilder abgelegt werden: C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\IMAGES

Beachten Sie auch die weiteren Posts, die mit dem PDF Handling auf SharePoint 2010 zusammenspielen:

So long, Samuel

Aus dem Alltag: PDF Dateien Öffnen nicht trotz richtiger WebApp Einstellungen im Browser File Handling


Problem

Wie im letzten Beitrag gezeigt, gibt es eine Web Application Level Einstellung für die Problematik, dass PDF Dateien aus SharePoint 2010 nicht geöffnet werden können. Was aber tun, wenn trotz der richtigen Einstellungen im Browser File Handling immer noch die Meldung kommt, Sie sollen die PDF Datei speichern?

Ursache

Es deutet alles darauf hin, dass SharePoint irgendwo ein Setting hat, welches über das GUI nicht erreicht werden kann. Und genau so ist es. Es gibt ein Listpropperty, welches “BrwoserFileHandling” heisst. Dies kann ebenfalls Strict oder Permissive sein.

Lösung

Setzen Sie das Propperty mittels Powershell:

$web = Get-SpWeb(“http://YourWebSite”)
$list = $web.GetList(“http://YourWebSite/ListName”)
$list.BrowserFileHandling

Danach sehen Sie, ob die Einstellung “Strict” oder “Permissive” ist. Nun stellen Sie sicher, dass die Einstellung “Permissive” ist:

$list.browserfilehandling = “Permissive”
$list.update();

Jetzt sollte aus dieser Bibliothek die PDF Datei direkt öffnen.

Diese Einstellung müsste nun für alle Dokumentenbibliotheken gesetzt werden, wenn es nicht da Power Shell gäbe. Sie haben eine ganze SiteCollection die Sie umstellen wollen? Kein Problem, nutzen Sie diesen Code:

PowerShell
  1. $input = ReadHost „Bitte SiteCollection angeben“;
  2. $lib = ReadHost „Bitte DokLib Name eingeben (z.B. Dokumente):“;
  3. $site = GetSpsite(„$input“);
  4. foreach($web in $site.AllWebs)
  5. {
  6.   foreach($list in $web.lists)
  7.   {
  8.     if($list.title match „$Lib“)
  9.     {
  10.       if($list.browserfilehandling eq „Strict“)
  11.       {
  12.         $bfhold=$list.browserfilehandling;
  13.         $list.browserfilehandling = „Permissive“;
  14.         $list.update();
  15.         WriteHost $web.url, $list,$list.browserfilehandling
  16.       }
  17.     }
  18.   }
  19. }

und hier noch der “Oneliner” für die PS Commandline:

$input = Read-Host „Bitte SiteCollection angeben“;$lib = Read-Host „Bitte DokLib Name eingeben (z.B. Dokumente):“;$site = Get-SpSite(„$input“);foreach($web in $site.AllWebs) {foreach($list in $web.lists){if($list.title -match „$Lib“){if($list.browserfilehandling -eq „Strict“){$bfhold=$list.browserfilehandling;$list.browserfilehandling = „Permissive“;$list.update();Write-Host $web.url, $list,Alt: ,$bfhold, Neu: ,$list.browserfilehandling}}}}

So long, Samuel

Aus dem Alltag: Probleme beim Öffnen von PDF Dateien aus SharePoint 2010


Problem

PDF Dateien können nicht direkt aus dem Browser geöffnet werden, es erscheint eine Meldung, man solle die Datei speichern. (Achtung, bei IE9 bzw. IE8 gibt es Unterschiede in der Darstellung)

image

Ursache

SharePoint ist so eingerichtet, dass Drittanbieter Dateien, also Dateien welche nicht aus dem Microsoft Office System stammen, nicht direkt aus SharePoint 2010 geöffnet werden können. Dies ist eine Webapplikationseinstellung und kann nur vom Administrator geändert werden.

Lösung

Navigieren Sie zur Zentraladministration, dann klicken Sie auf Application Management und dort auf Manage Webapplicatons

image

Klicken Sie die Webapplikaton an, auf welcher Sie die Einstellung ändern möchten und danach auf “General Settings”

image

Von da aus scrollen Sie nach unten, suchen die Einstellung “Browser File Handling” und stellen diese auf “Permissive”

image

Von nun an können Sie PDF Dateien und alle Drittanbieterdateien direkt aus SharePoint 2010 öffnen.

So long, Samuel

Aus dem Alltag: Die Explorer Ansicht verlangt ein Login


Problem

Wenn Sie auf einem Windows Vista, 7 oder 2008 und 2008 R2 Server eine SharePoint Bibliothek in der Explorer Ansicht öffnen wollen, erscheint immer das Login Fenster und fragt nach einer erneuten Authentifizierung, obwohl Sie bereits mit einem berechtigten Benutzer angemeldet sind.

image

image

Voraussetzung für die Explorer Ansicht auf einem 2008 oder 2008 R2 Server ist auch die Desktop Experience, welche als Feature eingeschaltet werden muss. Ohne diese Einstellung werden gar keine Credentials abgefragt. Es geht zwar in diesem Blogpost nicht direkt darum, doch damit keine Missverständnisse entstehen auch noch kurz die Anleitung dazu:

  1. Server Manager öffnen
  2. Auf der linken Seite Features anklicken
  3. Rechts auf Add Feature klicken
    image
  4. Feature “Desktop Experience” hinzufügen
    image

Ursache

Seit Vista bzw. Windows Server 2008 werden bei WebDav die Authentifizierungsinformationen (Credentials) nur an Hostnamen übermittelt, welche keine Punkte im Hostnamen haben. Man geht davon aus, dass innerhalb eines Netzwerkes nicht mit fully qualified domain Namen gearbeitet wird, was nicht immer der Fall ist. Wenn Sie also mit http://mywebsite arbeiten, dann erscheint das Problem nicht. Wenn Sie hingegen mit http://mywebsite.mydomain.ch arbeiten, dann erscheint das Problem.

Lösung

Es gibt nun für dieses Szenario zwei Lösungen:

A: Fügen Sie eine Registry Anpassung durch

In diesem Szenario bestimmen Sie, an welche fully qualified Domain Names WebDav die Credentials mitgeben soll. Achtung: Diese Lösung schliesst Änderungen in der Registry ein, bitte lassen Sie sich ggf. von einem Fachmann beraten, die Anpassungen machen Sie auf eigene Verantwortung. Die Anpassung muss auf jeder Maschine vorgenommen werden, auf welcher Sie über FQDN WebDav machen wollen.

  1. Klicken Sie auf start und geben Sie “regedit” ein
  2. Navigieren Sie zum Knoten HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters
  3. Klicken Sie mit der rechten Maustaste in das Feld mit den Einträgen und klicken Sie auf Neu und dann auf Multi Value
    image
  4. Geben Sie den Wert “AuthForwardServerList” ein und drücken Sie auf Enter
  5. öffnen Sie den Schlüssel mit einem Doppelklick und geben Sie in das Feld alle fully qualified Domain Names ein, auf welche Sie WebDav automatisch öffnen lassen wollen und klicken Sie auf OK
    image
  6. Restarten Sie den Server bzw. den Client auf welchem Sie den Eintrag vorgenommen haben

 

B: Benutzen Sie firmenintern nur einfache Hosteinträge

In diesem Szenario verwenden Sie für interne Aufgaben lediglich die Hostadresse, also http://mywebsite Wollen Sie zu einer fully qualified Adresse eine Hostadresse hinzufügen, so können Sie einen alternativen Zugriffspfad definieren. Tun Sie dies wie folgt:

  1. Öffnen Sie die Zentraladministration
  2. Navigieren Sie zu “Manage web applications”image
  3. Wählen Sie die Webapplikation aus, welche Sie gerne anpassen würden und klicken Sie “Extend”
    image
  4. Geben Sie die Angaben ein, welche für Ihre Webapplikation zutreffen, stellen Sie sicher, dass Sie im Feld “Hostheader” nur “mywebsite” eingeben, ohne http://, das wird später automatisch hinzugefügt. Wählen Sie Port 80 aus, wählen Sie die Authentifizierung (NTLM / Kerberos) und klicken Sie auf OK

Aus dem Alltag: Fehler im Crawllog beim Crawlen von Personen


Problem

Um Personen suchen zu können, müssen Sie den My Site Host mit dem Protokoll sps3://MySiteHost crawlen. Der Crawlaccount erhält über eine Userpolicy Einstellung der Webapplikaton “Read all” Rechte, wodurch ein Zugriff auf den MySite Host gewährleistet wird. Trotz dieser Einstellung erhalten Sie im Crawllog die folgende Fehlermeldung:

Zugriff verweigert, vergewissern Sie sich, dass das Standardkonto für den Inhaltszugriff Zugriff auf dieses Repository hat, oder fügen Sie eine Durchforstungsregel zum durchforsten dieses Repositorys hinzu…
…(HttpStatusCode Unauthorized Fehler bei der Anforderung mit HTTP-Status 401: Unauthorized.)

Crawl Mysite

Ursache

Das Berechtigen des Standardkontos für den Inhaltszugriff auf den MySite Host ist nur der Eine Teil der benötigten Berechtigungen. In SharePoint 2010 muss dieser Account zusätzlich auf die Benutzerprofildienst-Anwendung berechtigt werden.

Lösung

Öffnen Sie die Zentraladministration und klicken Sie auf “Dienstanwendungen verwalten”

image

Finden Sie die Benutzerprofildienst-Anwendung und klicken Sie darauf. ACHTUNG: Klicken Sie nicht auf den Link mit dem Namen, sondern neben dem Link und die Anwendung zu selektieren.

image

Klicken Sie im danach im Ribbon auf “Administratoren”

image

Fügen Sie das Standardkonto für den Inhaltszugriff (Default Content Access Account) hinzu und klicken Sie auf “Hinzufügen”

image

Jetzt können Sie dem Konto das Recht “Personendaten für Suchcrawler abrufen” zuordnen und OK klicken

image

Die Meldung wird danach aus dem Crawllog verschwinden.

So long, Samuel