Introducción: clústeres

Los clústeres son grupos de servidores que se gestionan en conjunto y que participan en la gestión de las cargas de trabajo. Un clúster puede contener nodos o servidores de aplicaciones individuales. Un nodo corresponde generalmente a un sistema físico que posee una dirección de host IP exclusiva y que ejecuta uno o más servidores de aplicaciones. Los clústeres pueden agruparse bajo la configuración de una celda, que asocia lógicamente muchos servidores y clústeres con diversas configuraciones y aplicaciones entre sí dependiendo del criterio del administrador y lo que considere oportuno para el entorno de su organización.

Los clústeres son responsables del equilibro del flujo de trabajo entre servidores. Los servidores que forman parte de un clúster se denominan miembros del clúster. Cuando instala una aplicación en un clúster, la aplicación se instala automáticamente en cada miembro del clúster. Puede configurar un clúster para que haya equilibrio de la carga de trabajo con la integración del servicio o los beans controlados por mensajes en el servidor de aplicaciones.

Opciones del proceso de inicio de un clúster

El proceso normal de ejecución inicia automáticamente todos los componentes del servidor durante el proceso de inicio del servidor. Este proceso se aplica a todos los servidores, incluidos los que son parte de un clúster. No obstante, puede configurar los servidores, incluidos los que son miembros de un clúster, de forma que no todos los componentes del servidor se inicien durante el proceso de inicio del servidor. Esta prestación permite que el servidor consuma los recursos cuando sean necesarios, así proporciona un espacio reducido y más manejable y normalmente produce una mejora del rendimiento.

Cuando configura miembros de un clúster de forma que no todos los componentes miembros del clúster se inician cuando se inicia el clúster o un miembro del clúster determinado, los componentes miembros del clúster se inician dinámicamente cuando son necesarios. Por ejemplo, si se inicia un módulo de aplicación que requiere un componente de servidor determinado, dicho componente se inicia dinámicamente.

Clústeres y grupos de nodos

Las aplicaciones que instale en un clúster deben poder ejecutarse en cualquier servidor de aplicaciones que sea miembro de ese clúster. Dado que un grupo de nodos forma los límites de un clúster, todos los miembros de un clúster deben ser miembros del mismo grupo de nodos. Por consiguiente, para que la aplicación desplegada se ejecute correctamente, todos los miembros de un clúster deben encontrarse en nodos que cumplan los requisitos de dicha aplicación.

En una célula que tiene muchas configuraciones de servidor distintas, puede ser difícil determinar qué nodos pueden albergar la aplicación. Un grupo de nodos puede utilizarse para definir grupos de nodos que tienen suficiente en común como para albergar miembros de un clúster determinado. Todos los miembros de un clúster deben estar en el mismo grupo de nodos.

Todos los nodos son miembros de al menos un grupo de nodos. Al crear un clúster, el primer servidor de aplicaciones que se añade a dicho clúster define el grupo de nodos en el que deben residir los demás miembros de clúster. Todos los otros miembros de clúster que añade al clúster sólo pueden estar en nodos que sean miembros de este mismo grupo de nodos. Cuando crea un nuevo miembro de clúster en la consola administrativa, sólo puede crear el servidor de aplicaciones en un nodo que sea miembro del grupo de nodos para ese clúster.

Los nodos pueden ser miembros de varios grupos de nodos. Si el primer miembro que añade a un clúster tiene definidos varios grupos de nodos, el sistema selecciona automáticamente el grupo de nodos que enlaza con el clúster. Puede cambiar el grupo de nodos modificando los valores del clúster. Utilice la página Valores de clúster de servidores para cambiar el grupo de nodos.

Clústeres y grupos principales

En un entorno de alta disponibilidad, un grupo de clústeres puede definirse como grupo principal. Todos los servidores de aplicaciones definidos como miembros de uno de los clústeres incluidos en un grupo principal pasan automáticamente a ser miembros de dicho grupo principal. Los servidores de aplicaciones individuales que no son miembros de un clúster también se pueden definir como miembros de un grupo principal. El uso de grupos principales permite que WebSphere® Application Server proporcione una alta disponibilidad para las aplicaciones que siempre deben estar disponibles para los usuarios finales. También puede configurar grupos principales para comunicarse entre sí mediante el puente de grupo principal. Los grupos principales pueden comunicarse dentro de la misma célula o entre células.

Miembros del clúster

Puede mejorar el rendimiento del sistema si configura cada miembro de clúster de forma que cada uno de sus componentes se inicie dinámicamente cuando sea necesario en vez de dejar que todos estos componentes se inicien automáticamente al iniciarse el miembro de clúster. Si se selecciona esta opción se puede mejorar el tiempo de inicio del clúster y reducir la cantidad de memoria que utilizan los miembros de clúster. Iniciar los componentes cuando son necesarios es más eficaz si todas las aplicaciones que están desplegadas en el clúster son del mismo tipo. Por ejemplo, esta opción resulta más eficiente si todas las aplicaciones son aplicaciones web que utilizan servlets y JSP (JavaServer Pages). Esta opción funciona de forma menos eficaz si las aplicaciones utilizan servlets, JSP y Enterprise JavaBeans (EJB).

Evitar problemas: Si tiene clientes que se ejecutan en un entorno:
  • Esto incluye clientes ligeros Java™ ,
  • Que precisan que se direccionen entre varias células o
  • Que precisan que se direccionen entre una única célula que incluye nodos de versiones anteriores del producto,
es probable que de repente se encuentren en una situación en que la información del puerto sobre los miembros del clúster de destino ya esté obsoleta.

Esta situación se suele producir cuando todos los miembros de clúster tienen puertos dinámicos y se han reiniciado durante un periodo de tiempo en el que no se han enviado solicitudes. El proceso de cliente en este estado intentará finalmente direccionar al agente de nodo para recibir los datos de puerto nuevos para los miembros de clúster y luego utilizará esos datos de puerto nuevos para volver a direccionar a los miembros de clúster.

Si ocurriera algún problema que impidiera al cliente comunicarse con el agente de nodo o que impidiera que los datos de puerto nuevos se propagaran entre los miembros de clúster y el agente de nodo, podrían producirse anomalías de solicitud en el cliente. En algunos casos, estas anomalías son temporales. En otros casos tendrá que reiniciar uno o varios procesos para resolver una anomalía.

Para salvar los problemas de direccionamiento en el cliente que podrían surgir en estos casos, puede configurar puertos estáticos en los miembros de clúster. Con los puertos estáticos, los datos de puerto no cambian dado que un proceso de cliente obtiene información sobre los miembros de clúster. Aun cuando se reinicien los miembros de clúster o haya problemas de comunicación o propagación de datos entre procesos, los datos de puerto que el cliente mantiene siguen siendo válidos. Esta solución no soluciona necesariamente los problemas de propagación de datos o de comunicación subyacentes, pero elimina los síntomas de decisiones de direccionamiento del cliente inesperadas o descompensadas.