12
1 Configuration du service de cache sous SharePoint 2013 (v3.24) Tutorial conçu et rédigé par Michel de CREVOISIER - Juillet 2013 SOURCES Distributed cache : Commande PowerShell : source Taille du cache et firewall : source Fonctionnement et architecture : source Planning de déploiement : source Best practices : source Le cache en profondeur : source

Configuration du service de - ftp.cclair.frftp.cclair.fr/Procédures/Activation-et-configuration-du-cache-sous... · Tutorial conçu et rédigé par Michel de ... 3.5Configuration

Embed Size (px)

Citation preview

1

Configuration du service de

cache sous SharePoint 2013

(v3.24)

Tutorial conçu et rédigé par Michel de CREVOISIER - Juillet 2013

SOURCES Distributed cache :

Commande PowerShell : source

Taille du cache et firewall : source

Fonctionnement et architecture : source

Planning de déploiement : source Best practices : source Le cache en profondeur : source

2

INDEX

SOURCES .............................................................................................................................................................. 1

INDEX ................................................................................................................................................................... 2

1. Présentation ................................................................................................................................................ 3

1.1 Modes de fonctionnement .................................................................................................................. 3

1.2 Types de caches ................................................................................................................................... 3

1.3 Autres caches....................................................................................................................................... 4

2. Mise en place .............................................................................................................................................. 5

2.1 Prérequis.............................................................................................................................................. 5

2.2 Comptes de service ............................................................................................................................. 5

2.3 Administration du service .................................................................................................................... 6

3. Configuration .............................................................................................................................................. 7

3.1 Paramètres du cache ........................................................................................................................... 7

3.2 Taille du cache ..................................................................................................................................... 7

3.3 Caches individuels ............................................................................................................................... 8

3.4 Activation des menus de cache ........................................................................................................... 8

3.5 Configuration des caches .................................................................................................................... 8

4. SharePoint : « Review problems and solutions » .................................................................................... 11

4.1 Distributed cache host may cause cache reliability problems .......................................................... 11

4.2 The server farm account should not be used for [Distributed cache] .............................................. 12

4.3 The user does not exist or is not unique ........................................................................................... 12

D’autres tuto en relation avec ce sujet sont également disponibles sur mon blog :

Installation de SharePoint 2013 (tuto)

Configuration de SharePoint 2013 (tuto)

Activation et mise en place de FastSearch 2013 (tuto)

Configuration du service de cache (tuto)

Configuration du service UPS (tuto)

Installation de Reporting Services pour SQL Server 2012 (tuto)

Installation de PowerPivot pour SQL Server 2012 (tuto)

Migration de SharePoint 2010 vers 2013 (tuto)

3

1. Présentation

1.1 Modes de fonctionnement Le service cache de SharePoint repose sur le module « App Fabric Cache » (source). En production, ce service peut être décliné en deux modes de fonctionnement :

Dedicated : le service Distributed Cache est activé et tous les autres services sont arrêtés

Collocated : le service est activé en parallèle d’autres services

1.2 Types de caches SharePoint fournit 4 types de caches afin d’accroître les performances globales des sites (source) :

1.2.1 BLOB cache Ce cache permet d’accélérer le chargement des fichiers utilisés par les pages web. Concrètement, les fichiers appelés (connus sous le nom de BLOB pour Binary Large Objects) sont pré-chargés à partir de la base de données et stockés sur les disques durs des serveurs frontaux. Il peut s’agir de fichiers audio, d’images, de vidéos, ou encore de ficiers « .js » ou « .css ». Par défaut, ce cache est désactivé. Son activation permet de réduire la charge et le trafic des serveurs SQL. Attention, il n’est pas recommandé de l’activer si vous effectuez des modifications fréquentes sur les fichiers (Word, Excel,

…). Référez-vous au point 3.3.1 pour le configurer.

1.2.2 Page output cache profiles Ce cache stocke le rendu des pages ASP.net en mémoire RAM. Il en stocke également les différentes versions selon les permissions attribuées. Par défaut, ce cache est désactivé et peut être activé au niveau d’une collection de sites, d’un sous-site ou d’une page en particulier. Référez-vous au point

