Información adicional sobre el equilibrio de carga del servicio de topología de SharePoint 2010

Esta entrada de blog es básicamente un complemento a la excelente entrada que publicó JoshGav en el blog titulado "Beside the Point" (Nada que ver) en http://blogs.msdn.com/b/besidethepoint/archive/2010/12/08/load-balancing-the-sharepoint-2010-topology-service.aspx.  Tal como Josh señala allí astutamente, el servicio de topología es responsable de equilibrar la carga de las solicitudes a diferentes extremos de las aplicaciones de servicio; no obstante, se necesita algo para equilibrar la carga del servicio de topología cuando se publican aplicaciones de servicio en otros conjuntos o granjas de servidores.  Por ejemplo, la conexión a otra aplicación de servicio se realiza normalmente a través de una dirección URL similar a https://serverNetBiosName:32844/Topology/topology.svc.  Naturalmente, el problema es que si “serverNetBiosName” deja de funcionar, los servidores proxy no podrán conectarse para obtener la dirección URL del extremo de servicio que necesita.

Ante todo, le recomiendo que lea el blog de Josh sobre este tema.  En esta entrada simplemente agregaré algunas notas sobre mi experiencia durante la configuración.  Con ese criterio, seguí el enfoque 1 que describió Josh, que consiste en crear un nuevo certificado SSL con varios nombres alternativos de asunto (SAN) e incluirlo en todos los servidores de la granja de servidores.  Estas son mis notas:

1.       Cree un nuevo certificado SSL compatible con SAN  en cada servidor donde desee crear un nuevo certificado SSL.  Debe admitir tres nombres:   localhost, el nombre NetBIOS del servidor y el nombre de carga equilibrada que desee usar.  El comportamiento estándar en SharePoint es incluir el nombre localhost y el nombre NetBIOS. Por lo tanto, seguimos el mismo enfoque aquí y simplemente agregamos el nombre de carga equilibrada adicional.

a.       Si prueba esto en un laboratorio usando Servicios de certificados de Active Directory para emitir certificados, puede configurarlo para que admita nombres SAN.  En los servidores que ejecutan servicios de certificados, ejecute lo siguiente desde un símbolo del sistema:

certutil –setreg policy\EditFlags +EDITF_ATTRIBUTESUBJECTALTNAME2

net stop certsvc

net start certsvc

 

Al ejecutar la primera línea, recibirá comentarios que le indicarán si funcionó o no.

b.      Inicie un MMC y agregue el complemento Plantillas de certificado (esto debe hacerse en un servidor que ejecute Servicios de certificados de Active Directory).   Haga clic en el nodo Plantillas de certificado para expandirlo y ver todas las plantillas.  Desplácese hacia abajo hasta la parte inferior y haga doble clic en la plantilla Servidor web.  Haga clic en la pestaña Seguridad. Para Usuarios autenticados, active la casilla de verificación situada junto a Inscribirse en la columna Permitir y, a continuación, guarde los cambios.  Hasta que no lo haga, no podrá seguir las instrucciones del paso siguiente.

c.       Vea el artículo siguiente para obtener instrucciones detalladas para solicitar un certificado de Servicios de certificados de Active Directory que sea compatible con SAN:  http://technet.microsoft.com/en-us/library/ff625722(WS.10).aspx.  Recuerde que debe hacer esto en TODOS los servidores de la granja de servidores que ejecuta el servicio de aplicación web.

2.       Cambie el certificado SSL para la aplicación web de SharePoint Services:  Yo usé un simple script de PowerShell, que básicamente tomé de la entrada de blog de Josh.  He incluido el script en el archivo ZIP que se adjunta a esta entrada.  Recuerde que deberá cambiar la huella digital del certificado y ejecutarlo en todos los servidores de la granja de servidores que esté ejecutando el servicio de aplicación web.  Para que fuera más fácil extraer las huellas digitales de certificados, creé una pequeña herramienta llamada GetThumbprints que también incluí en el archivo ZIP que se adjunta a esta entrada.  Simplemente busca en el almacén de certificados del equipo local en Mi almacén y los almacenes de SharePoint.  Asegúrese de que el certificado que creó en el paso 1 anterior se encuentra en uno de estos almacenes si desea usar esta herramienta.

