Asesores

Los asesores son agentes Load Balancer. Su finalidad es evaluar el estado y la carga de las máquinas servidor. Esto lo llevan a cabo con un intercambio parecido a los clientes proactivos con los servidores. Los asesores se consideran como clientes ligeros de los servidores de aplicaciones.

El producto proporciona varios asesores específicos de protocolo para la mayoría de los protocolos más utilizados. No obstante, no tiene sentido utilizar todos los asesores proporcionados con cada componente de Load Balancer. (Por ejemplo, no utilice el asesor Telnet con el componente CBR). Load Balancer también soporta el concepto de "asesor personalizado" que permite a los usuarios escribir sus propios asesores.

Limitación en la utilización de aplicaciones de servidor específicas de enlace: Para poder utilizar asesores en servidores específicos del enlace, inicie dos instancias del servidor: una instancia para enlazar el clúster:puerto y la otra instancia para enlazar en servidor:puerto. Para determinar si el servidor es específico del enlace, emita el mandato netstat -an y busque server:port. Si el servidor no es específico del enlace, el resultado del mandato será 0.0.0.0:80. Si el servidor es específico del enlace, verá una dirección parecida a 192.168.15.103:80.

Para sistemas HP-UX y Solaris, limitación en la utilización de aplicaciones de servidor específicas de enlace: Si utiliza el mandato arp publish en lugar del mandato ifconfig alias, Load Balancer dará soporte al uso de asesores cuando los servidores que realizan el equilibrio de carga con aplicaciones de servidores específicos del enlace (incluidos otros componentes de Load Balancer, como CBR o Site Selector) cuando están enlazados a la dirección IP del clúster. Sin embargo, cuando se utilizan asesores en aplicaciones de servidor específicas de enlace, no coloque Load Balancer en la misma máquina que la aplicación de servidor.

Nota:
Cuando Load Balancer se está ejecutando en un sistema con varias tarjetas de adaptador de red y desea que el tráfico del asesor circule por un adaptador concreto, puede forzar la dirección IP de origen de los paquetes de forma que sea una dirección concreta. Para forzar que la dirección de origen de paquetes del asesor sea una dirección concreta, añada la siguiente línea java...SRV_XXXConfigServer... en el archivo script (dsserver, cbrserver o ssserver) de inicio de Load Balancer adecuado.
-DLB_ADV_SRC_ADDR=dirección_IP

Cómo funcionan los asesores

Los asesores abren periódicamente una conexión TCP con cada servidor y envían un mensaje de solicitud al servidor. El contenido del mensaje es específico para el protocolo que se ejecuta en el servidor. Por ejemplo, el asesor HTTP envía una solicitud HTTP "HEAD" al servidor.

Los asesores están a la escucha de la respuesta del servidor. Después de obtener la respuesta, el asesor realiza una evaluación del servidor. Para calcular este valor de "carga", la mayoría de los asesores estiman el tiempo que el servidor tarda en responder y luego utilizan este valor (en milisegundos) como carga.

A continuación, los asesores notifican el valor de carga a la función de gestor, donde aparece en el informe de gestor en la columna "Puerto". Luego, el gestor calcula los valores de peso total de todas las fuentes, según sus proporciones y establece estos valores en la función del ejecutor. El ejecutor utilizará estos valores para realizar el equilibrio de carga de nuevas conexiones de cliente entrantes.

Si el asesor determina que un servidor está activo y funciona, notificará al gestor un número de carga positivo distinto de cero. Si el asesor determina que un servidor no está activo, devolverá un valor de carga especial de uno negativo (-1). El gestor y el ejecutor no reenviarán conexiones adicionales a dicho servidor hasta que el servidor vuelva a estar de activo.

Nota:
Antes de enviar el mensaje de solicitud inicial, el asesor emitirá el mandato ping al servidor. Esto proporcionará rápidamente el estado para determinar si la máquina está en línea. Una vez que el servidor responda al mandato ping, no se enviarán más mandatos ping. Para inhabilitar el envío de mandatos ping, añada -DLB_ADV_NO_PING al archivo script de inicio de Load Balancer.

Inicio y detención de un asesor

