Sun Cluster para el sistema operativo Solaris: Visión general

Servicios de datos escalables

El objetivo principal de la conexión en red por clúster es ofrecer escalabilidad a los servicios de datos. Esto significa que a medida que aumente la carga ofrecida a un servicio, éste pueda mantener un tiempo de respuesta constante frente a este aumento de carga de trabajo según se vayan añadiendo nodos nuevos al clúster y se ejecuten instancias nuevas de servidores. Un buen ejemplo es un servicio web. Normalmente, un servicio de datos escalable se compone de varias instancias cada una de las cuales se ejecuta en distintos nodos del clúster. Cuando están juntas, estas instancias se comportan como un único servicio de un cliente remoto de ese servicio e implementa la funcionalidad del servicio. Un servicio web escalable con varios daemons httpd que se ejecuten en varios nodos puede hacer que cualquier daemon atienda las peticiones de un cliente. El que sirve la solicitud depende de una norma de equilibrio de cargas. La respuesta al cliente parece provenir del servicio, no del daemon concreto que atendió la petición, preservando así la apariencia de servicio individual.

La figura siguiente muestra la arquitectura de servicio escalable.

Figura 3–3 Arquitectura de servicio de datos escalable

Ilustración: Una solicitud de servicio de datos que se ejecuta en varios nodos.

Los nodos que no alojan la interfaz global (nodos delegados) tienen la dirección compartida alojada en sus interfaces de bucle. Los paquetes que se reciben en la interfaz global se distribuyen en otros nodos del clúster, basándose en las normas configurables de equilibrio de cargas. Las normas de equilibrio de cargas posibles se describen a continuación.

Normas de equilibrio de cargas

El equilibrio de cargas mejora el rendimiento del servicio escalable, tanto en tiempo de respuesta como en rendimiento.

Hay dos clases de servicios de datos escalables: puros y adosados. Un servicio puro es aquel donde una instancia puede responder a peticiones de clientes sin restricciones. Un servicio adosado tiene al clúster equilibrando la carga en las solicitudes al nodo. Estas peticiones no se redirigen a otras instancias.

Un servicio puro usa una política de equilibrio de cargas ponderada bajo la cual, predeterminadamente, las peticiones de los clientes se distribuyen de manera uniforme entre las instancias del servidor en el clúster. Por ejemplo, en un clúster de tres nodos donde cada uno tenga el peso de 1, cada nodo atiende a un tercio de las solicitudes de cualquier cliente en nombre de ese servicio. Los pesos se pueden cambiar en cualquier momento mediante la interfaz de la orden scrgadm(1M) o mediante la interfaz de SunPlex Manager.

Un servicio adosado tiene dos tipos: servicio adosado normal y servicio adosado comodín. Ambos permiten que sesiones simultáneas de aplicación a través de varias conexiones TCP compartan el estado de la memoria (estado de la sesión de aplicación).

Los normales permiten a un cliente compartir el estado entre varias conexiones TCP simultáneas. Se considera que el cliente es “adosado” con respecto a la instancia del servidor que recibe en un único puerto. Al cliente se le garantiza que todas sus solicitudes vayan a la misma instancia del servidor, siempre que ésta permanezca activa y accesible y que la política de equilibrio de cargas no cambie mientras el servicio esté en línea.

Los servicios adosados comodín usan números de puerto asignados dinámicamente, pero siguen esperando que las peticiones de clientes vayan al mismo nodo. El cliente está “adosado con comodín” a los puertos con respecto a la misma dirección IP.