lunes, 23 de junio de 2008

CLUSTER EN WINDOWS

Estaba ojeando una revista en el cual un articulo me llamo la antencion, asi que aqui se los dejo.


CLUSTER EN WINDOWS


En el mundo de la investigación y los negocios cada vez se necesita más capacidad de procesamiento, más disponibilidad y más flexibilidad geográfica. La utilización de Clusters es la respuesta a estos desafíos tecnológicos.

Autor: Ing. Marisabel Rodríguez Bilardo


Un Cluster es un grupo de computadoras que trabajan juntas para ejecutar un conjunto de aplicaciones y verse como un sistema único desde el punto de vista de los clientes.


La razón principal por la cual las organizaciones usan Clusters es proveer disponibilidad e integridad de datos y reducir los costos asociados con los momentos en los cuales no se presta servicio por alguna falla. Estos costos están relacionados con la pérdida de productividad de los usuarios o pérdidas de oportunidades de negocios. Si se ofrece un SLA (Service Level Agreement) a los clientes y no se puede cumplir porque hay mucho tiempo durante el cual no se presta servicio, los costos pueden ser más tangibles todavía.


Desafortunadamente, cumplir las necesidades de los servidores para brindar alta disponibilidad es una tarea difícil porque conlleva costos altos de software y entrenamiento del personal, administración, mantenimiento, limitaciones geográficas y de confiabilidad. Por mucho tiempo las soluciones de Clusters tuvieron bastante resistencia entre los usuarios justamente por los altos costos de hardware y de mantenimiento, además de toda la complejidad que agrega al esquema de servidores.


Hoy la tecnología de Clusters en Windows 2003 está lo suficientemente madura como para solucionar todos estos problemas.La familia de Windows 2003 brinda dos tipos de servicios de Cluster, "Server Cluster" y "Network Load Balancing".


El Cluster de alta disponibilidad al que llamaremos “Server Cluster” es aquél en el cual un grupo de servidores trabajan en conjunto y en el caso en que uno de ellos deje de funcionar, otro toma el trabajo que ese estaba realizando y continúa con la actividad sin que se produzcan interrupciones. La segunda forma, "Network Load Balancing", es a grandes rasgos definida como múltiples procesadores trabajando juntos como si fueran uno solo para proveer un conjunto de aplicaciones o varios servicios.


"Server Cluster" es utilizado por lo general para aplicaciones críticas como bases de datos, CRM, file-servers, impresoras, e-mail, y aplicaciones desarrolladas por las Organizaciones.

"Network Load Balancing" es más recomendable para aplicaciones que son escalables horizontalmente, como Web Servers, Proxy Servers y otros servicios que tienen requerimientos de conexiones distribuidas por parte de los clientes.

Las nuevas implementaciones de Clusters de Windows ofrecen alta disponibilidad para una gran gama de aplicaciones y resultan menos costosas que las anteriores.


Server Cluster


Las implementaciones de Server Cluster permiten tener alta disponibilidad, escalabilidad y también administrar gran cantidad de recursos y aplicaciones. Todos los nodos de un Cluster, que son los distintos servidores, están comunicados constantemente, si uno de ellos se cae por alguna falla o necesita mantenimiento, otro nodo inmediatamente lo reemplaza para brindar servicio a los clientes. Los usuarios que acceden al Cluster permanecen conectados continuamente a los recursos que utilizan. La versión de Windows 2003 es dramáticamente diferente a la del MSCS (Microsoft Cluster Service) incluido en Windows 2000 Advanced Server y Windows 2000 Datacenter Server.


Al instalar un Server Cluster, primero se configuran los servidores que actuarán como nodos. Luego se definen los recursos que se necesitan para la aplicación que se instala en el cluster. Estos recursos pueden ser direcciones IP, nombres de red, aplicaciones, servicios o discos. Finalmente pone el Cluster on-line para comenzar a atender los pedidos de servicio de los clientes. Si el Server Cluster detecta una falla en el nodo primario, o si ese nodo queda off-line por mantenimiento, la aplicación comienza a ejecutarse en un nodo de backup. Los pedidos de los clientes se redirigen inmediatamente al nodo backup para minimizar el impacto de la falla. La mayoría de las aplicaciones en cluster se ejecutan en un nodo a la vez, aunque un cluster puede correr varios servicios simultáneamente para optimizar la utilización del hardware. Algunas aplicaciones que trabajan en Cluster ya están diseñadas para ejecutarse en múltiples nodos al mismo tiempo, como por ejemplo Microsoft SQL Server.


Los nodos utilizan un "quorum" para rastrear qué nodo está ejecutando la aplicación que corre en Cluster. El “quorum" es el dispositivo de Almacenamiento que controla el nodo primario de la aplicación en Cluster. Solamente un nodo a la vez puede controlar el "quorum".


