Cluster (informática)

Anuncio
Cluster (informática)
El término cluster se aplica a los conjuntos o conglomerados de computadoras construidos
mediante la utilización de componentes de hardware comunes y que se comportan como si fuesen
una única computadora. La tecnología de clusters ha evolucionado en apoyo de actividades que
van desde aplicaciones de supercómputo y software de misiones críticas, servidores Web y
comercio electrónico, hasta bases de datos de alto rendimiento, entre otros usos.
El cómputo con clusters surge como resultado de la convergencia de varias tendencias actuales
que incluyen la disponibilidad de microprocesadores económicos de alto rendimiento y redes de
alta velocidad, el desarrollo de herramientas de software para cómputo distribuido de alto
rendimiento, así como la creciente necesidad de potencia computacional para aplicaciones que la
requieran.
Los clusters son usualmente empleados para mejorar el rendimiento y/o la disponibilidad por
encima de la que es provista por un solo computador típicamente siendo más económico que
computadores individuales de rapidez y disponibilidad comparables.
De un cluster se espera que presente combinaciones de los siguientes servicios:
1. Alto rendimiento
2. Alta disponibilidad
3. Equilibrio de carga
4. Escalabilidad
La construcción de los ordenadores del cluster es más fácil y económica debido a su flexibilidad:
cluster homogéneo: pueden tener todos la misma configuración de hardware y sistema operativo.
cluster semi-homogéneo: diferente rendimiento pero con arquitecturas y sistemas operativos
similares.
cluster heterogéneo: o tener diferente hardware y sistema operativo, lo que hace más fácil y
económica su construcción.
Para que un cluster funcione como tal, no basta solo con conectar entre sí los ordenadores, sino
que es necesario proveer un sistema de manejo del cluster, el cual se encargue de interactuar con
el usuario y los procesos que corren en él para optimizar el funcionamiento.
Historia
El origen del término y del uso de este tipo de tecnología es desconocido pero se puede
considerar que comenzó a finales de los años 50 y principios de los años 60.
La base formal de la ingeniería informática de la categoría como un medio de hacer trabajos
paralelos de cualquier tipo fue posiblemente inventado por Gene Amdahl de IBM, que en 1967
publicó lo que ha llegado a ser considerado como el papel inicial de procesamiento paralelo: la Ley
de Amdahl que describe matemáticamente el aceleramiento que se puede esperar paralelizando
cualquier otra serie de tareas realizadas en una arquitectura paralela.
Este artículo define la base para la ingeniería de la computación tanto multiprocesador y
computación clúster, en donde el principal papel diferenciador es si las comunicaciones
interprocesador cuentan con el apoyo "dentro" de la computadora (por ejemplo, en una
configuración personalizada para el bus o la red de las comunicaciones internas) o "fuera" del
ordenador en una red "commodity".
En consecuencia, la historia de los primeros grupos de computadoras es más o menos
directamente ligado a la historia de principios de las redes.
Utilizando el concepto de una red de conmutación de paquetes, el proyecto ARPANET logró crear
en 1969 lo que fue posiblemente la primera red de computadoras básico basadas en el cluster de
computadoras por cuatro tipos de centros informáticos (cada una de las cuales fue algo similar a
un "cluster" pero no un "comodity cluster" como hoy en día lo entendemos).
El proyecto ARPANET creció y se convirtió en lo que es ahora Internet - que se puede considerar
como "la madre de todos los clusters".
El primer producto comercial de tipo cluster fue ARCnet, desarrollada en 1977 por Datapoint pero
no obtuvo un éxito comercial y los clusteres no consiguieron tener éxito hasta que en 1984
VAXcluster produjeran el sistema operativo VAX/VMS.
Otros dos principios comerciales de clusteres notables fueron el Tandem Himalaya (alrededor
1994 de con productos de alta disponibilidad) y el IBM S/390 Parallel Sysplex (también alrededor
de 1994, principalmente para el uso de la empresa).
La historia de los clusters de computadoras estaría incompleta sin señalar el papel fundamental
desempeñado por el desarrollo del software de Parallel Virtual Machine (PVM). Software de fuente
abierta basado en comunicaciones TCP/IP permitió la creación de un superordenador virtual - un
cluster HPC - realizada desde cualquiera de los sistemas conectados TCP/IP.
De forma libre los clusters heterogéneos han constituido la cima de este modelo logrando
aumentar rápidamente en FLOPS globalmente y superando con creces la disponibilidad incluso de
los más caros superordenadores.
PVM y el empleo de PC y redes de bajo costo llevó, en 1993, a un proyecto de la NASA para
construir supercomputadoras de clusters.
Beneficios de la Tecnología Cluster
Las aplicaciones paralelas escalables requieren: buen rendimiento, baja latencia, comunicaciones
que dispongan de gran ancho de banda, redes escalables y acceso rápido a archivos. Un cluster
puede satisfacer estos requerimientos usando los recursos que tiene asociados a él.
La tecnología cluster permite a las organizaciones incrementar su capacidad de procesamiento
usando tecnología estándar, tanto en componentes de hardware como de software que pueden
adquirirse a un costo relativamente bajo.
Clasificación de los Clusters
El término cluster tiene diferentes connotaciones para diferentes grupos de personas. Los clusters
pueden clasificarse con base en sus características. Se pueden tener clusters de alto rendimiento
(HPC – High Performance Clusters), clusters de alta disponibilidad (HA – High Availability) o
clusters de alta eficiencia (HT – High Throughput).
Alto rendimiento: Son clusters en los cuales se ejecutan tareas que requieren de gran capacidad
computacional, grandes cantidades de memoria, o ambos a la vez. El llevar a cabo estas tareas
puede comprometer los recursos del cluster por largos periodos de tiempo.
Alta disponibilidad: Son clusters cuyo objetivo de diseño es el de proveer disponibilidad y
confiabilidad. Estos clusters tratan de brindar la máxima disponibilidad de los servicios que
ofrecen. La confiabilidad se provee mediante software que detecta fallos y permite recuperarse
frente a los mismos, mientras que en hardware se evita tener un único punto de fallos.
Alta eficiencia: Son clusters cuyo objetivo de diseño es el ejecutar la mayor cantidad de tareas en
el menor tiempo posible. Existe independencia de datos entre las tareas individuales. El retardo
entre los nodos del cluster no es considerado un gran problema.
Los clusters pueden también clasificar como Clusters de IT Comerciales (Alta disponibilidad, Alta
eficiencia) y Clusters Científicos (Alto rendimiento).
Componentes de un Cluster
En general, un cluster necesita de varios componentes de software y hardware para poder
funcionar:
• Nodos
• Sistemas Operativos
• Conexiones de Red
• Middleware
• Protocolos de Comunicación y servicios
• Aplicaciones
• Ambientes de Programación Paralela
Nodo
Se refiere a un unidad lógica o funcional de MySQL Cluster, y a veces se denomina como nodo de
cluster. Hay tres tipos de nodo requeridos para implementar un MySQL Cluster. Son:
Nodos de administración (MGM)
Nodos SQL (MySQL server)
Nodos de datos
Sistemas Operativos
Debe ser de fácil uso y acceso y permitir además múltiples procesos y usuarios.
Conexiones de Red
Los nodos de un cluster pueden conectarse mediante una simple red Ethernet, o 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 la finalidad de proveer:
• Un interfaz único de acceso al sistema, denominado SSI (Single System Image), el cual genera
la sensación al usuario de que utiliza un único computador muy potente;
• Herramientas para la optimización y mantenimiento del sistema: migración de procesos,
checkpoint-restart (detener uno o varios procesos, migrarlos a otro nodo y continuar su
funcionamiento), balanceo de carga, tolerancia a fallos, etc.;
• Escalabilidad: debe poder detectar automáticamente nuevos nodos conectados al cluster para
proceder a su utilización.
Existen diversos tipos de middleware, como por ejemplo: MOSIX, Condor, Open MOSIX,
OpenSSI, entre otros.
Ambientes de Programación Paralela
Los ambientes de programación paralela permiten implementar algoritmos que hagan uso de
recursos compartidos: CPU (Central Processing Unit), memoria, datos y servicios.
Sistemas Clusters Implementados
Beowulf
Fue construido por Donald Becker y Thomas Sterling en 1994. Fue construido con 16
computadores personales con procesadores Intel DX4 de 200 MHz, que estaban conectados a
través de un switch Ethernet. El rendimiento teórico era de 3.2 GFlops.
Berkeley NOW
El sistema NOW de Berkeley estuvo conformado por 105 estaciones de trabajo Sun Ultra 170,
conectadas a través de una red Myrinet. Cada estación de trabajo contenía un microprocesador
Ultra1 de 167 MHz, caché de nivel 2 de 512 KB, 128 MB de memoria, dos discos de 2.3 GB,
tarjetas de red Ethernet y Myrinet. En abril de 1997, NOW logró un rendimiento de 10 GFlops.
Google
Durante el año 2003, el cluster Google llegó a estar conformado por más de 15.000 computadores
personales. En promedio, una consulta en Google lee cientos de megabytes y consume algunos
billones de ciclos del CPU.
Cluster PS2
En el año 2004, en la Universidad de Illinois en Urbana-Champaign, Estados Unidos, se exploró el
uso de consolas Play Station 2 (PS2) en cómputo científico y visualización de alta resolución. Se
construyó un cluster conformado por 70 PS2; utilizando Sony Linux Kit (basado en Linux Kondora
y Linux Red Hat) y MPI.
Cluster X
En la lista “TOP 500” de noviembre de 2004 fue considerado el séptimo sistema más rápido del
mundo; sin embargo, para julio de 2005 ocupa la posición catorce. Cluster X fue construido en el
Tecnológico de Virginia en el 2003; su instalación fue realizada por estudiantes del Tecnológico.
Está constituido por 2200 procesadores Apple G5 de 2.3 GHz. Utiliza dos redes: Infiniband 4x para
las comunicaciones entre procesos y Gigabit Ethernet para la administración. Cluster X posee 4
Terabytes de memoria RAM y 176 Terabytes de disco duro, su rendimiento es de 12.25 TFlops.
Se lo conoce también como Terascale.
Red Española de Supercomputación
En el año 2007 se crea la Red Española de Supercomputación compuesta por 7 clusters
distribuidos en distintas instituciones españolas, entre los que se encuentra el supercomputador
Marenostrum (el cluster más veloz en el momento de su puesta en funcionamiento).
Todos los clusters están formados por un número variable de nodos con procesadores PowerPC
970 a 2.2GHz interconectados con una red Myrinet. El rendimiento de las máquinas oscilan entre
los casi 65 TeraFLOPS proporcionados por las más de 10000 CPUs de Marenostrum, los casi 16
TeraFLOPS de Magerit con 2400 procesadores o los casi 3 TeraFLOPS de los 5 nodos restantes.
Servidor
En informática, un servidor es un tipo de software que realiza ciertas tareas en nombre de los usuarios. El
término servidor ahora también se utiliza para referirse al ordenador físico en el cual funciona ese
software, una máquina cuyo propósito es proveer datos de modo que otras máquinas puedan utilizar esos
datos.
Este uso dual puede llevar a confusión. Por ejemplo, en el caso de un servidor web, este término podría
referirse a la máquina que almacena y maneja los sitios web, y en este sentido es utilizada por las
compañías que ofrecen hosting o hospedaje. Alternativamente, el servidor web podría referirse al software,
como el servidor de http de Apache, que funciona en la máquina y maneja la entrega de los componentes
de los páginas web como respuesta a peticiones de los navegadores de los clientes.
Los archivos para cada sitio de Internet se almacenan y se ejecutan en el servidor. Hay muchos servidores
en Internet y muchos tipos de servidores, pero comparten la función común de proporcionar el acceso a
los archivos y servicios.
Un servidor sirve información a los ordenadores que se conecten a él. Cuando los usuarios se conectan a
un servidor pueden acceder a programas, archivos y otra información del servidor.
En la web, un servidor web es un ordenador que usa el protocolo http para enviar páginas web al
ordenador de un usuario cuando el usuario las solicita.
Los servidores web, servidores de correo y servidores de bases de datos son a lo que tiene acceso la
mayoría de la gente al usar Internet.
Algunos servidores manejan solamente correo o solamente archivos, mientras que otros hacen más de un
trabajo, ya que un mismo ordenador puede tener diferentes programas de servidor funcionando al mismo
tiempo.
Los servidores se conectan a la red mediante una interfaz que puede ser una red verdadera o mediante
conexión vía línea telefónica o digital.
Tipos de Servidores.
Servidores de Aplicaciones (Application Servers): Designados a veces como un tipo de middleware
(software que conecta dos aplicaciones), los servidores de aplicaciones ocupan una gran parte del
territorio entre los servidores de bases de datos y el usuario, y a menudo los conectan.
Servidores de Audio/Video (Audio/Video Servers): Los servidores de Audio/Video añaden capacidades
multimedia a los sitios web permitiéndoles mostrar contenido multimedia en forma de flujo continuo
(streaming) desde el servidor.
Servidores de Chat (Chat Servers): Los servidores de chat permiten intercambiar información a una gran
cantidad de usuarios ofreciendo la posibilidad de llevar a cabo discusiones en tiempo real.
Servidores de Fax (Fax Servers): Un servidor de fax es una solución ideal para organizaciones que
tratan de reducir el uso del teléfono pero necesitan enviar documentos por fax.
Servidores FTP (FTP Servers): Uno de los servicios más antiguos de Internet, File Transfer Protocol
permite mover uno o más archivos...Leer más »
Servidores Groupware (Groupware Servers): Un servidor groupware es un software diseñado para
permitir colaborar a los usuarios, sin importar la localización, vía Internet o vía Intranet corporativo y
trabajar juntos en una atmósfera virtual.
Servidores IRC (IRC Servers): Otra opción para usuarios que buscan la discusión en tiempo real, Internet
Relay Chat consiste en varias redes de servidores separadas que permiten que los usuarios conecten el
uno al otro vía una red IRC.
Servidores de Listas (List Servers): Los servidores de listas ofrecen una manera mejor de manejar listas
de correo electrónico, bien sean discusiones interactivas abiertas al público o listas unidireccionales de
anuncios, boletines de noticias o publicidad.
Servidores de Correo (Mail Servers): Casi tan ubicuos y cruciales como los servidores web, los
servidores de correo mueven y almacenan el correo electrónico a través de las redes corporativas (vía
LANs y WANs) y a través de Internet.
Servidores de Noticias (News Servers): Los servidores de noticias actúan como fuente de distribución y
entrega para los millares de grupos de noticias públicos actualmente accesibles a través de la red de
noticias USENET.
Servidores Proxy (Proxy Servers): Los servidores proxy se sitúan entre un programa del cliente
(típicamente un navegador) y un servidor externo (típicamente otro servidor web) para filtrar peticiones,
mejorar el funcionamiento y compartir conexiones.
Servidores Telnet (Telnet Servers): Un servidor telnet permite a los usuarios entrar en un ordenador
huésped y realizar tareas como si estuviera trabajando directamente en ese ordenador.
Servidores Web (Web Servers): Básicamente, un servidor web sirve contenido estático a un navegador,
carga un archivo y lo sirve a través de la red al navegador de un usuario. Este intercambio es mediado por
el navegador y el servidor que hablan el uno con el otro mediante HTTP.
Nombre del Servidor
Sistema operativo
4D WebSTAR
AOLserver
Unix
Windows 2000
Windows 95/98
Windows ME
Windows NT 4.0
Windows Server 2003
Windows XP
Apache
NetWare
OS/2
Unix
Windows 95/98
Windows NT 4.0
BadBlue
Windows 2000
Windows 95/98
Windows ME
Windows NT 4.0
Windows XP
Baikonur Web App Server
Windows 95/98
Windows NT 4.0
Covalent Enterprise Ready Server
AIX
HP-UX
Linux
Red Hat Linux
SUSE Linux
Solaris
Windows 2000
Windows Server 2003
ESAWEB
VM/CMS
Enterprise WebServer for NetWare
NetWare
GoAhead WebServer
Linux
NetWare
Solaris
Windows 2000
Windows 95/98
Hawkeye
Linux
iTools
MacOS X Server
Java Server
HP-UX
IRIX
Linux
OS/2
Solaris
Windows 95/98
Windows NT 4.0
Jigsaw
Java_VM
Solaris
Windows 95/98
Windows NT 4.0
Microsoft Internet Information Services
Windows Server 2003
RapidSite
BSD
IRIX
Windows 2000
Windows Server 2003
RomPager Embedded Web Server
Embedded
Roxen WebServer
Linux
MacOS X Server
Solaris
Windows 2000
Windows Server 2003
Windows XP
Sambar Server
Red Hat Linux
Windows 2000
Windows 95/98
Windows ME
Windows NT 4.0
Windows Server 2003
Windows XP
Savant
Windows 2000
Windows 95/98
Windows ME
Windows NT 4.0
Servertec Internet Server
AIX
HP-UX
Linux
Solaris
Windows 2000
Windows 95/98
Windows ME
Windows NT 4.0
Windows Server 2003
Windows XP
Shadow Web Server
MVS
SimpleServer:WWW
Windows 2000
Windows 95/98
Windows ME
Windows NT 4.0
Windows XP
Sun Java System Web Server
Red Hat Linux
Solaris
Windows 2000
Windows XP
Tcl Web Server
Linux
MacOS
Unix
Windows NT 4.0
URL Live!
Windows 2000
Windows 95/98
Windows ME
Windows NT 4.0
Windows XP
Viking
Windows 2000
Windows 95/98
Windows NT 4.0
Windows XP
vqServer
AIX
BSD
Be OS
Digital UNIX
HP-UX
IRIX
Java_VM
Linux
MacOS
OS/2
SCO OpenServer
Solaris
Windows 95/98
Windows NT 4.0
WN
AIX
BSD
Digital UNIX
HP-UX
IRIX
Linux
SCO OpenServer
Solaris
WebBase
Windows 2000
Windows 95/98
Windows NT 4.0
Xitami
AIX
BSD
Be OS
Digital UNIX
HP-UX
Linux
OS/2
SCO OpenServer
Solaris
VMS
Windows 2000
Windows 95/98
Windows ME
Windows NT 4.0
Windows Server 2003
Windows XP
Zeus Web Server
AIX
BSD
HP-UX
IRIX
Linux
MacOS X Server
SCO OpenServer
Solaris
Tru64 Unix
Descargar