3.3.2 pour le configurer. Son activation permet de réduire les échanges avec les serveurs SQL tout

en réduisant la charge des serveurs frontaux étant donné qu’ils n’ont pas besoin de régénérer les pages sollicitées.

1.2.3 Object cache Ce cache permet de réduire le trafic entre les serveurs frontaux et les bases de données en stockant des objets (tels que des librairies ou des listes) en mémoire RAM sur les serveurs frontaux. Il est activé

par défaut au niveau de la collection de sites. Référez-vous au point 3.3.3 pour le configurer.

1.2.4 Anonymous search result cache Ce cache est principalement utilisé pour les sites de publications autorisant les accès anonymes. Il permet de sauvegarder les recherches anonymes des utilisateurs afin de les réutiliser. Il permet d’améliorer les performances sur les sites faisant appel au Content Search Web Part.

4

1.3 Autres caches

1.3.1 Feed cache Bien que non considéré comme un cache principal, le « feed cache » est utilisé par les flux RSS.

Référez-vous au point 3.3.4 pour le configurer.

Information : les « sites feed » (ou RSS) fournissent un moyen facile aux utilisateurs pour se maintenir informé des dernières nouveautés d’un site. Pour fonctionner, il est nécessaire que le site d’équipe utilise le même « User Profil Service » que la Web App « My sites ». Par ailleurs, notez que les RSS sont uniquement disponibles dans les sites d’équipes.

5

2. Mise en place

2.1 Prérequis

Si vous utilisez plusieurs serveurs de cache, vous devrez activer la règle pare-feu ICMPv4 sur votre serveur de cache principal (source) : Set-NetFireWallRule -DisplayName “File and Printer Sharing (Echo request - ICMPv4 - In)” -Enabled True

2.2 Comptes de service

2.2.1 Compte d’exécution du service Par défaut, ce service est exécuté avec le compte Farm. Il convient cependant de changer son compte

(source) afin d’éviter l’alerte du point 4.2 (à exécuter une seule fois pour la ferme) :

$farm = Get-SPFarm $cacheService = $farm.Services | where {$_.Name -eq "AppFabricCachingService"} $accnt = Get-SPManagedAccount -Identity domain\user_name $cacheService.ProcessIdentity.CurrentIdentityType = "SpecificUser" $cacheService.ProcessIdentity.ManagedAccount = $accnt $cacheService.ProcessIdentity.Update() $cacheService.ProcessIdentity.Deploy()

Faites de-même pour le service Search Host Controller en suivant la procédure du point 3.4 de mon

tuto.

2.2.2 Comptes d’accès au cache objet Cette étape n’est pas obligatoire mais elle recommandée en raison des éventuels problèmes avec l’authentification Claims. Par ailleurs, cette configuration permet d’augmenter le nombre de requêtes retournées tout en réduisant la quantité de mémoire nécessaire pour ce service (source). Par défaut, le compte système est assigné au « Portal Super User » et le compte NT Authority\Local Service au « Portal Super Reader ». Pour optimiser ce service, il convient de créer deux d’utilisateurs qui seront par la suite ajoutés dans les Users permissions de la Web Application. Un script est également disponible ici pour automatiser les actions ci-dessous : Attention : l’utilisation d’UPNs n’est pas supportée

Créez vos deux utilisateurs du domaine (si cela n’a pas déjà été fait) o Svc_SP_Cache_Super_User o Svc_SP_Cache_Reader_User

Ajoutez-les dans les « managed accounts »

Exécutez le script ci-dessous : $wa = Get-SPWebApplication -Identity "<WebApplication>" $wa.Properties["portalsuperuseraccount"] = "<domaine\SuperUser>" $wa.Properties["portalsuperreaderaccount"] = "< domaine\SuperReader>" $wa.Update()

6

Affectez les droits suivants sur la WebApp o Portal Super User account : droit Full control o Portal Super User Reader account : droit Full Read only