Cuando una aplicación tiene que pasar a ejecutarse en un nodo back-up (momento denominado "fail over"), ese nodo toma el control del "quorum". Cuando los nodos del Cluster se conectan a un solo dispositivo de almacenamiento, el “quorum” se puede crear en el mismo dispositivo. Este tipo de Cluster se llama en Windows 2003 “single quorum device server cluster” (Server Cluster con "quorum" único, ver Figura 1).



Conectar todos los nodos a un solo dispositivo de almacenamiento simplifica el desafío de transferir el control de los datos al nodo de backup. Sin embargo, esta arquitectura tiene algunas debilidades.Si falla el dispositivo de almacenamiento, el Cluster entero se cae. Si utilizamos una SAN (Storage Area Network, Red de área de almacenamiento) y falla,también va a fallar todo el Cluster.


Se puede planear toda la redundancia que se quiera, pero si las instalaciones tienen algún problema serio, también se perjudica la continuidad de la disponibilidad de los servicios. Las inundaciones, el fuego, los terremotos y fallas de alimentación entre otras posibles causas externas, van a causar la falla de todo el Cluster. Si la continuidad del negocio necesita que el sistema funcione, un solo dispositivo de “quorum” no va a ser suficiente. Cuando se construye un Cluster en un solo Datacenter, se puede implementar redundancia para todos los servidores o dispositivos, pero no para el Datacenter completo.


Ante un desastre natural, una falla en la infraestructura WAN o si hay una falla de alimentación en la instalación por un período largo de tiempo, todos los nodos del Cluster van a estar off-line.Para hacer frente a este tipo de peligros, Windows Server 2003 provee un servicio que se llama "Majority Node Set" que permite a los nodos del Cluster conectarse usando LANs o WANs en vez de una red SAN (Storage Area Network) u otro tipo de de conexión de almacenamiento que tenga limitaciones de distancia, esto quiere decir, que deba estar conectado directamente a lo servidores. Cualquier red que pueda garantizar una latencia de 1 segundo contra un sitio remoto podría funcionar bien, inclusive una VPN (Virtual Private Network). Una tecnología apropiada para este tipo de implementaciones es iSCSI (ver recuadro).


El desafío más importante de los Clusters distribuidos geográficamente es evitar el fenómeno de "split-brain" (cerebro dividido). Sucede cuando no hay una correcta comunicación entre nodos para determinar quién ejecuta la aplicación y los clientes remotos ven varios nodos activos, porque piensan que el nodo principal está caído. El Cluster de Windows soluciona este tipo de escenario sin que exista la posibilidad de "splitbrain".


Las transacciones pueden continuar sin problemas en los nodos remotos, porque un Cluster es capaz de distribuir la carga hacia servidores activos. "Majority Node Set" utiliza también el concepto de “quorum”, que es una forma de mantener informado al Cluster qué nodo está activo y cuál está teniendo problemas para prestar servicios. La prevención de "split-brain" se hace poniendo como requisito para el Cluster que la mayoría de los nodos estén de acuerdo en qué nodo va a controlar la aplicación que se cayó. Esta información no tiene nada que ver con la replicación de datos. Muchas aplicaciones modernas ya poseen mecanismos de replicación adecuados para sincronizar datos a través de enlaces remotos, por ejemplo Microsoft SQL Server.


Los Clusters que utilizan Majority Node Set (MNS) guardan el “quorum” en un dispositivo de almacenamiento local,conectado directamente a cada uno de los nodos del Cluster.Para que un nodo de backup asuma el control del “quorum”, debe tener una copia de los datos guardados dentro del mismo. (ver Figura 2).

El servicio de Server Cluster maneja este requerimiento replicando la información de “quorum”a través de la red.Solamente se requiere que los nodos estén conectados a la red, pero no necesita ser una LAN,puede ser una WAN o una VPN que conecte nodos del Cluster en diferentes edificios o ciudades, permitiendo al Cluster solucionar problemas de restricciones geográficas impuestas por las conexiones de almacenamiento. Este tipo de Cluster tiene restricciones que el resto no tiene, por ejemplo, debe haber al menos tres nodos en el Cluster, y dos de ellos tienen que estar activos. Si hay 8 nodos, tiene que haber cinco nodos activos para permanecer online.

Los Server Clusters de "quorum" único requieren que solamente un nodo esté activo.


Network Load Balancing


El segundo tipo de tecnología de Cluster es NLB. NLB distribuye el tráfico TCP/IP entre múltiples

Servidores. Esta funcionalidad estaba implementada en Windows 2000 y se conocía como WLBS; también fue mejorada en Windows 2003. Utilizando NLB en aplicaciones en Cluster, sobre todo Web Servers, se puede procesar más tráfico tener mejor disponibilidad y mejorar los tiempos de respuesta. (ver Figura 3).



Los Clusters que utilizan NLB no usan un “quorum”, entonces no imponen requisitos de almacenamiento o red a los nodos del Cluster. Si un nodo falla, el NLB automáticamente redirige los pedidos que ingresan a los nodos restantes. Si un nodo se pone off-line por mantenimiento se puede usar NLB para permitir que las conexiones existentes no se pierdan y se completen antes de que se baje el nodo. Esto elimina el impacto en los usuarios finales durante el tiempo en que está abajo el servicio.


