Capítulo II. Administración de servidores
3. Elementos del servidor
4.2. Agregación de hosts o sistema distribuido
Así pues, esta división de carga permite realizar el mismo trabajo en una por- ción de tiempo más reducida, o lo que es lo mismo; permite realizar más carga de trabajo en el mismo tiempo total.
Conceptos generales sobre el Balanceo de Carga:
• El balanceo de carga se puede implementar por hardware, software o una combinación de los dos.
Balancear una carga significa dividir el total de trabajo que un sistema o computadora tiene que hacer entre dos o más sistemas o computadoras.
• El balanceo de carga está especialmente indicado para entornos en los qué es muy difícil prever el volumen de carga de trabajo.
• El factor de división de carga se puede definir, dando más o menos carga a cada uno de los sistemas implicados. Esta característica es la carga asi- métrica
4.2.2. Sistemas cluster
Qué es un cluster - Introducción
Un cluster es un grupo de computadoras interconectadas que trabajan con- juntamente en la solución de un problema. Estos sistemas constituyen una solu- ción flexible, de bajo coste y de gran escalabilidad pora aplicaciones que requie- ren una elevada capacidad de computadora y memoria.
Un cluster es un grupo de equipos independientes que ejecutan una serie de aplicaciones de forma conjunta y aparecen delante de los clientes y aplicaciones como un solo sistema.
Si miramos la historia de los clusters, encontramos que si bien no se sabe la fecha exacta del primer cluster, se considera que la base científica del concepto del procesamiento en paralelo la estableció Gene Amdahl, que trabajaba en IBM, hacia el 1967. El desarrollo de los clusters ha ido siempre unido al de las redes de computadores, puesto que desde el comienzo se buscó la unión de los sistemas informáticos para obtener más rendimiento y capacidades. De todas formas, el primer cluster comercial fue ARCNet, desarrollado en el 1977 por la corporación DataPoint. A partir de aquí, una serie de productos popularizaron el concepto, hasta la puesta en marcha del proyecto Beowulf, el 1994, que implicaba la in- terconexión en red local de computadores estándar, y gestionaba como estos interactuaban entre sí. La idea fue tal éxito que incluso la Nasa adoptó.
Características
● Un cluster consta de 2 o más nodos conectados entre sí por un canal de comunicación.
● Cada nodo únicamente necesita un elemento de proceso, memoria y una interfaz para comunicarse con la red del cluster.
● Los clusters necesitan software especializado, ya sea a nivel de aplicación o a nivel de núcleo.
● Todos los elementos del cluster trabajan para cumplir una funcionalidad conjunta, sea la que sea. Es la funcionalidad la que caracteriza el sistema. Ventajas económicas: Es una razón importante para la construcción de clusters. Reduce costes en el gasto inicial tanto de planificación, de instalación y también los costes asociados al mantenimiento (el TCO -Total Coste of Ownership o coste total-) comparados con un “ordenador” de las prestaciones equivalentes.
Sencillo: La tecnología que hace funcionar a un cluster se basa en la unión de elementos sencillos (que pueden ser incluso ordenadores normales). Y esta sencillez es más beneficiosa cuando hablamos de disponibilidad de piezas de re- cambio (pueden ser piezas estándar) o de un downtime reducido (no hay tiempo de espera para un técnico enviado por la marca del equipo).
Disponibilidad: La interconexión de dos o más computadoras trabajando conjuntamente en la solución de un problema, permite incrementar la disponi- bilidad de servicio puesto que se divide aproximadamente los número de puntos críticos de servicio entre el número de nodos del cluster.
Escalable: Si el SO del cluster lo permite, sólo hace falta conectar más equi- pos a la red del cluster, configurarlas correctamente y ya tenemos un cluster ampliado y mejorado.Incluso mejorando alguno de los elementos que forman parte de cada nodo (memoria RAM o disco por ejemplo), se obtiene una mejora del rendimiento o la disponibilidad.
La escalabilidad es la capacitad de un equipo para enfrentarse a volúmenes de trabajo cada vez más grandes sin dejar de dar un nivel de rendimiento aceptable. Hay dos clases de escalabilidad: • Hardware o escalamiento vertical: Basado en el uso de un gran equipo con una capacidad que
aumenta a medida que lo exige la carga de trabajo.
• Software o escalamiento horizontal: Basado en el uso de un cluster hecho de varios equipos de media potencia que funcionan de manera muy similar a como lo hacen las unidades RAID de disco.
Rendimiento: El incremento de recursos asignados con el fin de resolver la mis- ma carga de trabajo permite aumentar el rendimiento del sistema como conjunto.
Balance de carga: La tecnología de cluster de servidores por balanceo de carga mejora la respuesta a las peticiones conmutando estas entre los diversos nodos del cluster.
Componentes
• Nodos: Pueden ser simples ordenadores, sistema multi-procesador o esta- ciones de trabajo.
• Sistemas operativos: Tienen que ser de fácil uso y acceso, y además permitir múltiples procesos y usuarios.
• Conexiones de red: Los nodos de un cluster pueden conectarse median- te una simple red Ethernet, o se puede utilizar tecnologías especiales de alta velocidad como Fast Ethernet, Gigabit Ethernet, Myrinet, Infiniband, SCI. • Middleware: El middleware es un software que generalmente actúa entre
el sistema operativo y las aplicaciones con el fin de proveer una interfaz única de acceso al sistema, denominada SSI (Single System Image), la cual ge- nera la sensación al usuario que utiliza un único ordenador muy potente. • Herramientas para la optimización y mantenimiento del siste-
ma: Migración de procesos, checkpoint-restart (parar uno o varios proce- sos, migrarlas a otro nodo y continuar su funcionamiento), balanceo de carga, tolerancia a fallos, etc.
• Escalabilidad: Tiene que poder detectar automáticamente nuevos no- dos conectados al cluster para proceder a su utilización.
● Ambientes de programación paralela: Los ambientes de programa- ción paralela permiten implementar algoritmos que hacen uso de recursos compartidos: CPU (Central Processing Unido), memoria, datos y servicios. Tipos
Los clusters pueden clasificarse en base a sus características. Se pueden tener clus- ters de alto rendimiento (HPC – High Performance Clusters), clusters de alta disponi- bilidad (HA – High Availability) o clusters de alta eficiencia (HT – High Throughput).
High performance
Son clusters que ejecutan tareas que requieren de gran capacidad compu- tacional. Estas tareas pueden comprometer los recursos del cluster por largos períodos de tiempos.
High availability
Son clusters diseñados para proporcionar disponibilidad y fiabilidad. La fi- abilidad se provee mediante software que detecta fallos del sistema y permite recuperarse frente a estos, mientras que en hardware se evita tener un único punto de fallo.
High Throughput
Son clusters que están diseñados con el objetivo de ejecutar la mayor canti- dad de tareas en el menor tiempo posible.
4.2.3. Grid
La computación en grid o malla es un nuevo paradigma de computación dis- tribuida en el cual todos los recursos de un número indeterminado de computa- doras son englobados como un único superordenador de forma transparente.
Estas computadoras englobadas no están conectadas o enlazadas rígidamen- te, es decir, no tienen por qué estar en el mismo punto geográfico.
Los orígenes de la computación en Grid se deben a la idea de la compartición de recursos. La práctica conocida como “computación distribuida” nos trae a los inicios de la informática. A finales de los años 50 y principios de los 60, los in- vestigadores se dieron cuenta que necesitaban hacer más eficientes los sistemas que habían costado una fortuna; “los sistemas pierden mucho tiempo esperan- do que los usuarios introduzcan datos”. Los investigadores razonaron entonces, que varios usuarios podrían compartir el sistema aprovechando el tiempo de procesamiento no empleado.
En 1969 ya encontramos una primera aproximación a la definición de Grid por parte de Len Kleinrock que sugirió proféticamente:
“Nosotros probablemente veremos la extensión de las “utilidades de los or- denadores”, como las utilidades de la corriente eléctrica y telefónicas, que darán servicio a las casas y las oficinas en cualquier parte del país”.
En 1998, Carl Kesselman and Ian Foster intentaron otra definición en su li- bro “The Grid: Blueprint for a New Computing Infrastructure.”
Grid es la infraestructura de hardware y el software que proporciona un acce-
so serio, constante, penetrable y económico a capacidades computacionales de alta calidad.
En una revisión de la definición por los mismos autores junto con Steve Tu- ecke, se definió la computación grid cómo: Compartición de los recursos coor- dinados y de la solución de un problema en organizaciones virtuales dinámicas y multiinstitucionales.
Características. El grid, es un sistema que:
1- Sus recursos coordinados no están sujetos a un control central: Un Grid integra y coordina recursos y usuarios que trabajan con diferentes dominios – por ejemplo, estaciones de trabajo de usuarios frente a computadoras centrales; unidades admi- nistrativas diferenciadas de la misma organización; o diferentes organizaciones.
2- Utiliza un estándar, abierto, protocolos e interfaces genéricas: Un Grid está hecho de protocolos genéricos e interfaces que tienen como principales incon- venientes la autenticación, autorización, descubrimiento y acceso a los recursos. Es importante que estos protocolos sean estándares y abiertos.
3- Entrega las calidades no triviales de servicio: Un Grid permite a los recursos que la constituyen, ser empleados de una forma coordinada entregando diferentes calidades de servicio, relacionadas por ejemplo con el tiempo de respuesta, ren- dimiento, disponibilidad y seguridad, y la asignación de múltiples recursos para conocer las demandas de los usuarios, por lo tanto, esta utilización de los siste- mas combinados es significativamente más grande que la suma de sus partes.
Grid ofrece nuevas y más potentes vías de trabajo, como los siguientes ejemplos:
• Portales científicos: Aprovechar los métodos científicos de resolución de problemas.
• Computación distribuida: Aprovechar la mayor capacidad que tienen las esta- ciones de trabajo para conseguir unos sustanciales recursos de computación. • Computación en tiempo real de instrumentación: Permite mejorar la uti-
lización de aparatos en tiempo real.
• Trabajo colaborativo: Grid permite trabajar en equipo compartiendo recur- sos, pero también los resultados de los diferentes estudios para su análisis.