Effectuez un IISreset sur l’ensemble des serveurs de cache Note : dans les propriétés User Policy de la WebApp, le préfixe des utilisateurs varie selon l’authentification utilisée (« claims » : « i:0#.w|»). Par ailleurs, si vous n’appliquez par les droits

correctement sur votre WebApp, l’erreur du point 4.3 se produira.

2.3 Administration du service

2.3.1 Arrêt / démarrage du service Pour arrêter et désactiver le service (source) : $instanceName ="SPDistributedCacheService Name=AppFabricCachingService" $serviceInstance = Get-SPServiceInstance | ? {($_.service.tostring()) -eq $instanceName -and ($_.server.name) -eq $env:computername} $serviceInstance.Unprovision() Pour démarrer le service : $instanceName ="SPDistributedCacheService Name=AppFabricCachingService" $serviceInstance = Get-SPServiceInstance | ? {($_.service.tostring()) -eq $instanceName -and ($_.server.name) -eq $env:computername} $serviceInstance.Provision()

2.3.2 Intégration d’un membre au cluster Pour intégrer un serveur au cluster ET démarrer le service (source) : Add-SPDistributedCacheServiceInstance

2.3.3 Retrait d’un membre du cluster

Pour des raisons de maintenance, il se peut qu’un serveur de cache soit temporairement retiré du cluster. Pour cela, il est nécessaire de transférer l’ensemble du cache sur un autre serveur. Après quoi, le serveur pourra être retiré du cluster (source) : Stop-SPDistributedCacheServiceInstance -Graceful Remove-SPDistributedCacheServiceInstance Pour réintégrer un serveur au cluster : Add-SPDistributedCacheServiceInstance Important : si ce service est désactivé de façon permanente sur un serveur, il convient de le

supprimer du cluster pour éviter que l’alerte du point 4.1 ne se produise.

7

3. Configuration

3.1 Paramètres du cache Pour connaître les paramètres du cache (source) : Use-CacheCluster Get-AFCacheHostConfiguration -ComputerName <name> -CachePort "22233"

Pour lister les serveurs de cache et obtenir leurs paramètres : Get-AFCacheHostStatus | % { $Status = $_.Status Get-AFCacheHostConfiguration -ComputerName $_.HostName -CachePort $_.PortNo | Add-Member -MemberType NoteProperty -Name 'Status' -Value $Status -PassThru } | Format-List -Property *

3.2 Taille du cache La mémoire allouée au cache est répartie sur l’ensemble des serveurs (cluster) où ledit service est activé. Par défaut, elle occupe 10% de la mémoire disponible. L’image ci-dessous résume ce mode de fonctionnement :

Pour modifier la taille du cache, effectuez sur chacun de vos serveurs de cache un : Stop-SPDistributedCacheServiceInstance et exécutez la commande ci-dessous une seule fois uniquement et relancez le service : Update-SPDistributedCacheSize -CacheSizeInMB <size>

8

3.3 Caches individuels Pour obtenir leurs paramètres : Get-AFCache | % {Get-AFCacheConfiguration -CacheName $_.CacheName} Pour connaître les statistiques de chacun des différents types de caches : Get-AFCache | % { $CacheName = $_.CacheName Get-AFCacheStatistics -CacheName $CacheName | Add-Member -MemberType NoteProperty -Name 'CacheName' -Value $CacheName -PassThru }

3.4 Activation des menus de cache Pour pouvoir administrer et configurer le cache, il est nécessaire d’activer la fonctionnalité Publishing Infrastructure (source). Pour cela : Au niveau de la collection, activez la fonctionnalité SharePoint Server Publishing Infrastructure :

Au niveau du site, activez la fonctionnalité SharePoint Server Publishing :

Une fois ces deux fonctionnalités activées, les menus suivants apparaîtront dans l’aparté Site Collection Adminsitration :

Note : un script est disponible ici pour faciliter l’activation sur plusieurs sites

3.5 Configuration des caches

3.5.1 BLOB cache Pour activer ce cache, éditez le fichier web.config propre à votre Web Application. Après avoir passé le paramètre « enabled » à « true » (ligne <BlobCache location=), spécifiez les informations ci-dessous (source).

9

La taille du cache en Gb (min. 10 Go)

L’emplacement des fichiers

Le type de fichiers à prendre en compte Note : vous devrez modifier manuellement ce fichier sur chacun de vos serveurs frontaux Pour vider le BLOB cache (source) : $webApp = Get-SPWebApplication "<WebApplicationURL>" [Microsoft.SharePoint.Publishing.PublishingCache]::FlushBlobCache($webApp) Write-Host "Flushed the BLOB cache for:" $webApp

3.5.2 Page output cache profiles Pour l’activer au niveau d’une Web Application (source), éditez le fichier web.config en passant le paramètre « useCacheProfileOverrides » à « true ». Attention, si le cache est activé au niveau de la WebApp, les paramètres configurés au sein de l’interface Web n’auront aucun effet. A cet égard, le contenu en gras dans le cadre rouge ci-dessous vous en avertira :

Configuration du cache au niveau du site :

10

3.5.3 Object cache Editez le fichier web.config propre à votre Web Application en modifiant le paramètre ObjectCache maxSize avec la mémoire à allouer en Mb (source). Attention, l’espace indiqué est ensuite réparti selon les collections de sites. Par exemple, vous pouvez allouer 1 Go de cache objet pour la WebApp, et attribuez via l’interface graphique ci-dessous 500 Mo à vos deux collections. D’autres

configurations sont également à effectuer au niveau des comptes de service (point 2.2.2) afin

d’optimiser et sécuriser ce cache.

3.5.4 Feed cache

Utilisez les scripts disponibles ici pour configurer ce cache.

11

4. SharePoint : « Review problems and solutions »

4.1 Distributed cache host may cause cache reliability problems

Ce problème survient suite à l’arrêt du service Distributed cache sur un serveur ne nécessitant par cette fonctionnalité. Solution : ouvrez la console PowerShell de SharePoint et exécutez la commande suivante sur le serveur en question afin de définitivement le « désinscrire » des serveurs de cache (source) : Remove-SPDistributedCacheServiceInstance Par la suite, vous constaterez que le service Distributed cache n’apparaîtra plus dans les Service Applications du serveur.

************

Note : si l’erreur suivante apparaît : A failure occurred in SPDistributedCacheServiceInstance::UnprovisionInternal. cacheHostInfo is null for host 'server_name'

Exécutez le script PowerShell suivant et exécutez à nouveau la première commande : $SPFarm = Get-SPFarm $cacheClusterName = "SPDistributedCacheCluster_" + $SPFarm.Id.ToString() $cacheClusterManager = [Microsoft.SharePoint.DistributedCaching.Utilities.SPDistributedCacheClusterInfoManager]::Local $cacheClusterInfo = $cacheClusterManager.GetSPDistributedCacheClusterInfo($cacheClusterName); $instanceName ="SPDistributedCacheService Name=AppFabricCachingService" $serviceInstance = Get-SPServiceInstance | ? {($_.Service.Tostring()) -eq $instanceName -and ($_.Server.Name) -eq $env:computername} $serviceInstance.Delete()

(source)

12

4.2 The server farm account should not be used for [Distributed cache]

Le compte Farm est utilisé par défaut pour exécuter le service Distributed Cache. Or, il convient de ne pas utiliser ce compte en raison des privilèges élevés dont il dispose. Pour changer le compte

d’exécution de ce service suivez la procédure du point 5.6.4.

4.3 The user does not exist or is not unique

Ce problème est dû à une mauvaise configuration des comptes de cache au niveau de la WebApp.

Pour corriger ce problème, exécutez la procédure du point 2.2.2.

N’hésitez pas à m’envoyer vos commentaires ou retours à l’adresse suivante : m.decrevoisier A-R-0-B-A-5 outlook . com

Soyez-en d’ores et déjà remercié