NLB también puede ponderar los pedidos de los clientes, lo que permite mezclar servers con mucha potencia con otros menores y asegurarse de que los recursos se usen eficientemente.

Por lo general se usa NLB para redundancia y escalabilidad en Firewalls, Servidores Proxy o Web Servers. Otras aplicaciones en las cuales se utiliza generalmente incluyen extremos de VPNs, Streaming Media Servers y Terminal Services. NLB se incluye en todas las versiones de Windows Server 2003, incluyendo Windows 2003 Web Edition. Los Clusters NLB pueden tener hasta 32 nodos.


En Windows 2000, para crear un Cluster NLB, los usuarios debían configurar por separado cada máquina del Cluster, lo cual tenía como inconveniente que si se configuraban dos nodos distintos con los mismos parámetros, todo el conjunto podía fallar. Windows 2003 agrega una nueva funcionalidad llamada NLB Manager, que ayuda a solucionar este tipo de problemas centralizando la configuración y administración de los Clusters. Uno de los mayores beneficios del NLM Manager es que se puede hacer crecer un Cluster de manera sencilla, lo cual es muy conveniente para no comprar equipos de más cuando se proyecta una red, con todo el alto costo que esto implica. Permite tener la infraestructura de servicios ajustada a las necesidades de la compañía, y aumentar la cantidad de los equipos según la demanda real.


Agregando servidores adicionales se puede aumentar la disponibilidad, pero nadie asegura que la demanda del servicio que se presta sea suficiente como para justificar el gasto, por eso la utilización de soluciones para aumentar la dispodisponibilidad de otra forma (léase utilizando NLB), puede ayudar a ahorrar grandes cantidades de dinero. Los requisitos de administración son mínimos. De hecho se pueden monitorear los servicios del Cluster como cualquier otro servicio y de esta forma no alterar el esquema de monitoreo preexistente.


Si se planea implementar varios Clusters, hay muchas herramientas para administrar casi cualquier aspecto. WMIC.exe es una interfaz para administrar servidores, la herramienta Cluster.exe permite automatizar cualquier tarea que se quiera realizar en el Cluster, incluyendo agregar y borrar nodos, analizar la configuración y configurar las aplicaciones para que funcionen en Cluster. Ambas aplicaciones se pueden utilizar para distribuir actualizaciones o configuraciones en sitios remotos con un mínimo esfuerzo.


High Performance Computing


Más allá de la disponibilidad y la confiabilidad para los servicios que se instalan en Cluster, está ganando cada vez más importancia un enfoque que tiene que ver más con el procesamiento que con la seguridad del negocio en las empresas. Para resolver muchos de los desafíos informáticos actuales en el Mundo, cada vez se necesita más capacidad de procesamiento, y los Clusters parecen ser la mejor solución para resolverlos. Las Compañías u Organizaciones pueden instalar gran cantidad de Servidores Windows 2003 y obtener los beneficios de HPC a un precio relativamente bajo.


HPC generalmente se refiere a Clusters con docenas o cientos de máquinas, procesando cada una, una sola instancia de una aplicación. Los sectores que necesitan semejante capacidad de procesamiento son por lo general académicos y científicos, pero cada vez más empresas están viendo los beneficios de esta tecnología para creación de contenidos digitales y cálculos financieros como por ejemplo cálculos de riesgo.


El mercado actual es realmente pequeño, debido a que justamente los sectores de investigación no cuentan con recursos suficientes para generar una gran ganancia, pero de todas maneras el hecho de beneficiar la actividad académica y de investigación es un antecedente importante para cuando sea una tecnología más masiva. Implementar HPC con Microsoft, conllevaría el pago de una licencia por cada nodo. Microsoft se encuentra estudiando diferentes alternativas de licenciamiento.


Conclusion

Hace unos años atrás, las soluciones a los problemas de disponibilidad eran muy costosas y muchas veces provocaban aún más tiempo de baja de servicio por fallas propias pero Microsoft está focalizado en diseñar los nuevos Clusters para que ese tipo de situaciones sea una problemática del pasado. Los servicios de Cluster que ahora se incluyen en Windows 2003 son el resultado de años de experiencia en el mundo real y la depuración de errores y complicaciones de las versiones anteriores. Como resultado Windows 2003 provee un servicio de Clusters que cada vez necesita menos tiempo de administración y es más confiable.


Extraido de la revista NexIt

Saludos.

6 comentarios:

Anónimo dijo...

Excelente el post !!!

:-)

Anónimo dijo...

muy bueno me sirvio bastante

Unknown dijo...

Excelente Muy conciso abarcando todos los aspectos

Joaquin dijo...

Muy clarificador. Gracias.

Sick dijo...

Aunque ya hace un tiempo desde la publicación del post... gracias! Me ha ayudado a aclarar ciertos conceptos.

Saludos.

Elkin C dijo...

Gracias por el post.