Si lo desea, puede iniciar un asesor para un puerto concreto de todos los clústeres (asesor de grupo). O bien, puede optar por ejecutar distintos asesores en el mismo puerto, pero en distintos clústeres (asesor específico del clúster/sitio). Por ejemplo, si Load Balancer está definido con tres clústeres (clústerA, clústerB, clústerC), cada uno de los cuales tiene el puerto 80, puede realizar lo siguiente:

Si utiliza el ejemplo de configuración anterior para el asesor de grupo, puede decidir detener el asesor personalizado ADV_personalizado para el puerto 80 en sólo uno de los clústeres o en ambos (clústerB y clústerC).

Intervalos de asesor

Nota:
Los valores predeterminados del asesor deben funcionar de forma eficaz para la gran mayoría de casos posibles. Tenga cuidado al especificar valores distintos a los valores predeterminados.

El intervalo del asesor establece la frecuencia con la que un asesor solicita el estado de los servidores en el puerto que está supervisando y, a continuación, notifica los resultados al gestor. Si el intervalo del asesor es demasiado bajo, puede suponer un bajo rendimiento como resultado de que el asesor interrumpe constantemente a los servidores. Si el valor de intervalo del asesor es demasiado alto, puede indicar que las decisiones del gestor sobre la ponderación no se basan en información actualizada y precisa.

Por ejemplo, para establecer el intervalo en 3 segundos para el asesor HTTP para el puerto 80, escriba el siguiente mandato:

  dscontrol advisor interval http 80 3

No tiene sentido especificar un intervalo de asesor más pequeño que el intervalo del gestor. El valor predeterminado del intervalo del asesor son siete segundos.

Tiempo de espera de informe del asesor

Para asegurarse de que el gestor no utiliza información desfasada en sus decisiones de equilibrio de carga, el gestor no utilizará información procedente del asesor cuya indicación de la hora sea anterior a la hora establecida en el tiempo de espera de informe del asesor. El tiempo de espera de informe del asesor debe ser mayor que el intervalo de sondeo del asesor. Si el tiempo de espera es más pequeño, el asesor ignorará informes que en buena lógica deberían utilizarse. De manera predeterminada, los informes de asesor no exceden el tiempo de espera — el valor predeterminado es ilimitado.

Por ejemplo, para establecer el tiempo de espera de informe del asesor en 30 segundos para el asesor HTTP para el puerto 80, escriba el siguiente mandato:

dscontrol advisor timeout http 80 30 

Para obtener más información sobre cómo establecer el tiempo de espera de informe de asesor, consulte dscontrol advisor — controlar el asesor.

Tiempo de espera de conexión y recepción del asesor para los servidores

Para Load Balancer, puede establecer los valores de tiempo de espera del asesor en los que éste detecta que un puerto determinado del servidor (un servicio) ha sufrido una anomalía. Los valores de tiempo de espera del servidor anómalo (connecttimeout y receivetimeout) determinan cuánto tiempo espera un asesor antes de informar que se ha producido una anomalía en una conexión o recepción.

Para obtener la detección más rápida de servidor anómalo, establezca los tiempos de espera de conexión y recepción de asesor en el valor más pequeño (un segundo) y establezca el intervalo de tiempo de asesor y gestor en el valor más pequeño (un segundo).

Nota:
Si el volumen de tráfico de la red oscila entre moderado a alto y la respuesta del servidor aumenta, no establezca los valores timeoutconnect y timeoutreceive demasiado bajos o el asesor podría marcar prematuramente un servidor ocupado como anómalo.

Por ejemplo, para establecer connecttimeout y receivetimeout en 9 segundos para el asesor HTTP en el puerto 80, escriba el siguiente mandato:

dscontrol advisor connecttimeout http 80 9
dscontrol advisor receivetimeout http 80 9  

El valor predeterminado para el tiempo de espera de conexión y recepción es 3 veces el valor especificado para el tiempo de intervalo del asesor.

Reintento del asesor

Los asesores tienen la capacidad de reintentar una conexión antes de marcar un servidor como inactivo. El asesor no marcará un servidor como inactivo hasta que la consulta del servidor haya fallado el número de reintentos más 1. El valor de retry no debe ser mayor que 3. El siguiente mandato establece un valor de reintento de 2 para el asesor LDAP en el puerto 389:

