Informations supplémentaires sur l’équilibrage de charge du service de topologie SharePoint 2010

Ce billet vient en complément de celui créé par Josh Gav sur le blog Beside the Point (http://blogs.msdn.com/b/besidethepoint/archive/2010/12/08/load-balancing-the-sharepoint-2010-topology-service.aspx).  Comme Josh le faisait astucieusement remarquer, le service de topologie est responsable de l’équilibrage de charge des demandes vers divers points de terminaison des applications de service ; toutefois, vous avez besoin d’un élément pour équilibrer la charge du service de topologie lui-même lorsque vous publiez des applications de service vers d’autres batteries.  Par exemple, vous vous connectez généralement à une autre application de service via une URL qui ressemble à https://serverNetBiosName:32844/Topology/topology.svc.  Le problème est bien évidemment que si le « NomNetBiosServeur » ne fonctionne plus, vos serveurs proxy ne pourront plus se connecter pour récupérer l’URL du point de terminaison dont vous avez besoin.

C’est pourquoi il vous faut absolument lire le blog de Josh sur cette rubrique !  Les ajouts effectués ici ne sont que quelques notes auxquelles j’ai pensé en rédigeant cet article.  En ayant tous ces éléments en tête, j’ai adopté la méthode n° 1 décrite par Josh, qui consiste à créer un certificat SSL prenant en charge plusieurs autres noms de l’objet (SAN) et à connecter ce dernier à chaque serveur de ma batterie.  Voici mes remarques :

1.       Créez un certificat SSL avec la prise en charge des noms SAN  sur chaque serveur sur lequel vous voulez créer un nouveau certificat pour SSL.  Ce certificat doit prendre en charge trois noms :   le nom de l’hôte local, le nom NetBIOS du serveur et le nom de l’équilibrage de charge que vous souhaitez utiliser.  Le comportement prédéfini de SharePoint consiste à inclure le nom de l’hôte local et le nom NetBIOS. Dans cet exemple, nous allons suivre la même méthode et nous allons nous contenter d’ajouter le nom de l’équilibrage de charge.

a.       Pour ceux d’entre vous qui testez cette configuration dans un laboratoire et utilisez les services de certificats Active Directory pour publier des certificats, vous pouvez ajouter la prise en charge des noms SAN.  Sur les serveurs exécutant les services de certificats, exécutez la commande suivante à partir d’une invite de commande :

certutil –setreg policy\EditFlags +EDITF_ATTRIBUTESUBJECTALTNAME2

net stop certsvc

net start certsvc

 

Dès que vous exécuterez la première ligne, vous aurez un retour indiquant si la commande a fonctionné ou non.

b.      Démarrez MMC et ajoutez le complément Modèles de certificat (ces actions sont requises sur un serveur exécutant les services de certificats Active Directory).   Cliquez sur le nœud Modèles de certificat pour développer et afficher tous les modèles.  Faites défiler vers le bas et double-cliquez sur le modèle Serveur Web.  Cliquez sur l’onglet Sécurité ; pour les utilisateurs authentifiés, vous devez activer la case à cocher en regard de Inscrire dans la colonne Autoriser, puis enregistrer les modifications.  Tant que vous n’aurez pas effectué ces actions, vous ne pourrez pas poursuivre la procédure.

c.       Consultez l’article suivant pour connaître la procédure de demande d’un certificat, à partir des services de certificats Active Directory, incluant la prise en charge des noms SAN :  http://technet.microsoft.com/en-us/library/ff625722(WS.10).aspx.  Veillez à exécuter cette procédure sur CHAQUE serveur de la batterie exécutant le service Application Web.

2.       Modifiez le certificat SSL pour l’application Web SharePoint Services :  J’ai utilisé un script PowerShell simple extrait du billet de blog de Josh.  Je l’ai inclus dans le fichier zip joint à ce billet.  N’oubliez pas de modifier l’empreinte du certificat et de l’exécuter sur chaque serveur de la batterie exécutant le service Application Web.  Pour simplifier la récupération des empreintes de certificat, j’ai créé un petit outil, appelé GetThumbprints, également inclus dans le fichier zip joint à ce billet.  Il ressemble au magasin de certificats Ordinateur local dans Mes magasins SharePoint.  Si vous souhaitez utiliser cet outil, vérifiez que le certificat que vous créez à l’étape 1 ci-dessus se trouve dans l’un de ces magasins.

3.       Configurez le VIP sur tous les serveurs pour le nom de l’équilibrage de charge :  à l’instar de tout service d’équilibrage de charge, il vous faut une adresse IP virtuelle partagée sur tous les ordinateurs du pool.  Selon la solution de l’équilibrage de charge adoptée, vous pouvez utiliser un VIP existant ou devrez en créer un.  Déterminez ce qui est bon pour votre solution d’équilibrage de charge et déployez au besoin un nouveau VIP.  Dans mon cas, j’utilisais déjà la fonction Équilibrage de charge réseau fournie avec Windows Server pour équilibrer les demandes de contenu des batteries de serveurs. Je me suis donc contenté d’utiliser le même VIP pour l’équilibrage du service de topologie.  Cela signifie que seuls mes serveurs Web principaux récupèreront les demandes des applications de service publiées.

4.       Configurez l’équilibrage de charge et DNS pour le nom de l’équilibrage de charge :  vous devez déjà disposer d’une solution d’équilibrage de charge si vous évoluez dans une batterie de plusieurs serveurs.  Configurez le nom d’équilibrage de charge pour le service de topologie dans votre équilibrage de charge.  Comme je l’utilisais déjà, tout ce que j’ai dû faire a été de créer un enregistrement Alias (A) dans DNS pour le nom du service de topologie d’équilibrage de charge ; pour l’adresse, je lui ai donné le VIP que j’utilisais pour les demandes Web d’équilibrage de charge vers la batterie de serveurs.

5.       Configurez l’URL d’équilibrage de charge pour le service de topologie SharePoint :  cette configuration est plus efficace en deux étapes :

a.       Récupérez d’abord les informations du service de topologie en exécutant Get-SPTopologyServiceApplication dans PowerShell.  L’ID du service ainsi que l’URL d’équilibrage de charge actuel s’affichent alors.

b.      Exécutez la commande Set-SPTopologyServiceApplication -LoadBalancerUrl <nom équilibrage de charge> ; veillez à respecter les conseils donnés à ce sujet dans l’article de Josh.  PowerShell vous demande l’identité du service de topologie.  C’est à cet endroit que vous pouvez copier l’ID affiché lorsque vous avez exécuté Get-SPTopologyServiceApplication à l’étape précédente.

6.       Publiez votre application de service :  rien à signaler de particulier sur ce point.  Veillez à appliquer à la lettre la procédure décrite dans l’article Partager des applications de service dans une batterie de serveurs à l’adresse http://technet.microsoft.com/en-us/library/ff621100.aspx.   Même si vous avez déjà publié et utilisé des applications de service entre des batteries de serveurs, n’oubliez pas d’accorder au moins le droit d’accès Contrôle total à votre batterie distante dans les Autorisations relatives aux applications de service publiées, faute de quoi des messages d’erreur de refus d’accès s’afficheront.

7.       Utilisez l’application de service publiée :  rien de particulier à signaler là non plus ; appliquez simplement la procédure décrite dans cet article.

Ces informations devraient être suffisantes pour vous permettre de travailler.  Je vous recommande de commencer par un scénario simple, comme la publication et l’utilisation d’une application de service de recherche.  Il sera alors plus facile d’exécuter une requête que vous connaissez pour récupérer un document spécifique et l’essayer dans votre batterie d’abonnés.

De nouveau, un grand merci à Josh pour son article qui devrait être utile à bon nombre d’entre vous.

Ce billet de blog a été traduit de l’anglais. L’article d’origine est disponible à la page Additional Info on Load Balancing the SharePoint 2010 Topology Service.