PDF de programación - Introducción a las tecnologías de clustering en GNU/Linux

Imágen de pdf Introducción a las tecnologías de clustering en GNU/Linux

Introducción a las tecnologías de clustering en GNU/Linuxgráfica de visualizaciones

Actualizado el 7 de Febrero del 2020 (Publicado el 10 de Abril del 2017)
736 visualizaciones desde el 10 de Abril del 2017
804,4 KB
31 paginas
Creado hace 19a (18/05/2004)
Introducción a las tecnologías de

clustering

en GNU/Linux

Rosa María Yáñez Gómez

Versión 1.0

Dedicado a Javi,

por todo lo que nos une

Página nº 2

1._CLUSTERS DE COMPUTADORAS

El término cluster se aplica no sólo a computadoras de
alto   rendimiento   sino   también   a   los   conjuntos   de
computadoras,   construidos   utilizando   componentes   de
hardware   comunes   y   software   libre.   Entre   estos   dos
extremos   situaremos   también   las   soluciones   comerciales
modulares,   que   permiten   ajustar   la   inversión   a   los
requerimientos   concretos   del   problema   al   que   nos
enfrentemos y expandir el cluster conforme las necesidades
vayan   aumentando.   Estas   soluciones,   sin   embargo,   van   a
imponer modelos específicos de programación que permitan
explotar al máximo las capacidades de la máquina y por otra
parte, encadenan al comprador a un fabricante concreto. Es
por ello que este documento se centrará en el estudio de la
tecnología de clustering dentro del entorno del software libre, sobre todo en el uso del sistema
operativo GNU/Linux y otras herramientas libres asociadas a él. Aunque, hemos de señalar que se
han presentado soluciones de clustering también para otros sistemas operativos libres (FreeBSD,
NetBSD...).

Figura 2_Los clusters basados en

GNU­Linux son flexibles y

económicos.

Los clusters juegan hoy en día un papel muy importante en la solución de problemas de las
ciencias, las ingenierías y en el desarrollo y ejecución de muchas aplicaciones comerciales. Los
clusters   han   evolucionado   para   apoyar   actividades   en   aplicaciones   que   van   desde   la
supercomputación hasta el software adaptado a misiones críticas, pasando por los servidores web, el
comercio electrónico y las bases de datos de alto rendimiento.

La computación basada en clusters surge gracias a la disponibilidad de microprocesadores de
alto rendimiento más económicos y de redes de alta velocidad, y también gracias al desarrollo de
herramientas   de   software   para   cómputo   distribuido   de   alto   rendimiento;   todo   ello   frente   a   la
creciente   necesidad   de   potencia   de   cómputo   para   aplicaciones   en   las   ciencias  y   en   el   ámbito
comercial,   así   como   de   disponibilidad   permanente   para   algunos   servicios.     Por   otro   lado,   la
evolución y estabilidad que ha alcanzado el sistema operativo GNU/Linux, ha contribuido de forma
importante, al desarrollo de muchas tecnologías nuevas, entre ellas las de clustering.

Según la aplicabilidad de los clusters, se han desarrollado diferentes líneas tecnológicas. La
primera surge frente a la necesidad de supercomputación para determinadas aplicaciones, lo que se
persigue es conseguir que un gran número de máquinas individuales actúen como una sola máquina
muy potente. Este tipo de clusters se aplica mejor en problemas grandes y complejos que requieren
una cantidad enorme de potencia computacional. Entre las aplicaciones más comunes de clusters de
alto rendimiento  (computacionales, de supercomputación) se encuentra el pronóstico numérico del
estado  del  tiempo, astronomía, investigación  en criptografía,  simulación  militar, simulación   de
recombinaciones entre moléculas naturales y el análisis de imágenes.

Un segundo tipo de tecnología de clusters, es el destinado al balanceo de carga. Surge el

Página nº 5

concepto de "cluster de servidores virtuales", cluster que permite que un conjunto de servidores de
red compartan la carga de trabajo y de tráfico de sus clientes, aunque aparezcan para estos clientes
como un único servidor. Al balancear la carga de trabajo en un conjunto de servidores, se mejora el
tiempo de acceso y la confiabilidad. Además como es un conjunto de servidores el que atiende el
trabajo, la caída de uno de ellos no ocasiona una caída total del sistema. Este tipo de servicio es de
gran valor para compañías que trabajan con grandes volúmenes de tráfico y trabajo en sus webs,
servidores de correo... Hemos de pensar que la imagen y el prestigio de una empresa que ofrece sus
servicios   por   Internet   se   compromete   en   la   velocidad,   la   calidad   y   la   disponibilidad   de   estos
servicios.

El último tipo importante de tecnología de clustering trata del mantenimiento de servidores
que actúen entre ellos como respaldos de la información que sirven. Este tipo de clusters se conoce
como "clusters de alta disponibilidad" o "clusters de redundancia". La flexibilidad y robustez que
proporcionan este tipo de clusters, los hacen necesarios en ambientes de intercambio masivo de
información,   almacenamiento   de  datos  sensibles   y  allí   donde   sea   necesaria   una   disponibilidad
continua del servicio ofrecido.