3.       Configure la dirección VIP en todos los servidores para el nombre de carga equilibrada:  al igual que con cualquier servicio de carga equilibrada, necesitará una dirección IP virtual que compartan todas las máquinas del grupo.  Según la solución de equilibrio de carga que use, es posible que pueda usar una dirección VIP existente o quizá tenga que crear una nueva.  Determine cuál es la opción adecuada para su solución de equilibrio de carga e implemente una nueva dirección VIP si es necesario.  En mi caso, ya estaba usando el equilibrio de carga de red que incluye Windows Server para equilibrar las solicitudes de contenido de la granja de servidores, por lo que simplemente usé la misma dirección VIP para equilibrar el servicio de topología.  Esto significa que en mi caso solo los servidores front-end web recibirán las solicitudes para las aplicaciones de servicio publicadas.

4.       Configure el equilibrador de carga y DNS para el nombre de carga equilibrada:  ya debería tener algún tipo de solución de equilibrio de carga si usa una granja de servidores de varios servidores.  Configure el nombre de carga equilibrada para el servicio de topología en el equilibrador de carga.  Como yo ya lo estaba usando, lo único que tuve que hacer fue crear un nuevo registro de alias (A) en DNS para mi nombre de servicio de topología de carga equilibrada; en cuanto a la dirección, simplemente le di la misma dirección VIP que usé para equilibrar la carga de las solicitudes web a la granja de servidores.

5.       Configure la dirección URL de carga equilibrada para el servicio de topología de SharePoint;  es conveniente hacerlo en dos pasos:

a.       Primero, obtenga la información del servicio de topología ejecutando Get-SPTopologyServiceApplication en PowerShell.  Se mostrará el identificador del servicio, así como la dirección URL de carga equilibrada actual.

b.      Ejecute el comando Set-SPTopologyServiceApplication -LoadBalancerUrl <nombre de carga equilibrada>; asegúrese de seguir las sugerencias del artículo de Josh sobre este tema.  PowerShell regresará y le pedirá la identidad del servicio de topología.  En este momento puede copiar el identificador que se mostró cuando ejecutó Get-SPTopologyServiceApplication en el paso anterior.

6.       Publique la aplicación de servicio:  aquí no hay realmente nada importante que agregar.  Ante todo, asegúrese de SEGUIR TODOS LOS PASOS que se tratan en el artículo sobre el uso compartido de aplicaciones de servicio entre granjas de servidores en http://technet.microsoft.com/en-us/library/ff621100.aspx.   Aunque ya haya publicado y consumido aplicaciones de servicio entre granjas de servidores, recuerde al menos conceder a la granja de servidores remota permisos de Control total en la aplicación de servicio publicada, ya que de lo contrario recibirá mensajes de error de acceso denegado.

7.       Consuma la aplicación de servicio publicada:  no tengo nada que agregar aquí, aparte de la misma advertencia que en la nota anterior: asegúrese de seguir los pasos de dicho artículo al pie de la letra.

Con esto debería tener suficiente como para empezar.  Le recomiendo empezar con un escenario más fácil de validar en primer lugar, como, por ejemplo, publicar y consumir una aplicación de servicio de búsqueda.  Después, le resultará bastante sencillo ejecutar una consulta que sepa que debe devolver un documento específico e intentarlo en la granja de servidores de suscripción.

Una vez más, muchas gracias a Josh por el artículo que publicó, que contiene lo más importante. Esta entrada es simplemente para aclarar algunas cosas en más detalle.

Esta entrada de blog es una traducción. Puede encontrar el artículo original en Additional Info on Load Balancing the SharePoint 2010 Topology Service