dscontrol advisor retry ldap 389 2

Lista de asesores

Configuración del asesor HTTP o HTTPS utilizando la opción de solicitud y respuesta (URL)

La opción URL para el asesor HTTP o HTTPS está disponible para los componentes Dispatcher y CBR.

Después de haber iniciado un asesor HTTP o HTTPS, puede definir una serie URL HTTP de cliente exclusiva, específica para el servicio que desea consultar en el servidor. Esto permite que el asesor evalúe el estado de servicios individuales dentro de un servidor. Para hacerlo, defina los servidores lógicos con nombres de servidor exclusivos que tengan la misma dirección IP física. Consulte Creación de particiones del servidor: servidores lógicos configurados con un servidor físico (dirección IP) para obtener más información.

Para cada servidor lógico definido bajo el puerto HTTP, puede especificar una serie URL HTTP de cliente exclusiva, específica para el servicio que desea examinar en el servidor. El asesor HTTP o HTTPS utiliza la serie advisorrequest para consultar el estado de los servidores. El valor predeterminado es HEAD / HTTP/1.0. La serie advisorresponse es la respuesta en la que el asesor busca la respuesta HTTP. El asesor utiliza la serie advisorresponse y la compara con la respuesta real que se recibe del servidor. El valor predeterminado es null.

Importante: si la serie URL de HTTP incluye un espacio en blanco:

Cuando cree la solicitud que el asesor HTTP o HTTPS envía a los servidores de fondo para comprobar si están funcionando, escriba el comienzo de la solicitud HTTP y Load Balancer completará el final de la solicitud con lo siguiente:

\r\nAccept:
*/*\r\nUser-Agent:IBM_Load_Balanacer_HTTP_Advisor\r\n\r\n 

Si desea añadir otros campos de cabecera HTTP antes de que Load Balancer añada esta serie al final de la solicitud, puede hacerlo incluyendo su propia serie \r\n en la solicitud. A continuación se muestra un ejemplo de lo que podría escribir para añadir el campo de cabecera de host HTTP a la solicitud:

GET /pub/WWW/TheProject.html HTTP/1.0 \r\nHost: www.w3.org
Nota:
Después de iniciar un asesor HTTP o HTTPS para un número de puerto HTTP especificado, se habilita el valor de solicitud y respuesta de asesor para los servidores bajo dicho puerto HTTP.

Consulte dscontrol server — configurar servidores para obtener más información.

Utilización de asesor automático en una configuración WAN de dos niveles

El asesor automático está disponible en el componente Dispatcher.

Para Load Balancer, en una configuración de WAN (red de área amplia) de dos niveles, Dispatcher proporciona un asesor automático que recopila información de estado de carga en servidores de programa de fondo.

Figura 31. Ejemplo de configuración WAN de dos niveles utilizando el asesor automático
Configuración WAN de dos niveles utilizando el asesor automático

En este ejemplo, el asesor automático junto con Metric Server reside en las dos máquinas Dispatcher cuya carga está siendo equilibrada por el Load Balancer de nivel superior. El asesor automático mide automáticamente el índice de conexiones por segundo en los servidores de programa de fondo de Dispatcher en el nivel del ejecutor.

El asesor automático escribe los resultados en el archivo dsloadstat. Load Balancer también proporciona una métrica externa denominada dsload. El agente de Metric Server de cada máquina Dispatcher ejecuta su configuración que llama al dsload de métrica externa. El script dsload extrae una serie del archivo dsloadstat y la devuelve al agente de Metric Server. Posteriormente, cada uno de los agentes de Metric Server (de cada uno de los Dispatcher) devuelve el valor de estado de carga al Load Balancer de nivel superior para utilizarlo al determinar a qué Dispatcher se deben reenviar las solicitudes de cliente.

El ejecutable dsload reside en el directorio siguiente:

Consulte el apartado Configurar soporte de Dispatcher de área amplia para más información sobre la utilización de Dispatcher en configuraciones WAN. Consulte Metric Server para obtener más información sobre Metric Server.