Los clusters de alta disponibilidad permiten un fácil
mantenimiento de servidores. Una máquina de un cluster de
servidores se puede sacar de línea, apagarse y actualizarse o
repararse sin comprometer los servicios que brinda el cluster.
Cuando el servidor vuelva a estar listo, se reincorporará y
volverá a formar parte del cluster.

Además del concepto de cluster, existe otro concepto
más   amplio   y  general  que   es   el  Cómputo   en   Malla   (Grid
Computing). Una Malla (Network Of Workstation o NOW) es
un   tipo   de   sistema   paralelo   y   distribuido   que   permite
compartir, seleccionar y añadir recursos que se encuentran distribuidos a lo largo de dominios
administrativos "múltiples". Si los recursos distribuidos se encuentran bajo la administración de un
sistema central único de programación de tareas, entonces nos referiremos a un cluster. En un
cluster, todos los nodos trabajan en cooperación con un objetivo y una meta común y la asignación
de recursos la lleva a cabo un solo administrador centralizado y global. En una Malla, cada nodo
tiene su propio administrador de recursos y política de asignación. 

Figura 3_Network of Workstations
(NOW)

2._¿CÓMO FUNCIONA UN CLUSTER?

Desde un punto de vista general, un cluster consta de dos partes. La primera es el software:
un sistema operativo confeccionado especialmente para esta tarea (por ejemplo un kernel Linux
modificado), compiladores y aplicaciones especiales, que permite que los programas que se ejecutan
en el sistema exploten todas las ventajas del cluster. En el entorno de GNU/Linux hay que destacar
la PVM (Paralell Virtual Machine) y la MPI (Message Passing Interface), librerías que abstraen la
componente hardware de la componente software.

Página nº 6

La segunda componente es la interconexión hardware entre las máquinas (nodos) del cluster.
Se han desarrollado interfaces de interconexión especiales muy eficientes, pero es común realizar
las interconexiones mediante una red Ethernet dedicada de alta velocidad. Gracias a esta red de
interconexión los nodos del cluster intercambian entre sí las tareas, las actualizaciones de estado y
los datos del programa. En un cluster abierto, existirá una interfaz de red que conecte al cluster con
el mundo exterior (Internet)1. 

Cuando se trata de resolver un problema en paralelo, el software debe ser capaz de dividir el
problema en tareas más pequeñas, repartirlas entre los nodos y elaborar los resultados. Puesto que
las subtareas van a ejecutarse en paralelo se consigue un aumento de velocidad, aunque hay que
tener en cuenta el retardo que la división, reparto y transmisión de mensajes (resultado, coherencia,
estados...) supone.

En el caso de los clusters de balanceo de carga, el hardware y el software deben actuar
conjuntamente para que el tráfico se distribuya entre los nodos del cluster. De esta forma, se pueden
ofrecer los servicios a mayor velocidad o se realiza una tarea más rápidamente.

Los servidores de un cluster de alta disponibilidad normalmente no comparten la carga de
procesamiento que tiene un cluster de Alto Rendimiento. Tampoco comparten la carga de tráfico
como lo hacen los clusters de Balanceo de Carga. Su función es la de estar preparados para entrar
inmediatamente en funcionamiento en caso de que falle algún otro servidor. 

3._¿POR QUÉ CONSTRUIR UN CLUSTER?

Construir un cluster puede aportar importantes ventajas en gran variedad de aplicaciones y

ambientes:

– Incremento de velocidad de procesamiento ofrecido por los clusters de alto rendimiento.
– Incremento   del   número   de   transacciones   o   velocidad   de   respuesta   ofrecido   por   los

clusters de balanceo de carga. 

– Incremento   de   la   confiabilidad   y   la   robustez   ofrecido   por   los   clusters   de   alta

disponibilidad.

Por ejemplo, en la investigaciones meteorológicas y pronóstico numérico del estado del
tiempo,   se   requiere   el   manejo   de   cantidades  masivas   de   datos   y   cálculos   muy   complejos.   Al
combinar el poder de muchas máquinas del tipo estación de trabajo o servidor, se pueden alcanzar
niveles de rendimiento similares a los de las supercomputadoras, pero a menor costo.

Otra situación de aplicabilidad de un cluster sería en un sitio web que soportara mucho
tráfico. Si no se cuenta con un plan de alta disponibilidad, cualquier problema menor de una tarjeta
de red, puede hacer que un servidor quede completamente inutilizado. Pero al contar con servidores
redundantes y servidores de respaldo instantáneos, se puede reparar el problema mientras el sitio

1 En el caso de los clusters de alto rendimiento, no es común que estos se conecten al exterior debido a las

implicaciones de seguridad que esto supone. En estos clusters se suele elegir la velocidad frente a la seguridad.

Página nº 7

sigue funcionando sin suspensión de servicio.

4._PUNTOS A CONSIDERAR A LA HORA DE CONFIGURAR UN CLUSTER

Por   sus   características   especiales,   hay   varias   cuestiones   particulares   asociadas   a   esta

tecnología que deben ser tenidas en cuenta.

Uno de los principales problemas a los que hay que hacer frente cuando se construye un
cluster es buscar y eliminar los puntos de fallo únicos (single poin
  • Links de descarga
http://lwp-l.com/pdf2696

Comentarios de: Introducción a las tecnologías de clustering en GNU/Linux (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad